diff --git a/DEPS b/DEPS
index e05bd65..23d6943 100644
--- a/DEPS
+++ b/DEPS
@@ -129,7 +129,7 @@
   # 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': 'c132b122b93988ce9fb7f0a03cec448a9369c3e8',
+  'skia_revision': '0e9401dafeb34b3459b528e78b6a9c47fe996089',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -141,15 +141,15 @@
   # 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': '3a0e5bebc040f894ea92df43430692c9d612177b',
+  'angle_revision': 'f2bf49e20849a2b95e0e962a3779e3258307e857',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '7bc4f45a391f60a0ef4ad045432d6af6a31a9d1b',
+  'swiftshader_revision': '603a1b53f72ed4f99dfd47eeedffd6879545b027',
   # 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': '8f387edb25845b6f2f6c06c608649bea99b4d8da',
+  'pdfium_revision': 'fbecffccd534a7431fd7a0d0577196b34576ac7f',
   # 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.
@@ -192,7 +192,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': 'ea373a05edc25dd1d7f742c4013d7f6efa0e3f06',
+  'catapult_revision': '869dc82afef9e537154f8666c7b78acbba5e3366',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -208,7 +208,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'feed_revision': '9e68039a0d2fcd72eaff19697262be4ab4b4eb22',
+  'feed_revision': '5edab49db9100f92f07e0c1b7f65a36d7c3cc97f',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling android_sdk_build-tools_version
   # and whatever else without interference from each other.
@@ -248,7 +248,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'spv_tools_revision': '1f60f98964687ffe8656ac35dce035e79d78ebf0',
+  'spv_tools_revision': '2d52cbee49019da5d664bb7e243fa6339c983c27',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -801,7 +801,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'c4bdf992238cc127f2b08fd8a77ff6fc71a3f44f',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '7192683560fe8a34d3277c3543b93482cc7f7648',
       'condition': 'checkout_linux',
   },
 
@@ -1339,7 +1339,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'a0f51b2e123f39c9ff12e621b0b47dd28dd64424',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '94b57c044e81c6d1938f60aeabe7115a373f626d',
+    Var('webrtc_git') + '/src.git' + '@' + '741daaf0393c4ba42c1bfc9c88907aaa09349987',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1380,7 +1380,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@a8f7a1f5d626bea655d75cc2d86f593b3949784a',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@847dfe2143dcd2240e1bd279c06592bf96aef572',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/WATCHLISTS b/WATCHLISTS
index 627dd9ac..620ec687 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -2418,7 +2418,6 @@
     'select_to_speak': ['katie+watch@chromium.org'],
     'send_tab_to_self': ['hansberry+watch-send_tab_to_self@chromium.org',
                          'jeffreycohen+watch-send_tab_to_self@chromium.org',
-                         'jhawkins+watch-send_tab_to_self@chromium.org',
                          'jlklein+watch-send_tab_to_self@chromium.org',
                          'sebsg+watch-send_tab_to_self@chromium.org',
                          'tgupta+watch@chromium.org'],
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index d341529..aebf419 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -716,8 +716,6 @@
     "renderer/aw_websocket_handshake_throttle_provider.h",
     "renderer/print_render_frame_observer.cc",
     "renderer/print_render_frame_observer.h",
-    "utility/aw_content_utility_client.cc",
-    "utility/aw_content_utility_client.h",
   ]
 
   deps = [
@@ -726,6 +724,7 @@
     ":generate_components_strings",
     ":native_jni",
     "//android_webview/browser/gfx:gfx",
+    "//android_webview/utility",
     "//base",
     "//base/third_party/dynamic_annotations:dynamic_annotations",
     "//components/autofill/android:provider",
diff --git a/android_webview/browser/aw_feature_list_creator.cc b/android_webview/browser/aw_feature_list_creator.cc
index d3f3e196b..28f2c20 100644
--- a/android_webview/browser/aw_feature_list_creator.cc
+++ b/android_webview/browser/aw_feature_list_creator.cc
@@ -48,6 +48,8 @@
 // These prefs go in the JsonPrefStore, and will persist across runs. Other
 // prefs go in the InMemoryPrefStore, and will be lost when the process ends.
 const char* const kPersistentPrefsWhitelist[] = {
+    // Randomly-generated GUID which pseudonymously identifies uploaded metrics.
+    metrics::prefs::kMetricsClientID,
     // Random seed values for variation's entropy providers, used to assign
     // experiment groups.
     metrics::prefs::kMetricsLowEntropySource,
diff --git a/android_webview/browser/aw_metrics_service_client.cc b/android_webview/browser/aw_metrics_service_client.cc
index 560d41ca..992bc97e 100644
--- a/android_webview/browser/aw_metrics_service_client.cc
+++ b/android_webview/browser/aw_metrics_service_client.cc
@@ -6,6 +6,7 @@
 
 #include <jni.h>
 #include <stdint.h>
+#include <utility>
 #include <vector>
 
 #include "android_webview/browser/aw_feature_list.h"
@@ -50,14 +51,12 @@
 
 const int kUploadIntervalMinutes = 30;
 
-// A GUID in text form is composed of 32 hex digits and 4 hyphens. These values
-// must match those in AwMetricsServiceClient.java.
+// A GUID in text form is composed of 32 hex digits and 4 hyphens.
 const size_t kGuidSize = 32 + 4;
+// The legacy file where WebView used to store the client ID, before it was
+// moved to prefs.
 const char* const kGuidFileName = "metrics_guid";
 
-// Client ID of the app, read and cached synchronously at startup
-base::LazyInstance<std::string>::Leaky g_client_id = LAZY_INSTANCE_INITIALIZER;
-
 // Callbacks for metrics::MetricsStateManager::Create. Store/LoadClientInfo
 // allow Windows Chrome to back up ClientInfo. They're no-ops for WebView.
 
@@ -68,9 +67,14 @@
   return client_info;
 }
 
-// WebView Metrics are sampled based on GUID value. The sample rate must not
-// exceed 10%; see https://crbug.com/839646 for more info.
-// TODO(paulmiller) Sample with Finch, once we have Finch.
+// WebView metrics are sampled at 2%, based on the client ID. Since including
+// app package names in WebView's metrics, as a matter of policy, the sample
+// rate must not exceed 10%. Sampling is hard-coded (rather than controlled via
+// variations, as in Chrome) because:
+// - WebView is slow to download the variations seed and propagate it to each
+//   app, so we'd miss metrics from the first few runs of each app.
+// - WebView uses the low-entropy source for all studies, so there would be
+//   crosstalk between the metrics sampling study and all other studies.
 bool IsInSample(const std::string& client_id) {
   // client_id comes from base::GenerateGUID(), so its value is random/uniform,
   // except for a few bit positions with fixed values, and some hyphens. Rather
@@ -83,64 +87,72 @@
   return hash < UINT32_MAX / 50u;
 }
 
+// Load the client ID from the legacy file, if any, store it in |id|, and then
+// delete the file.
+// TODO(crbug/939002): Remove this after ~all clients have migrated the ID.
+void LoadLegacyClientId(std::unique_ptr<std::string>* id) {
+  base::FilePath path;
+  if (!internal::GetLegacyClientIdPath(&path))
+    return;
+  std::string contents;
+  if (base::ReadFileToStringWithMaxSize(path, &contents, kGuidSize)) {
+    if (base::IsValidGUID(contents))
+      *id = std::make_unique<std::string>(std::move(contents));
+  }
+  base::DeleteFile(path, /*recursive=*/false);
+}
+
+std::unique_ptr<::metrics::MetricsService> CreateMetricsService(
+    ::metrics::MetricsStateManager* state_manager,
+    ::metrics::MetricsServiceClient* client,
+    PrefService* prefs) {
+  auto service =
+      std::make_unique<::metrics::MetricsService>(state_manager, client, prefs);
+  service->RegisterMetricsProvider(
+      std::make_unique<::metrics::NetworkMetricsProvider>(
+          content::CreateNetworkConnectionTrackerAsyncGetter()));
+  service->RegisterMetricsProvider(
+      std::make_unique<::metrics::GPUMetricsProvider>());
+  service->RegisterMetricsProvider(
+      std::make_unique<::metrics::ScreenInfoMetricsProvider>());
+  service->RegisterMetricsProvider(
+      std::make_unique<::metrics::CallStackProfileMetricsProvider>());
+  service->InitializeMetricsRecordingState();
+  return service;
+}
+
 }  // namespace
 
+namespace internal {
+
+// Get the path to the file where WebView used to store the client ID, before
+// it was moved to prefs. Return true/false on success/failure.
+// TODO(crbug/939002): Remove this after ~all clients have migrated the ID.
+bool GetLegacyClientIdPath(base::FilePath* path) {
+  base::FilePath dir;
+  if (!base::PathService::Get(base::DIR_ANDROID_APP_DATA, &dir))
+    return false;
+  *path = dir.Append(FILE_PATH_LITERAL(kGuidFileName));
+  return true;
+}
+
+}  // namespace internal
+
 // static
 AwMetricsServiceClient* AwMetricsServiceClient::GetInstance() {
   AwMetricsServiceClient* client = g_lazy_instance_.Pointer();
-  DCHECK(client->sequence_checker_.CalledOnValidSequence());
+  DCHECK_CALLED_ON_VALID_SEQUENCE(client->sequence_checker_);
   return client;
 }
 
-void AwMetricsServiceClient::LoadOrCreateClientId() {
-  // This function should only be called once at start up.
-  DCHECK_NE(g_client_id.Get().length(), kGuidSize);
-
-  // UMA uses randomly-generated GUIDs (globally unique identifiers) to
-  // anonymously identify logs. Every WebView-using app on every device
-  // is given a GUID, stored in this file in the app's data directory.
-  base::FilePath user_data_dir;
-  if (!base::PathService::Get(base::DIR_ANDROID_APP_DATA, &user_data_dir)) {
-    LOG(ERROR) << "Failed to get app data directory for Android WebView";
-
-    // Generate a 1-time GUID so metrics can still be collected
-    g_client_id.Get() = base::GenerateGUID();
-    return;
-  }
-
-  const base::FilePath guid_file_path =
-      user_data_dir.Append(FILE_PATH_LITERAL(kGuidFileName));
-
-  // Try to get an existing GUID.
-  if (base::ReadFileToStringWithMaxSize(guid_file_path, &g_client_id.Get(),
-                                        kGuidSize)) {
-    if (base::IsValidGUID(g_client_id.Get()))
-      return;
-    LOG(ERROR) << "Overwriting invalid GUID";
-  }
-
-  // We must write a new GUID.
-  g_client_id.Get() = base::GenerateGUID();
-  if (!base::WriteFile(guid_file_path, g_client_id.Get().c_str(),
-                       g_client_id.Get().size())) {
-    // If writing fails, proceed anyway with the new GUID. It won't be persisted
-    // to the next run, but we can still collect metrics with this 1-time GUID.
-    LOG(ERROR) << "Failed to write new GUID";
-  }
-}
-
-std::string AwMetricsServiceClient::GetClientId() {
-  // This function should only be called if LoadOrCreateClientId() was
-  // previously called.
-  DCHECK_EQ(g_client_id.Get().length(), kGuidSize);
-
-  return g_client_id.Get();
-}
+AwMetricsServiceClient::AwMetricsServiceClient() {}
+AwMetricsServiceClient::~AwMetricsServiceClient() {}
 
 void AwMetricsServiceClient::Initialize(PrefService* pref_service) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
   DCHECK(pref_service_ == nullptr);  // Initialize should only happen once.
+  DCHECK(!init_finished_);
+
   pref_service_ = pref_service;
 
   metrics_state_manager_ = metrics::MetricsStateManager::Create(
@@ -150,73 +162,57 @@
 
   base::PostTaskWithTraitsAndReply(
       FROM_HERE, {base::MayBlock()},
-      base::BindOnce(&AwMetricsServiceClient::LoadOrCreateClientId),
+      base::BindOnce(&LoadLegacyClientId, &legacy_client_id_),
       base::BindOnce(&AwMetricsServiceClient::InitializeWithClientId,
                      base::Unretained(this)));
 }
 
-void AwMetricsServiceClient::InitializeWithClientId() {
-  // The client ID must be loaded (because LoadOrCreateClientId() finished), but
-  // not yet stored in prefs.
-  DCHECK_EQ(g_client_id.Get().length(), kGuidSize);
-  DCHECK(!pref_service_->HasPrefPath(metrics::prefs::kMetricsClientID));
+void AwMetricsServiceClient::MaybeStartMetrics() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  if (init_finished_ && set_consent_finished_) {
+    if (user_and_app_consent_) {
+      metrics_service_ = CreateMetricsService(metrics_state_manager_.get(),
+                                              this, pref_service_);
+      metrics_state_manager_->ForceClientIdCreation();
+      is_in_sample_ = IsInSample();
+      if (IsReportingEnabled()) {
+        // WebView has no shutdown sequence, so there's no need for a matching
+        // Stop() call.
+        metrics_service_->Start();
+      }
+    } else {
+      pref_service_->ClearPref(metrics::prefs::kMetricsClientID);
+    }
+  }
+}
 
-  pref_service_->SetString(metrics::prefs::kMetricsClientID, g_client_id.Get());
-  in_sample_ = IsInSample(g_client_id.Get());
-
-  metrics_service_.reset(new ::metrics::MetricsService(
-      metrics_state_manager_.get(), this, pref_service_));
-
-  metrics_service_->RegisterMetricsProvider(
-      std::unique_ptr<metrics::MetricsProvider>(
-          new metrics::NetworkMetricsProvider(
-              content::CreateNetworkConnectionTrackerAsyncGetter())));
-
-  metrics_service_->RegisterMetricsProvider(
-      std::unique_ptr<metrics::MetricsProvider>(
-          new metrics::GPUMetricsProvider));
-
-  metrics_service_->RegisterMetricsProvider(
-      std::unique_ptr<metrics::MetricsProvider>(
-          new metrics::ScreenInfoMetricsProvider));
-
-  metrics_service_->RegisterMetricsProvider(
-      std::unique_ptr<metrics::MetricsProvider>(
-          new metrics::CallStackProfileMetricsProvider));
-
-  metrics_service_->InitializeMetricsRecordingState();
-
-  JNIEnv* env = base::android::AttachCurrentThread();
-  Java_AwMetricsServiceClient_nativeInitialized(env);
+void AwMetricsServiceClient::SetHaveMetricsConsent(bool consent) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  set_consent_finished_ = true;
+  user_and_app_consent_ = consent;
+  MaybeStartMetrics();
 }
 
 std::unique_ptr<const base::FieldTrial::EntropyProvider>
 AwMetricsServiceClient::CreateLowEntropyProvider() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return metrics_state_manager_->CreateLowEntropyProvider();
 }
 
 bool AwMetricsServiceClient::IsConsentGiven() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  return consent_;
+  return user_and_app_consent_;
 }
 
 bool AwMetricsServiceClient::IsReportingEnabled() const {
-  return consent_ && in_sample_;
-}
-
-void AwMetricsServiceClient::SetHaveMetricsConsent(bool consent) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  consent_ = consent;
-  // Receiving this call is the last step in determining whether metrics should
-  // be enabled; if so, start metrics. There's no need for a matching Stop()
-  // call, since SetHaveMetricsConsent(false) never happens, and WebView has no
-  // shutdown sequence.
-  if (IsReportingEnabled()) {
-    metrics_service_->Start();
-  }
+  return EnabledStateProvider::IsReportingEnabled() && is_in_sample_;
 }
 
 metrics::MetricsService* AwMetricsServiceClient::GetMetricsService() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  // This will be null if initialization hasn't finished, or if metrics
+  // collection is disabled.
   return metrics_service_.get();
 }
 
@@ -284,18 +280,30 @@
   return std::string();
 }
 
-AwMetricsServiceClient::AwMetricsServiceClient()
-    : pref_service_(nullptr),
-      consent_(false),
-      in_sample_(false) {}
+void AwMetricsServiceClient::InitializeWithClientId() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(!init_finished_);
 
-AwMetricsServiceClient::~AwMetricsServiceClient() {}
+  if (legacy_client_id_) {
+    pref_service_->SetString(metrics::prefs::kMetricsClientID,
+                             *legacy_client_id_);
+    legacy_client_id_.reset();
+  }
+
+  init_finished_ = true;
+  MaybeStartMetrics();
+}
+
+bool AwMetricsServiceClient::IsInSample() {
+  // Called in MaybeStartMetrics(), after metrics_service_ is created.
+  return ::android_webview::IsInSample(metrics_service_->GetClientId());
+}
 
 // static
 void JNI_AwMetricsServiceClient_SetHaveMetricsConsent(
     JNIEnv* env,
     jboolean consent) {
-  g_lazy_instance_.Pointer()->SetHaveMetricsConsent(consent);
+  AwMetricsServiceClient::GetInstance()->SetHaveMetricsConsent(consent);
 }
 
 }  // namespace android_webview
diff --git a/android_webview/browser/aw_metrics_service_client.h b/android_webview/browser/aw_metrics_service_client.h
index 20d8795..fb145dc 100644
--- a/android_webview/browser/aw_metrics_service_client.h
+++ b/android_webview/browser/aw_metrics_service_client.h
@@ -28,12 +28,77 @@
 
 namespace android_webview {
 
-// This singleton manages metrics for an app using any number of WebViews. It
-// must always be used on the same thread. (Currently the UI thread is enforced,
-// but it could be any thread.) This is to prevent enable/disable race
-// conditions, and because MetricsService is single-threaded. Initialization is
-// asynchronous; even after Initialize has returned, some methods may not be
-// ready to use (see below).
+// Exposed for testing.
+namespace internal {
+bool GetLegacyClientIdPath(base::FilePath* path);
+}
+
+// AwMetricsServiceClient is a singleton which manages WebView metrics
+// collection.
+//
+// Metrics should be enabled iff all these conditions are met:
+//  - The user has not opted out (controlled by GMS).
+//  - The app has not opted out (controlled by manifest tag).
+//  - This client is in the 2% sample (controlled by client ID hash).
+// The first two are recorded in |user_and_app_consent_|, which is set by
+// SetHaveMetricsConsent(). The last is recorded in |is_in_sample_|.
+//
+// Metrics are pseudonymously identified by a randomly-generated "client ID".
+// WebView stores this in the app's data directory. There's a different such
+// directory for each user, for each app, on each device. So the ID should be
+// unique per (device, app, user) tuple.
+//
+// The client ID should be stored in prefs. But as a vestige from before WebView
+// persisted prefs across runs, it may be stored in a separate file named
+// "metrics_guid". If such a file is found, it should be deleted and the ID
+// moved into prefs.
+//
+// To avoid the appearance that we're doing anything sneaky, the client ID
+// should only be created or persisted when neither the user nor the app have
+// opted out. Otherwise, the presence of the ID could give the impression that
+// metrics were being collected.
+//
+// WebView metrics set up happens like so:
+//
+//   startup
+//      │
+//      ├──────────────────────────┐
+//      │                          ▼
+//      ▼                       query GMS for consent
+//   Initialize()                  │
+//      │                          │
+//      ▼                          │
+//   LoadLegacyClientId()          │
+//      │                          │
+//      ▼                          │
+//   InitializeWithClientId()      ▼
+//      │                       SetHaveMetricsConsent()
+//      │                          │
+//      │ ┌────────────────────────┘
+//      ▼ ▼
+//   MaybeStartMetrics()
+//      │
+//      ▼
+//   MetricsService::Start()
+//
+// LoadLegacyClientId() is the only function in this diagram that happens off
+// the UI thread. It checks for the legacy metrics_guid file. If it contains a
+// client ID, it stores the ID in |legacy_client_id_|. Then it deletes the file.
+// Once ~all clients have deleted the file, LoadLegacyClientId() can be removed,
+// and Initialize() and InitializeWithClientId() can be merged.
+//
+// Querying GMS is slow, so SetHaveMetricsConsent() typically happens after
+// InitializeWithClientId(). But it may happen before Initialize(), or between
+// Initialize() and InitializeWithClientId().
+//
+// Each path sets a flag, |init_finished_| or |set_consent_finished_|, to show
+// that path has finished, and then calls MaybeStartMetrics(). When
+// MaybeStartMetrics() is called the second time, it sees both flags true,
+// meaning we have both the client ID (if any) and the user/app opt-out status.
+//
+// If consent is granted, MaybeStartMetrics() then determines sampling by
+// hashing the ID (generating a new ID if there was none), and may then enable
+// metrics. Otherwise, it clears the client ID.
 class AwMetricsServiceClient : public metrics::MetricsServiceClient,
                                public metrics::EnabledStateProvider {
   friend struct base::LazyInstanceTraitsBase<AwMetricsServiceClient>;
@@ -41,27 +106,19 @@
  public:
   static AwMetricsServiceClient* GetInstance();
 
-  // Retrieve the client ID or generate one if none exists.
-  static void LoadOrCreateClientId();
-
-  // Return the cached client id.
-  static std::string GetClientId();
+  AwMetricsServiceClient();
+  ~AwMetricsServiceClient() override;
 
   void Initialize(PrefService* pref_service);
-
+  void SetHaveMetricsConsent(bool consent);
   std::unique_ptr<const base::FieldTrial::EntropyProvider>
-  CreateLowEntropyProvider();
+      CreateLowEntropyProvider();
 
-  // metrics::EnabledStateProvider implementation
+  // metrics::EnabledStateProvider
   bool IsConsentGiven() const override;
   bool IsReportingEnabled() const override;
 
-  // The below functions must not be called until initialization has
-  // asynchronously finished.
-
-  void SetHaveMetricsConsent(bool consent);
-
-  // metrics::MetricsServiceClient implementation
+  // metrics::MetricsServiceClient
   metrics::MetricsService* GetMetricsService() override;
   void SetMetricsClientId(const std::string& client_id) override;
   int32_t GetProduct() override;
@@ -80,22 +137,30 @@
   base::TimeDelta GetStandardUploadInterval() override;
   std::string GetAppPackageName() override;
 
- private:
-  AwMetricsServiceClient();
-  ~AwMetricsServiceClient() override;
+ protected:
+  // virtual for testing
+  virtual void InitializeWithClientId();
+  virtual bool IsInSample();
 
-  void InitializeWithClientId();
+ private:
+  void MaybeStartMetrics();
+
+  // Temporarily stores a client ID loaded from the legacy file, to pass it from
+  // LoadLegacyClientId() to InitializeWithClientId().
+  // TODO(crbug/939002): Remove this after ~all clients have migrated the ID.
+  std::unique_ptr<std::string> legacy_client_id_;
 
   std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_;
   std::unique_ptr<metrics::MetricsService> metrics_service_;
-  PrefService* pref_service_;
-  bool consent_;    // = (user has consented) && !(app has opted out)
-  bool in_sample_;  // Is this client enabled by sampling?
+  PrefService* pref_service_ = nullptr;
+  bool init_finished_ = false;
+  bool set_consent_finished_ = false;
+  bool user_and_app_consent_ = false;
+  bool is_in_sample_ = false;
 
-  // The AwMetricsServiceClient may be created before the ui thread be promoted
-  // to BrowserThread::UI thread. Therefore, we use |sequence_checker_| to check
-  // whether the AwMetricsServiceClient instance is accessed on the same
-  // thread.
+  // AwMetricsServiceClient may be created before the UI thread is promoted to
+  // BrowserThread::UI. Use |sequence_checker_| to enforce that the
+  // AwMetricsServiceClient is used on a single thread.
   base::SequenceChecker sequence_checker_;
 
   DISALLOW_COPY_AND_ASSIGN(AwMetricsServiceClient);
diff --git a/android_webview/browser/aw_metrics_service_client_unittest.cc b/android_webview/browser/aw_metrics_service_client_unittest.cc
new file mode 100644
index 0000000..0f1844b
--- /dev/null
+++ b/android_webview/browser/aw_metrics_service_client_unittest.cc
@@ -0,0 +1,217 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "android_webview/browser/aw_metrics_service_client.h"
+
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/path_service.h"
+#include "base/run_loop.h"
+#include "base/test/scoped_path_override.h"
+#include "base/test/scoped_task_environment.h"
+#include "base/test/test_simple_task_runner.h"
+#include "components/metrics/metrics_pref_names.h"
+#include "components/metrics/metrics_service.h"
+#include "components/prefs/testing_pref_service.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace android_webview {
+namespace {
+
+// For client ID format, see:
+// https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)
+const char kValidClientId[] = "01234567-89ab-40cd-80ef-0123456789ab";
+const char kInvalidClientId[] = "foo";
+
+class TestClient : public AwMetricsServiceClient {
+ public:
+  TestClient() {}
+  ~TestClient() override {}
+
+  void RunUntilInitialized() {
+    if (init_finished_)
+      return;
+    run_loop_.Run();
+    ASSERT_TRUE(init_finished_);
+  }
+
+  bool IsRecordingActive() {
+    auto* service = GetMetricsService();
+    if (service)
+      return service->recording_active();
+    return false;
+  }
+
+ protected:
+  void InitializeWithClientId() override {
+    AwMetricsServiceClient::InitializeWithClientId();
+    init_finished_ = true;
+    run_loop_.Quit();
+  }
+
+  bool IsInSample() override { return true; }
+
+ private:
+  base::RunLoop run_loop_;
+  bool init_finished_ = false;
+
+  DISALLOW_COPY_AND_ASSIGN(TestClient);
+};
+
+std::unique_ptr<TestingPrefServiceSimple> CreateTestPrefs() {
+  auto prefs = std::make_unique<TestingPrefServiceSimple>();
+  metrics::MetricsService::RegisterPrefs(prefs->registry());
+  return prefs;
+}
+
+std::unique_ptr<TestClient> CreateAndInitTestClient(PrefService* prefs) {
+  auto client = std::make_unique<TestClient>();
+  client->Initialize(prefs);
+  client->RunUntilInitialized();
+  return client;
+}
+
+}  // namespace
+
+class AwMetricsServiceClientTest : public testing::Test {
+ public:
+  AwMetricsServiceClientTest() : task_runner_(new base::TestSimpleTaskRunner) {
+    // Required by MetricsService.
+    base::SetRecordActionTaskRunner(task_runner_);
+  }
+
+ protected:
+  ~AwMetricsServiceClientTest() override {}
+
+ private:
+  base::test::ScopedTaskEnvironment task_environment_;
+  scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
+
+  DISALLOW_COPY_AND_ASSIGN(AwMetricsServiceClientTest);
+};
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentTrueBeforeInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = std::make_unique<TestClient>();
+  client->SetHaveMetricsConsent(true);
+  client->Initialize(prefs.get());
+  client->RunUntilInitialized();
+  ASSERT_TRUE(client->IsRecordingActive());
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentFalseBeforeInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = std::make_unique<TestClient>();
+  client->SetHaveMetricsConsent(false);
+  client->Initialize(prefs.get());
+  client->RunUntilInitialized();
+  ASSERT_FALSE(client->IsRecordingActive());
+  ASSERT_FALSE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentTrueDuringInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = std::make_unique<TestClient>();
+  client->Initialize(prefs.get());
+  client->SetHaveMetricsConsent(true);
+  client->RunUntilInitialized();
+  ASSERT_TRUE(client->IsRecordingActive());
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentFalseDuringInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = std::make_unique<TestClient>();
+  client->Initialize(prefs.get());
+  client->SetHaveMetricsConsent(false);
+  client->RunUntilInitialized();
+  ASSERT_FALSE(client->IsRecordingActive());
+  ASSERT_FALSE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentTrueAfterInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(true);
+  ASSERT_TRUE(client->IsRecordingActive());
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentFalseAfterInit) {
+  auto prefs = CreateTestPrefs();
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(false);
+  ASSERT_FALSE(client->IsRecordingActive());
+  ASSERT_FALSE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+// If there is already a valid client ID, it should be reused.
+TEST_F(AwMetricsServiceClientTest, TestKeepValidClientId) {
+  auto prefs = CreateTestPrefs();
+  prefs->SetString(::metrics::prefs::kMetricsClientID, kValidClientId);
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(true);
+  ASSERT_TRUE(client->IsRecordingActive());
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+  ASSERT_EQ(kValidClientId,
+            prefs->GetString(::metrics::prefs::kMetricsClientID));
+}
+
+TEST_F(AwMetricsServiceClientTest, TestSetConsentFalseClearsClientId) {
+  auto prefs = CreateTestPrefs();
+  prefs->SetString(::metrics::prefs::kMetricsClientID, kValidClientId);
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(false);
+  ASSERT_FALSE(client->IsRecordingActive());
+  ASSERT_FALSE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+}
+
+// TODO(crbug/939002): Remove this after ~all clients have migrated the ID.
+TEST_F(AwMetricsServiceClientTest, TestLoadAndDeleteLegacyClientId) {
+  // Write a valid client ID to the legacy client ID file.
+  base::ScopedPathOverride app_data_override(base::DIR_ANDROID_APP_DATA);
+  base::FilePath legacy_file_path;
+  ASSERT_TRUE(internal::GetLegacyClientIdPath(&legacy_file_path));
+  constexpr int len = base::size(kValidClientId) - 1;
+  ASSERT_EQ(len, base::WriteFile(legacy_file_path, kValidClientId, len));
+
+  // Exercise AwMetricsServiceClient.
+  auto prefs = CreateTestPrefs();
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(true);
+  ASSERT_TRUE(client->IsRecordingActive());
+  // The valid ID should have been stored in prefs.
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+  ASSERT_EQ(kValidClientId,
+            prefs->GetString(::metrics::prefs::kMetricsClientID));
+  // The legacy file should have been deleted.
+  ASSERT_FALSE(base::PathExists(legacy_file_path));
+}
+
+// TODO(crbug/939002): Remove this after ~all clients have migrated the ID.
+TEST_F(AwMetricsServiceClientTest, TestDeleteInvalidLegacyClientId) {
+  // Write an invalid client ID to the legacy client ID file.
+  base::ScopedPathOverride app_data_override(base::DIR_ANDROID_APP_DATA);
+  base::FilePath legacy_file_path;
+  ASSERT_TRUE(internal::GetLegacyClientIdPath(&legacy_file_path));
+  constexpr int len = base::size(kInvalidClientId) - 1;
+  ASSERT_EQ(len, base::WriteFile(legacy_file_path, kInvalidClientId, len));
+
+  // Exercise AwMetricsServiceClient.
+  auto prefs = CreateTestPrefs();
+  auto client = CreateAndInitTestClient(prefs.get());
+  client->SetHaveMetricsConsent(true);
+  ASSERT_TRUE(client->IsRecordingActive());
+  // A new ID should have been generated and stored in prefs.
+  ASSERT_TRUE(prefs->HasPrefPath(::metrics::prefs::kMetricsClientID));
+  ASSERT_NE(kInvalidClientId,
+            prefs->GetString(::metrics::prefs::kMetricsClientID));
+  // The legacy file should have been deleted.
+  ASSERT_FALSE(base::PathExists(legacy_file_path));
+}
+
+}  // namespace android_webview
diff --git a/android_webview/java/src/org/chromium/android_webview/AwMetricsServiceClient.java b/android_webview/java/src/org/chromium/android_webview/AwMetricsServiceClient.java
index 3051d092..288cc63 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwMetricsServiceClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwMetricsServiceClient.java
@@ -15,18 +15,8 @@
 import org.chromium.base.annotations.JNINamespace;
 
 /**
- * Determines user consent and app opt-out for metrics.
- *
- * This requires the following steps:
- * 1) Check the platform's metrics consent setting.
- * 2) Check if the app has opted out.
- * 3) Wait for the native AwMetricsServiceClient to call nativeInitialized.
- * 4) If enabled, inform the native AwMetricsServiceClient via nativeSetHaveMetricsConsent.
- *
- * Step 1 is done asynchronously and the result is passed to setConsentSetting, which does step 2.
- * This happens in parallel with native AwMetricsServiceClient initialization; either
- * nativeInitialized or setConsentSetting might fire first. Whichever fires second should call
- * nativeSetHaveMetricsConsent.
+ * Determines user consent and app opt-out for metrics. See aw_metrics_service_client.h for more
+ * explanation.
  */
 @JNINamespace("android_webview")
 public class AwMetricsServiceClient {
@@ -36,20 +26,12 @@
     // reporting. See https://developer.android.com/reference/android/webkit/WebView.html
     private static final String OPT_OUT_META_DATA_STR = "android.webkit.WebView.MetricsOptOut";
 
-    private static boolean sIsClientReady; // Is the native AwMetricsServiceClient initialized?
-    private static boolean sShouldEnable; // Have steps 1 and 2 passed?
-
-    // A GUID in text form is composed of 32 hex digits and 4 hyphens. These values must match those
-    // in aw_metrics_service_client.cc.
-    private static final int GUID_SIZE = 32 + 4;
-    private static final String GUID_FILE_NAME = "metrics_guid";
-
     private static final String PLAY_STORE_PACKAGE_NAME = "com.android.vending";
 
-    private static boolean isAppOptedOut(Context appContext) {
+    private static boolean isAppOptedOut(Context ctx) {
         try {
-            ApplicationInfo info = appContext.getPackageManager().getApplicationInfo(
-                    appContext.getPackageName(), PackageManager.GET_META_DATA);
+            ApplicationInfo info = ctx.getPackageManager().getApplicationInfo(
+                    ctx.getPackageName(), PackageManager.GET_META_DATA);
             if (info.metaData == null) {
                 // null means no such tag was found.
                 return false;
@@ -64,42 +46,23 @@
         }
     }
 
-    public static void setConsentSetting(Context appContext, boolean userConsent) {
-        ThreadUtils.assertOnUiThread();
-
-        if (!userConsent || isAppOptedOut(appContext)) {
-            // Metrics defaults to off, so no need to call nativeSetHaveMetricsConsent(false).
-            return;
-        }
-
-        sShouldEnable = true;
-        if (sIsClientReady) {
-            nativeSetHaveMetricsConsent(true);
-        }
+    private static boolean shouldRecordPackageName(Context ctx) {
+        // Only record if it's a system app or it was installed from Play Store.
+        String packageName = ctx.getPackageName();
+        String installerPackageName = ctx.getPackageManager().getInstallerPackageName(packageName);
+        return (ctx.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) != 0
+                || (PLAY_STORE_PACKAGE_NAME.equals(installerPackageName));
     }
 
-    @CalledByNative
-    public static void nativeInitialized() {
+    public static void setConsentSetting(Context ctx, boolean userConsent) {
         ThreadUtils.assertOnUiThread();
-        sIsClientReady = true;
-        if (sShouldEnable) {
-            nativeSetHaveMetricsConsent(true);
-        }
+        nativeSetHaveMetricsConsent(userConsent && !isAppOptedOut(ctx));
     }
 
     @CalledByNative
     private static String getAppPackageName() {
-        Context appCtx = ContextUtils.getApplicationContext();
-        return shouldRecordPackageName(appCtx) ? appCtx.getPackageName() : null;
-    }
-
-    private static boolean shouldRecordPackageName(Context appCtx) {
-        // Only record if it is system apps or installed from PlayStore.
-        String packageName = appCtx.getPackageName();
-        String installerPackageName =
-                appCtx.getPackageManager().getInstallerPackageName(packageName);
-        return (appCtx.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) != 0
-                || (PLAY_STORE_PACKAGE_NAME.equals(installerPackageName));
+        Context ctx = ContextUtils.getApplicationContext();
+        return shouldRecordPackageName(ctx) ? ctx.getPackageName() : null;
     }
 
     public static native void nativeSetHaveMetricsConsent(boolean enabled);
diff --git a/android_webview/system_webview_apk_tmpl.gni b/android_webview/system_webview_apk_tmpl.gni
index 100688b..fd6adf5 100644
--- a/android_webview/system_webview_apk_tmpl.gni
+++ b/android_webview/system_webview_apk_tmpl.gni
@@ -99,7 +99,9 @@
     # Used as an additional apk in test scripts.
     never_incremental = true
 
-    if (!is_java_debug) {
+    if (is_java_debug) {
+      enable_multidex = true
+    } else {
       proguard_enabled = true
       if (!defined(proguard_configs)) {
         proguard_configs = []
diff --git a/android_webview/test/BUILD.gn b/android_webview/test/BUILD.gn
index f237185..014c03b 100644
--- a/android_webview/test/BUILD.gn
+++ b/android_webview/test/BUILD.gn
@@ -81,6 +81,8 @@
       rebase_path("$root_gen_dir/CHROME_VERSION.json", root_build_dir)
   native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)"
 
+  enable_multidex = true
+
   command_line_flags_file = "android-webview-command-line"
 }
 
@@ -308,6 +310,9 @@
 }
 
 test("android_webview_unittests") {
+  # Dependencies (e.g. Play services) make the binary reach the dex limit.
+  enable_multidex = true
+
   deps = [
     ":android_webview_unittests_assets",
     ":android_webview_unittests_java",
@@ -330,6 +335,7 @@
     "../browser/aw_contents_client_bridge_unittest.cc",
     "../browser/aw_form_database_service_unittest.cc",
     "../browser/aw_media_url_interceptor_unittest.cc",
+    "../browser/aw_metrics_service_client_unittest.cc",
     "../browser/aw_permission_manager_unittest.cc",
     "../browser/aw_static_cookie_policy_unittest.cc",
     "../browser/gfx/browser_view_renderer_unittest.cc",
diff --git a/android_webview/tools/system_webview_shell/BUILD.gn b/android_webview/tools/system_webview_shell/BUILD.gn
index 4aa2487..65f836b 100644
--- a/android_webview/tools/system_webview_shell/BUILD.gn
+++ b/android_webview/tools/system_webview_shell/BUILD.gn
@@ -58,6 +58,7 @@
     "//third_party/android_support_test_runner:runner_java",
     "//third_party/junit",
   ]
+  enable_multidex = true
 }
 
 instrumentation_test_apk("system_webview_shell_layout_test_apk") {
diff --git a/android_webview/utility/BUILD.gn b/android_webview/utility/BUILD.gn
new file mode 100644
index 0000000..66f6775
--- /dev/null
+++ b/android_webview/utility/BUILD.gn
@@ -0,0 +1,19 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("utility") {
+  sources = [
+    "aw_content_utility_client.cc",
+    "aw_content_utility_client.h",
+  ]
+  deps = [
+    "//base",
+    "//components/services/heap_profiling",
+    "//components/services/heap_profiling/public/cpp",
+    "//content/public/child",
+    "//content/public/common",
+    "//content/public/utility",
+    "//services/service_manager/public/cpp",
+  ]
+}
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 995bbcb6..8b39423b 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -45,11 +45,13 @@
 #include "base/test/metrics/user_action_tester.h"
 #include "media/base/media_switches.h"
 #include "services/media_session/public/cpp/test/test_media_controller.h"
+#include "services/media_session/public/mojom/media_session.mojom.h"
 #include "services/ws/public/mojom/window_tree_constants.mojom.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/test/test_window_delegate.h"
 #include "ui/aura/test/test_windows.h"
 #include "ui/aura/window.h"
+#include "ui/base/accelerators/media_keys_util.h"
 #include "ui/base/accelerators/test_accelerator_target.h"
 #include "ui/base/ime/chromeos/fake_ime_keyboard.h"
 #include "ui/base/ime/chromeos/ime_keyboard.h"
@@ -1662,7 +1664,8 @@
   // Runs the test with the media session service enabled.
   bool service_enabled;
 
-  // Runs the test with the supplied action enabled.
+  // Runs the test with the supplied action enabled and will also send the media
+  // session info to the controller.
   base::Optional<MediaSessionAction> with_action_enabled;
 
   // If true then we should expect the action will handle the media keys.
@@ -1703,10 +1706,13 @@
     media_controller->FlushForTesting();
   }
 
-  void MaybeEnableAction() {
+  void MaybeEnableMediaSession(
+      media_session::mojom::MediaPlaybackState playback_state) {
     if (!GetParam().with_action_enabled)
       return;
+
     SimulateActionsChanged(GetParam().with_action_enabled);
+    SimulatePlaybackState(playback_state);
   }
 
   void SimulateActionsChanged(base::Optional<MediaSessionAction> action) {
@@ -1729,10 +1735,30 @@
 
   bool eligible_action() const { return GetParam().eligible_action; }
 
+  void ExpectActionRecorded(ui::MediaHardwareKeyAction action) {
+    histogram_tester_.ExpectBucketCount(
+        ui::kMediaHardwareKeyActionHistogramName,
+        static_cast<base::HistogramBase::Sample>(action), 1);
+  }
+
  private:
+  void SimulatePlaybackState(
+      media_session::mojom::MediaPlaybackState playback_state) {
+    media_session::mojom::MediaSessionInfoPtr session_info(
+        media_session::mojom::MediaSessionInfo::New());
+
+    session_info->state =
+        media_session::mojom::MediaSessionInfo::SessionState::kActive;
+    session_info->playback_state = playback_state;
+
+    controller()->SimulateMediaSessionInfoChanged(std::move(session_info));
+    controller()->Flush();
+  }
+
   std::unique_ptr<TestMediaClient> client_;
   std::unique_ptr<media_session::test::TestMediaController> controller_;
 
+  base::HistogramTester histogram_tester_;
   base::test::ScopedFeatureList scoped_feature_list_;
 
   DISALLOW_COPY_AND_ASSIGN(MediaSessionAcceleratorTest);
@@ -1804,7 +1830,7 @@
 }
 
 TEST_P(MediaSessionAcceleratorTest, MediaGlobalAccelerators_NextTrack) {
-  MaybeEnableAction();
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPaused);
 
   EXPECT_EQ(0, client()->handle_media_next_track_count());
   EXPECT_EQ(0, controller()->next_track_count());
@@ -1819,28 +1845,64 @@
     EXPECT_EQ(1, client()->handle_media_next_track_count());
     EXPECT_EQ(0, controller()->next_track_count());
   }
+
+  ExpectActionRecorded(ui::MediaHardwareKeyAction::kNextTrack);
 }
 
-TEST_P(MediaSessionAcceleratorTest, MediaGlobalAccelerators_PlayPause) {
-  MaybeEnableAction();
+TEST_P(MediaSessionAcceleratorTest, MediaGlobalAccelerators_Play) {
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPaused);
 
   EXPECT_EQ(0, client()->handle_media_play_pause_count());
-  EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+  EXPECT_EQ(0, controller()->resume_count());
 
   ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
   Shell::Get()->media_controller()->FlushForTesting();
 
   if (service_enabled() && eligible_action()) {
     EXPECT_EQ(0, client()->handle_media_play_pause_count());
-    EXPECT_EQ(1, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(1, controller()->resume_count());
+
+    // If media session handles the key then we should always know the playback
+    // state so we can record a more granular action.
+    ExpectActionRecorded(ui::MediaHardwareKeyAction::kPlay);
   } else {
     EXPECT_EQ(1, client()->handle_media_play_pause_count());
-    EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(0, controller()->resume_count());
+
+    // If we pass through to the client we don't know whether the action will
+    // play or pause so we should record a generic "play/pause" action.
+    ExpectActionRecorded(ui::MediaHardwareKeyAction::kPlayPause);
+  }
+}
+
+TEST_P(MediaSessionAcceleratorTest, MediaGlobalAccelerators_Pause) {
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPlaying);
+
+  EXPECT_EQ(0, client()->handle_media_play_pause_count());
+  EXPECT_EQ(0, controller()->suspend_count());
+
+  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
+  Shell::Get()->media_controller()->FlushForTesting();
+
+  if (service_enabled() && eligible_action()) {
+    EXPECT_EQ(0, client()->handle_media_play_pause_count());
+    EXPECT_EQ(1, controller()->suspend_count());
+
+    // If media session handles the key then we should always know the playback
+    // state so we can record a more granular action.
+    ExpectActionRecorded(ui::MediaHardwareKeyAction::kPause);
+  } else {
+    EXPECT_EQ(1, client()->handle_media_play_pause_count());
+    EXPECT_EQ(0, controller()->suspend_count());
+
+    // If we pass through to the client we don't know whether the action will
+    // play or pause so we should record a generic "play/pause" action.
+    ExpectActionRecorded(ui::MediaHardwareKeyAction::kPlayPause);
   }
 }
 
 TEST_P(MediaSessionAcceleratorTest, MediaGlobalAccelerators_PrevTrack) {
-  MaybeEnableAction();
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPaused);
 
   EXPECT_EQ(0, client()->handle_media_prev_track_count());
   EXPECT_EQ(0, controller()->previous_track_count());
@@ -1855,62 +1917,64 @@
     EXPECT_EQ(1, client()->handle_media_prev_track_count());
     EXPECT_EQ(0, controller()->previous_track_count());
   }
+
+  ExpectActionRecorded(ui::MediaHardwareKeyAction::kPreviousTrack);
 }
 
 TEST_P(MediaSessionAcceleratorTest,
        MediaGlobalAccelerators_UpdateAction_Disable) {
-  MaybeEnableAction();
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPaused);
 
-  EXPECT_EQ(0, client()->handle_media_play_pause_count());
-  EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+  EXPECT_EQ(0, client()->handle_media_next_track_count());
+  EXPECT_EQ(0, controller()->next_track_count());
 
-  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
+  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE));
   Shell::Get()->media_controller()->FlushForTesting();
 
   if (service_enabled() && eligible_action()) {
-    EXPECT_EQ(0, client()->handle_media_play_pause_count());
-    EXPECT_EQ(1, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(0, client()->handle_media_next_track_count());
+    EXPECT_EQ(1, controller()->next_track_count());
   } else {
-    EXPECT_EQ(1, client()->handle_media_play_pause_count());
-    EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(1, client()->handle_media_next_track_count());
+    EXPECT_EQ(0, controller()->next_track_count());
   }
 
   SimulateActionsChanged(base::nullopt);
 
-  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
+  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE));
   Shell::Get()->media_controller()->FlushForTesting();
 
   if (service_enabled() && eligible_action()) {
-    EXPECT_EQ(1, client()->handle_media_play_pause_count());
-    EXPECT_EQ(1, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(1, client()->handle_media_next_track_count());
+    EXPECT_EQ(1, controller()->next_track_count());
   } else {
-    EXPECT_EQ(2, client()->handle_media_play_pause_count());
-    EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(2, client()->handle_media_next_track_count());
+    EXPECT_EQ(0, controller()->next_track_count());
   }
 }
 
 TEST_P(MediaSessionAcceleratorTest,
        MediaGlobalAccelerators_UpdateAction_Enable) {
-  EXPECT_EQ(0, client()->handle_media_play_pause_count());
-  EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+  EXPECT_EQ(0, client()->handle_media_next_track_count());
+  EXPECT_EQ(0, controller()->next_track_count());
 
-  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
+  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE));
   Shell::Get()->media_controller()->FlushForTesting();
 
-  EXPECT_EQ(1, client()->handle_media_play_pause_count());
-  EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+  EXPECT_EQ(1, client()->handle_media_next_track_count());
+  EXPECT_EQ(0, controller()->next_track_count());
 
-  MaybeEnableAction();
+  MaybeEnableMediaSession(media_session::mojom::MediaPlaybackState::kPaused);
 
-  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_PLAY_PAUSE, ui::EF_NONE));
+  ProcessInController(ui::Accelerator(ui::VKEY_MEDIA_NEXT_TRACK, ui::EF_NONE));
   Shell::Get()->media_controller()->FlushForTesting();
 
   if (service_enabled() && eligible_action()) {
-    EXPECT_EQ(1, client()->handle_media_play_pause_count());
-    EXPECT_EQ(1, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(1, client()->handle_media_next_track_count());
+    EXPECT_EQ(1, controller()->next_track_count());
   } else {
-    EXPECT_EQ(2, client()->handle_media_play_pause_count());
-    EXPECT_EQ(0, controller()->toggle_suspend_resume_count());
+    EXPECT_EQ(2, client()->handle_media_next_track_count());
+    EXPECT_EQ(0, controller()->next_track_count());
   }
 }
 
diff --git a/ash/assistant/assistant_screen_context_controller.cc b/ash/assistant/assistant_screen_context_controller.cc
index cb00a35..6466d715 100644
--- a/ash/assistant/assistant_screen_context_controller.cc
+++ b/ash/assistant/assistant_screen_context_controller.cc
@@ -16,6 +16,7 @@
 #include "ash/shell.h"
 #include "ash/voice_interaction/voice_interaction_controller.h"
 #include "ash/wm/mru_window_tracker.h"
+#include "ash/wm/overview/overview_controller.h"
 #include "base/bind.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/stl_util.h"
@@ -169,6 +170,13 @@
     const gfx::Rect& rect,
     mojom::AssistantScreenContextController::RequestScreenshotCallback
         callback) {
+  // http://crbug.com/941276
+  // We need to avoid requesting screenshot in known situations that will break.
+  if (Shell::Get()->overview_controller()->IsSelecting() ||
+      Shell::Get()->overview_controller()->IsCompletingShutdownAnimations()) {
+    std::move(callback).Run(std::vector<uint8_t>());
+    return;
+  }
   aura::Window* root_window = Shell::Get()->GetRootWindowForNewWindows();
 
   std::unique_ptr<ui::LayerTreeOwner> layer_owner =
diff --git a/ash/assistant/util/deep_link_util.cc b/ash/assistant/util/deep_link_util.cc
index dcc7c883..a297aa8 100644
--- a/ash/assistant/util/deep_link_util.cc
+++ b/ash/assistant/util/deep_link_util.cc
@@ -27,6 +27,7 @@
 constexpr char kQueryParamKey[] = "q";
 constexpr char kPageParamKey[] = "page";
 constexpr char kRelaunchParamKey[] = "relaunch";
+constexpr char kSourceParamKey[] = "source";
 
 // Supported deep link prefixes. These values must be kept in sync with the
 // server. See more details at go/cros-assistant-deeplink.
@@ -175,9 +176,14 @@
       return base::nullopt;
   }
 
-  return (id && !id.value().empty())
-             ? CreateLocalizedGURL(by_id_url + id.value())
-             : CreateLocalizedGURL(top_level_url);
+  const std::string url =
+      (id && !id.value().empty()) ? (by_id_url + id.value()) : top_level_url;
+
+  // Source is currently assumed to be |Assistant|. If need be, we can make
+  // |source| a deep link parameter in the future.
+  constexpr char kDefaultSource[] = "Assistant";
+  return net::AppendOrReplaceQueryParameter(CreateLocalizedGURL(url),
+                                            kSourceParamKey, kDefaultSource);
 }
 
 GURL GetChromeSettingsUrl(const base::Optional<std::string>& page) {
diff --git a/ash/assistant/util/deep_link_util_unittest.cc b/ash/assistant/util/deep_link_util_unittest.cc
index e75475b3..d633c74f 100644
--- a/ash/assistant/util/deep_link_util_unittest.cc
+++ b/ash/assistant/util/deep_link_util_unittest.cc
@@ -314,43 +314,50 @@
       // OK: Top-level lists.
 
       {CreateTestCase(DeepLinkType::kLists, /*id=*/base::nullopt),
-       GURL("https://assistant.google.com/lists/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/lists/"
+            "mainview?hl=en-US&source=Assistant")},
 
       {CreateTestCase(DeepLinkType::kLists, /*id=*/std::string()),
-       GURL("https://assistant.google.com/lists/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/lists/"
+            "mainview?hl=en-US&source=Assistant")},
 
       // OK: List by |id|.
 
       {CreateTestCase(DeepLinkType::kLists, /*id=*/"123456"),
-       GURL("https://assistant.google.com/lists/list/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/list/"
+            "123456?hl=en-US&source=Assistant")},
 
       // OK: Top-level notes.
 
       {CreateTestCase(DeepLinkType::kNotes, /*id=*/base::nullopt),
        GURL("https://assistant.google.com/lists/"
-            "mainview?note_tap=true&hl=en-US")},
+            "mainview?note_tap=true&hl=en-US&source=Assistant")},
 
       {CreateTestCase(DeepLinkType::kNotes, /*id=*/std::string()),
        GURL("https://assistant.google.com/lists/"
-            "mainview?note_tap=true&hl=en-US")},
+            "mainview?note_tap=true&hl=en-US&source=Assistant")},
 
       // OK: Note by |id|.
 
       {CreateTestCase(DeepLinkType::kNotes, /*id=*/"123456"),
-       GURL("https://assistant.google.com/lists/note/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/note/"
+            "123456?hl=en-US&source=Assistant")},
 
       // OK: Top-level reminders.
 
       {CreateTestCase(DeepLinkType::kReminders, /*id=*/base::nullopt),
-       GURL("https://assistant.google.com/reminders/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/"
+            "mainview?hl=en-US&source=Assistant")},
 
       {CreateTestCase(DeepLinkType::kReminders, /*id=*/std::string()),
-       GURL("https://assistant.google.com/reminders/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/"
+            "mainview?hl=en-US&source=Assistant")},
 
       // OK: Reminder by |id|.
 
       {CreateTestCase(DeepLinkType::kReminders, /*id=*/"123456"),
-       GURL("https://assistant.google.com/reminders/id/123456?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/id/"
+            "123456?hl=en-US&source=Assistant")},
 
       // IGNORE: Deep links of other types.
 
@@ -430,22 +437,27 @@
 TEST_F(DeepLinkUnitTest, GetWebUrl) {
   const std::map<std::string, base::Optional<GURL>> test_cases = {
       // OK: Supported web deep links.
-      {"googleassistant://lists",
-       GURL("https://assistant.google.com/lists/mainview?hl=en-US")},
-      {"googleassistant://notes", GURL("https://assistant.google.com/lists/"
-                                       "mainview?note_tap=true&hl=en-US")},
+      {"googleassistant://lists", GURL("https://assistant.google.com/lists/"
+                                       "mainview?hl=en-US&source=Assistant")},
+      {"googleassistant://notes",
+       GURL("https://assistant.google.com/lists/"
+            "mainview?note_tap=true&hl=en-US&source=Assistant")},
       {"googleassistant://reminders",
-       GURL("https://assistant.google.com/reminders/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/"
+            "mainview?hl=en-US&source=Assistant")},
       {"googleassistant://settings",
        GURL("https://assistant.google.com/settings/mainpage?hl=en-US")},
 
       // OK: Parameterized deep links.
       {"googleassistant://lists?id=123456",
-       GURL("https://assistant.google.com/lists/list/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/list/"
+            "123456?hl=en-US&source=Assistant")},
       {"googleassistant://notes?id=123456",
-       GURL("https://assistant.google.com/lists/note/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/note/"
+            "123456?hl=en-US&source=Assistant")},
       {"googleassistant://reminders?id=123456",
-       GURL("https://assistant.google.com/reminders/id/123456?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/id/"
+            "123456?hl=en-US&source=Assistant")},
       {"googleassistant://settings?param=true",
        GURL("https://assistant.google.com/settings/mainpage?hl=en-US")},
 
@@ -504,21 +516,26 @@
   const std::map<TestCase, base::Optional<GURL>> test_cases = {
       // OK: Supported web deep link types.
       {CreateTestCase(DeepLinkType::kLists),
-       GURL("https://assistant.google.com/lists/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/lists/"
+            "mainview?hl=en-US&source=Assistant")},
       {CreateTestCaseWithParam(DeepLinkType::kLists,
                                std::make_pair("id", "123456")),
-       GURL("https://assistant.google.com/lists/list/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/list/"
+            "123456?hl=en-US&source=Assistant")},
       {CreateTestCase(DeepLinkType::kNotes),
        GURL("https://assistant.google.com/lists/"
-            "mainview?note_tap=true&hl=en-US")},
+            "mainview?note_tap=true&hl=en-US&source=Assistant")},
       {CreateTestCaseWithParam(DeepLinkType::kNotes,
                                std::make_pair("id", "123456")),
-       GURL("https://assistant.google.com/lists/note/123456?hl=en-US")},
+       GURL("https://assistant.google.com/lists/note/"
+            "123456?hl=en-US&source=Assistant")},
       {CreateTestCase(DeepLinkType::kReminders),
-       GURL("https://assistant.google.com/reminders/mainview?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/"
+            "mainview?hl=en-US&source=Assistant")},
       {CreateTestCaseWithParam(DeepLinkType::kReminders,
                                std::make_pair("id", "123456")),
-       GURL("https://assistant.google.com/reminders/id/123456?hl=en-US")},
+       GURL("https://assistant.google.com/reminders/id/"
+            "123456?hl=en-US&source=Assistant")},
       {CreateTestCase(DeepLinkType::kSettings),
        GURL("https://assistant.google.com/settings/mainpage?hl=en-US")},
 
diff --git a/ash/components/strings/ash_components_strings_te.xtb b/ash/components/strings/ash_components_strings_te.xtb
index dd90aad..a82bffb 100644
--- a/ash/components/strings/ash_components_strings_te.xtb
+++ b/ash/components/strings/ash_components_strings_te.xtb
@@ -4,7 +4,7 @@
 <translation id="104962181688258143">ఫైల్స్ యాప్‌ను తెరవండి</translation>
 <translation id="1122869341872663659"><ph name="QUERY" /> కోసం <ph name="N" /> ఫలితాలను చూపుతోంది</translation>
 <translation id="1195667586424773550">ట్యాబ్ యొక్క చిరునామా బార్‌లోకి లింక్‌ను లాగండి</translation>
-<translation id="1204450209689312104">కొత్త విండోని అజ్ఞాత మోడ్‌లో తెరవండి</translation>
+<translation id="1204450209689312104">కొత్త విండోను అజ్ఞాత మోడ్‌లో తెరవండి</translation>
 <translation id="1251638888133819822">పూర్తి స్క్రీన్ మాగ్నిఫైయర్‌ను ఆన్ లేదా ఆఫ్ చేస్తుంది</translation>
 <translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
@@ -17,7 +17,7 @@
 <translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, ఆపై <ph name="ESC" /></translation>
 <translation id="1652741121070700329">మునుపటి పదం యొక్క ప్రారంభానికి వెళ్లండి</translation>
 <translation id="1679841710523778799">ప్రకాశాన్ని పెంచండి</translation>
-<translation id="168356808214100546"><ph name="ALT" />ని నొక్కి, పట్టుకుని, మీరు తెరవాలనుకుంటున్న విండో వచ్చే వరకు <ph name="TAB" />ని నొక్కండి, ఆపై వదిలివేయండి.</translation>
+<translation id="168356808214100546"><ph name="ALT" />ను నొక్కి, పట్టుకుని, మీరు తెరవాలనుకుంటున్న విండో వచ్చే వరకు <ph name="TAB" />ను నొక్కండి, ఆపై వదిలివేయండి.</translation>
 <translation id="169515659049020177">Shift</translation>
 <translation id="1732295673545939435"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="KEY" /></translation>
 <translation id="1733525068429116555">చిరునామా బార్‌లో మీరు నమోదు చేసే దానికి www. మరియు .com జోడించి, ఆపై పేజీని తెరవండి</translation>
@@ -42,14 +42,14 @@
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">వెబ్ పేజీని దిగువకు స్క్రోల్ చేయండి</translation>
 <translation id="2574014812750545982">పేజీలోని జూమ్ స్థాయిని రీసెట్ చేస్తుంది</translation>
-<translation id="2596078834055697711">విండో స్క్రీన్‌షాట్‌ను తీయండి</translation>
+<translation id="2596078834055697711">విండో స్క్రీన్‌షాట్ తీయండి</translation>
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, ఆపై <ph name="TAB" /> లేదా <ph name="RIGHT" /></translation>
 <translation id="2699509451653686398">మీ ప్రస్తుత వెబ్‌పేజీని బుక్‌మార్క్‌గా సేవ్ చేయండి</translation>
 <translation id="2750942583782703988">మీ ప్రస్తుత పేజీని మళ్లీ లోడ్ చేయండి</translation>
 <translation id="2764005613199379871">శోధన చిరునామా బార్‌పై దృష్టి ఉంచండి</translation>
 <translation id="2789868185375229787">పేజీలో దూరంగా జూమ్ చేయండి</translation>
 <translation id="2804480015716812239"><ph name="ALT" />ను నొక్కి ఉంచి, లింక్‌ను క్లిక్ చేయండి</translation>
-<translation id="2830827904629746450">కుడి వైపున విండోని డాక్ చేయండి</translation>
+<translation id="2830827904629746450">కుడి వైపున విండోను డాక్ చేయండి</translation>
 <translation id="2840766858109427815">తర్వాతి పేజీ కోసం ముందుకు వెళ్లండి</translation>
 <translation id="2872353916818027657">ప్రాథమిక మానిటర్‌ను మార్చు</translation>
 <translation id="2914313326123580426">డెవలపర్ సాధనాల ప్యానెల్‌ను చూపండి లేదా దాచండి</translation>
@@ -68,7 +68,7 @@
 <translation id="353037708190149633">మీ ప్రస్తుత విండోలో తెరిచి ఉన్న అన్ని పేజీలను బుక్‌మార్క్‌ల లాగా కొత్త ఫోల్డర్‌లో సేవ్ చేయండి</translation>
 <translation id="355103131818127604">లింక్‌ను కొత్త ట్యాబ్‌లో నేపథ్యంలో తెరవండి</translation>
 <translation id="3622741593887335780">దగ్గరగా జూమ్ చేస్తుంది (డాక్ చేయబడినప్పుడు లేదా పూర్తి స్క్రీన్ మాగ్నిఫైయర్‌లు ప్రారంభించబడినప్పుడు)</translation>
-<translation id="3649256019230929621">విండోను కనిష్టీకరించు</translation>
+<translation id="3649256019230929621">విండోను కుదించు</translation>
 <translation id="3655154169297074232">ట్యాబ్‌లు &amp; విండోలు</translation>
 <translation id="3668361878347172356">మీ చివరి చర్యను మళ్లీ చేయండి</translation>
 <translation id="3710784500737332588">సహాయ కేంద్రాన్ని తెరవండి</translation>
@@ -80,10 +80,10 @@
 <translation id="3837047332182291558">కీబోర్డ్‌ని మరింత ప్రకాశవంతం చేయండి (నేపథ్య కాంతి ఉన్న కీబోర్డ్‌లకు మాత్రమే)</translation>
 <translation id="3976863468609830880">మీ అరలోని చివరి చిహ్నాన్ని క్లిక్ చేయండి</translation>
 <translation id="3994783594793697310">డిస్‌ప్లే జూమ్ స్థాయిని రీసెట్ చేస్తుంది</translation>
-<translation id="4026843240379844265">యాక్టివ్ విండోని డిస్‌ప్లేల మధ్య తరల్చండి</translation>
+<translation id="4026843240379844265">యాక్టివ్ విండోను డిస్‌ప్లేల మధ్య తరల్చండి</translation>
 <translation id="4035482366624727273">పేజీలోని ప్రతిదాన్ని ఎంచుకోండి</translation>
-<translation id="4060703249685950734">మీరు మూసివేసిన చివరి ట్యాబ్ లేదా విండోను తిరిగి తెరవండి</translation>
-<translation id="4090342722461256974"><ph name="ALT" /><ph name="SEPARATOR" /><ph name="SHIFT" />ని నొక్కి, పట్టుకుని, మీరు తెరవాలనుకుంటున్న విండో వచ్చే వరకు <ph name="TAB" />ని నొక్కండి, ఆపై వదిలివేయండి.</translation>
+<translation id="4060703249685950734">మీరు చివరిసారి మూసివేసిన ట్యాబ్ లేదా విండోను తిరిగి తెరవండి</translation>
+<translation id="4090342722461256974"><ph name="ALT" /><ph name="SEPARATOR" /><ph name="SHIFT" />ను నొక్కి, పట్టుకుని, మీరు తెరవాలనుకుంటున్న విండో వచ్చే వరకు <ph name="TAB" />ను నొక్కండి, ఆపై వదిలివేయండి.</translation>
 <translation id="4092538597492297615">ఎంచుకున్న కంటెంట్‌ను క్లిప్‌బోర్డ్‌కు కాపీ చేయండి</translation>
 <translation id="4101772068965291327">హోమ్ పేజీని తెరువు</translation>
 <translation id="4123108089450197101">లింక్‌ను బుక్‌మార్క్ లాగా సేవ్ చేయండి</translation>
@@ -117,12 +117,12 @@
 <translation id="5757474750054631686">కీబోర్డ్ ప్రకాశాన్ని తగ్గించండి (నేపథ్య కాంతి ఉన్న కీబోర్డ్‌లకు మాత్రమే)</translation>
 <translation id="587531134027443617">మునుపటి పదాన్ని తొలగించండి</translation>
 <translation id="5899919361772749550">డెవలపర్ సాధనాల కన్సోల్‌ను చూపండి లేదా దాచండి</translation>
-<translation id="5921745308587794300">విండోని తిప్పు</translation>
+<translation id="5921745308587794300">విండోను తిప్పు</translation>
 <translation id="6022924867608035986">శోధన పెట్టె వచనాన్ని క్లియర్ చేయండి</translation>
 <translation id="6045998054441862242">అధిక కాంట్రాస్ట్ మోడ్‌ని ఆన్ చేయండి</translation>
 <translation id="6052614013050385269">లింక్‌ను కుడి-క్లిక్ చేయండి</translation>
 <translation id="6129953537138746214">ఖాళీ</translation>
-<translation id="613146727819833328">విండోని మధ్యలోకి తరలించండి</translation>
+<translation id="613146727819833328">విండోను మధ్యకు తరలించండి</translation>
 <translation id="6143669479988153888">పేజీలో దగ్గరకు జూమ్ చేయండి</translation>
 <translation id="6185696379715117369">ఎగువ పేజీకి వెళ్లుతుంది</translation>
 <translation id="6228457605945141550">ప్రకాశాన్ని తగ్గించండి</translation>
@@ -137,11 +137,11 @@
 <translation id="6445033640292336367">ట్యాబ్‌ను తిరిగి దాని వాస్తవ స్థానానికి తీసుకువెళ్లండి</translation>
 <translation id="6474744297082284761">దూరంగా జూమ్ చేస్తుంది (డాక్ చేయబడినప్పుడు లేదా పూర్తి స్క్రీన్ మాగ్నిఫైయర్‌లు ప్రారంభించబడినప్పుడు)</translation>
 <translation id="649811797655257835">ఫైల్‌ని ఎంచుకుని, ఆపై <ph name="SPACE" />ని నొక్కండి</translation>
-<translation id="6556040137485212400">అత్యంత ఎక్కువ సమయం నుండి ఉపయోగించని విండోని తెరవండి</translation>
+<translation id="6556040137485212400">అత్యంత ఎక్కువ సమయం నుండి ఉపయోగించని విండోను తెరవండి</translation>
 <translation id="666343722268997814">హైలైట్ చేసిన అంశం కోసం కుడి-క్లిక్ మెనూను తెరవండి</translation>
 <translation id="6671538777808758331">మీ శోధనకు వచ్చిన తర్వాతి సరిపోలికకు వెళ్లండి</translation>
 <translation id="6681606577947445973"><ph name="REFRESH" /> లేదా <ph name="CTRL" /><ph name="SEPARATOR" /><ph name="R" /></translation>
-<translation id="6690765639083431875">ఎడమ వైపున విండోని డాక్ చేయండి</translation>
+<translation id="6690765639083431875">ఎడమ వైపున విండోను డాక్ చేయండి</translation>
 <translation id="6692847073476874842">ఫైల్స్ యాప్‌లో ఏదైనా ఒక ఫైల్‌ను ప్రివ్యూ చేయండి</translation>
 <translation id="671928215901716392">స్క్రీన్‌ను లాక్ చేయి</translation>
 <translation id="6727005317916125192">మునుపటి పేన్</translation>
@@ -175,7 +175,7 @@
 <translation id="8264941229485248811">డెవలపర్ సాధనాల ఇన్‌స్పెక్టర్‌ను చూపండి లేదా దాచండి</translation>
 <translation id="836869401750819675">డౌన్‌లోడ్‌ల పేజీని తెరవండి</translation>
 <translation id="8388247778047144397">లింక్‌ను ట్యాబ్ స్ట్రిప్‌లోని ఖాళీ ప్రాంతంలోకి లాగండి</translation>
-<translation id="8389638407792712197">కొత్త విండోని తెరవండి</translation>
+<translation id="8389638407792712197">కొత్త విండోను తెరవండి</translation>
 <translation id="8429696719963529183">F కీలు (F1 నుండి F12 వరకు) ఉపయోగించండి</translation>
 <translation id="8537650670971624753">శోధన మోడ్ నుండి నిష్క్రమించండి</translation>
 <translation id="85690795166292698">లింక్‌ను కొత్త ట్యాబ్‌లో తెరవండి</translation>
@@ -189,10 +189,10 @@
 <translation id="8977648847395357314">చిరునామా బార్‌‍లోని కంటెంట్‌ను ఎంచుకోండి</translation>
 <translation id="8982190978301344584">అందుబాటులో ఉన్న IMEల జాబితాను ప్రదర్శించే మెనూను చూపండి</translation>
 <translation id="8990356943438003669"><ph name="ALT" /><ph name="SEPARATOR" /> 1 నుండి 8</translation>
-<translation id="9005984960510803406">Crosh విండోని తెరవండి</translation>
+<translation id="9005984960510803406">Crosh విండోను తెరవండి</translation>
 <translation id="9041599225465145264">క్లిప్‌బోర్డ్ నుండి కంటెంట్‌ను అతికించండి</translation>
 <translation id="9052808072970550123">తదుపరి వినియోగదారుకు మారండి</translation>
-<translation id="906458777597946297">విండోను గరిష్టీకరించు</translation>
+<translation id="906458777597946297">విండోను విస్తరించు</translation>
 <translation id="9091855755813503076">పంక్తి ప్రారంభానికి వెళ్లు</translation>
 <translation id="9106898733795143799">పేజీ &amp; వెబ్ బ్రౌజర్</translation>
 <translation id="9162942292291287644"><ph name="QUERY" />కు శోధన ఫలితాలేవీ లేవు</translation>
diff --git a/ash/components/strings/ash_components_strings_zh-TW.xtb b/ash/components/strings/ash_components_strings_zh-TW.xtb
index 083eb265..7ae2e91 100644
--- a/ash/components/strings/ash_components_strings_zh-TW.xtb
+++ b/ash/components/strings/ash_components_strings_zh-TW.xtb
@@ -6,7 +6,7 @@
 <translation id="1195667586424773550">將連結拖曳至該分頁的網址列</translation>
 <translation id="1204450209689312104">以無痕模式開啟新視窗</translation>
 <translation id="1251638888133819822">開啟或關閉全螢幕放大鏡</translation>
-<translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /> 鍵</translation>
+<translation id="1290373024480130896"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="MODIFIER3" /><ph name="SEPARATOR3" /><ph name="KEY" /></translation>
 <translation id="1293699935367580298">Esc</translation>
 <translation id="1299858300159559687">列印目前網頁</translation>
 <translation id="1383876407941801731">搜尋</translation>
diff --git a/ash/media/media_controller.cc b/ash/media/media_controller.cc
index 3a36b3f6..49424bd9 100644
--- a/ash/media/media_controller.cc
+++ b/ash/media/media_controller.cc
@@ -6,9 +6,12 @@
 
 #include "base/bind.h"
 #include "base/feature_list.h"
+#include "base/metrics/histogram_macros.h"
 #include "media/base/media_switches.h"
 #include "services/media_session/public/mojom/constants.mojom.h"
+#include "services/media_session/public/mojom/media_session.mojom.h"
 #include "services/service_manager/public/cpp/connector.h"
+#include "ui/base/accelerators/media_keys_util.h"
 
 namespace ash {
 
@@ -60,15 +63,35 @@
   // If media session media key handling is enabled. Toggle play pause using the
   // media session service.
   if (ShouldUseMediaSession()) {
-    GetMediaSessionController()->ToggleSuspendResume();
+    switch (media_session_info_->playback_state) {
+      case media_session::mojom::MediaPlaybackState::kPaused:
+        GetMediaSessionController()->Resume();
+        ui::RecordMediaHardwareKeyAction(
+            ui::MediaHardwareKeyAction::kPlay);
+        break;
+      case media_session::mojom::MediaPlaybackState::kPlaying:
+        GetMediaSessionController()->Suspend();
+        ui::RecordMediaHardwareKeyAction(
+            ui::MediaHardwareKeyAction::kPause);
+        break;
+    }
+
     return;
   }
 
+  // If media session does not handle the key then we don't know whether the
+  // action will play or pause so we should record a generic "play/pause".
+  ui::RecordMediaHardwareKeyAction(
+      ui::MediaHardwareKeyAction::kPlayPause);
+
   if (client_)
     client_->HandleMediaPlayPause();
 }
 
 void MediaController::HandleMediaNextTrack() {
+  ui::RecordMediaHardwareKeyAction(
+      ui::MediaHardwareKeyAction::kNextTrack);
+
   // If media session media key handling is enabled. Fire next track using the
   // media session service.
   if (ShouldUseMediaSession()) {
@@ -81,6 +104,9 @@
 }
 
 void MediaController::HandleMediaPrevTrack() {
+  ui::RecordMediaHardwareKeyAction(
+      ui::MediaHardwareKeyAction::kPreviousTrack);
+
   // If media session media key handling is enabled. Fire previous track using
   // the media session service.
   if (ShouldUseMediaSession()) {
@@ -102,6 +128,11 @@
     client_->SuspendMediaSessions();
 }
 
+void MediaController::MediaSessionInfoChanged(
+    media_session::mojom::MediaSessionInfoPtr session_info) {
+  media_session_info_ = std::move(session_info);
+}
+
 void MediaController::MediaSessionActionsChanged(
     const std::vector<media_session::mojom::MediaSessionAction>& actions) {
   supported_media_session_action_ = false;
@@ -161,7 +192,8 @@
 
 bool MediaController::ShouldUseMediaSession() {
   return base::FeatureList::IsEnabled(media::kHardwareMediaKeyHandling) &&
-         GetMediaSessionController() && supported_media_session_action_;
+         GetMediaSessionController() && supported_media_session_action_ &&
+         !media_session_info_.is_null();
 }
 
 }  // namespace ash
diff --git a/ash/media/media_controller.h b/ash/media/media_controller.h
index 6fbeafc..13650f8d 100644
--- a/ash/media/media_controller.h
+++ b/ash/media/media_controller.h
@@ -67,7 +67,7 @@
 
   // media_session::mojom::MediaControllerObserver:
   void MediaSessionInfoChanged(
-      media_session::mojom::MediaSessionInfoPtr session_info) override {}
+      media_session::mojom::MediaSessionInfoPtr session_info) override;
   void MediaSessionMetadataChanged(
       const base::Optional<media_session::MediaMetadata>& metadata) override {}
   void MediaSessionActionsChanged(
@@ -82,7 +82,9 @@
   FRIEND_TEST_ALL_PREFIXES(MediaSessionAcceleratorTest,
                            MediaGlobalAccelerators_NextTrack);
   FRIEND_TEST_ALL_PREFIXES(MediaSessionAcceleratorTest,
-                           MediaGlobalAccelerators_PlayPause);
+                           MediaGlobalAccelerators_Play);
+  FRIEND_TEST_ALL_PREFIXES(MediaSessionAcceleratorTest,
+                           MediaGlobalAccelerators_Pause);
   FRIEND_TEST_ALL_PREFIXES(MediaSessionAcceleratorTest,
                            MediaGlobalAccelerators_PrevTrack);
   FRIEND_TEST_ALL_PREFIXES(MediaSessionAcceleratorTest,
@@ -109,6 +111,10 @@
   // media key.
   bool supported_media_session_action_ = false;
 
+  // The info about the current media session. It will be null if there is not
+  // a current session.
+  media_session::mojom::MediaSessionInfoPtr media_session_info_;
+
   // Mojo pointer to the active media session controller.
   media_session::mojom::MediaControllerPtr media_session_controller_ptr_;
 
diff --git a/ash/media/media_notification_item.cc b/ash/media/media_notification_item.cc
index ecc8736..a475f4b7 100644
--- a/ash/media/media_notification_item.cc
+++ b/ash/media/media_notification_item.cc
@@ -174,6 +174,9 @@
 
 void MediaNotificationItem::OnNotificationClicked(
     base::Optional<int> button_id) {
+  if (!button_id)
+    return;
+
   switch (static_cast<MediaSessionAction>(*button_id)) {
     case MediaSessionAction::kPreviousTrack:
       media_controller_ptr_->PreviousTrack();
diff --git a/ash/media/media_notification_view.cc b/ash/media/media_notification_view.cc
index c966ebe9..1a8c517 100644
--- a/ash/media/media_notification_view.cc
+++ b/ash/media/media_notification_view.cc
@@ -20,6 +20,7 @@
 #include "ui/views/controls/button/image_button_factory.h"
 #include "ui/views/layout/box_layout.h"
 #include "ui/views/style/typography.h"
+#include "ui/views/view_class_properties.h"
 
 namespace ash {
 
@@ -32,13 +33,29 @@
 
 // The right padding is 1/3rd the size of the notification when the
 // notification is expanded.
-constexpr int kRightMarginExpandedSize = message_center::kNotificationWidth / 3;
+constexpr int kRightMarginExpandedSize = message_center::kNotificationWidth / 4;
 
 // Dimensions.
-constexpr int kDefaultMarginSize = 16;
-constexpr int kMediaButtonIconSize = 24;
+constexpr int kDefaultMarginSize = 8;
+constexpr int kMediaButtonIconSize = 28;
+constexpr int kTitleArtistLineHeight = 20;
 constexpr double kMediaImageMaxWidthPct = 0.3;
 constexpr double kMediaImageMaxWidthExpandedPct = 0.4;
+constexpr gfx::Size kMediaButtonSize = gfx::Size(36, 36);
+constexpr int kMediaButtonRowSeparator = 8;
+constexpr gfx::Insets kMediaTitleArtistInsets = gfx::Insets(8, 8, 0, 8);
+constexpr gfx::Insets kMediaTitleArtistSingleRowInsets =
+    gfx::Insets(18, 8, 10, 8);
+constexpr gfx::Insets kMediaNotificationMainRowInsets =
+    gfx::Insets(0, kDefaultMarginSize, 14, kRightMarginSize);
+constexpr gfx::Insets kMediaNotificationExpandedMainRowInsets =
+    gfx::Insets(kDefaultMarginSize,
+                kDefaultMarginSize,
+                kDefaultMarginSize,
+                kRightMarginExpandedSize);
+constexpr int kMediaNotificationHeaderTopInset = 6;
+constexpr int kMediaNotificationHeaderRightInset = 6;
+constexpr int kMediaNotificationHeaderInset = 0;
 
 SkColor GetMediaNotificationColor(const views::View& view) {
   return views::style::GetColor(view, views::style::CONTEXT_LABEL,
@@ -72,6 +89,11 @@
   header_row_->SetAppName(
       message_center::MessageCenter::Get()->GetSystemNotificationAppName());
   header_row_->ClearAppIcon();
+  header_row_->SetProperty(views::kMarginsKey,
+                           new gfx::Insets(kMediaNotificationHeaderTopInset,
+                                           kMediaNotificationHeaderInset,
+                                           kMediaNotificationHeaderInset,
+                                           kMediaNotificationHeaderRightInset));
   AddChildView(header_row_);
 
   // |main_row_| holds the main content of the notification.
@@ -80,12 +102,12 @@
 
   // |title_artist_row_| contains the title and artist labels.
   title_artist_row_ = new views::View();
-  auto* title_artist_row_layout =
+  title_artist_row_layout_ =
       title_artist_row_->SetLayoutManager(std::make_unique<views::BoxLayout>(
           views::BoxLayout::kVertical, gfx::Insets(), 0));
-  title_artist_row_layout->set_main_axis_alignment(
+  title_artist_row_layout_->set_main_axis_alignment(
       views::BoxLayout::MAIN_AXIS_ALIGNMENT_CENTER);
-  title_artist_row_layout->set_cross_axis_alignment(
+  title_artist_row_layout_->set_cross_axis_alignment(
       views::BoxLayout::CROSS_AXIS_ALIGNMENT_START);
   title_artist_row_->SetVisible(false);
   main_row_->AddChildView(title_artist_row_);
@@ -94,26 +116,28 @@
                                   views::style::STYLE_PRIMARY);
   const gfx::FontList& base_font_list = views::Label::GetDefaultFontList();
   title_label_->SetFontList(base_font_list.Derive(
-      0, gfx::Font::FontStyle::NORMAL, gfx::Font::Weight::SEMIBOLD));
+      0, gfx::Font::FontStyle::NORMAL, gfx::Font::Weight::MEDIUM));
   title_label_->SetVisible(false);
+  title_label_->SetLineHeight(kTitleArtistLineHeight);
   title_artist_row_->AddChildView(title_label_);
 
   artist_label_ =
       new views::Label(base::string16(), views::style::CONTEXT_LABEL,
                        views::style::STYLE_PRIMARY);
   artist_label_->SetVisible(false);
+  artist_label_->SetLineHeight(kTitleArtistLineHeight);
   title_artist_row_->AddChildView(artist_label_);
 
   // |button_row_| contains the buttons for controlling playback.
   button_row_ = new views::View();
   auto* button_row_layout =
       button_row_->SetLayoutManager(std::make_unique<views::BoxLayout>(
-          views::BoxLayout::kHorizontal, gfx::Insets(), 0));
+          views::BoxLayout::kHorizontal, gfx::Insets(),
+          kMediaButtonRowSeparator));
   button_row_layout->set_main_axis_alignment(
-      views::BoxLayout::MAIN_AXIS_ALIGNMENT_CENTER);
+      views::BoxLayout::MAIN_AXIS_ALIGNMENT_START);
   button_row_layout->set_cross_axis_alignment(
-      views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH);
-  button_row_layout->SetDefaultFlex(1);
+      views::BoxLayout::CROSS_AXIS_ALIGNMENT_CENTER);
   main_row_->AddChildView(button_row_);
 
   CreateMediaButton(vector_icons::kMediaPreviousTrackIcon,
@@ -124,6 +148,7 @@
   // |play_pause_button_| toggles playback.
   play_pause_button_ = views::CreateVectorToggleImageButton(this);
   play_pause_button_->set_tag(static_cast<int>(MediaSessionAction::kPlay));
+  play_pause_button_->SetPreferredSize(kMediaButtonSize);
   SkColor play_button_color = GetMediaNotificationColor(*play_pause_button_);
   views::SetImageFromVectorIcon(play_pause_button_,
                                 vector_icons::kPlayArrowIcon,
@@ -256,6 +281,13 @@
 
     artist_label_->SetText(metadata.artist);
     artist_label_->SetVisible(!metadata.artist.empty());
+
+    // If there is only a single row of text then we should use larger insets to
+    // balance out the row.
+    title_artist_row_layout_->set_inside_border_insets(
+        (metadata.title.empty() || metadata.artist.empty())
+            ? kMediaTitleArtistSingleRowInsets
+            : kMediaTitleArtistInsets);
   }
 
   PreferredSizeChanged();
@@ -328,16 +360,12 @@
     main_row_
         ->SetLayoutManager(std::make_unique<views::BoxLayout>(
             views::BoxLayout::kVertical,
-            gfx::Insets(kDefaultMarginSize, kDefaultMarginSize,
-                        kDefaultMarginSize, kRightMarginExpandedSize),
-            kDefaultMarginSize))
+            kMediaNotificationExpandedMainRowInsets, kDefaultMarginSize))
         ->SetDefaultFlex(1);
   } else {
     main_row_
         ->SetLayoutManager(std::make_unique<views::BoxLayout>(
-            views::BoxLayout::kHorizontal,
-            gfx::Insets(0, kDefaultMarginSize, kDefaultMarginSize,
-                        kRightMarginSize),
+            views::BoxLayout::kHorizontal, kMediaNotificationMainRowInsets,
             kDefaultMarginSize, true))
         ->SetDefaultFlex(1);
   }
@@ -356,6 +384,7 @@
   button->set_tag(static_cast<int>(action));
   views::SetImageFromVectorIcon(button, icon, kMediaButtonIconSize,
                                 GetMediaNotificationColor(*button));
+  button->SetPreferredSize(kMediaButtonSize);
   button_row_->AddChildView(button);
 }
 
diff --git a/ash/media/media_notification_view.h b/ash/media/media_notification_view.h
index f556312..9256a5e8 100644
--- a/ash/media/media_notification_view.h
+++ b/ash/media/media_notification_view.h
@@ -29,6 +29,7 @@
 }  // namespace message_center
 
 namespace views {
+class BoxLayout;
 class ToggleImageButton;
 class View;
 }  // namespace views
@@ -109,6 +110,8 @@
   views::View* layout_row_ = nullptr;
   views::View* main_row_ = nullptr;
 
+  views::BoxLayout* title_artist_row_layout_ = nullptr;
+
   DISALLOW_COPY_AND_ASSIGN(MediaNotificationView);
 };
 
diff --git a/ash/media/media_notification_view_unittest.cc b/ash/media/media_notification_view_unittest.cc
index 39551dc..f5f1041 100644
--- a/ash/media/media_notification_view_unittest.cc
+++ b/ash/media/media_notification_view_unittest.cc
@@ -45,6 +45,9 @@
 // the image.
 const int kMediaButtonIconSize = 24;
 
+// The title artist row should always have the same height.
+const int kMediaTitleArtistRowExpectedHeight = 48;
+
 const char kTestAppName[] = "app name";
 
 // Checks if the view class name is used by a media button.
@@ -509,6 +512,8 @@
 
 TEST_F(MediaNotificationViewTest, UpdateMetadata_FromObserver) {
   UpdateWithSampleMetadata();
+
+  EXPECT_EQ(kMediaTitleArtistRowExpectedHeight, title_artist_row()->height());
 }
 
 TEST_F(MediaNotificationViewTest, UpdateMetadata_FromObserver_Empty) {
@@ -542,6 +547,8 @@
   EXPECT_FALSE(artist_label()->visible());
 
   EXPECT_EQ(metadata.title, title_label()->text());
+
+  EXPECT_EQ(kMediaTitleArtistRowExpectedHeight, title_artist_row()->height());
 }
 
 TEST_F(MediaNotificationViewTest, UpdateMetadata_FromObserver_NoTitle) {
@@ -559,6 +566,8 @@
   EXPECT_TRUE(artist_label()->visible());
 
   EXPECT_EQ(metadata.artist, artist_label()->text());
+
+  EXPECT_EQ(kMediaTitleArtistRowExpectedHeight, title_artist_row()->height());
 }
 
 TEST_F(MediaNotificationViewTest, UpdateMetadata_AppName) {
diff --git a/ash/metrics/histogram_macros.cc b/ash/metrics/histogram_macros.cc
index bc7c795..7ec7c45 100644
--- a/ash/metrics/histogram_macros.cc
+++ b/ash/metrics/histogram_macros.cc
@@ -4,6 +4,7 @@
 
 #include "ash/metrics/histogram_macros.h"
 #include "ash/shell.h"
+#include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 
 namespace ash {
@@ -14,4 +15,10 @@
          shell->tablet_mode_controller()->IsTabletModeWindowManagerEnabled();
 }
 
+bool IsInSplitView() {
+  auto* shell = Shell::Get();
+  return shell && shell->split_view_controller() &&
+         shell->split_view_controller()->IsSplitViewModeActive();
+}
+
 }  // namespace ash
diff --git a/ash/metrics/histogram_macros.h b/ash/metrics/histogram_macros.h
index 7d1b616..ab6a8ee 100644
--- a/ash/metrics/histogram_macros.h
+++ b/ash/metrics/histogram_macros.h
@@ -19,6 +19,18 @@
       UMA_HISTOGRAM_PERCENTAGE(name, __VA_ARGS__);    \
   } while (0)
 
+#define UMA_HISTOGRAM_PERCENTAGE_IN_SPLITVIEW(name, ...) \
+  do {                                                   \
+    if (ash::IsInSplitView())                            \
+      UMA_HISTOGRAM_PERCENTAGE(name, __VA_ARGS__);       \
+  } while (0)
+
+#define UMA_HISTOGRAM_PERCENTAGE_IN_TABLET_NON_SPLITVIEW(name, ...) \
+  do {                                                              \
+    if (ash::IsInTabletMode() && !ash::IsInSplitView())             \
+      UMA_HISTOGRAM_PERCENTAGE(name, __VA_ARGS__);                  \
+  } while (0)
+
 #define UMA_HISTOGRAM_PERCENTAGE_IN_CLAMSHELL(name, ...) \
   do {                                                   \
     if (!ash::IsInTabletMode())                          \
@@ -28,6 +40,7 @@
 namespace ash {
 
 ASH_EXPORT bool IsInTabletMode();
+ASH_EXPORT bool IsInSplitView();
 
 }  // namespace ash
 
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn
index 51c7aff..ace2f3eb 100644
--- a/ash/public/cpp/BUILD.gn
+++ b/ash/public/cpp/BUILD.gn
@@ -59,6 +59,8 @@
     "default_frame_header.h",
     "default_scale_factor_retriever.cc",
     "default_scale_factor_retriever.h",
+    "fps_counter.cc",
+    "fps_counter.h",
     "frame_header.cc",
     "frame_header.h",
     "frame_utils.cc",
diff --git a/ash/public/cpp/assistant/assistant_state_base.h b/ash/public/cpp/assistant/assistant_state_base.h
index 1c80fa0e0..85f1d711 100644
--- a/ash/public/cpp/assistant/assistant_state_base.h
+++ b/ash/public/cpp/assistant/assistant_state_base.h
@@ -53,29 +53,40 @@
 
   const base::Optional<std::string>& locale() const { return locale_; }
 
+  const base::Optional<bool>& arc_play_store_enabled() const {
+    return arc_play_store_enabled_;
+  }
+
  protected:
   base::Optional<mojom::VoiceInteractionState> voice_interaction_state_;
 
-  // Whether voice interaction is enabled in system settings.
+  // Whether voice interaction is enabled in system settings. nullopt if the
+  // data is not available yet.
   base::Optional<bool> settings_enabled_;
 
-  // The status of the user's consent.
+  // The status of the user's consent. nullopt if the data is not available yet.
   base::Optional<mojom::ConsentStatus> consent_status_;
 
-  // Whether screen context is enabled.
+  // Whether screen context is enabled. nullopt if the data is not available
+  // yet.
   base::Optional<bool> context_enabled_;
 
   // Whether hotword listening is enabled.
   base::Optional<bool> hotword_enabled_;
 
-  // Whether hotword listening is always on/only with power source.
+  // Whether hotword listening is always on/only with power source. nullopt
+  // if the data is not available yet.
   base::Optional<bool> hotword_always_on_;
 
   // Whether voice interaction feature is allowed or disallowed for what reason.
+  // nullopt if the data is not available yet.
   base::Optional<mojom::AssistantAllowedState> allowed_state_;
 
   base::Optional<std::string> locale_;
 
+  // Whether play store is enabled. nullopt if the data is not available yet.
+  base::Optional<bool> arc_play_store_enabled_;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(AssistantStateBase);
 };
diff --git a/ash/public/cpp/assistant/assistant_state_proxy.cc b/ash/public/cpp/assistant/assistant_state_proxy.cc
index a41e69e..3665f56 100644
--- a/ash/public/cpp/assistant/assistant_state_proxy.cc
+++ b/ash/public/cpp/assistant/assistant_state_proxy.cc
@@ -43,6 +43,8 @@
     observer->OnAssistantFeatureAllowedChanged(allowed_state_.value());
   if (locale_.has_value())
     observer->OnLocaleChanged(locale_.value());
+  if (arc_play_store_enabled_.has_value())
+    observer->OnArcPlayStoreEnabledChanged(arc_play_store_enabled_.value());
 
   observers_.AddObserver(observer);
 }
@@ -103,4 +105,10 @@
     observer.OnLocaleChanged(locale_.value());
 }
 
+void AssistantStateProxy::OnArcPlayStoreEnabledChanged(bool enabled) {
+  arc_play_store_enabled_ = enabled;
+  for (auto& observer : observers_)
+    observer.OnArcPlayStoreEnabledChanged(arc_play_store_enabled_.value());
+}
+
 }  // namespace ash
diff --git a/ash/public/cpp/assistant/assistant_state_proxy.h b/ash/public/cpp/assistant/assistant_state_proxy.h
index 51b8ff1c..a1810a5 100644
--- a/ash/public/cpp/assistant/assistant_state_proxy.h
+++ b/ash/public/cpp/assistant/assistant_state_proxy.h
@@ -50,6 +50,7 @@
   void OnAssistantFeatureAllowedChanged(
       mojom::AssistantAllowedState state) override;
   void OnLocaleChanged(const std::string& locale) override;
+  void OnArcPlayStoreEnabledChanged(bool enabled) override;
 
   base::ObserverList<DefaultVoiceInteractionObserver> observers_;
 
diff --git a/ash/public/cpp/assistant/default_voice_interaction_observer.h b/ash/public/cpp/assistant/default_voice_interaction_observer.h
index b70430f..88a0a0a 100644
--- a/ash/public/cpp/assistant/default_voice_interaction_observer.h
+++ b/ash/public/cpp/assistant/default_voice_interaction_observer.h
@@ -34,6 +34,7 @@
   void OnAssistantFeatureAllowedChanged(
       ash::mojom::AssistantAllowedState state) override {}
   void OnLocaleChanged(const std::string& locale) override {}
+  void OnArcPlayStoreEnabledChanged(bool enabled) override {}
 
  protected:
   DefaultVoiceInteractionObserver() = default;
diff --git a/ash/public/cpp/fps_counter.cc b/ash/public/cpp/fps_counter.cc
new file mode 100644
index 0000000..4d49d1e1
--- /dev/null
+++ b/ash/public/cpp/fps_counter.cc
@@ -0,0 +1,64 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ash/public/cpp/fps_counter.h"
+
+#include "ui/compositor/compositor.h"
+
+namespace ash {
+namespace {
+bool force_report_zero_animation_for_test = false;
+}  // namespace
+
+FpsCounter::FpsCounter(ui::Compositor* compositor) : compositor_(compositor) {
+  compositor_->AddObserver(this);
+  start_frame_number_ = compositor->activated_frame_count();
+  start_time_ = base::TimeTicks::Now();
+}
+
+FpsCounter::~FpsCounter() {
+  if (compositor_)
+    compositor_->RemoveObserver(this);
+}
+
+int FpsCounter::ComputeSmoothness() {
+  if (!compositor_)
+    return -1;
+  int end_frame_number = compositor_->activated_frame_count();
+
+  // Don't report zero animation as 100.
+  if (!force_report_zero_animation_for_test &&
+      end_frame_number <= start_frame_number_)
+    return -1;
+
+  base::TimeDelta elapsed = base::TimeTicks::Now() - start_time_;
+  float refresh_rate = compositor_->refresh_rate();
+  int expected_frame_number =
+      std::floor(refresh_rate * elapsed.InMillisecondsF() /
+                 base::Time::kMillisecondsPerSecond);
+  int actual_frame_number = end_frame_number - start_frame_number_;
+  int smoothness = actual_frame_number < expected_frame_number
+                       ? smoothness =
+                             100 * actual_frame_number / expected_frame_number
+                       : 100;
+
+  VLOG(1) << "Smoothness:" << smoothness
+          << ", duration=" << elapsed.InMilliseconds()
+          << ", actual_frame=" << actual_frame_number
+          << ", expected_frame=" << expected_frame_number;
+  return smoothness;
+}
+
+void FpsCounter::OnCompositingShuttingDown(ui::Compositor* compositor) {
+  DCHECK_EQ(compositor_, compositor);
+  compositor->RemoveObserver(this);
+  compositor_ = nullptr;
+}
+
+// static
+void FpsCounter::SetFoceReportZeroAnimationForTest(bool value) {
+  force_report_zero_animation_for_test = value;
+}
+
+}  // namespace ash
diff --git a/ash/public/cpp/fps_counter.h b/ash/public/cpp/fps_counter.h
new file mode 100644
index 0000000..b8be7ad
--- /dev/null
+++ b/ash/public/cpp/fps_counter.h
@@ -0,0 +1,50 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_PUBLIC_CPP_FPS_COUNTER_H_
+#define ASH_PUBLIC_CPP_FPS_COUNTER_H_
+
+#include "ash/public/cpp/ash_public_export.h"
+#include "base/time/time.h"
+#include "ui/compositor/compositor_observer.h"
+
+namespace ui {
+class Compositor;
+}
+
+namespace ash {
+
+// FpsCounter is used to measures the smoothness of animations applied in one
+// operation, while AnimationMetricsRepoter measures smoothness of one
+// particular animation.  For example, overview animation consists of multiple
+// animations, such as wallpaper, windows and label etc. This allows us to
+// measure such animations as a whole.
+class ASH_PUBLIC_EXPORT FpsCounter : public ui::CompositorObserver {
+ public:
+  explicit FpsCounter(ui::Compositor* compositor);
+  ~FpsCounter() override;
+
+  // Comptues smoothness based on the updated frame number in compositor and the
+  // duration between creation and the invocation time. Returns -1 if it cannot
+  // compute the smoothness (when frame_count rolled over, or it finihed
+  // immediately).
+  int ComputeSmoothness();
+
+  // ui::CompositorObserver:
+  void OnCompositingShuttingDown(ui::Compositor* compositor) override;
+
+  // Use this to update histogram even with zero animation.
+  static void SetFoceReportZeroAnimationForTest(bool value);
+
+ private:
+  ui::Compositor* compositor_ = nullptr;
+  int start_frame_number_ = 0;
+  base::TimeTicks start_time_;
+
+  DISALLOW_COPY_AND_ASSIGN(FpsCounter);
+};
+
+}  // namespace ash
+
+#endif  // ASH_PUBLIC_CPP_FPS_COUNTER_H_
diff --git a/ash/public/interfaces/voice_interaction_controller.mojom b/ash/public/interfaces/voice_interaction_controller.mojom
index 62aef675..0c3cc97 100644
--- a/ash/public/interfaces/voice_interaction_controller.mojom
+++ b/ash/public/interfaces/voice_interaction_controller.mojom
@@ -73,6 +73,9 @@
   // Called when assistant feature allowed state has changed.
   OnAssistantFeatureAllowedChanged(AssistantAllowedState state);
 
+  // Called when Google Play Store is enabled/disabled.
+  OnArcPlayStoreEnabledChanged(bool enabled);
+
   // Called when locale is changed in pref. The locale is in the format can be
   // "en-US" or simply "en". When locale is not set in pref, it returns empty
   // string.
@@ -115,6 +118,9 @@
   // Called when the launch with mic open state is changed.
   NotifyLaunchWithMicOpen(bool launch_with_mic_open);
 
+  // Called when Google Play Store is enabled/disabled.
+  NotifyArcPlayStoreEnabledChanged(bool enabled);
+
   // Add an observer.
   AddObserver(VoiceInteractionObserver observer);
 };
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb
index 86998c7..3c63e882 100644
--- a/ash/strings/ash_strings_bn.xtb
+++ b/ash/strings/ash_strings_bn.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">কিছু সমস্যা হয়েছে। কয়েক সেকেন্ডের মধ্যে আবার চেষ্টা করুন।</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">অ্যাপ, এক্সটেনশন এবং থিম ইনস্টল করুন</translation>
+<translation id="2977598380246111477">পরবর্তী নম্বর</translation>
 <translation id="2995447421581609334">কাস্ট ডিভাইসগুলি দেখান।</translation>
 <translation id="2996462380875591307">ডক করা ম্যাগনিফায়ার চালু আছে। আবার Ctrl+Search+D প্রেস করে সেটিকে বন্ধ করুন।</translation>
 <translation id="3000461861112256445">মোনো অডিও</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 8c1c557..c30f76e 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">Nagkaproblema. Subukang muli sa loob ng ilang segundo.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">Mag-install ng mga app, extension, at tema</translation>
+<translation id="2977598380246111477">Susunod na numero</translation>
 <translation id="2995447421581609334">Ipakita ang mga cast device.</translation>
 <translation id="2996462380875591307">Na-enable ang Naka-dock na Magnifier. Pinduting muli ang Ctrl+Search+D para i-off ito.</translation>
 <translation id="3000461861112256445">Mono audio</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index a5a3ddbf..8be99c27 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">Terjadi kesalahan. Coba lagi dalam beberapa detik.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">Instal aplikasi, ekstensi, dan tema</translation>
+<translation id="2977598380246111477">Nomor berikutnya</translation>
 <translation id="2995447421581609334">Tampilkan perangkat transmisi.</translation>
 <translation id="2996462380875591307">Kaca Pembesar yang Dipasang ke Dok diaktifkan. Tekan Ctrl+Search+D lagi untuk menonaktifkannya.</translation>
 <translation id="3000461861112256445">Audio mono</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 0a8d656..e01d5b9 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">ಏನೋ ಸಮಸ್ಯೆಯಾಗಿದೆ. ಕೆಲವು ನಿಮಿಷಗಳಲ್ಲಿ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">ಆ್ಯಪ್‌ಗಳು, ವಿಸ್ತರಣೆಗಳು, ಮತ್ತು ಥೀಮ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವುದು</translation>
+<translation id="2977598380246111477">ಮುಂದಿನ ಸಂಖ್ಯೆ</translation>
 <translation id="2995447421581609334">ಬಿತ್ತರಿಸುವ ಸಾಧನಗಳನ್ನು ತೋರಿಸಿ.</translation>
 <translation id="2996462380875591307">ಡಾಕ್‌‌ ಮಾಡಿರುವ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಟಾಗಲ್‌ ಆಫ್‌ ಮಾಡಲು ಪುನಃ Ctrl+Search+D ಅನ್ನು ಒತ್ತಿರಿ.</translation>
 <translation id="3000461861112256445">ಮೊನೊ ಆಡಿಯೊ</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
index 41accd3..6a0bdc1 100644
--- a/ash/strings/ash_strings_pt-PT.xtb
+++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">Ocorreu um erro. Tente novamente dentro de alguns segundos.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">Instalar aplicações, extensões e temas</translation>
+<translation id="2977598380246111477">Número seguinte</translation>
 <translation id="2995447421581609334">Mostrar dispositivos de transmissão.</translation>
 <translation id="2996462380875591307">Lupa ancorada ativada. Prima Ctrl + Pesquisa + D novamente para a desativar.</translation>
 <translation id="3000461861112256445">Áudio mono</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index cdf8ce3..82cfe07 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">Prišlo je do napake. Poskusite znova čez nekaj sekund.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">nameščanje aplikacij, razširitev in tem;</translation>
+<translation id="2977598380246111477">Naslednja številka</translation>
 <translation id="2995447421581609334">Prikaz naprav za predvajanje.</translation>
 <translation id="2996462380875591307">Zasidrana lupa je omogočena. Če jo želite izklopiti, znova pritisnite Ctrl + tipko za iskanje + D.</translation>
 <translation id="3000461861112256445">Mono zvok</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb
index e765732..bffca09a 100644
--- a/ash/strings/ash_strings_sv.xtb
+++ b/ash/strings/ash_strings_sv.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">Ett fel har uppstått. Försök igen om några sekunder.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">Installera appar, tillägg och teman</translation>
+<translation id="2977598380246111477">Nästa nummer</translation>
 <translation id="2995447421581609334">Visa cast-enheter</translation>
 <translation id="2996462380875591307">Dockad skärmförstoring har aktiverats. Tryck på Ctrl + Sök + D igen om du vill inaktivera funktionen.</translation>
 <translation id="3000461861112256445">Monoljud</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index 1138ded..3869cfd02 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -132,6 +132,7 @@
 <translation id="2961963223658824723">ఏదో తప్పు జరిగింది. కొన్ని క్షణాల తర్వాత మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="2963773877003373896">mod3</translation>
 <translation id="2970920913501714344">యాప్‌లు, ఎక్స్‌టెన్షన్‌లు, థీమ్‌లను ఇన్‌స్టాల్ చేయండి</translation>
+<translation id="2977598380246111477">తర్వాత నంబర్</translation>
 <translation id="2995447421581609334">ప్రసార పరికరాలను చూపుతుంది.</translation>
 <translation id="2996462380875591307">డాక్ చేయబడిన మాగ్నిఫైయర్ ప్రారంభించబడింది. దాన్ని టోగుల్ ఆఫ్ చేయడానికి మళ్లీ Ctrl+Search+Dని నొక్కండి.</translation>
 <translation id="3000461861112256445">మోనో ఆడియో</translation>
diff --git a/ash/voice_interaction/voice_interaction_controller.cc b/ash/voice_interaction/voice_interaction_controller.cc
index 7ad9ada..6143ed8 100644
--- a/ash/voice_interaction/voice_interaction_controller.cc
+++ b/ash/voice_interaction/voice_interaction_controller.cc
@@ -130,6 +130,20 @@
   launch_with_mic_open_ = launch_with_mic_open;
 }
 
+void VoiceInteractionController::NotifyArcPlayStoreEnabledChanged(
+    bool enabled) {
+  if (arc_play_store_enabled_ == enabled)
+    return;
+
+  arc_play_store_enabled_ = enabled;
+
+  observers_.ForAllPtrs([enabled](auto* observer) {
+    observer->OnArcPlayStoreEnabledChanged(enabled);
+  });
+  for (auto& observer : local_observers_)
+    observer.OnArcPlayStoreEnabledChanged(enabled);
+}
+
 void VoiceInteractionController::AddObserver(
     mojom::VoiceInteractionObserverPtr observer) {
   InitObserver(observer.get());
@@ -165,6 +179,8 @@
     observer->OnAssistantFeatureAllowedChanged(allowed_state_.value());
   if (locale_.has_value())
     observer->OnLocaleChanged(locale_.value());
+  if (arc_play_store_enabled_.has_value())
+    observer->OnArcPlayStoreEnabledChanged(arc_play_store_enabled_.value());
 }
 
 void VoiceInteractionController::FlushForTesting() {
diff --git a/ash/voice_interaction/voice_interaction_controller.h b/ash/voice_interaction/voice_interaction_controller.h
index 0b31a87a..39eef114 100644
--- a/ash/voice_interaction/voice_interaction_controller.h
+++ b/ash/voice_interaction/voice_interaction_controller.h
@@ -37,6 +37,7 @@
   void NotifyNotificationEnabled(bool enabled) override;
   void NotifyLocaleChanged(const std::string& locale) override;
   void NotifyLaunchWithMicOpen(bool launch_with_mic_open) override;
+  void NotifyArcPlayStoreEnabledChanged(bool enabled) override;
   void AddObserver(mojom::VoiceInteractionObserverPtr observer) override;
 
   // Adding local observers in the same process.
diff --git a/ash/voice_interaction/voice_interaction_controller_unittest.cc b/ash/voice_interaction/voice_interaction_controller_unittest.cc
index e9da9ced..4bf26b3 100644
--- a/ash/voice_interaction/voice_interaction_controller_unittest.cc
+++ b/ash/voice_interaction/voice_interaction_controller_unittest.cc
@@ -44,6 +44,9 @@
   void OnAssistantFeatureAllowedChanged(
       mojom::AssistantAllowedState state) override {}
   void OnLocaleChanged(const std::string& locale) override {}
+  void OnArcPlayStoreEnabledChanged(bool enabled) override {
+    arc_play_store_enabled_ = enabled;
+  }
 
   mojom::VoiceInteractionState voice_interaction_state() const {
     return state_;
@@ -52,6 +55,7 @@
   bool context_enabled() const { return context_enabled_; }
   bool hotword_always_on() const { return hotword_always_on_; }
   bool hotword_enabled() const { return hotword_enabled_; }
+  bool arc_play_store_enabled() const { return arc_play_store_enabled_; }
   mojom::ConsentStatus consent_status() const { return consent_status_; }
 
   void SetVoiceInteractionController(VoiceInteractionController* controller) {
@@ -66,6 +70,7 @@
   bool context_enabled_ = false;
   bool hotword_always_on_ = false;
   bool hotword_enabled_ = false;
+  bool arc_play_store_enabled_ = false;
   mojom::ConsentStatus consent_status_ = mojom::ConsentStatus::kUnknown;
 
   mojo::Binding<mojom::VoiceInteractionObserver> voice_interaction_binding_;
@@ -160,4 +165,11 @@
               mojom::ConsentStatus::kActivityControlAccepted);
 }
 
+TEST_F(VoiceInteractionControllerTest, NotifyArcPlayStoreEnabledChanged) {
+  controller()->NotifyArcPlayStoreEnabledChanged(true);
+  controller()->FlushForTesting();
+  // The observers should be notified.
+  EXPECT_TRUE(observer()->arc_play_store_enabled());
+}
+
 }  // namespace ash
diff --git a/ash/wallpaper/wallpaper_controller.cc b/ash/wallpaper/wallpaper_controller.cc
index 6da2f6f..00fdc0f3 100644
--- a/ash/wallpaper/wallpaper_controller.cc
+++ b/ash/wallpaper/wallpaper_controller.cc
@@ -27,6 +27,7 @@
 #include "ash/wallpaper/wallpaper_window_state_manager.h"
 #include "ash/wm/overview/overview_constants.h"
 #include "ash/wm/overview/overview_controller.h"
+#include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/bind.h"
 #include "base/command_line.h"
 #include "base/files/file_enumerator.h"
@@ -1468,12 +1469,9 @@
 void WallpaperController::InstallDesktopController(aura::Window* root_window) {
   DCHECK_EQ(WALLPAPER_IMAGE, wallpaper_mode_);
 
-  bool session_blocked =
-      Shell::Get()->session_controller()->IsUserSessionBlocked();
-  bool in_overview = Shell::Get()->overview_controller()->IsSelecting();
-  bool is_wallpaper_blurred =
-      (session_blocked || in_overview) && IsBlurAllowed();
-
+  const bool is_wallpaper_blurred =
+      Shell::Get()->session_controller()->IsUserSessionBlocked() &&
+      IsBlurAllowed();
   if (is_wallpaper_blurred_ != is_wallpaper_blurred) {
     is_wallpaper_blurred_ = is_wallpaper_blurred;
     for (auto& observer : observers_)
@@ -1484,17 +1482,34 @@
   }
 
   const int container_id = GetWallpaperContainerId(locked_);
-  float blur = login_constants::kClearBlurSigma;
-  if (is_wallpaper_blurred)
-    blur = session_blocked ? login_constants::kBlurSigma : kWallpaperBlurSigma;
+  float blur = is_wallpaper_blurred ? login_constants::kBlurSigma
+                                    : login_constants::kClearBlurSigma;
 
-  WallpaperView* wallpaper_view = nullptr;
+  // There are two types of blurring we can do on the wallpaper. One is on the
+  // widget itself and the other is on the wallpaper view paint code which more
+  // optimized but lower quality. The latter is used by overview mode which
+  // needs to animate the wallpaper blur, meaning the former is not a very good
+  // option in terms of performance.
+  // TODO(crbug.com/944152): Modify wallpaper view use painting blur in all
+  // cases.
   auto* wallpaper_widget_controller =
       RootWindowController::ForWindow(root_window)
           ->wallpaper_widget_controller();
+  WallpaperView* previous_wallpaper_view =
+      wallpaper_widget_controller->wallpaper_view();
+  WallpaperView* current_wallpaper_view = nullptr;
+
+  // Copy the blur and opacity values from the old wallpaper to the new one.
+  const int repaint_blur =
+      previous_wallpaper_view ? previous_wallpaper_view->repaint_blur() : 0;
+  const float repaint_opacity = previous_wallpaper_view
+                                    ? previous_wallpaper_view->repaint_opacity()
+                                    : 1.f;
   auto* widget =
-      CreateWallpaperWidget(root_window, container_id, &wallpaper_view);
-  wallpaper_widget_controller->SetWallpaperWidget(widget, wallpaper_view, blur);
+      CreateWallpaperWidget(root_window, container_id, repaint_blur,
+                            repaint_opacity, &current_wallpaper_view);
+  wallpaper_widget_controller->SetWallpaperWidget(widget,
+                                                  current_wallpaper_view, blur);
 }
 
 void WallpaperController::InstallDesktopControllerForAllWindows() {
diff --git a/ash/wallpaper/wallpaper_view.cc b/ash/wallpaper/wallpaper_view.cc
index 03f6f934..7af3ec83 100644
--- a/ash/wallpaper/wallpaper_view.cc
+++ b/ash/wallpaper/wallpaper_view.cc
@@ -107,7 +107,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 // WallpaperView, public:
 
-WallpaperView::WallpaperView() {
+WallpaperView::WallpaperView(int blur, float opacity)
+    : repaint_blur_(blur), repaint_opacity_(opacity) {
   set_context_menu_controller(this);
 }
 
@@ -266,6 +267,8 @@
 
 views::Widget* CreateWallpaperWidget(aura::Window* root_window,
                                      int container_id,
+                                     int blur,
+                                     float opacity,
                                      WallpaperView** out_wallpaper_view) {
   WallpaperController* controller = Shell::Get()->wallpaper_controller();
 
@@ -277,7 +280,8 @@
     params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
   params.parent = root_window->GetChildById(container_id);
   wallpaper_widget->Init(params);
-  WallpaperView* wallpaper_view = new WallpaperView();  // Owned by views.
+  // Owned by views.
+  WallpaperView* wallpaper_view = new WallpaperView(blur, opacity);
   wallpaper_widget->SetContentsView(new LayerControlView(wallpaper_view));
   *out_wallpaper_view = wallpaper_view;
   int animation_type =
diff --git a/ash/wallpaper/wallpaper_view.h b/ash/wallpaper/wallpaper_view.h
index fdebe91..dfde111 100644
--- a/ash/wallpaper/wallpaper_view.h
+++ b/ash/wallpaper/wallpaper_view.h
@@ -16,12 +16,15 @@
 
 class WallpaperView : public views::View, public views::ContextMenuController {
  public:
-  WallpaperView();
+  WallpaperView(int blur, float opacity);
   ~WallpaperView() override;
 
   // Schedules a repaint of the wallpaper with blur and opacity changes.
   void RepaintBlurAndOpacity(int repaint_blur, float repaint_opacity);
 
+  int repaint_blur() const { return repaint_blur_; }
+  float repaint_opacity() const { return repaint_opacity_; }
+
  private:
   friend class WallpaperControllerTest;
 
@@ -45,14 +48,16 @@
   // wallpaper. If |repaint_blur_| is not 0 and |repaint_opacity_| is not 1, the
   // wallpaper will be downsampled and a blur and brightness filter will be
   // applied. It is downsampled to increase performance.
-  int repaint_blur_ = 0;
-  float repaint_opacity_ = 1.f;
+  int repaint_blur_;
+  float repaint_opacity_;
 
   DISALLOW_COPY_AND_ASSIGN(WallpaperView);
 };
 
 views::Widget* CreateWallpaperWidget(aura::Window* root_window,
                                      int container_id,
+                                     int blur,
+                                     float opacity,
                                      WallpaperView** out_wallpaper_view);
 
 }  // namespace ash
diff --git a/ash/wallpaper/wallpaper_widget_controller.cc b/ash/wallpaper/wallpaper_widget_controller.cc
index 81cf23e..73eabab0 100644
--- a/ash/wallpaper/wallpaper_widget_controller.cc
+++ b/ash/wallpaper/wallpaper_widget_controller.cc
@@ -228,13 +228,10 @@
     active_widget_->SetBlur(blur_sigma);
 }
 
-float WallpaperWidgetController::GetWallpaperBlur() const {
-  return active_widget_ ? active_widget_->blur_sigma() : 0.f;
-}
-
 void WallpaperWidgetController::ResetWidgetsForTesting() {
   animating_widget_.reset();
   active_widget_.reset();
+  wallpaper_view_ = nullptr;
 }
 
 void WallpaperWidgetController::WidgetHandlerReset(WidgetHandler* widget) {
diff --git a/ash/wallpaper/wallpaper_widget_controller.h b/ash/wallpaper/wallpaper_widget_controller.h
index 0c6312a..9f423774 100644
--- a/ash/wallpaper/wallpaper_widget_controller.h
+++ b/ash/wallpaper/wallpaper_widget_controller.h
@@ -65,9 +65,6 @@
   // Blur pixels of the wallpaper layer by 3 * the given amount.
   void SetWallpaperBlur(float blur_sigma);
 
-  // Returns the blur sigma applied on the wallpaper layer.
-  float GetWallpaperBlur() const;
-
   // TODO: Get the wallpaper view from |animating_widget_| or |active_widget_|
   // instead of caching the pointer value.
   WallpaperView* wallpaper_view() const { return wallpaper_view_; }
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc
index 8f1ddee..c16ecfa 100644
--- a/ash/wm/overview/overview_grid.cc
+++ b/ash/wm/overview/overview_grid.cc
@@ -8,7 +8,9 @@
 #include <functional>
 #include <utility>
 
+#include "ash/metrics/histogram_macros.h"
 #include "ash/public/cpp/ash_features.h"
+#include "ash/public/cpp/fps_counter.h"
 #include "ash/public/cpp/shelf_types.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/public/cpp/window_properties.h"
@@ -86,6 +88,26 @@
 constexpr SkColor kNoItemsIndicatorTextColor = SK_ColorWHITE;
 constexpr float kNoItemsIndicatorBackgroundOpacity = 0.8f;
 
+// Histogram names for overview enter/exit smoothness in clamshell,
+// tablet mode and splitview.
+constexpr char kOverviewEnterClamshellHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Enter.ClamshellMode";
+constexpr char kOverviewEnterSingleClamshellHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Enter.SingleClamshellMode";
+constexpr char kOverviewEnterTabletHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Enter.TabletMode";
+constexpr char kOverviewEnterSplitViewHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Enter.SplitView";
+
+constexpr char kOverviewExitClamshellHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Exit.ClamshellMode";
+constexpr char kOverviewExitSingleClamshellHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Exit.SingleClamshellMode";
+constexpr char kOverviewExitTabletHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Exit.TabletMode";
+constexpr char kOverviewExitSplitViewHistogram[] =
+    "Ash.Overview.AnimationSmoothness.Exit.SplitView";
+
 // Returns the vector for the fade in animation.
 gfx::Vector2d GetSlideVectorForFadeIn(OverviewSession::Direction direction,
                                       const gfx::Rect& bounds) {
@@ -103,6 +125,68 @@
   return vector;
 }
 
+template <const char* clamshell_single_name,
+          const char* clamshell_multi_name,
+          const char* tablet_name,
+          const char* splitview_name>
+class OverviewFpsCounter : public FpsCounter {
+ public:
+  OverviewFpsCounter(ui::Compositor* compositor,
+                     bool single_animation_in_clamshell)
+      : FpsCounter(compositor),
+        single_animation_in_clamshell_(single_animation_in_clamshell) {}
+  ~OverviewFpsCounter() override {
+    int smoothness = ComputeSmoothness();
+    if (smoothness < 0)
+      return;
+    if (single_animation_in_clamshell_)
+      UMA_HISTOGRAM_PERCENTAGE_IN_CLAMSHELL(clamshell_single_name, smoothness);
+    else
+      UMA_HISTOGRAM_PERCENTAGE_IN_CLAMSHELL(clamshell_multi_name, smoothness);
+    UMA_HISTOGRAM_PERCENTAGE_IN_TABLET_NON_SPLITVIEW(tablet_name, smoothness);
+    UMA_HISTOGRAM_PERCENTAGE_IN_SPLITVIEW(splitview_name, smoothness);
+  }
+
+ private:
+  // True if only top window animates upon enter/exit overview in clamshell.
+  bool single_animation_in_clamshell_;
+
+  DISALLOW_COPY_AND_ASSIGN(OverviewFpsCounter);
+};
+
+using OverviewEnterFpsCounter =
+    OverviewFpsCounter<kOverviewEnterSingleClamshellHistogram,
+                       kOverviewEnterClamshellHistogram,
+                       kOverviewEnterTabletHistogram,
+                       kOverviewEnterSplitViewHistogram>;
+using OverviewExitFpsCounter =
+    OverviewFpsCounter<kOverviewExitSingleClamshellHistogram,
+                       kOverviewExitClamshellHistogram,
+                       kOverviewExitTabletHistogram,
+                       kOverviewExitSplitViewHistogram>;
+
+class ShutdownAnimationFpsCounterObserver : public OverviewObserver {
+ public:
+  ShutdownAnimationFpsCounterObserver(ui::Compositor* compositor,
+                                      bool single_animation)
+      : fps_counter_(compositor, single_animation) {
+    Shell::Get()->overview_controller()->AddObserver(this);
+  }
+  ~ShutdownAnimationFpsCounterObserver() override {
+    Shell::Get()->overview_controller()->RemoveObserver(this);
+  }
+
+  // OverviewObserver:
+  void OnOverviewModeEndingAnimationComplete(bool canceled) override {
+    delete this;
+  }
+
+ private:
+  OverviewExitFpsCounter fps_counter_;
+
+  DISALLOW_COPY_AND_ASSIGN(ShutdownAnimationFpsCounterObserver);
+};
+
 // Creates |drop_target_widget_|. It's created when a window (not from overview)
 // is dragged around and destroyed when the drag ends. If |animate| is true, do
 // the opacity animation for the drop target.
@@ -414,8 +498,30 @@
 void OverviewGrid::Shutdown() {
   ScreenRotationAnimator::GetForRootWindow(root_window_)->RemoveObserver(this);
 
-  for (const auto& window : window_list_)
+  bool has_non_cover_animating = false;
+  int animate_count = 0;
+
+  for (const auto& window : window_list_) {
+    if (window->should_animate_when_exiting() && !has_non_cover_animating) {
+      has_non_cover_animating |=
+          !CanCoverAvailableWorkspace(window->GetWindow());
+      animate_count++;
+    }
     window->Shutdown();
+  }
+  bool single_animation_in_clamshell =
+      (animate_count == 1 && !has_non_cover_animating) &&
+      !Shell::Get()
+           ->tablet_mode_controller()
+           ->IsTabletModeWindowManagerEnabled();
+
+  // OverviewGrid in splitscreen does not include the window to be activated.
+  if (!window_list_.empty() ||
+      Shell::Get()->split_view_controller()->IsSplitViewModeActive()) {
+    // The following instance self-destructs when shutdown animation ends.
+    new ShutdownAnimationFpsCounterObserver(
+        root_window_->layer()->GetCompositor(), single_animation_in_clamshell);
+  }
 
   // Shutdown() implies |overview_session_| is about to be deleted, so reset it.
   auto exit_overview_session_type =
@@ -480,10 +586,16 @@
       transition == OverviewSession::OverviewTransition::kEnter
           ? OVERVIEW_ANIMATION_LAYOUT_OVERVIEW_ITEMS_ON_ENTER
           : OVERVIEW_ANIMATION_LAYOUT_OVERVIEW_ITEMS_IN_OVERVIEW;
+
+  int animate_count = 0;
+  bool has_non_cover_animating = false;
+  OverviewAnimationType animation_types[rects.size()];
+
   for (size_t i = 0; i < window_list_.size(); ++i) {
     OverviewItem* window_item = window_list_[i].get();
     if (window_item->animating_to_close() ||
         (ignored_item != nullptr && window_item == ignored_item)) {
+      rects[i].SetRect(0, 0, 0, 0);
       continue;
     }
 
@@ -497,10 +609,37 @@
     // animation by ourselves.
     if (IsDropTargetWindow(window_item->GetWindow()))
       should_animate_item = false;
+    if (animate && transition == OverviewSession::OverviewTransition::kEnter) {
+      if (window_item->should_animate_when_entering() &&
+          !has_non_cover_animating) {
+        has_non_cover_animating |=
+            !CanCoverAvailableWorkspace(window_item->GetWindow());
+        animate_count++;
+      }
+    }
+    animation_types[i] =
+        should_animate_item ? animation_type : OVERVIEW_ANIMATION_NONE;
+  }
 
-    window_item->SetBounds(rects[i], should_animate_item
-                                         ? animation_type
-                                         : OVERVIEW_ANIMATION_NONE);
+  if (animate && transition == OverviewSession::OverviewTransition::kEnter &&
+      !window_list_.empty()) {
+    bool single_animation_in_clamshell =
+        animate_count == 1 && !has_non_cover_animating &&
+        !Shell::Get()
+             ->tablet_mode_controller()
+             ->IsTabletModeWindowManagerEnabled();
+    fps_counter_ = std::make_unique<OverviewEnterFpsCounter>(
+        window_list_[0]->GetWindow()->layer()->GetCompositor(),
+        single_animation_in_clamshell);
+  }
+
+  // Apply the animation after creating fps_counter_ so that unit test
+  // can correctly count the measure requests.
+  for (size_t i = 0; i < window_list_.size(); ++i) {
+    if (rects[i].IsEmpty())
+      continue;
+    OverviewItem* window_item = window_list_[i].get();
+    window_item->SetBounds(rects[i], animation_types[i]);
   }
 
   // If the selection widget is active, reposition it without any animation.
@@ -880,6 +1019,12 @@
   if (!prepared_for_overview_)
     return;
 
+  // |drop_target_widget_| will get its bounds set as opposed to its transform
+  // set in |OverviewItem::SetItemBounds| so do not position windows again when
+  // that particular window has its bounds changed.
+  if (drop_target_widget_ && window == drop_target_widget_->GetNativeWindow())
+    return;
+
   auto iter = GetOverviewItemIterContainingWindow(window);
   DCHECK(iter != window_list_.end());
 
@@ -946,7 +1091,11 @@
   Shell::Get()->overview_controller()->DelayedUpdateMaskAndShadow();
 }
 
-void OverviewGrid::OnStartingAnimationComplete() {
+void OverviewGrid::OnStartingAnimationComplete(bool canceled) {
+  fps_counter_.reset();
+  if (canceled)
+    return;
+
   if (!shield_widget_) {
     InitShieldWidget(/*animate=*/true);
     ShowNoRecentsWindowMessage(window_list_.empty());
diff --git a/ash/wm/overview/overview_grid.h b/ash/wm/overview/overview_grid.h
index dc8f5574..12dd2eb 100644
--- a/ash/wm/overview/overview_grid.h
+++ b/ash/wm/overview/overview_grid.h
@@ -31,6 +31,7 @@
 namespace ash {
 
 class DesksBarView;
+class FpsCounter;
 class OverviewItem;
 
 // Represents a grid of windows in the Overview Mode in a particular root
@@ -158,7 +159,7 @@
                                          bool canceled) override;
 
   // Called when overview starting animation completes.
-  void OnStartingAnimationComplete();
+  void OnStartingAnimationComplete(bool canceled);
 
   // Checks if the grid needs to have the wallpaper animated. Returns false if
   // one of the grids windows covers the the entire workspace, true otherwise.
@@ -387,6 +388,9 @@
   // non-empty if a nudge is in progress.
   std::vector<NudgeData> nudge_data_;
 
+  // Measures the animation smoothness of overview animation.
+  std::unique_ptr<FpsCounter> fps_counter_;
+
   // True to skip |PositionWindows()|. Used to avoid O(n^2) layout
   // when reposition windows in tablet overview mode.
   bool suspend_reposition_ = false;
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc
index f650750..9d60ac2 100644
--- a/ash/wm/overview/overview_session.cc
+++ b/ash/wm/overview/overview_session.cc
@@ -572,11 +572,12 @@
 }
 
 void OverviewSession::OnStartingAnimationComplete(bool canceled) {
+  for (auto& grid : grid_list_)
+    grid->OnStartingAnimationComplete(canceled);
+
   if (!canceled) {
     if (overview_focus_widget_)
       overview_focus_widget_->Show();
-    for (auto& grid : grid_list_)
-      grid->OnStartingAnimationComplete();
     Shell::Get()->overview_controller()->DelayedUpdateMaskAndShadow();
   }
 }
diff --git a/ash/wm/overview/overview_session.h b/ash/wm/overview/overview_session.h
index 59fe581..a89d419 100644
--- a/ash/wm/overview/overview_session.h
+++ b/ash/wm/overview/overview_session.h
@@ -37,11 +37,11 @@
 
 namespace ash {
 
+class OverviewDelegate;
+class OverviewGrid;
+class OverviewItem;
 class OverviewWindowDragController;
 class SplitViewDragIndicators;
-class OverviewGrid;
-class OverviewDelegate;
-class OverviewItem;
 
 enum class IndicatorState;
 
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index 0cf7945..916f8a5 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -14,6 +14,7 @@
 #include "ash/display/screen_orientation_controller.h"
 #include "ash/display/screen_orientation_controller_test_api.h"
 #include "ash/drag_drop/drag_drop_controller.h"
+#include "ash/public/cpp/fps_counter.h"
 #include "ash/public/cpp/window_properties.h"
 #include "ash/screen_util.h"
 #include "ash/shelf/shelf.h"
@@ -43,6 +44,7 @@
 #include "base/run_loop.h"
 #include "base/stl_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "base/test/metrics/user_action_tester.h"
 #include "services/ws/public/mojom/window_tree_constants.mojom.h"
 #include "ui/aura/client/aura_constants.h"
@@ -128,6 +130,7 @@
   OverviewSessionTest() = default;
   ~OverviewSessionTest() override = default;
 
+  // AshTestBase:
   void SetUp() override {
     AshTestBase::SetUp();
     Shell::Get()->aura_env()->set_throttle_input_on_resize_for_testing(false);
@@ -136,6 +139,12 @@
     shelf_view_test_api_->SetAnimationDuration(1);
     ScopedOverviewTransformWindow::SetImmediateCloseForTests();
     OverviewController::SetDoNotChangeWallpaperBlurForTests();
+    FpsCounter::SetFoceReportZeroAnimationForTest(true);
+  }
+  void TearDown() override {
+    FpsCounter::SetFoceReportZeroAnimationForTest(false);
+    trace_names_.clear();
+    AshTestBase::TearDown();
   }
 
   // Enters tablet mode. Needed by tests that test dragging and or splitview,
@@ -327,13 +336,46 @@
     return !!item->transform_window_.mask_;
   }
 
+  void CheckOverviewEnterExitHistogram(const char* trace,
+                                       std::vector<int>&& enter_counts,
+                                       std::vector<int>&& exit_counts) {
+    DCHECK(!base::ContainsValue(trace_names_, trace)) << trace;
+    trace_names_.push_back(trace);
+    {
+      SCOPED_TRACE(trace + std::string(".Enter"));
+      CheckOverviewHistogram("Ash.Overview.AnimationSmoothness.Enter",
+                             std::move(enter_counts));
+    }
+    {
+      SCOPED_TRACE(trace + std::string(".Exit"));
+      CheckOverviewHistogram("Ash.Overview.AnimationSmoothness.Exit",
+                             std::move(exit_counts));
+    }
+  }
+
   static void StubForTest(ExitWarningHandler* ewh) {
     ewh->stub_timer_for_test_ = true;
   }
   static bool is_ui_shown(ExitWarningHandler* ewh) { return !!ewh->widget_; }
 
  private:
+  void CheckOverviewHistogram(const char* histogram,
+                              std::vector<int>&& counts) {
+    ASSERT_EQ(3u, counts.size());
+    // There should be no histogram for split view.
+    histograms_.ExpectTotalCount(histogram + std::string(".SplitView"), 0);
+
+    histograms_.ExpectTotalCount(histogram + std::string(".ClamshellMode"),
+                                 counts[0]);
+    histograms_.ExpectTotalCount(
+        histogram + std::string(".SingleClamshellMode"), counts[1]);
+    histograms_.ExpectTotalCount(histogram + std::string(".TabletMode"),
+                                 counts[2]);
+  }
+
   std::unique_ptr<ShelfViewTestAPI> shelf_view_test_api_;
+  std::vector<std::string> trace_names_;
+  base::HistogramTester histograms_;
 
   DISALLOW_COPY_AND_ASSIGN(OverviewSessionTest);
 };
@@ -387,12 +429,14 @@
   // Hide the cursor before entering overview to test that it will be shown.
   aura::client::GetCursorClient(root_window)->HideCursor();
 
+  CheckOverviewEnterExitHistogram("Init", {0, 0, 0}, {0, 0, 0});
   // In overview mode the windows should no longer overlap and the overview
   // focus window should be focused.
   ToggleOverview();
   EXPECT_EQ(overview_session()->GetOverviewFocusWindow(),
             wm::GetFocusedWindow());
   EXPECT_FALSE(WindowsOverlapping(window1.get(), window2.get()));
+  CheckOverviewEnterExitHistogram("Enter", {1, 0, 0}, {0, 0, 0});
 
   // Clicking window 1 should activate it.
   ClickWindow(window1.get());
@@ -402,6 +446,8 @@
 
   // Cursor should have been unlocked.
   EXPECT_FALSE(aura::client::GetCursorClient(root_window)->IsCursorLocked());
+
+  CheckOverviewEnterExitHistogram("Exit", {1, 0, 0}, {1, 0, 0});
 }
 
 // Tests activating minimized window.
@@ -756,14 +802,48 @@
 
   // Enter overview and select the fullscreen window.
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("FullscreenWindowEnter1", {0, 1, 0},
+                                  {0, 0, 0});
   ClickWindow(window1.get());
   EXPECT_TRUE(wm::GetWindowState(window1.get())->IsFullscreen());
+  CheckOverviewEnterExitHistogram("FullscreenWindowExit1", {0, 1, 0},
+                                  {0, 1, 0});
 
   // Entering overview and selecting another window, the previous window remains
   // fullscreen.
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("FullscreenWindowEnter2", {0, 2, 0},
+                                  {0, 1, 0});
   ClickWindow(window2.get());
   EXPECT_TRUE(wm::GetWindowState(window1.get())->IsFullscreen());
+  CheckOverviewEnterExitHistogram("FullscreenWindowExit2", {0, 2, 0},
+                                  {1, 1, 0});
+}
+
+// Tests entering overview mode with maximized window.
+TEST_F(OverviewSessionTest, MaximizedWindow) {
+  std::unique_ptr<aura::Window> window1(CreateTestWindow());
+  std::unique_ptr<aura::Window> window2(CreateTestWindow());
+  ::wm::ActivateWindow(window1.get());
+
+  const wm::WMEvent maximize_event(wm::WM_EVENT_MAXIMIZE);
+  wm::GetWindowState(window1.get())->OnWMEvent(&maximize_event);
+  EXPECT_TRUE(wm::GetWindowState(window1.get())->IsMaximized());
+
+  // Enter overview and select the fullscreen window.
+  ToggleOverview();
+  CheckOverviewEnterExitHistogram("MaximizedWindowEnter1", {0, 1, 0},
+                                  {0, 0, 0});
+  ClickWindow(window1.get());
+  EXPECT_TRUE(wm::GetWindowState(window1.get())->IsMaximized());
+  CheckOverviewEnterExitHistogram("MaximizedWindowExit1", {0, 1, 0}, {0, 1, 0});
+
+  ToggleOverview();
+  CheckOverviewEnterExitHistogram("MaximizedWindowEnter2", {0, 2, 0},
+                                  {0, 1, 0});
+  ClickWindow(window2.get());
+  EXPECT_TRUE(wm::GetWindowState(window1.get())->IsMaximized());
+  CheckOverviewEnterExitHistogram("MaximizedWindowExit2", {0, 2, 0}, {1, 1, 0});
 }
 
 // Tests that entering overview when a fullscreen window is active in maximized
@@ -791,10 +871,11 @@
   display::Screen* screen = display::Screen::GetScreen();
   EXPECT_EQ(gfx::Rect(800, 600),
             screen->GetDisplayNearestWindow(window1.get()).work_area());
-
   ToggleOverview();
   EXPECT_EQ(fullscreen,
             screen->GetDisplayNearestWindow(window1.get()).work_area());
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletEnter1", {0, 0, 1},
+                                  {0, 0, 0});
 
   // Window 2 would normally resize to normal window bounds on showing the shelf
   // for overview but this is deferred until overview is exited.
@@ -806,17 +887,26 @@
   // Since the fullscreen window is still active, window2 will still have the
   // larger bounds.
   EXPECT_EQ(fullscreen_window_bounds, window2->GetTargetBounds());
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletExit1", {0, 0, 1},
+                                  {0, 0, 1});
 
   // Enter overview again and select window 2. Selecting window 2 should show
   // the shelf bringing window2 back to the normal bounds.
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletEnter2", {0, 0, 2},
+                                  {0, 0, 1});
+
   ClickWindow(window2.get());
   // Selecting non fullscreen window should set the work area back to normal.
   EXPECT_EQ(normal_work_area,
             screen->GetDisplayNearestWindow(window1.get()).work_area());
   EXPECT_EQ(normal_window_bounds, window2->GetTargetBounds());
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletExit2", {0, 0, 2},
+                                  {0, 0, 2});
 
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletEnter3", {0, 0, 3},
+                                  {0, 0, 2});
   EXPECT_EQ(normal_work_area,
             screen->GetDisplayNearestWindow(window1.get()).work_area());
   ClickWindow(window1.get());
@@ -824,6 +914,8 @@
   // well.
   EXPECT_EQ(fullscreen,
             screen->GetDisplayNearestWindow(window1.get()).work_area());
+  CheckOverviewEnterExitHistogram("FullscreenWindowTabletExit3", {0, 0, 3},
+                                  {0, 0, 3});
 }
 
 TEST_F(OverviewSessionTest, SkipOverviewWindow) {
diff --git a/ash/wm/overview/scoped_overview_animation_settings.cc b/ash/wm/overview/scoped_overview_animation_settings.cc
index f3eb9f07..620b0f31 100644
--- a/ash/wm/overview/scoped_overview_animation_settings.cc
+++ b/ash/wm/overview/scoped_overview_animation_settings.cc
@@ -97,10 +97,6 @@
   void Report(int value) override {
     UMA_HISTOGRAM_PERCENTAGE("Ash.WindowSelector.AnimationSmoothness.Enter",
                              value);
-    UMA_HISTOGRAM_PERCENTAGE_IN_CLAMSHELL(
-        "Ash.Overview.AnimationSmoothness.Enter.Clamshell", value);
-    UMA_HISTOGRAM_PERCENTAGE_IN_TABLET(
-        "Ash.Overview.AnimationSmoothness.Enter.Tablet", value);
   }
 
  private:
@@ -115,10 +111,6 @@
   void Report(int value) override {
     UMA_HISTOGRAM_PERCENTAGE("Ash.WindowSelector.AnimationSmoothness.Exit",
                              value);
-    UMA_HISTOGRAM_PERCENTAGE_IN_CLAMSHELL(
-        "Ash.Overview.AnimationSmoothness.Exit.Clamshell", value);
-    UMA_HISTOGRAM_PERCENTAGE_IN_TABLET(
-        "Ash.Overview.AnimationSmoothness.Exit.Table", value);
   }
 
  private:
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index ae37a37..a1a544b 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -270,7 +270,6 @@
 SplitViewController::SplitViewController() {
   Shell::Get()->accessibility_controller()->AddObserver(this);
   display::Screen::GetScreen()->AddObserver(this);
-  tablet_mode_observer_.Add(Shell::Get()->tablet_mode_controller());
 }
 
 SplitViewController::~SplitViewController() {
@@ -309,6 +308,7 @@
     Shell::Get()->AddShellObserver(this);
     Shell::Get()->overview_controller()->AddObserver(this);
     Shell::Get()->activation_client()->AddObserver(this);
+    Shell::Get()->tablet_mode_controller()->AddObserver(this);
     Shell::Get()->NotifySplitViewModeStarting();
 
     divider_position_ = GetDefaultDividerPosition(window);
@@ -590,6 +590,7 @@
   Shell::Get()->RemoveShellObserver(this);
   Shell::Get()->overview_controller()->RemoveObserver(this);
   Shell::Get()->activation_client()->RemoveObserver(this);
+  Shell::Get()->tablet_mode_controller()->RemoveObserver(this);
 
   StopObserving(LEFT);
   StopObserving(RIGHT);
@@ -614,7 +615,7 @@
 void SplitViewController::OnWindowDragStarted(aura::Window* dragged_window) {
   DCHECK(dragged_window);
   if (IsWindowInSplitView(dragged_window))
-    OnSnappedWindowDetached(dragged_window);
+    OnSnappedWindowDetached(dragged_window, /*window_drag=*/true);
 
   // OnSnappedWindowDetached() may end split view mode.
   if (IsSplitViewModeActive())
@@ -662,7 +663,7 @@
   auto iter = snapping_window_transformed_bounds_map_.find(window);
   if (iter != snapping_window_transformed_bounds_map_.end())
     snapping_window_transformed_bounds_map_.erase(iter);
-  OnSnappedWindowDetached(window);
+  OnSnappedWindowDetached(window, /*window_drag=*/false);
 }
 
 void SplitViewController::OnWindowPropertyChanged(aura::Window* window,
@@ -690,7 +691,7 @@
     EndSplitView();
     EndOverview();
   } else if (window_state->IsMinimized()) {
-    OnSnappedWindowDetached(window_state->window());
+    OnSnappedWindowDetached(window_state->window(), /*window_drag=*/false);
     // Insert the minimized window back to overview if split view mode is ended
     // because of the minimization of the window, but overview mode is still
     // active at the moment.
@@ -898,19 +899,10 @@
   UpdateSnappedWindowsAndDividerBounds();
 }
 
-void SplitViewController::OnTabletModeStarted() {
-  Shell::Get()->session_controller()->AddObserver(this);
-}
-
 void SplitViewController::OnTabletModeEnding() {
-  Shell::Get()->session_controller()->RemoveObserver(this);
   EndSplitView();
 }
 
-void SplitViewController::OnTabletControllerDestroyed() {
-  tablet_mode_observer_.RemoveAll();
-}
-
 void SplitViewController::OnAccessibilityStatusChanged() {
   // TODO(crubg.com/853588): Exit split screen if ChromeVox is turned on until
   // they are compatible.
@@ -918,50 +910,6 @@
     EndSplitView();
 }
 
-void SplitViewController::OnActiveUserSessionChanged(const AccountId&) {
-  // There is only one SplitViewController object for all user sessions, but
-  // functionally, each user session independently can be in split view or not.
-  // Here, a new user session has just been switched to, and if split view mode
-  // is active then it was for the previous user session. EndSplitView will
-  // perform some cleanup, including setting |left_window_| and |right_window_|
-  // to null, but the aura::Window objects will be left unchanged to facilitate
-  // switching back.
-  EndSplitView(EndReason::kActiveUserChanged);
-
-  // Search for snapped windows to detect if the now active user session was in
-  // split view. In case multiple windows were snapped to one side, one window
-  // after another, there may be multiple windows in a LEFT_SNAPPED state or
-  // multiple windows in a RIGHT_SNAPPED state. For each of those two state
-  // types that belongs to multiple windows, the relevant window will be listed
-  // first among those windows, and a null check in the loop body below will
-  // filter out the rest of them.
-  MruWindowTracker::WindowList windows =
-      Shell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal();
-  for (aura::Window* window : windows) {
-    switch (wm::GetWindowState(window)->GetStateType()) {
-      case mojom::WindowStateType::LEFT_SNAPPED:
-        if (left_window_ == nullptr)
-          SnapWindow(window, LEFT);
-        break;
-      case mojom::WindowStateType::RIGHT_SNAPPED:
-        if (right_window_ == nullptr)
-          SnapWindow(window, RIGHT);
-        break;
-      default:
-        break;
-    }
-    if (state_ == BOTH_SNAPPED)
-      break;
-  }
-
-  // Ensure that overview mode is active if and only if there is a window
-  // snapped to one side but no window snapped to the other side.
-  if (state_ == LEFT_SNAPPED || state_ == RIGHT_SNAPPED)
-    StartOverview();
-  else
-    EndOverview();
-}
-
 void SplitViewController::StartObserving(aura::Window* window) {
   if (window && !window->HasObserver(this)) {
     Shell::Get()->shadow_controller()->UpdateShadowForWindow(window);
@@ -1288,7 +1236,8 @@
   ActivateAndStackSnappedWindow(window);
 }
 
-void SplitViewController::OnSnappedWindowDetached(aura::Window* window) {
+void SplitViewController::OnSnappedWindowDetached(aura::Window* window,
+                                                  bool window_drag) {
   DCHECK(IsWindowInSplitView(window));
   if (left_window_ == window) {
     StopObserving(LEFT);
@@ -1311,7 +1260,7 @@
     // window, update its snap state and open overview window grid.
     default_snap_position_ = left_window_ ? LEFT : RIGHT;
     UpdateSplitViewStateAndNotifyObservers();
-    StartOverview();
+    StartOverview(window_drag);
   }
 }
 
@@ -1614,9 +1563,12 @@
   GetOverviewSession()->AddItem(window, /*reposition=*/true, /*animate=*/true);
 }
 
-void SplitViewController::StartOverview() {
-  if (!Shell::Get()->overview_controller()->IsSelecting())
-    Shell::Get()->overview_controller()->ToggleOverview();
+void SplitViewController::StartOverview(bool window_drag) {
+  if (!Shell::Get()->overview_controller()->IsSelecting()) {
+    Shell::Get()->overview_controller()->ToggleOverview(
+        window_drag ? OverviewSession::EnterExitOverviewType::kWindowDragged
+                    : OverviewSession::EnterExitOverviewType::kNormal);
+  }
 }
 
 void SplitViewController::EndOverview() {
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h
index ec738435c..f651bd3c 100644
--- a/ash/wm/splitview/split_view_controller.h
+++ b/ash/wm/splitview/split_view_controller.h
@@ -9,16 +9,13 @@
 #include "ash/ash_export.h"
 #include "ash/display/screen_orientation_controller.h"
 #include "ash/public/interfaces/split_view.mojom.h"
-#include "ash/session/session_observer.h"
 #include "ash/shell_observer.h"
 #include "ash/wm/overview/overview_observer.h"
-#include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_observer.h"
 #include "ash/wm/window_state_observer.h"
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/observer_list.h"
-#include "base/scoped_observer.h"
 #include "base/time/time.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
 #include "mojo/public/cpp/bindings/interface_ptr_set.h"
@@ -33,7 +30,6 @@
 }  // namespace ui
 
 namespace ash {
-class OverviewSession;
 class SplitViewControllerTest;
 class SplitViewDivider;
 class SplitViewOverviewSessionTest;
@@ -50,8 +46,7 @@
                                        public OverviewObserver,
                                        public display::DisplayObserver,
                                        public TabletModeObserver,
-                                       public AccessibilityObserver,
-                                       public SessionObserver {
+                                       public AccessibilityObserver {
  public:
   enum State { NO_SNAP, LEFT_SNAPPED, RIGHT_SNAPPED, BOTH_SNAPPED };
 
@@ -183,16 +178,11 @@
                                uint32_t metrics) override;
 
   // TabletModeObserver:
-  void OnTabletModeStarted() override;
   void OnTabletModeEnding() override;
-  void OnTabletControllerDestroyed() override;
 
   // AccessibilityObserver:
   void OnAccessibilityStatusChanged() override;
 
-  // SessionObserver:
-  void OnActiveUserSessionChanged(const AccountId& account_id) override;
-
   aura::Window* left_window() { return left_window_; }
   aura::Window* right_window() { return right_window_; }
   int divider_position() const { return divider_position_; }
@@ -288,8 +278,9 @@
   // window side of the screen. If there is only one snapped windows, closing/
   // minimizing/tab-dragging the sanpped window will end split view mode and
   // adjust the overview window grid bounds if the overview mode is active at
-  // that moment.
-  void OnSnappedWindowDetached(aura::Window* window);
+  // that moment. |window_drag| is true if the window was detached as a result
+  // of dragging.
+  void OnSnappedWindowDetached(aura::Window* window, bool window_drag);
 
   // If the desired bounds of the snapped windows bounds |left_or_top_rect| and
   // |right_or_bottom_rect| are smaller than the minimum bounds of the snapped
@@ -355,7 +346,7 @@
   void InsertWindowToOverview(aura::Window* window);
 
   // Starts/Ends overview mode if the overview mode is inactive/active.
-  void StartOverview();
+  void StartOverview(bool window_drag = false);
   void EndOverview();
 
   // Finalizes and cleans up after stopping dragging the divider bar to resize
@@ -451,8 +442,6 @@
 
   base::ObserverList<Observer>::Unchecked observers_;
   mojo::InterfacePtrSet<mojom::SplitViewObserver> mojo_observers_;
-  ScopedObserver<TabletModeController, TabletModeObserver>
-      tablet_mode_observer_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SplitViewController);
 };
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index d2225a4..bda687ce 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -9,6 +9,7 @@
 #include "ash/display/screen_orientation_controller_test_api.h"
 #include "ash/magnifier/docked_magnifier_controller.h"
 #include "ash/public/cpp/app_types.h"
+#include "ash/public/cpp/fps_counter.h"
 #include "ash/public/cpp/window_properties.h"
 #include "ash/root_window_controller.h"
 #include "ash/screen_util.h"
@@ -40,6 +41,7 @@
 #include "ash/wm/window_util.h"
 #include "ash/wm/wm_event.h"
 #include "base/stl_util.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "services/ws/public/mojom/window_tree_constants.mojom.h"
 #include "ui/aura/client/aura_constants.h"
 #include "ui/aura/test/test_window_delegate.h"
@@ -123,6 +125,12 @@
     // mode.
     base::RunLoop().RunUntilIdle();
     Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(true);
+    FpsCounter::SetFoceReportZeroAnimationForTest(true);
+  }
+  void TearDown() override {
+    FpsCounter::SetFoceReportZeroAnimationForTest(false);
+    trace_names_.clear();
+    AshTestBase::TearDown();
   }
 
   aura::Window* CreateWindow(
@@ -197,7 +205,38 @@
     void OnWindowDestroyed(aura::Window* window) override { delete this; }
   };
 
+  void CheckOverviewEnterExitHistogram(const char* trace,
+                                       std::vector<int>&& enter_counts,
+                                       std::vector<int>&& exit_counts) {
+    DCHECK(!base::ContainsValue(trace_names_, trace)) << trace;
+    trace_names_.push_back(trace);
+    {
+      SCOPED_TRACE(trace + std::string(".Enter"));
+      CheckOverviewHistogram("Ash.Overview.AnimationSmoothness.Enter",
+                             std::move(enter_counts));
+    }
+    {
+      SCOPED_TRACE(trace + std::string(".Exit"));
+      CheckOverviewHistogram("Ash.Overview.AnimationSmoothness.Exit",
+                             std::move(exit_counts));
+    }
+  }
+
  private:
+  void CheckOverviewHistogram(const char* histogram, std::vector<int> counts) {
+    // These two events should never happen in this test.
+    histograms_.ExpectTotalCount(histogram + std::string(".ClamshellMode"), 0);
+    histograms_.ExpectTotalCount(
+        histogram + std::string(".SingleClamshellMode"), 0);
+
+    histograms_.ExpectTotalCount(histogram + std::string(".TabletMode"),
+                                 counts[0]);
+    histograms_.ExpectTotalCount(histogram + std::string(".SplitView"),
+                                 counts[1]);
+  }
+  std::vector<std::string> trace_names_;
+  base::HistogramTester histograms_;
+
   DISALLOW_COPY_AND_ASSIGN(SplitViewControllerTest);
 };
 
@@ -504,6 +543,8 @@
   EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), false);
 
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("EnterInTablet", {1, 0}, {0, 0});
+
   split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
   EXPECT_EQ(split_view_controller()->IsSplitViewModeActive(), true);
   EXPECT_EQ(split_view_controller()->state(),
@@ -514,6 +555,7 @@
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::BOTH_SNAPPED);
   EXPECT_EQ(split_view_controller()->right_window(), window3.get());
+  CheckOverviewEnterExitHistogram("ExitInSplitView", {1, 0}, {0, 1});
 }
 
 // Tests that if split view mode is active when entering overview, the overview
@@ -533,11 +575,15 @@
   EXPECT_EQ(split_view_controller()->GetDefaultSnappedWindow(), window1.get());
 
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("EnterInSplitView", {0, 1}, {0, 0});
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::LEFT_SNAPPED);
   EXPECT_FALSE(
       base::ContainsValue(GetWindowsInOverviewGrids(),
                           split_view_controller()->GetDefaultSnappedWindow()));
+
+  ToggleOverview();
+  CheckOverviewEnterExitHistogram("ExitInSplitView", {0, 1}, {0, 1});
 }
 
 // Tests that the split divider was created when the split view mode is active
@@ -1204,6 +1250,7 @@
   ToggleOverview();
   ASSERT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
   ASSERT_FALSE(split_view_controller()->IsSplitViewModeActive());
+  CheckOverviewEnterExitHistogram("EnterInTablet", {1, 0}, {0, 0});
 
   // Nothing happens if there is only one window.
   LongPressOnOverivewButtonTray();
@@ -1213,13 +1260,18 @@
   // enter splitview.
   std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
   wm::ActivateWindow(window2.get());
+  CheckOverviewEnterExitHistogram("ExitByActivation", {1, 0}, {1, 0});
+
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("EnterInTablet2", {2, 0}, {1, 0});
   ASSERT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
   ASSERT_FALSE(split_view_controller()->IsSplitViewModeActive());
 
   LongPressOnOverivewButtonTray();
   EXPECT_TRUE(split_view_controller()->IsSplitViewModeActive());
   EXPECT_EQ(window2.get(), split_view_controller()->left_window());
+  // This scenario should not trigger animation.
+  CheckOverviewEnterExitHistogram("NoTransition", {2, 0}, {1, 0});
 }
 
 TEST_F(SplitViewControllerTest, LongPressWithUnsnappableWindow) {
@@ -1911,6 +1963,7 @@
   ToggleOverview();
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_TRUE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("NormalEnterExit", {1, 0}, {1, 0});
 
   // 2) If overview is ended because of activating a window:
   ToggleOverview();
@@ -1918,6 +1971,7 @@
   wm::ActivateWindow(window1.get());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_TRUE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("EnterExitByActivation", {2, 0}, {2, 0});
 
   // 3) If overview is ended because of snapping a window:
   split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
@@ -1928,19 +1982,25 @@
   EXPECT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
   // Test |overview_animate_when_exiting_| has been properly reset.
   EXPECT_TRUE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("EnterInSplitView", {2, 1}, {2, 0});
+
   split_view_controller()->SnapWindow(window2.get(),
                                       SplitViewController::RIGHT);
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_FALSE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("ExitBySnap", {2, 1}, {2, 1});
 
   // 4) If ending overview causes a window to snap:
   ToggleOverview();
   EXPECT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
   // Test |overview_animate_when_exiting_| has been properly reset.
   EXPECT_TRUE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("EnterInSplitView2", {2, 2}, {2, 1});
+
   ToggleOverview();
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_FALSE(overview_observer->overview_animate_when_exiting());
+  CheckOverviewEnterExitHistogram("ExitInSplitView", {2, 2}, {2, 2});
 }
 
 // Test the window state is normally maximized on splitview end, except when we
@@ -2794,6 +2854,8 @@
   EXPECT_FALSE(overview_session->IsWindowInOverview(window1.get()));
   EXPECT_FALSE(overview_session->IsWindowInOverview(window2.get()));
   EXPECT_TRUE(overview_session->IsWindowInOverview(window3.get()));
+  // Drag to enter doesn't trigger animation.
+  CheckOverviewEnterExitHistogram("EnterInSplitViewByDrag", {0, 0}, {0, 0});
 
   // 1.a. If the window is only dragged for a small distance, the window will
   // be put back to its original position. Overview mode will be ended.
@@ -2804,6 +2866,7 @@
   EXPECT_EQ(split_view_controller()->left_window(), window1.get());
   EXPECT_EQ(split_view_controller()->right_window(), window2.get());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("ExitInSplitViewByDrag", {0, 0}, {0, 1});
 
   // 1.b. If the window is dragged long enough, it can replace the other split
   // window.
@@ -2814,6 +2877,8 @@
   // Preview window shows up on overview side of screen.
   EXPECT_EQ(GetIndicatorState(resizer.get()),
             IndicatorState::kPreviewAreaRight);
+  CheckOverviewEnterExitHistogram("EnterInSplitViewByDrag2", {0, 0}, {0, 1});
+
   CompleteDrag(std::move(resizer));
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::RIGHT_SNAPPED);
@@ -2823,10 +2888,13 @@
   EXPECT_FALSE(overview_session->IsWindowInOverview(window1.get()));
   EXPECT_TRUE(overview_session->IsWindowInOverview(window2.get()));
   EXPECT_TRUE(overview_session->IsWindowInOverview(window3.get()));
+  // Still in overview.
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitViewByDrag", {0, 0}, {0, 1});
   // Snap |window2| again to test 1.c.
   split_view_controller()->SnapWindow(window2.get(), SplitViewController::LEFT);
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::BOTH_SNAPPED);
+  CheckOverviewEnterExitHistogram("ExitInSplitViewBySnap", {0, 0}, {0, 2});
 
   // 1.c. If the dragged window is destroyed during dragging (may happen due to
   // all its tabs are attached into another window), nothing changes.
@@ -2835,6 +2903,7 @@
             SplitViewController::LEFT_SNAPPED);
   ASSERT_TRUE(resizer.get());
   EXPECT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("EnterInSplitViewByDrag3", {0, 0}, {0, 2});
   resizer->Drag(gfx::Point(100, 100), 0);
   resizer->CompleteDrag();
   resizer.reset();
@@ -2842,6 +2911,9 @@
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::LEFT_SNAPPED);
   EXPECT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
+  // Still in overview.
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitViewByDrag3", {0, 0},
+                                  {0, 2});
 
   // Recreate |window1| and snap it to test the following senarioes.
   window1.reset(CreateWindowWithType(bounds, AppType::BROWSER));
@@ -2851,6 +2923,7 @@
             SplitViewController::BOTH_SNAPPED);
   EXPECT_EQ(split_view_controller()->left_window(), window2.get());
   EXPECT_EQ(split_view_controller()->right_window(), window1.get());
+  CheckOverviewEnterExitHistogram("ExitInSplitViewBySnap2", {0, 0}, {0, 3});
 
   // 2. If the dragged window is not the source window:
   // In this case, |window3| can be regarded as a window that originates from
@@ -2866,6 +2939,9 @@
   EXPECT_EQ(window2->GetBoundsInScreen(),
             split_view_controller()->GetSnappedWindowBoundsInScreen(
                 window2.get(), SplitViewController::LEFT));
+  // Not in overview.
+  CheckOverviewEnterExitHistogram("DoNotEnterInSplitViewByDrag", {0, 0},
+                                  {0, 3});
 
   // 2.a. If the window is only dragged for a small amount of distance, it will
   // replace the same side of the split window that it originates from.
@@ -2886,6 +2962,8 @@
   EXPECT_EQ(split_view_controller()->left_window(), window3.get());
   EXPECT_EQ(split_view_controller()->right_window(), window1.get());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("DoNotEnterInSplitViewByDrag2", {0, 0},
+                                  {0, 3});
 
   // 2.b. If the window is dragged long enough, it can replace the other side of
   // the split window.
@@ -2896,9 +2974,16 @@
   EXPECT_EQ(split_view_controller()->left_window(), window3.get());
   EXPECT_EQ(split_view_controller()->right_window(), window1.get());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("DoNotEnterInSplitViewByDrag3", {0, 0},
+                                  {0, 3});
+
   DragWindowTo(resizer.get(), gfx::Point(0, 300));
   // Preview window shows up on overview side of screen.
   EXPECT_EQ(GetIndicatorState(resizer.get()), IndicatorState::kPreviewAreaLeft);
+  EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("DoNotEnterInSplitViewByDrag4", {0, 0},
+                                  {0, 3});
+
   CompleteDrag(std::move(resizer));
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::BOTH_SNAPPED);
@@ -2931,6 +3016,7 @@
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::LEFT_SNAPPED);
   EXPECT_EQ(split_view_controller()->left_window(), window1.get());
+  CheckOverviewEnterExitHistogram("EnterInSplitView", {0, 1}, {0, 0});
 
   // 1. If the dragged window is the source window:
   std::unique_ptr<WindowResizer> resizer =
@@ -2949,10 +3035,14 @@
   DragWindowTo(resizer.get(),
                gfx::Point(200, GetIndicatorsThreshold(window1.get())));
   EXPECT_EQ(GetIndicatorState(resizer.get()), IndicatorState::kDragArea);
+  EXPECT_FALSE(split_view_controller()->IsSplitViewModeActive());
   CompleteDrag(std::move(resizer));
   EXPECT_TRUE(wm::GetWindowState(window1.get())->IsMaximized());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_FALSE(split_view_controller()->IsSplitViewModeActive());
+  // It exits SplitView during drag, so exit animation is performed in tablet
+  // mode.
+  CheckOverviewEnterExitHistogram("ExitInSplitViewToTablet", {0, 1}, {1, 0});
 
   // 1.b. If the window is dragged long enough, it can be snappped again.
   // Prepare the testing senario first.
@@ -2960,10 +3050,14 @@
   split_view_controller()->SnapWindow(window2.get(),
                                       SplitViewController::RIGHT);
   ToggleOverview();
+  CheckOverviewEnterExitHistogram("EnterInSplitView2", {0, 2}, {1, 0});
+
   resizer = StartDrag(window1.get(), window1.get());
   ASSERT_TRUE(resizer.get());
   EXPECT_TRUE(Shell::Get()->overview_controller()->IsSelecting());
   EXPECT_FALSE(split_view_controller()->IsSplitViewModeActive());
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitView2", {0, 2}, {1, 0});
+
   DragWindowTo(resizer.get(), gfx::Point(0, 300));
   EXPECT_EQ(GetIndicatorState(resizer.get()), IndicatorState::kPreviewAreaLeft);
   CompleteDrag(std::move(resizer));
@@ -2975,6 +3069,7 @@
       Shell::Get()->overview_controller()->overview_session();
   EXPECT_TRUE(overview_session->IsWindowInOverview(window2.get()));
   EXPECT_TRUE(overview_session->IsWindowInOverview(window3.get()));
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitView3", {0, 2}, {1, 0});
 
   // 2. If the dragged window is not the source window:
   // Prepare the testing senario first. Remove |window2| from overview first
@@ -2985,6 +3080,7 @@
   overview_session->RemoveOverviewItem(
       current_grid->GetOverviewItemContaining(window2.get()),
       /*reposition=*/false);
+
   resizer = StartDrag(window2.get(), window1.get());
   ASSERT_TRUE(resizer.get());
   EXPECT_EQ(GetIndicatorState(resizer.get()), IndicatorState::kNone);
@@ -3000,6 +3096,7 @@
   EXPECT_EQ(window1->GetBoundsInScreen(),
             split_view_controller()->GetSnappedWindowBoundsInScreen(
                 window1.get(), SplitViewController::LEFT));
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitView4", {0, 2}, {1, 0});
 
   // 2.a. The dragged window can replace the only snapped window in the split
   // screen. After that, the old snapped window will be put back in overview.
@@ -3014,6 +3111,7 @@
   overview_session = Shell::Get()->overview_controller()->overview_session();
   EXPECT_TRUE(overview_session->IsWindowInOverview(window1.get()));
   EXPECT_TRUE(overview_session->IsWindowInOverview(window3.get()));
+  CheckOverviewEnterExitHistogram("DoNotExitInSplitView5", {0, 2}, {1, 0});
 
   // 2.b. The dragged window can snap to the other side of the splitscreen,
   // causing overview mode to end.
@@ -3033,6 +3131,7 @@
   EXPECT_EQ(split_view_controller()->left_window(), window2.get());
   EXPECT_EQ(split_view_controller()->right_window(), window1.get());
   EXPECT_FALSE(Shell::Get()->overview_controller()->IsSelecting());
+  CheckOverviewEnterExitHistogram("ExitInSplitView", {0, 2}, {1, 1});
 }
 
 // Test that if a window is in tab-dragging process when overview is open, the
diff --git a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
index 909eb46..e0a87b2 100644
--- a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
+++ b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
@@ -11,7 +11,7 @@
 #include "ash/root_window_controller.h"
 #include "ash/scoped_animation_disabler.h"
 #include "ash/shell.h"
-#include "ash/wallpaper/wallpaper_controller.h"
+#include "ash/wallpaper/wallpaper_view.h"
 #include "ash/wallpaper/wallpaper_widget_controller.h"
 #include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/overview/overview_constants.h"
@@ -43,29 +43,6 @@
 // window after drag ends and do not try to merge it back into source window.
 constexpr float kFlingToStayAsNewWindowThreshold = 2000.f;
 
-// The color and opacity of the screen shield.
-constexpr SkColor kShieldColor = SkColorSetARGB(255, 0, 0, 0);
-
-// The base color which is mixed with the dark muted color from wallpaper to
-// form the shield widgets color.
-constexpr SkColor kShieldBaseColor = SkColorSetARGB(179, 0, 0, 0);
-
-// Returns the shield color that is used to darken the background.
-SkColor GetShieldColor() {
-  SkColor shield_color = kShieldColor;
-  // Extract the dark muted color from the wallpaper and mix it with
-  // |kShieldBaseColor|. Just use |kShieldBaseColor| if the dark muted color
-  // could not be extracted.
-  SkColor dark_muted_color =
-      Shell::Get()->wallpaper_controller()->GetProminentColor(
-          color_utils::ColorProfile());
-  if (dark_muted_color != ash::kInvalidWallpaperColor) {
-    shield_color =
-        color_utils::GetResultingPaintColor(kShieldBaseColor, dark_muted_color);
-  }
-  return shield_color;
-}
-
 // The class to observe the source window's bounds change animation. It's used
 // to prevent the dragged window to merge back into the source window during
 // dragging. Only when the source window restores to its maximized window size,
@@ -173,25 +150,14 @@
     // Hide the home launcher if it's enabled during dragging.
     Shell::Get()->home_screen_controller()->OnWindowDragStarted();
 
-    // TODO: Do dimming and blurring in wallpaper to avoid creating another
-    // fullscreen widget. Blurs the wallpaper background.
-    RootWindowController::ForWindow(root_window)
-        ->wallpaper_widget_controller()
-        ->SetWallpaperBlur(kWallpaperBlurSigma);
-
-    // Darken the background.
-    shield_widget_ = CreateBackgroundWidget(
-        root_window, ui::LAYER_SOLID_COLOR, SK_ColorTRANSPARENT, 0, 0,
-        SK_ColorTRANSPARENT, /*initial_opacity*/ 1.f, /*parent=*/nullptr,
-        /*stack_on_top=*/true, /*accept_events=*/false);
-    aura::Window* widget_window = shield_widget_->GetNativeWindow();
-    const gfx::Rect bounds = widget_window->parent()->bounds();
-    widget_window->SetBounds(bounds);
-    views::View* shield_view = new views::View();
-    shield_view->SetPaintToLayer(ui::LAYER_SOLID_COLOR);
-    shield_view->layer()->SetColor(GetShieldColor());
-    shield_view->layer()->SetOpacity(kShieldOpacity);
-    shield_widget_->SetContentsView(shield_view);
+    // Blurs the wallpaper background.
+    auto* wallpaper_view = RootWindowController::ForWindow(root_window)
+                               ->wallpaper_widget_controller()
+                               ->wallpaper_view();
+    if (wallpaper_view) {
+      wallpaper_view->RepaintBlurAndOpacity(kWallpaperBlurSigma,
+                                            kShieldOpacity);
+    }
   }
 
   ~WindowsHider() override {
@@ -216,12 +182,12 @@
     Shell::Get()->home_screen_controller()->OnWindowDragEnded();
 
     // Clears the background wallpaper blur.
-    RootWindowController::ForWindow(dragged_window_->GetRootWindow())
-        ->wallpaper_widget_controller()
-        ->SetWallpaperBlur(kWallpaperClearBlurSigma);
-
-    // Clears the background darken widget.
-    shield_widget_.reset();
+    auto* wallpaper_view =
+        RootWindowController::ForWindow(dragged_window_->GetRootWindow())
+            ->wallpaper_widget_controller()
+            ->wallpaper_view();
+    if (wallpaper_view)
+      wallpaper_view->RepaintBlurAndOpacity(kWallpaperClearBlurSigma, 1.f);
   }
 
   // aura::WindowObserver:
@@ -247,10 +213,6 @@
   // lifetime of |this|.
   aura::Window* dragged_window_;
 
-  // A shield that darkens the entire background during dragging. It should
-  // have the same effect as in overview.
-  std::unique_ptr<views::Widget> shield_widget_;
-
   // Maintains the map between windows and their visibilities. All windows
   // except the dragged window and the source window should stay hidden during
   // dragging.
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.cc b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
index 6db6871e..1e184735 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.cc
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.cc
@@ -10,10 +10,12 @@
 #include "ash/public/cpp/ash_switches.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
+#include "ash/session/session_controller.h"
 #include "ash/shell.h"
 #include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/overview/overview_controller.h"
 #include "ash/wm/overview/overview_session.h"
+#include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/splitview/split_view_utils.h"
 #include "ash/wm/tablet_mode/scoped_skip_user_session_blocked_check.h"
 #include "ash/wm/tablet_mode/tablet_mode_backdrop_delegate_impl.h"
@@ -42,6 +44,32 @@
   return false;
 }
 
+// Returns true if windows[i] exists, can snap in split view, and is not ARC. A
+// window snapped in clamshell mode must meet these criteria to potentially
+// carry over into tablet mode split view. We want ARC windows to be included,
+// but there is an obstacle (see https://crbug.com/922282 and
+// https://buganizer.corp.google.com/issues/123432223).
+bool IsCandidateForSplitView(const MruWindowTracker::WindowList& windows,
+                             size_t i) {
+  return windows.size() > i && CanSnapInSplitview(windows[i]) &&
+         static_cast<ash::AppType>(windows[i]->GetProperty(
+             aura::client::kAppType)) != AppType::ARC_APP;
+}
+
+// Iterates over |windows| and |positions| in parallel, up to the length of
+// |positions| (assumed not to exceed the length of |windows|), snapping the
+// windows in the positions.
+void DoSplitView(
+    const MruWindowTracker::WindowList& windows,
+    const std::vector<SplitViewController::SnapPosition>& positions) {
+  DCHECK_GE(windows.size(), positions.size());
+
+  SplitViewController* split_view_controller =
+      Shell::Get()->split_view_controller();
+  for (size_t i = 0u; i < positions.size(); ++i)
+    split_view_controller->SnapWindow(windows[i], positions[i]);
+}
+
 }  // namespace
 
 TabletModeWindowManager::~TabletModeWindowManager() {
@@ -56,6 +84,7 @@
   Shell::Get()->overview_controller()->RemoveObserver(this);
   display::Screen::GetScreen()->RemoveObserver(this);
   Shell::Get()->split_view_controller()->RemoveObserver(this);
+  Shell::Get()->session_controller()->RemoveObserver(this);
   EnableBackdropBehindTopWindowOnEachDisplay(false);
   RemoveWindowCreationObservers();
   ArrangeWindowsForDesktopMode(was_in_overview);
@@ -262,6 +291,78 @@
   }
 }
 
+void TabletModeWindowManager::OnActiveUserSessionChanged(
+    const AccountId& account_id) {
+  SplitViewController* split_view_controller =
+      Shell::Get()->split_view_controller();
+
+  // There is only one SplitViewController object for all user sessions, but
+  // functionally, each user session independently can be in split view or not.
+  // Here, a new user session has just been switched to, and if split view mode
+  // is active then it was for the previous user session.
+  // SplitViewController::EndSplitView() will perform some cleanup, including
+  // setting |SplitViewController::left_window_| and
+  // |SplitViewController::right_window_| to null, but the aura::Window objects
+  // will be left unchanged to facilitate switching back.
+  split_view_controller->EndSplitView(
+      SplitViewController::EndReason::kActiveUserChanged);
+
+  // If a user session is now active for the first time since clamshell mode,
+  // then do the logic for carrying over snapped windows. Else recreate the
+  // split view layout from the last time the current user session was active.
+  if (accounts_since_entering_tablet_.count(account_id) == 0u) {
+    MruWindowTracker::WindowList windows =
+        Shell::Get()->mru_window_tracker()->BuildWindowForCycleList();
+    DoSplitView(windows, GetSnapPositions(windows));
+    accounts_since_entering_tablet_.insert(account_id);
+  } else {
+    // Search for snapped windows to detect if the now active user session was
+    // in split view. In case multiple windows were snapped to one side, one
+    // window after another, there may be multiple windows in a LEFT_SNAPPED
+    // state or multiple windows in a RIGHT_SNAPPED state. For each of those two
+    // state types that belongs to multiple windows, the relevant window will be
+    // listed first among those windows, and a null check in the loop body below
+    // will filter out the rest of them.
+    // TODO(amusbach): The windows that were in split view may have later been
+    // destroyed or changed to non-snapped states. Then the following for loop
+    // could snap windows that were not in split view. Also, a window may have
+    // become full screen, and if so, then it would be better not to reactivate
+    // split view. See https://crbug.com/944134.
+    MruWindowTracker::WindowList windows =
+        Shell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal();
+    for (aura::Window* window : windows) {
+      switch (wm::GetWindowState(window)->GetStateType()) {
+        case mojom::WindowStateType::LEFT_SNAPPED:
+          if (split_view_controller->left_window() == nullptr) {
+            split_view_controller->SnapWindow(window,
+                                              SplitViewController::LEFT);
+          }
+          break;
+        case mojom::WindowStateType::RIGHT_SNAPPED:
+          if (split_view_controller->right_window() == nullptr) {
+            split_view_controller->SnapWindow(window,
+                                              SplitViewController::RIGHT);
+          }
+          break;
+        default:
+          break;
+      }
+      if (split_view_controller->state() == SplitViewController::BOTH_SNAPPED)
+        break;
+    }
+  }
+
+  // Ensure that overview mode is active if and only if there is a window
+  // snapped to one side but no window snapped to the other side.
+  OverviewController* overview_controller = Shell::Get()->overview_controller();
+  SplitViewController::State state = split_view_controller->state();
+  if (overview_controller->IsSelecting() !=
+      (state == SplitViewController::LEFT_SNAPPED ||
+       state == SplitViewController::RIGHT_SNAPPED)) {
+    overview_controller->ToggleOverview();
+  }
+}
+
 void TabletModeWindowManager::SetIgnoreWmEventsForExit() {
   for (auto& pair : window_state_map_)
     pair.second->set_ignore_wm_events(true);
@@ -279,9 +380,54 @@
   Shell::Get()->AddShellObserver(this);
   Shell::Get()->overview_controller()->AddObserver(this);
   Shell::Get()->split_view_controller()->AddObserver(this);
+  Shell::Get()->session_controller()->AddObserver(this);
+  accounts_since_entering_tablet_.insert(
+      Shell::Get()->session_controller()->GetActiveAccountId());
   event_handler_ = std::make_unique<wm::TabletModeEventHandler>();
 }
 
+mojom::WindowStateType TabletModeWindowManager::GetDesktopWindowStateType(
+    aura::Window* window) const {
+  auto iter = window_state_map_.find(window);
+  return iter == window_state_map_.end()
+             ? wm::GetWindowState(window)->GetStateType()
+             : iter->second->old_state()->GetType();
+}
+
+std::vector<SplitViewController::SnapPosition>
+TabletModeWindowManager::GetSnapPositions(
+    const MruWindowTracker::WindowList& windows) const {
+  std::vector<SplitViewController::SnapPosition> result;
+  if (!IsCandidateForSplitView(windows, 0u))
+    return result;
+  switch (GetDesktopWindowStateType(windows[0])) {
+    case mojom::WindowStateType::LEFT_SNAPPED:
+      // windows[0] was snapped on the left in desktop mode. Snap windows[0] on
+      // the left in split view. If windows[1] was snapped on the right in
+      // desktop mode, then snap windows[1] on the right in split view.
+      result.push_back(SplitViewController::LEFT);
+      if (IsCandidateForSplitView(windows, 1u) &&
+          GetDesktopWindowStateType(windows[1]) ==
+              mojom::WindowStateType::RIGHT_SNAPPED) {
+        result.push_back(SplitViewController::RIGHT);
+      }
+      return result;
+    case mojom::WindowStateType::RIGHT_SNAPPED:
+      // windows[0] was snapped on the right in desktop mode. Snap windows[0] on
+      // the right in split view. If windows[1] was snapped on the left in
+      // desktop mode, then snap windows[1] on the left in split view.
+      result.push_back(SplitViewController::RIGHT);
+      if (IsCandidateForSplitView(windows, 1u) &&
+          GetDesktopWindowStateType(windows[1]) ==
+              mojom::WindowStateType::LEFT_SNAPPED) {
+        result.push_back(SplitViewController::LEFT);
+      }
+      return result;
+    default:
+      return result;
+  }
+}
+
 void TabletModeWindowManager::ArrangeWindowsForTabletMode() {
   // |split_view_eligible_windows| is for determining split view layout.
   // |activatable_windows| includes all windows to be tracked, and that includes
@@ -292,54 +438,19 @@
   MruWindowTracker::WindowList activatable_windows =
       Shell::Get()->mru_window_tracker()->BuildWindowListIgnoreModal();
 
-  // If split_view_eligible_windows[0] does not exist, cannot be snapped in
-  // split view, or is ARC or not snapped, then just maximize all windows.
-  if (split_view_eligible_windows.empty() ||
-      !CanSnapInSplitview(split_view_eligible_windows[0]) ||
-      static_cast<ash::AppType>(split_view_eligible_windows[0]->GetProperty(
-          aura::client::kAppType)) == AppType::ARC_APP ||
-      !wm::GetWindowState(split_view_eligible_windows[0])->IsSnapped()) {
+  // Determine the desired split view layout.
+  const std::vector<SplitViewController::SnapPosition> snap_positions =
+      GetSnapPositions(split_view_eligible_windows);
+
+  // If split view is not appropriate, then maximize all windows and bail out.
+  if (snap_positions.empty()) {
     for (auto* window : activatable_windows)
       TrackWindow(window);
     return;
   }
 
-  // Carry over split_view_eligible_windows[0] to split view, along with
-  // split_view_eligible_windows[1] if it exists, is snapped on the opposite
-  // side, can be snapped in split view, and is not ARC.
-  const bool prev_win_eligible =
-      split_view_eligible_windows.size() > 1u &&
-      CanSnapInSplitview(split_view_eligible_windows[1]) &&
-      static_cast<ash::AppType>(split_view_eligible_windows[1]->GetProperty(
-          aura::client::kAppType)) != AppType::ARC_APP;
-  std::vector<SplitViewController::SnapPosition> snap_positions;
-  if (wm::GetWindowState(split_view_eligible_windows[0])->GetStateType() ==
-      mojom::WindowStateType::LEFT_SNAPPED) {
-    // split_view_eligible_windows[0] goes on the left.
-    snap_positions.push_back(SplitViewController::LEFT);
-
-    if (prev_win_eligible &&
-        wm::GetWindowState(split_view_eligible_windows[1])->GetStateType() ==
-            mojom::WindowStateType::RIGHT_SNAPPED) {
-      // split_view_eligible_windows[1] goes on the right.
-      snap_positions.push_back(SplitViewController::RIGHT);
-    }
-  } else {
-    DCHECK_EQ(
-        mojom::WindowStateType::RIGHT_SNAPPED,
-        wm::GetWindowState(split_view_eligible_windows[0])->GetStateType());
-
-    // split_view_eligible_windows[0] goes on the right.
-    snap_positions.push_back(SplitViewController::RIGHT);
-
-    if (prev_win_eligible &&
-        wm::GetWindowState(split_view_eligible_windows[1])->GetStateType() ==
-            mojom::WindowStateType::LEFT_SNAPPED) {
-      // split_view_eligible_windows[1] goes on the left.
-      snap_positions.push_back(SplitViewController::LEFT);
-    }
-  }
-
+  // Carry over the state types of the windows that shall be in split view.
+  // Maximize all other windows. Do not animate any window bounds updates.
   for (auto* window : activatable_windows) {
     bool snap = false;
     for (size_t i = 0u; i < snap_positions.size(); ++i) {
@@ -350,12 +461,9 @@
     }
     TrackWindow(window, snap, /*animate_bounds_on_attach=*/false);
   }
-  SplitViewController* split_view_controller =
-      Shell::Get()->split_view_controller();
-  for (size_t i = 0u; i < snap_positions.size(); ++i) {
-    split_view_controller->SnapWindow(split_view_eligible_windows[i],
-                                      snap_positions[i]);
-  }
+
+  // Enter split view mode.
+  DoSplitView(split_view_eligible_windows, snap_positions);
 }
 
 void TabletModeWindowManager::ArrangeWindowsForDesktopMode(
diff --git a/ash/wm/tablet_mode/tablet_mode_window_manager.h b/ash/wm/tablet_mode/tablet_mode_window_manager.h
index 54fc682..9a43680 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_manager.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_manager.h
@@ -9,11 +9,15 @@
 
 #include <map>
 #include <unordered_set>
+#include <vector>
 
 #include "ash/ash_export.h"
+#include "ash/session/session_observer.h"
 #include "ash/shell_observer.h"
+#include "ash/wm/mru_window_tracker.h"
 #include "ash/wm/overview/overview_observer.h"
 #include "ash/wm/splitview/split_view_controller.h"
+#include "base/containers/flat_set.h"
 #include "base/macros.h"
 #include "ui/aura/window_observer.h"
 #include "ui/display/display_observer.h"
@@ -36,12 +40,12 @@
 // behind the window so that no other windows are visible and/or obscured.
 // With the destruction of the manager all windows will be restored to their
 // original state.
-class ASH_EXPORT TabletModeWindowManager
-    : public aura::WindowObserver,
-      public display::DisplayObserver,
-      public ShellObserver,
-      public OverviewObserver,
-      public SplitViewController::Observer {
+class ASH_EXPORT TabletModeWindowManager : public aura::WindowObserver,
+                                           public display::DisplayObserver,
+                                           public ShellObserver,
+                                           public OverviewObserver,
+                                           public SplitViewController::Observer,
+                                           public SessionObserver {
  public:
   // This should only be deleted by the creator (ash::Shell).
   ~TabletModeWindowManager() override;
@@ -85,6 +89,9 @@
   void OnSplitViewStateChanged(SplitViewController::State previous_state,
                                SplitViewController::State state) override;
 
+  // SessionObserver:
+  void OnActiveUserSessionChanged(const AccountId& account_id) override;
+
   // Tell all managing windows not to handle WM events.
   void SetIgnoreWmEventsForExit();
 
@@ -99,9 +106,20 @@
 
   using WindowToState = std::map<aura::Window*, TabletModeWindowState*>;
 
-  // Maximize all windows, except that a snapped active window shall become
-  // represented in split view, along with the previously active window if it is
+  // Returns the state type that |window| had before tablet mode started. If
+  // |window| is not yet tracked, returns the current state type of |window|.
+  mojom::WindowStateType GetDesktopWindowStateType(aura::Window* window) const;
+
+  // Returns a std::vector of up to two split view snap positions, parallel to
+  // |windows|, implementing the logic for carrying over snapped window states
+  // from desktop mode to tablet mode: if the active window is snapped, then it
+  // shall carry over to split view, along with the previous window if it is
   // snapped to the opposite side.
+  std::vector<SplitViewController::SnapPosition> GetSnapPositions(
+      const MruWindowTracker::WindowList& windows) const;
+
+  // Maximize all windows, except that snapped windows shall carry over to split
+  // view as determined by GetSnapPositions().
   void ArrangeWindowsForTabletMode();
 
   // Revert all windows to how they were arranged before tablet mode.
@@ -157,6 +175,9 @@
   // Windows added to the container, but not yet shown.
   std::unordered_set<aura::Window*> added_windows_;
 
+  // All accounts that have been active at least once since tablet mode started.
+  base::flat_set<AccountId> accounts_since_entering_tablet_;
+
   std::unique_ptr<wm::TabletModeEventHandler> event_handler_;
 
   DISALLOW_COPY_AND_ASSIGN(TabletModeWindowManager);
diff --git a/ash/wm/tablet_mode/tablet_mode_window_state.h b/ash/wm/tablet_mode/tablet_mode_window_state.h
index e3dd04f..f08293c 100644
--- a/ash/wm/tablet_mode/tablet_mode_window_state.h
+++ b/ash/wm/tablet_mode/tablet_mode_window_state.h
@@ -55,6 +55,8 @@
                    wm::WindowState::State* previous_state) override;
   void DetachState(wm::WindowState* window_state) override;
 
+  wm::WindowState::State* old_state() { return old_state_.get(); }
+
  private:
   friend class TabletModeControllerTestApi;
 
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 8e4fd0b..35cb08c 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -2415,6 +2415,7 @@
     "mac/mach_port_broker_unittest.cc",
     "mac/mach_port_rendezvous_unittest.cc",
     "mac/objc_release_properties_unittest.mm",
+    "mac/scoped_mach_vm_unittest.cc",
     "mac/scoped_nsobject_unittest.mm",
     "mac/scoped_objc_class_swizzler_unittest.mm",
     "mac/scoped_sending_event_unittest.mm",
diff --git a/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java b/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
index a421341..5588ec5b 100644
--- a/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
+++ b/base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java
@@ -44,13 +44,10 @@
      */
     @VisibleForTesting
     public static void install(Context context) {
-        // No-op on platforms that support multidex natively.
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            return;
-        }
         // TODO(jbudorick): Back out this version check once support for K & below works.
         // http://crbug.com/512357
-        if (!shouldInstallMultiDex(context)) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP
+                && !shouldInstallMultiDex(context)) {
             Log.i(TAG, "Skipping multidex installation: not needed for process.");
         } else {
             MultiDex.install(context);
diff --git a/base/mac/scoped_mach_vm.cc b/base/mac/scoped_mach_vm.cc
index d52c77f..a76044d 100644
--- a/base/mac/scoped_mach_vm.cc
+++ b/base/mac/scoped_mach_vm.cc
@@ -4,24 +4,29 @@
 
 #include "base/mac/scoped_mach_vm.h"
 
+#include "base/mac/mach_logging.h"
+
 namespace base {
 namespace mac {
 
 void ScopedMachVM::reset(vm_address_t address, vm_size_t size) {
   DCHECK_EQ(address % PAGE_SIZE, 0u);
   DCHECK_EQ(size % PAGE_SIZE, 0u);
+  reset_unaligned(address, size);
+}
 
+void ScopedMachVM::reset_unaligned(vm_address_t address, vm_size_t size) {
   if (size_) {
     if (address_ < address) {
-      vm_deallocate(mach_task_self(),
-                    address_,
-                    std::min(size_, address - address_));
+      kern_return_t kr = vm_deallocate(mach_task_self(), address_,
+                                       std::min(size_, address - address_));
+      MACH_DCHECK(kr == KERN_SUCCESS, kr) << "vm_deallocate";
     }
     if (address_ + size_ > address + size) {
       vm_address_t deallocate_start = std::max(address_, address + size);
-      vm_deallocate(mach_task_self(),
-                    deallocate_start,
-                    address_ + size_ - deallocate_start);
+      kern_return_t kr = vm_deallocate(mach_task_self(), deallocate_start,
+                                       address_ + size_ - deallocate_start);
+      MACH_DCHECK(kr == KERN_SUCCESS, kr) << "vm_deallocate";
     }
   }
 
diff --git a/base/mac/scoped_mach_vm.h b/base/mac/scoped_mach_vm.h
index 58a13f66..3d4cc022 100644
--- a/base/mac/scoped_mach_vm.h
+++ b/base/mac/scoped_mach_vm.h
@@ -60,8 +60,16 @@
     }
   }
 
+  // Resets the scoper to manage a new memory region. Both |address| and |size|
+  // must be page-aligned. If the new region is a smaller subset of the
+  // existing region (i.e. the new and old regions overlap), the non-
+  // overlapping part of the old region is deallocated.
   void reset(vm_address_t address = 0, vm_size_t size = 0);
 
+  // Like reset() but does not DCHECK that |address| and |size| are page-
+  // aligned.
+  void reset_unaligned(vm_address_t address, vm_size_t size);
+
   vm_address_t address() const {
     return address_;
   }
diff --git a/base/mac/scoped_mach_vm_unittest.cc b/base/mac/scoped_mach_vm_unittest.cc
new file mode 100644
index 0000000..3e13ff0
--- /dev/null
+++ b/base/mac/scoped_mach_vm_unittest.cc
@@ -0,0 +1,221 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/mac/scoped_mach_vm.h"
+
+#include <mach/mach.h>
+
+#include "base/test/gtest_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+namespace mac {
+namespace {
+
+void GetRegionInfo(vm_address_t* region_address, vm_size_t* region_size) {
+  vm_region_basic_info_64 region_info;
+  mach_msg_type_number_t count = VM_REGION_BASIC_INFO_COUNT_64;
+  mach_port_t object;
+  kern_return_t kr = vm_region_64(
+      mach_task_self(), region_address, region_size, VM_REGION_BASIC_INFO_64,
+      reinterpret_cast<vm_region_info_t>(&region_info), &count, &object);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+}
+
+TEST(ScopedMachVMTest, Basic) {
+  vm_address_t address;
+  vm_size_t size = PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  ScopedMachVM scoper(address, size);
+  EXPECT_EQ(address, scoper.address());
+  EXPECT_EQ(size, scoper.size());
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(1u * PAGE_SIZE, region_size);
+
+  {
+    ScopedMachVM scoper2;
+    EXPECT_EQ(0u, scoper2.address());
+    EXPECT_EQ(0u, scoper2.size());
+
+    scoper.swap(scoper2);
+
+    EXPECT_EQ(address, scoper2.address());
+    EXPECT_EQ(size, scoper2.size());
+
+    EXPECT_EQ(0u, scoper.address());
+    EXPECT_EQ(0u, scoper.size());
+  }
+
+  // After deallocation, the kernel will return the next highest address.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_LT(address, region_address);
+}
+
+TEST(ScopedMachVMTest, Reset) {
+  vm_address_t address;
+  vm_size_t size = PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  ScopedMachVM scoper(address, size);
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(1u * PAGE_SIZE, region_size);
+
+  scoper.reset();
+
+  // After deallocation, the kernel will return the next highest address.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_LT(address, region_address);
+}
+
+TEST(ScopedMachVMTest, ResetSmallerAddress) {
+  vm_address_t address;
+  vm_size_t size = 2 * PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  ScopedMachVM scoper(address, PAGE_SIZE);
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(2u * PAGE_SIZE, region_size);
+
+  // This will free address..PAGE_SIZE that is currently in the scoper.
+  scoper.reset(address + PAGE_SIZE, size + PAGE_SIZE);
+
+  // Verify that the region is now only one page.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(address + PAGE_SIZE, region_address);
+  EXPECT_EQ(1u * PAGE_SIZE, region_size);
+}
+
+TEST(ScopedMachVMTest, ResetLargerAddressAndSize) {
+  vm_address_t address;
+  vm_size_t size = 3 * PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(3u * PAGE_SIZE, region_size);
+
+  ScopedMachVM scoper(address + 2 * PAGE_SIZE, 2 * PAGE_SIZE);
+  // Expand the region to be larger.
+  scoper.reset(address, size);
+
+  // Verify that the region is still three pages.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(3u * PAGE_SIZE, region_size);
+}
+
+TEST(ScopedMachVMTest, ResetLargerAddress) {
+  vm_address_t address;
+  vm_size_t size = 6 * PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(KERN_SUCCESS, kr);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(6u * PAGE_SIZE, region_size);
+
+  ScopedMachVM scoper(address + 3 * PAGE_SIZE, 3 * PAGE_SIZE);
+
+  // Shift the region by three pages; the last three pages should be
+  // deallocated, while keeping the first three.
+  scoper.reset(address, 3 * PAGE_SIZE);
+
+  // Verify that the region is just three pages.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(3u * PAGE_SIZE, region_size);
+}
+
+TEST(ScopedMachVMTest, ResetUnaligned) {
+  vm_address_t address;
+  vm_size_t size = 2 * PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  ScopedMachVM scoper;
+
+  // Test the initial region.
+  vm_address_t region_address = address;
+  vm_size_t region_size;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(2u * PAGE_SIZE, region_size);
+
+  // Initialize with unaligned size.
+  scoper.reset_unaligned(address + PAGE_SIZE, PAGE_SIZE - 3);
+  // Reset with another unaligned size.
+  scoper.reset_unaligned(address + PAGE_SIZE, PAGE_SIZE - 11);
+
+  // The entire unaligned page gets deallocated.
+  region_address = address;
+  GetRegionInfo(&region_address, &region_size);
+  EXPECT_EQ(address, region_address);
+  EXPECT_EQ(1u * PAGE_SIZE, region_size);
+
+  // Reset with the whole region, freeing it.
+  scoper.reset_unaligned(address, size);
+}
+
+#if DCHECK_IS_ON()
+
+TEST(ScopedMachVMTest, ResetMustBeAligned) {
+  vm_address_t address;
+  vm_size_t size = 2 * PAGE_SIZE;
+  kern_return_t kr =
+      vm_allocate(mach_task_self(), &address, size, VM_FLAGS_ANYWHERE);
+  ASSERT_EQ(KERN_SUCCESS, kr);
+
+  ScopedMachVM scoper;
+  EXPECT_DCHECK_DEATH(scoper.reset(address, PAGE_SIZE + 1));
+}
+
+#endif  // DCHECK_IS_ON()
+
+}  // namespace
+}  // namespace mac
+}  // namespace base
diff --git a/base/task/task_scheduler/delayed_task_manager.cc b/base/task/task_scheduler/delayed_task_manager.cc
index 0f5bede5..b5cb77c 100644
--- a/base/task/task_scheduler/delayed_task_manager.cc
+++ b/base/task/task_scheduler/delayed_task_manager.cc
@@ -17,9 +17,13 @@
 
 DelayedTaskManager::DelayedTask::DelayedTask() = default;
 
-DelayedTaskManager::DelayedTask::DelayedTask(Task task,
-                                             PostTaskNowCallback callback)
-    : task(std::move(task)), callback(std::move(callback)) {}
+DelayedTaskManager::DelayedTask::DelayedTask(
+    Task task,
+    PostTaskNowCallback callback,
+    scoped_refptr<TaskRunner> task_runner)
+    : task(std::move(task)),
+      callback(std::move(callback)),
+      task_runner(std::move(task_runner)) {}
 
 DelayedTaskManager::DelayedTask::DelayedTask(
     DelayedTaskManager::DelayedTask&& other) = default;
@@ -69,7 +73,8 @@
 
 void DelayedTaskManager::AddDelayedTask(
     Task task,
-    PostTaskNowCallback post_task_now_callback) {
+    PostTaskNowCallback post_task_now_callback,
+    scoped_refptr<TaskRunner> task_runner) {
   DCHECK(task.task);
   DCHECK(!task.delayed_run_time.is_null());
 
@@ -79,8 +84,9 @@
   TimeTicks process_ripe_tasks_time;
   {
     AutoSchedulerLock auto_lock(queue_lock_);
-    delayed_task_queue_.insert(
-        DelayedTask(std::move(task), std::move(post_task_now_callback)));
+    delayed_task_queue_.insert(DelayedTask(std::move(task),
+                                           std::move(post_task_now_callback),
+                                           std::move(task_runner)));
     // Not started yet.
     if (service_thread_task_runner_ == nullptr)
       return;
diff --git a/base/task/task_scheduler/delayed_task_manager.h b/base/task/task_scheduler/delayed_task_manager.h
index 0e0fd3b..4485f8ea 100644
--- a/base/task/task_scheduler/delayed_task_manager.h
+++ b/base/task/task_scheduler/delayed_task_manager.h
@@ -46,13 +46,18 @@
   void Start(scoped_refptr<TaskRunner> service_thread_task_runner);
 
   // Schedules a call to |post_task_now_callback| with |task| as argument when
-  // |task| is ripe for execution.
-  void AddDelayedTask(Task task, PostTaskNowCallback post_task_now_callback);
+  // |task| is ripe for execution. |task_runner| is passed to retain a
+  // reference until |task| is ripe.
+  void AddDelayedTask(Task task,
+                      PostTaskNowCallback post_task_now_callback,
+                      scoped_refptr<TaskRunner> task_runner);
 
  private:
   struct DelayedTask {
     DelayedTask();
-    DelayedTask(Task task, PostTaskNowCallback callback);
+    DelayedTask(Task task,
+                PostTaskNowCallback callback,
+                scoped_refptr<TaskRunner> task_runner);
     DelayedTask(DelayedTask&& other);
     ~DelayedTask();
 
@@ -64,6 +69,7 @@
 
     Task task;
     PostTaskNowCallback callback;
+    scoped_refptr<TaskRunner> task_runner;
 
     // True iff the delayed task has been marked as scheduled.
     bool IsScheduled() const;
diff --git a/base/task/task_scheduler/delayed_task_manager_unittest.cc b/base/task/task_scheduler/delayed_task_manager_unittest.cc
index 1ea05f99..003b349 100644
--- a/base/task/task_scheduler/delayed_task_manager_unittest.cc
+++ b/base/task/task_scheduler/delayed_task_manager_unittest.cc
@@ -71,7 +71,8 @@
 // Verify that a delayed task isn't forwarded before Start().
 TEST_F(TaskSchedulerDelayedTaskManagerTest, DelayedTaskDoesNotRunBeforeStart) {
   // Send |task| to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask),
+                                       nullptr);
 
   // Fast-forward time until the task is ripe for execution. Since Start() has
   // not been called, the task should not be forwarded to RunTask() (MockTask is
@@ -84,7 +85,8 @@
 TEST_F(TaskSchedulerDelayedTaskManagerTest,
        DelayedTaskPostedBeforeStartExpiresAfterStartRunsOnExpire) {
   // Send |task| to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask),
+                                       nullptr);
 
   delayed_task_manager_.Start(service_thread_task_runner_);
 
@@ -103,7 +105,8 @@
 TEST_F(TaskSchedulerDelayedTaskManagerTest,
        DelayedTaskPostedBeforeStartExpiresBeforeStartRunsOnStart) {
   // Send |task| to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask),
+                                       nullptr);
 
   // Run tasks on the service thread. Don't expect any forwarding to
   // |task_target_| since the task isn't ripe for execution.
@@ -125,7 +128,8 @@
   delayed_task_manager_.Start(service_thread_task_runner_);
 
   // Send |task| to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask),
+                                       nullptr);
 
   // Run tasks that are ripe for execution. Don't expect any forwarding to
   // RunTask().
@@ -138,7 +142,8 @@
   delayed_task_manager_.Start(service_thread_task_runner_);
 
   // Send |task| to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_), BindOnce(&RunTask),
+                                       nullptr);
 
   // Fast-forward time. Expect the task to be forwarded to RunTask().
   EXPECT_CALL(mock_task_, Run());
@@ -166,9 +171,12 @@
       TimeDelta::FromHours(1));
 
   // Send tasks to the DelayedTaskManager.
-  delayed_task_manager_.AddDelayedTask(std::move(task_a), BindOnce(&RunTask));
-  delayed_task_manager_.AddDelayedTask(std::move(task_b), BindOnce(&RunTask));
-  delayed_task_manager_.AddDelayedTask(std::move(task_c), BindOnce(&RunTask));
+  delayed_task_manager_.AddDelayedTask(std::move(task_a), BindOnce(&RunTask),
+                                       nullptr);
+  delayed_task_manager_.AddDelayedTask(std::move(task_b), BindOnce(&RunTask),
+                                       nullptr);
+  delayed_task_manager_.AddDelayedTask(std::move(task_c), BindOnce(&RunTask),
+                                       nullptr);
 
   // Run tasks that are ripe for execution on the service thread. Don't expect
   // any call to RunTask().
@@ -194,12 +202,12 @@
 
   WaitableEvent task_posted;
 
-  other_thread.task_runner()->PostTask(FROM_HERE, BindLambdaForTesting([&]() {
-                                         delayed_task_manager_.AddDelayedTask(
-                                             std::move(task_),
-                                             BindOnce(&RunTask));
-                                         task_posted.Signal();
-                                       }));
+  other_thread.task_runner()->PostTask(
+      FROM_HERE, BindLambdaForTesting([&]() {
+        delayed_task_manager_.AddDelayedTask(
+            std::move(task_), BindOnce(&RunTask), other_thread.task_runner());
+        task_posted.Signal();
+      }));
 
   delayed_task_manager_.Start(service_thread_task_runner_);
 
diff --git a/base/task/task_scheduler/priority_queue_unittest.cc b/base/task/task_scheduler/priority_queue_unittest.cc
index e34d090..8e8be1b 100644
--- a/base/task/task_scheduler/priority_queue_unittest.cc
+++ b/base/task/task_scheduler/priority_queue_unittest.cc
@@ -25,7 +25,8 @@
 
 scoped_refptr<Sequence> MakeSequenceWithTraitsAndTask(
     const TaskTraits& traits) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(traits);
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      traits, nullptr, TaskSourceExecutionMode::kParallel);
   sequence->BeginTransaction().PushTask(
       Task(FROM_HERE, DoNothing(), TimeDelta()));
   return sequence;
diff --git a/base/task/task_scheduler/scheduler_parallel_task_runner.cc b/base/task/task_scheduler/scheduler_parallel_task_runner.cc
index daec344..ac424b70 100644
--- a/base/task/task_scheduler/scheduler_parallel_task_runner.cc
+++ b/base/task/task_scheduler/scheduler_parallel_task_runner.cc
@@ -25,7 +25,8 @@
     return false;
 
   // Post the task as part of a one-off single-task Sequence.
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(traits_, this);
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      traits_, this, TaskSourceExecutionMode::kParallel);
 
   {
     AutoSchedulerLock auto_lock(lock_);
diff --git a/base/task/task_scheduler/scheduler_sequenced_task_runner.cc b/base/task/task_scheduler/scheduler_sequenced_task_runner.cc
index ab3ce52..0fc3ab9 100644
--- a/base/task/task_scheduler/scheduler_sequenced_task_runner.cc
+++ b/base/task/task_scheduler/scheduler_sequenced_task_runner.cc
@@ -13,7 +13,10 @@
     const TaskTraits& traits,
     SchedulerTaskRunnerDelegate* scheduler_task_runner_delegate)
     : scheduler_task_runner_delegate_(scheduler_task_runner_delegate),
-      sequence_(MakeRefCounted<Sequence>(traits)) {}
+      sequence_(MakeRefCounted<Sequence>(traits,
+                                         this,
+                                         TaskSourceExecutionMode::kSequenced)) {
+}
 
 SchedulerSequencedTaskRunner::~SchedulerSequencedTaskRunner() = default;
 
@@ -24,7 +27,6 @@
     return false;
 
   Task task(from_here, std::move(closure), delay);
-  task.sequenced_task_runner_ref = this;
 
   // Post the task as part of |sequence_|.
   return scheduler_task_runner_delegate_->PostTaskWithSequence(std::move(task),
diff --git a/base/task/task_scheduler/scheduler_single_thread_task_runner_manager.cc b/base/task/task_scheduler/scheduler_single_thread_task_runner_manager.cc
index 2113431fd..c5cb647 100644
--- a/base/task/task_scheduler/scheduler_single_thread_task_runner_manager.cc
+++ b/base/task/task_scheduler/scheduler_single_thread_task_runner_manager.cc
@@ -248,7 +248,9 @@
 
   bool get_work_first_ = true;
   const scoped_refptr<Sequence> message_pump_sequence_ =
-      MakeRefCounted<Sequence>(TaskTraits(MayBlock()));
+      MakeRefCounted<Sequence>(TaskTraits(MayBlock()),
+                               nullptr,
+                               TaskSourceExecutionMode::kParallel);
   const TrackedRef<TaskTracker> task_tracker_;
   std::unique_ptr<win::ScopedCOMInitializer> scoped_com_initializer_;
 
@@ -272,7 +274,10 @@
       : outer_(outer),
         worker_(worker),
         thread_mode_(thread_mode),
-        sequence_(MakeRefCounted<Sequence>(traits)) {
+        sequence_(
+            MakeRefCounted<Sequence>(traits,
+                                     this,
+                                     TaskSourceExecutionMode::kSingleThread)) {
     DCHECK(outer_);
     DCHECK(worker_);
   }
@@ -285,7 +290,6 @@
       return false;
 
     Task task(from_here, std::move(closure), delay);
-    task.single_thread_task_runner_ref = this;
 
     if (!outer_->task_tracker_->WillPostTask(&task,
                                              sequence_->shutdown_behavior())) {
@@ -297,8 +301,7 @@
     } else {
       outer_->delayed_task_manager_->AddDelayedTask(
           std::move(task),
-          BindOnce(&SchedulerSingleThreadTaskRunner::PostTaskNow,
-                   Unretained(this)));
+          BindOnce(&SchedulerSingleThreadTaskRunner::PostTaskNow, this), this);
     }
     return true;
   }
diff --git a/base/task/task_scheduler/scheduler_worker_unittest.cc b/base/task/task_scheduler/scheduler_worker_unittest.cc
index 87154602..4e9bac7 100644
--- a/base/task/task_scheduler/scheduler_worker_unittest.cc
+++ b/base/task/task_scheduler/scheduler_worker_unittest.cc
@@ -177,7 +177,8 @@
       }
 
       // Create a Sequence with TasksPerSequence() Tasks.
-      scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits());
+      scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+          TaskTraits(), nullptr, TaskSourceExecutionMode::kParallel);
       Sequence::Transaction sequence_transaction(sequence->BeginTransaction());
       for (int i = 0; i < outer_->TasksPerSequence(); ++i) {
         Task task(FROM_HERE,
@@ -445,8 +446,10 @@
     }
 
     controls_->work_requested_ = true;
-    scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits(
-        WithBaseSyncPrimitives(), TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN));
+    scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+        TaskTraits(WithBaseSyncPrimitives(),
+                   TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN),
+        nullptr, TaskSourceExecutionMode::kParallel);
     Task task(
         FROM_HERE,
         BindOnce(
diff --git a/base/task/task_scheduler/sequence.cc b/base/task/task_scheduler/sequence.cc
index 811bde9..5e3f338 100644
--- a/base/task/task_scheduler/sequence.cc
+++ b/base/task/task_scheduler/sequence.cc
@@ -39,6 +39,12 @@
   // for details.
   CHECK(task.task);
   DCHECK(task.queue_time.is_null());
+
+  // AddRef() matched by manual Release() when the queue becomes empty again
+  // (in DidRunTask() or Clear()).
+  if (sequence()->queue_.empty() && sequence()->task_runner())
+    sequence()->task_runner()->AddRef();
+
   task.queue_time = base::TimeTicks::Now();
 
   task.task = sequence()->traits_.shutdown_behavior() ==
@@ -66,6 +72,12 @@
   return std::move(next_task);
 }
 
+bool Sequence::DidRunTask() {
+  if (queue_.empty())
+    ReleaseTaskRunner();
+  return !queue_.empty();
+}
+
 SequenceSortKey Sequence::GetSortKey() const {
   DCHECK(!IsEmpty());
   return SequenceSortKey(traits_.priority(), queue_.front().queue_time);
@@ -76,22 +88,35 @@
 }
 
 void Sequence::Clear() {
-  while (!IsEmpty())
+  bool queue_was_empty = queue_.empty();
+  while (!queue_.empty())
     TakeTask();
-}
-
-Sequence::Sequence(
-    const TaskTraits& traits,
-    scoped_refptr<SchedulerParallelTaskRunner> scheduler_parallel_task_runner)
-    : TaskSource(traits),
-      scheduler_parallel_task_runner_(scheduler_parallel_task_runner) {}
-
-Sequence::~Sequence() {
-  if (scheduler_parallel_task_runner_) {
-    scheduler_parallel_task_runner_->UnregisterSequence(this);
+  if (!queue_was_empty) {
+    // No member access after this point, ReleaseTaskRunner() might have deleted
+    // |this|.
+    ReleaseTaskRunner();
   }
 }
 
+void Sequence::ReleaseTaskRunner() {
+  if (!task_runner())
+    return;
+  if (execution_mode() == TaskSourceExecutionMode::kParallel) {
+    static_cast<SchedulerParallelTaskRunner*>(task_runner())
+        ->UnregisterSequence(this);
+  }
+  // No member access after this point, releasing |task_runner()| might delete
+  // |this|.
+  task_runner()->Release();
+}
+
+Sequence::Sequence(const TaskTraits& traits,
+                   TaskRunner* task_runner,
+                   TaskSourceExecutionMode execution_mode)
+    : TaskSource(traits, task_runner, execution_mode) {}
+
+Sequence::~Sequence() = default;
+
 Sequence::Transaction Sequence::BeginTransaction() {
   return Transaction(this);
 }
diff --git a/base/task/task_scheduler/sequence.h b/base/task/task_scheduler/sequence.h
index f46196c7..9394de1 100644
--- a/base/task/task_scheduler/sequence.h
+++ b/base/task/task_scheduler/sequence.h
@@ -66,11 +66,13 @@
   };
 
   // |traits| is metadata that applies to all Tasks in the Sequence.
-  // |scheduler_parallel_task_runner| is a reference to the
-  // SchedulerParallelTaskRunner that created this Sequence, if any.
+  // |task_runner| is a reference to the TaskRunner feeding this TaskSource.
+  // |task_runner| can be nullptr only for tasks with no TaskRunner, in which
+  // case |execution_mode| must be kParallel. Otherwise, |execution_mode| is the
+  // execution mode of |task_runner|.
   Sequence(const TaskTraits& traits,
-           scoped_refptr<SchedulerParallelTaskRunner>
-               scheduler_parallel_task_runner = nullptr);
+           TaskRunner* task_runner,
+           TaskSourceExecutionMode execution_mode);
 
   // Begins a Transaction. This method cannot be called on a thread which has an
   // active Sequence::Transaction.
@@ -90,10 +92,15 @@
 
   // TaskSource:
   Optional<Task> TakeTask() override;
+  bool DidRunTask() override;
   SequenceSortKey GetSortKey() const override;
   bool IsEmpty() const override;
   void Clear() override;
 
+  // Releases reference to TaskRunner. This might cause this object to be
+  // deleted; therefore, no member access should be made after this method.
+  void ReleaseTaskRunner();
+
   const SequenceToken token_ = SequenceToken::Create();
 
   // Queue of tasks to execute.
@@ -102,12 +109,6 @@
   // Holds data stored through the SequenceLocalStorageSlot API.
   SequenceLocalStorageMap sequence_local_storage_;
 
-  // A reference to the SchedulerParallelTaskRunner that created this Sequence,
-  // if any. Used to remove Sequence from the TaskRunner's list of Sequence
-  // references when Sequence is deleted.
-  const scoped_refptr<SchedulerParallelTaskRunner>
-      scheduler_parallel_task_runner_;
-
   DISALLOW_COPY_AND_ASSIGN(Sequence);
 };
 
diff --git a/base/task/task_scheduler/sequence_unittest.cc b/base/task/task_scheduler/sequence_unittest.cc
index 4730b7e..dc1d8029 100644
--- a/base/task/task_scheduler/sequence_unittest.cc
+++ b/base/task/task_scheduler/sequence_unittest.cc
@@ -45,7 +45,8 @@
   testing::StrictMock<MockTask> mock_task_e;
 
   scoped_refptr<Sequence> sequence =
-      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::BEST_EFFORT));
+      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::BEST_EFFORT), nullptr,
+                               TaskSourceExecutionMode::kParallel);
   Sequence::Transaction sequence_transaction(sequence->BeginTransaction());
 
   // Push task A in the sequence. PushTask() should return true since it's the
@@ -101,7 +102,8 @@
   // Create a BEST_EFFORT sequence with a task.
   Task best_effort_task(FROM_HERE, DoNothing(), TimeDelta());
   scoped_refptr<Sequence> best_effort_sequence =
-      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::BEST_EFFORT));
+      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::BEST_EFFORT), nullptr,
+                               TaskSourceExecutionMode::kParallel);
   Sequence::Transaction best_effort_sequence_transaction(
       best_effort_sequence->BeginTransaction());
   best_effort_sequence_transaction.PushTask(std::move(best_effort_task));
@@ -129,7 +131,8 @@
   // Create a USER_VISIBLE sequence with a task.
   Task foreground_task(FROM_HERE, DoNothing(), TimeDelta());
   scoped_refptr<Sequence> foreground_sequence =
-      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::USER_VISIBLE));
+      MakeRefCounted<Sequence>(TaskTraits(TaskPriority::USER_VISIBLE), nullptr,
+                               TaskSourceExecutionMode::kParallel);
   Sequence::Transaction foreground_sequence_transaction(
       foreground_sequence->BeginTransaction());
   foreground_sequence_transaction.PushTask(std::move(foreground_task));
@@ -154,7 +157,8 @@
 // Verify that a DCHECK fires if DidRunTask() is called on a sequence which
 // didn't return a Task.
 TEST(TaskSchedulerSequenceTest, DidRunTaskWithoutTakeTask) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits());
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      TaskTraits(), nullptr, TaskSourceExecutionMode::kParallel);
   Sequence::Transaction sequence_transaction(sequence->BeginTransaction());
   sequence_transaction.PushTask(Task(FROM_HERE, DoNothing(), TimeDelta()));
 
@@ -164,7 +168,8 @@
 // Verify that a DCHECK fires if TakeTask() is called on a sequence whose front
 // slot is empty.
 TEST(TaskSchedulerSequenceTest, TakeEmptyFrontSlot) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits());
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      TaskTraits(), nullptr, TaskSourceExecutionMode::kParallel);
   Sequence::Transaction sequence_transaction(sequence->BeginTransaction());
   sequence_transaction.PushTask(Task(FROM_HERE, DoNothing(), TimeDelta()));
 
@@ -174,7 +179,8 @@
 
 // Verify that a DCHECK fires if TakeTask() is called on an empty sequence.
 TEST(TaskSchedulerSequenceTest, TakeEmptySequence) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits());
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      TaskTraits(), nullptr, TaskSourceExecutionMode::kParallel);
   Sequence::Transaction sequence_transaction(sequence->BeginTransaction());
   EXPECT_DCHECK_DEATH({ sequence_transaction.TakeTask(); });
 }
diff --git a/base/task/task_scheduler/task.cc b/base/task/task_scheduler/task.cc
index 3bbf322a..17f7202 100644
--- a/base/task/task_scheduler/task.cc
+++ b/base/task/task_scheduler/task.cc
@@ -35,11 +35,7 @@
 
 // This should be "= default but MSVC has trouble with "noexcept = default" in
 // this case.
-Task::Task(Task&& other) noexcept
-    : PendingTask(std::move(other)),
-      sequenced_task_runner_ref(std::move(other.sequenced_task_runner_ref)),
-      single_thread_task_runner_ref(
-          std::move(other.single_thread_task_runner_ref)) {}
+Task::Task(Task&& other) noexcept : PendingTask(std::move(other)) {}
 
 Task::~Task() = default;
 
diff --git a/base/task/task_scheduler/task.h b/base/task/task_scheduler/task.h
index 837081d..10e021a 100644
--- a/base/task/task_scheduler/task.h
+++ b/base/task/task_scheduler/task.h
@@ -20,6 +20,7 @@
 
 // A task is a unit of work inside the task scheduler. Support for tracing and
 // profiling inherited from PendingTask.
+// TODO(etiennep): This class is now equivalent to PendingTask, remove it.
 struct BASE_EXPORT Task : public PendingTask {
   Task();
 
@@ -37,18 +38,6 @@
 
   Task& operator=(Task&& other);
 
-  // A reference to the SequencedTaskRunner or SingleThreadTaskRunner that
-  // posted this task, if any. Used to set ThreadTaskRunnerHandle and/or
-  // SequencedTaskRunnerHandle while the task is running.
-  // Note: this creates an ownership cycle
-  //   Sequence -> Task -> TaskRunner -> Sequence -> ...
-  // but that's okay as it's broken when the Task is popped from its Sequence
-  // after being executed which means this cycle forces the TaskRunner to stick
-  // around until all its tasks have been executed which is a requirement to
-  // support TaskRunnerHandles.
-  scoped_refptr<SequencedTaskRunner> sequenced_task_runner_ref;
-  scoped_refptr<SingleThreadTaskRunner> single_thread_task_runner_ref;
-
  private:
   DISALLOW_COPY_AND_ASSIGN(Task);
 };
diff --git a/base/task/task_scheduler/task_scheduler_impl.cc b/base/task/task_scheduler/task_scheduler_impl.cc
index f4f7e57..ff50bc8 100644
--- a/base/task/task_scheduler/task_scheduler_impl.cc
+++ b/base/task/task_scheduler/task_scheduler_impl.cc
@@ -159,8 +159,10 @@
                                                   TimeDelta delay) {
   // Post |task| as part of a one-off single-task Sequence.
   const TaskTraits new_traits = SetUserBlockingPriorityIfNeeded(traits);
-  return PostTaskWithSequence(Task(from_here, std::move(task), delay),
-                              MakeRefCounted<Sequence>(new_traits));
+  return PostTaskWithSequence(
+      Task(from_here, std::move(task), delay),
+      MakeRefCounted<Sequence>(new_traits, nullptr,
+                               TaskSourceExecutionMode::kParallel));
 }
 
 scoped_refptr<TaskRunner> TaskSchedulerImpl::CreateTaskRunnerWithTraits(
@@ -262,6 +264,9 @@
     GetWorkerPoolForTraits(traits)->PostTaskWithSequenceNow(
         std::move(task), std::move(sequence_and_transaction));
   } else {
+    // It's safe to take a ref on this pointer since the caller must have a ref
+    // to the TaskRunner in order to post.
+    scoped_refptr<TaskRunner> task_runner = sequence->task_runner();
     delayed_task_manager_.AddDelayedTask(
         std::move(task),
         BindOnce(
@@ -275,7 +280,8 @@
                   ->PostTaskWithSequenceNow(
                       std::move(task), std::move(sequence_and_transaction));
             },
-            std::move(sequence), Unretained(this)));
+            std::move(sequence), Unretained(this)),
+        std::move(task_runner));
   }
 
   return true;
diff --git a/base/task/task_scheduler/task_source.cc b/base/task/task_scheduler/task_source.cc
index bf01b237..3949401 100644
--- a/base/task/task_scheduler/task_source.cc
+++ b/base/task/task_scheduler/task_source.cc
@@ -51,7 +51,7 @@
 bool TaskSource::Transaction::DidRunTask() {
   DCHECK(task_source_->has_worker_);
   task_source_->has_worker_ = false;
-  return !task_source_->IsEmpty();
+  return task_source_->DidRunTask();
 }
 
 SequenceSortKey TaskSource::Transaction::GetSortKey() const {
@@ -80,7 +80,14 @@
   heap_handle_ = HeapHandle();
 }
 
-TaskSource::TaskSource(const TaskTraits& traits) : traits_(traits) {}
+TaskSource::TaskSource(const TaskTraits& traits,
+                       TaskRunner* task_runner,
+                       TaskSourceExecutionMode execution_mode)
+    : traits_(traits),
+      task_runner_(task_runner),
+      execution_mode_(execution_mode) {
+  DCHECK(task_runner_ || execution_mode_ == TaskSourceExecutionMode::kParallel);
+}
 
 TaskSource::~TaskSource() = default;
 
diff --git a/base/task/task_scheduler/task_source.h b/base/task/task_scheduler/task_source.h
index 74b5bcd..0a82c65 100644
--- a/base/task/task_scheduler/task_source.h
+++ b/base/task/task_scheduler/task_source.h
@@ -22,6 +22,13 @@
 namespace base {
 namespace internal {
 
+enum class TaskSourceExecutionMode {
+  kParallel,
+  kSequenced,
+  kSingleThread,
+  kMax = kSingleThread,
+};
+
 struct BASE_EXPORT ExecutionEnvironment {
   SequenceToken token;
   SequenceLocalStorageMap* sequence_local_storage;
@@ -108,7 +115,13 @@
   };
 
   // |traits| is metadata that applies to all Tasks in the TaskSource.
-  explicit TaskSource(const TaskTraits& traits);
+  // |task_runner| is a reference to the TaskRunner feeding this TaskSource.
+  // |task_runner| can be nullptr only for tasks with no TaskRunner, in which
+  // case |execution_mode| must be kParallel. Otherwise, |execution_mode| is the
+  // execution mode of |task_runner|.
+  TaskSource(const TaskTraits& traits,
+             TaskRunner* task_runner,
+             TaskSourceExecutionMode execution_mode);
 
   // Begins a Transaction. This method cannot be called on a thread which has an
   // active TaskSource::Transaction.
@@ -127,11 +140,23 @@
     return traits_.shutdown_behavior();
   }
 
+  // A reference to TaskRunner is only retained between PushTask() and when
+  // DidRunTask() returns false, guaranteeing it is safe to dereference this
+  // pointer. Otherwise, the caller should guarantee such TaskRunner still
+  // exists before dereferencing.
+  TaskRunner* task_runner() const { return task_runner_; }
+
+  TaskSourceExecutionMode execution_mode() const { return execution_mode_; }
+
  protected:
   virtual ~TaskSource();
 
   virtual Optional<Task> TakeTask() = 0;
 
+  // Returns true if the TaskSource should be queued after this
+  // operation.
+  virtual bool DidRunTask() = 0;
+
   virtual SequenceSortKey GetSortKey() const = 0;
 
   virtual bool IsEmpty() const = 0;
@@ -154,6 +179,13 @@
   // by the PriorityQueue's lock.
   HeapHandle heap_handle_;
 
+  // A pointer to the TaskRunner that posts to this TaskSource, if any. The
+  // derived class is responsible for calling AddRef() when IsEmpty() becomes
+  // false and Release() when IsEmpty() becomes true in DidRunTask().
+  TaskRunner* task_runner_;
+
+  TaskSourceExecutionMode execution_mode_;
+
   // TODO(etiennep): Add support for TaskSources with more than one worker.
   bool has_worker_ = false;
 
diff --git a/base/task/task_scheduler/task_source_unittest.cc b/base/task/task_scheduler/task_source_unittest.cc
index 65eb3309..88ac83d 100644
--- a/base/task/task_scheduler/task_source_unittest.cc
+++ b/base/task/task_scheduler/task_source_unittest.cc
@@ -21,7 +21,8 @@
 
 class MockTaskSource : public TaskSource {
  public:
-  MockTaskSource(TaskTraits traits) : TaskSource(traits) {}
+  MockTaskSource(TaskTraits traits)
+      : TaskSource(traits, nullptr, TaskSourceExecutionMode::kParallel) {}
 
   MOCK_METHOD0(GetExecutionEnvironment, ExecutionEnvironment());
 
@@ -31,6 +32,8 @@
   MOCK_CONST_METHOD0(IsEmpty, bool());
   MOCK_METHOD0(Clear, void());
 
+  bool DidRunTask() override { return !IsEmpty(); }
+
  private:
   ~MockTaskSource() override = default;
 };
diff --git a/base/task/task_scheduler/task_tracker.cc b/base/task/task_scheduler/task_tracker.cc
index 2d03e95..3629c56 100644
--- a/base/task/task_scheduler/task_tracker.cc
+++ b/base/task/task_scheduler/task_tracker.cc
@@ -33,9 +33,12 @@
 
 namespace {
 
-constexpr char kParallelExecutionMode[] = "parallel";
-constexpr char kSequencedExecutionMode[] = "sequenced";
-constexpr char kSingleThreadExecutionMode[] = "single thread";
+constexpr const char* kExecutionModeString[] = {"parallel", "sequenced",
+                                                "single thread"};
+static_assert(
+    size(kExecutionModeString) ==
+        static_cast<size_t>(TaskSourceExecutionMode::kMax) + 1,
+    "Array kExecutionModeString is out of sync with TaskSourceExecutionMode.");
 
 // An immutable copy of a scheduler task's info required by tracing.
 class TaskTracingInfo : public trace_event::ConvertableToTraceFormat {
@@ -64,7 +67,7 @@
   dict.SetString("task_priority",
                  base::TaskPriorityToString(task_traits_.priority()));
   dict.SetString("execution_mode", execution_mode_);
-  if (execution_mode_ != kParallelExecutionMode)
+  if (sequence_token_.IsValid())
     dict.SetInteger("sequence_token", sequence_token_.ToInternalValue());
 
   std::string tmp;
@@ -609,29 +612,33 @@
     // Set up TaskRunnerHandle as expected for the scope of the task.
     Optional<SequencedTaskRunnerHandle> sequenced_task_runner_handle;
     Optional<ThreadTaskRunnerHandle> single_thread_task_runner_handle;
-    DCHECK(!task.sequenced_task_runner_ref ||
-           !task.single_thread_task_runner_ref);
-    if (task.sequenced_task_runner_ref) {
-      sequenced_task_runner_handle.emplace(task.sequenced_task_runner_ref);
-    } else if (task.single_thread_task_runner_ref) {
-      single_thread_task_runner_handle.emplace(
-          task.single_thread_task_runner_ref);
+    switch (sequence->execution_mode()) {
+      case TaskSourceExecutionMode::kParallel:
+        break;
+      case TaskSourceExecutionMode::kSequenced:
+        DCHECK(sequence->task_runner());
+        sequenced_task_runner_handle.emplace(
+            static_cast<SequencedTaskRunner*>(sequence->task_runner()));
+        break;
+      case TaskSourceExecutionMode::kSingleThread:
+        DCHECK(sequence->task_runner());
+        single_thread_task_runner_handle.emplace(
+            static_cast<SingleThreadTaskRunner*>(sequence->task_runner()));
+        break;
     }
 
     if (can_run_task) {
       TRACE_TASK_EXECUTION("TaskScheduler_RunTask", task);
 
-      const char* const execution_mode =
-          task.single_thread_task_runner_ref
-              ? kSingleThreadExecutionMode
-              : (task.sequenced_task_runner_ref ? kSequencedExecutionMode
-                                                : kParallelExecutionMode);
       // TODO(gab): In a better world this would be tacked on as an extra arg
       // to the trace event generated above. This is not possible however until
       // http://crbug.com/652692 is resolved.
       TRACE_EVENT1("task_scheduler", "TaskScheduler_TaskInfo", "task_info",
-                   std::make_unique<TaskTracingInfo>(traits, execution_mode,
-                                                     environment.token));
+                   std::make_unique<TaskTracingInfo>(
+                       traits,
+                       kExecutionModeString[static_cast<size_t>(
+                           sequence->execution_mode())],
+                       environment.token));
 
       RunTaskWithShutdownBehavior(traits.shutdown_behavior(), &task);
     }
diff --git a/base/task/task_scheduler/task_tracker_posix_unittest.cc b/base/task/task_scheduler/task_tracker_posix_unittest.cc
index 858096c..8d35b08 100644
--- a/base/task/task_scheduler/task_tracker_posix_unittest.cc
+++ b/base/task/task_scheduler/task_tracker_posix_unittest.cc
@@ -80,14 +80,16 @@
                  DoNothing()),
             TimeDelta());
   constexpr TaskTraits default_traits = {};
-  // FileDescriptorWatcher::WatchReadable needs a SequencedTaskRunnerHandle.
-  task.sequenced_task_runner_ref = MakeRefCounted<NullTaskRunner>();
 
   EXPECT_TRUE(tracker_.WillPostTask(&task, default_traits.shutdown_behavior()));
 
-  auto sequence = test::CreateSequenceWithTask(std::move(task), default_traits);
+  // FileDescriptorWatcher::WatchReadable needs a SequencedTaskRunnerHandle.
+  auto sequence = test::CreateSequenceWithTask(
+      std::move(task), default_traits, MakeRefCounted<NullTaskRunner>(),
+      TaskSourceExecutionMode::kSequenced);
   EXPECT_TRUE(
       tracker_.WillScheduleSequence(sequence->BeginTransaction(), nullptr));
+
   // Expect RunAndPopNextTask to return nullptr since |sequence| is empty after
   // popping a task from it.
   EXPECT_FALSE(tracker_.RunAndPopNextTask(sequence, nullptr));
diff --git a/base/task/task_scheduler/task_tracker_unittest.cc b/base/task/task_scheduler/task_tracker_unittest.cc
index 20eba2e..798dd823 100644
--- a/base/task/task_scheduler/task_tracker_unittest.cc
+++ b/base/task/task_scheduler/task_tracker_unittest.cc
@@ -512,9 +512,12 @@
                                 traits_without_may_block);
 }
 
-static void RunTaskRunnerHandleVerificationTask(TaskTracker* tracker,
-                                                Task verify_task,
-                                                TaskTraits traits) {
+static void RunTaskRunnerHandleVerificationTask(
+    TaskTracker* tracker,
+    Task verify_task,
+    TaskTraits traits,
+    scoped_refptr<TaskRunner> task_runner,
+    TaskSourceExecutionMode execution_mode) {
   // Pretend |verify_task| is posted to respect TaskTracker's contract.
   EXPECT_TRUE(tracker->WillPostTask(&verify_task, traits.shutdown_behavior()));
 
@@ -524,7 +527,9 @@
   EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet());
 
   testing::StrictMock<MockCanScheduleSequenceObserver> never_notified_observer;
-  auto sequence = test::CreateSequenceWithTask(std::move(verify_task), traits);
+  auto sequence = test::CreateSequenceWithTask(
+      std::move(verify_task), traits, std::move(task_runner), execution_mode);
+
   ASSERT_TRUE(tracker->WillScheduleSequence(sequence->BeginTransaction(),
                                             &never_notified_observer));
   tracker->RunAndPopNextTask(std::move(sequence), &never_notified_observer);
@@ -545,7 +550,8 @@
   Task verify_task(FROM_HERE, BindOnce(&VerifyNoTaskRunnerHandle), TimeDelta());
 
   RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task),
-                                      TaskTraits(GetParam()));
+                                      TaskTraits(GetParam()), nullptr,
+                                      TaskSourceExecutionMode::kParallel);
 }
 
 static void VerifySequencedTaskRunnerHandle(
@@ -566,10 +572,10 @@
                    BindOnce(&VerifySequencedTaskRunnerHandle,
                             Unretained(test_task_runner.get())),
                    TimeDelta());
-  verify_task.sequenced_task_runner_ref = test_task_runner;
 
-  RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task),
-                                      TaskTraits(GetParam()));
+  RunTaskRunnerHandleVerificationTask(
+      &tracker_, std::move(verify_task), TaskTraits(GetParam()),
+      std::move(test_task_runner), TaskSourceExecutionMode::kSequenced);
 }
 
 static void VerifyThreadTaskRunnerHandle(
@@ -592,10 +598,10 @@
                    BindOnce(&VerifyThreadTaskRunnerHandle,
                             Unretained(test_task_runner.get())),
                    TimeDelta());
-  verify_task.single_thread_task_runner_ref = test_task_runner;
 
-  RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task),
-                                      TaskTraits(GetParam()));
+  RunTaskRunnerHandleVerificationTask(
+      &tracker_, std::move(verify_task), TaskTraits(GetParam()),
+      std::move(test_task_runner), TaskSourceExecutionMode::kSingleThread);
 }
 
 TEST_P(TaskSchedulerTaskTrackerTest, FlushPendingDelayedTask) {
@@ -890,7 +896,8 @@
 // Verify that SequenceToken::GetForCurrentThread() returns the Sequence's token
 // when a Task runs.
 TEST_F(TaskSchedulerTaskTrackerTest, CurrentSequenceToken) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(TaskTraits());
+  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(
+      TaskTraits(), nullptr, TaskSourceExecutionMode::kParallel);
 
   const SequenceToken sequence_token = sequence->token();
   Task task(FROM_HERE, Bind(&ExpectSequenceToken, sequence_token), TimeDelta());
diff --git a/base/task/task_scheduler/test_utils.cc b/base/task/task_scheduler/test_utils.cc
index 4b1f71f9..c9e2e57 100644
--- a/base/task/task_scheduler/test_utils.cc
+++ b/base/task/task_scheduler/test_utils.cc
@@ -45,9 +45,13 @@
     on_main_exit_cv_->Signal();
 }
 
-scoped_refptr<Sequence> CreateSequenceWithTask(Task task,
-                                               const TaskTraits& traits) {
-  scoped_refptr<Sequence> sequence = MakeRefCounted<Sequence>(traits);
+scoped_refptr<Sequence> CreateSequenceWithTask(
+    Task task,
+    const TaskTraits& traits,
+    scoped_refptr<TaskRunner> task_runner,
+    TaskSourceExecutionMode execution_mode) {
+  scoped_refptr<Sequence> sequence =
+      MakeRefCounted<Sequence>(traits, task_runner.get(), execution_mode);
   sequence->BeginTransaction().PushTask(std::move(task));
   return sequence;
 }
@@ -118,6 +122,9 @@
         std::move(task),
         SequenceAndTransaction::FromSequence(std::move(sequence)));
   } else {
+    // It's safe to take a ref on this pointer since the caller must have a ref
+    // to the TaskRunner in order to post.
+    scoped_refptr<TaskRunner> task_runner = sequence->task_runner();
     delayed_task_manager_->AddDelayedTask(
         std::move(task),
         BindOnce(
@@ -127,7 +134,8 @@
                   std::move(task),
                   SequenceAndTransaction::FromSequence(std::move(sequence)));
             },
-            std::move(sequence), worker_pool_));
+            std::move(sequence), worker_pool_),
+        std::move(task_runner));
   }
 
   return true;
diff --git a/base/task/task_scheduler/test_utils.h b/base/task/task_scheduler/test_utils.h
index a2b60ae..9ce6abe 100644
--- a/base/task/task_scheduler/test_utils.h
+++ b/base/task/task_scheduler/test_utils.h
@@ -69,12 +69,18 @@
 
 // An enumeration of possible task scheduler TaskRunner types. Used to
 // parametrize relevant task_scheduler tests.
+// TODO(etiennep): Migrate to TaskSourceExecutionMode.
 enum class ExecutionMode { PARALLEL, SEQUENCED, SINGLE_THREADED };
 
-// Creates a Sequence with given |traits| and pushes |task| to it. Returns that
-// Sequence.
-scoped_refptr<Sequence> CreateSequenceWithTask(Task task,
-                                               const TaskTraits& traits);
+// Creates a Sequence with given |traits| and pushes |task| to it. If a
+// TaskRunner is associated with |task|, it should be be passed as |task_runner|
+// along with its |execution_mode|. Returns the created Sequence.
+scoped_refptr<Sequence> CreateSequenceWithTask(
+    Task task,
+    const TaskTraits& traits,
+    scoped_refptr<TaskRunner> task_runner = nullptr,
+    TaskSourceExecutionMode execution_mode =
+        TaskSourceExecutionMode::kParallel);
 
 // Creates a TaskRunner that posts tasks to the worker pool owned by
 // |scheduler_task_runner_delegate| with the |execution_mode| execution mode
diff --git a/base/win/scoped_hstring.h b/base/win/scoped_hstring.h
index 8975df8..14ec0f2d 100644
--- a/base/win/scoped_hstring.h
+++ b/base/win/scoped_hstring.h
@@ -35,7 +35,7 @@
 // One-time Initialization for ScopedHString:
 //
 //   bool success = ScopedHString::ResolveCoreWinRTStringDelayload();
-//   if (!success) {
+//   if (success) {
 //     // ScopeHString can be used.
 //   } else {
 //     // Handle error.
diff --git a/build/chromeos/test_runner.py b/build/chromeos/test_runner.py
index c52e6d58..d325b4b6 100755
--- a/build/chromeos/test_runner.py
+++ b/build/chromeos/test_runner.py
@@ -194,6 +194,7 @@
 
     self._test_cmd += [
         '--deploy',
+        '--mount',
         '--build-dir', os.path.relpath(self._path_to_outdir, CHROMIUM_SRC_PATH),
         '--cmd',
         '--',
@@ -422,6 +423,7 @@
     # browser, so deploy our locally-built chrome to the device before testing.
     self._test_cmd += [
         '--deploy',
+        '--mount',
         '--build-dir', os.path.relpath(self._path_to_outdir, CHROMIUM_SRC_PATH),
     ]
 
@@ -482,6 +484,7 @@
   if args.deploy_chrome:
     cros_run_test_cmd += [
         '--deploy',
+        '--mount',
         '--build-dir', os.path.abspath(args.path_to_outdir),
     ]
 
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index 6e353a2dc..cd1e130 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -1115,7 +1115,7 @@
     _proguarding_with_r8 =
         _proguard_enabled && (!defined(invoker.proguard_jar_path) || use_r8)
     _enable_multidex =
-        !defined(invoker.enable_multidex) || invoker.enable_multidex
+        defined(invoker.enable_multidex) && invoker.enable_multidex
     _enable_main_dex_list =
         _enable_multidex &&
         (!defined(invoker.min_sdk_version) || invoker.min_sdk_version < 21)
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 268e1a6..cecb1c4 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -2074,7 +2074,7 @@
     _is_base_module = defined(invoker.is_base_module) && invoker.is_base_module
 
     _enable_multidex =
-        !defined(invoker.enable_multidex) || invoker.enable_multidex
+        defined(invoker.enable_multidex) && invoker.enable_multidex
     _final_dex_path = "$_gen_dir/classes.dex.zip"
 
     if (defined(invoker.final_apk_path)) {
@@ -2619,7 +2619,7 @@
         if (defined(invoker.proguard_configs)) {
           proguard_configs += invoker.proguard_configs
         }
-        if (_enable_main_dex_list) {
+        if (_enable_multidex) {
           proguard_configs += [ "//build/android/multidex.flags" ]
         }
         proguard_mapping_path = _proguard_mapping_path
@@ -4027,7 +4027,7 @@
     _proguard_enabled =
         defined(invoker.proguard_enabled) && invoker.proguard_enabled
     _enable_multidex =
-        !defined(invoker.enable_multidex) || invoker.enable_multidex
+        defined(invoker.enable_multidex) && invoker.enable_multidex
 
     if (!_proguard_enabled && defined(invoker.min_sdk_version)) {
       not_needed(invoker, [ "min_sdk_version" ])
diff --git a/build/config/linux/atk/BUILD.gn b/build/config/linux/atk/BUILD.gn
index 59c06f8..afc811da 100644
--- a/build/config/linux/atk/BUILD.gn
+++ b/build/config/linux/atk/BUILD.gn
@@ -30,6 +30,12 @@
   defines = [
     "ATK_LIB_DIR=\"$atk_lib_dir\"",
     "USE_ATK_BRIDGE",
+
+    # The AtkValue interface methods we implement and test have been deprecated
+    # in favor of new API. But that new API cannot be used until corresponding
+    # support has been added to AT-SPI2 and we stop supporting earlier versions
+    # of ATK (i.e. < 2.12).
+    "ATK_DISABLE_DEPRECATION_WARNINGS",
   ]
 }
 
diff --git a/build/win/message_compiler.py b/build/win/message_compiler.py
index ee4abdc..51de52f0 100644
--- a/build/win/message_compiler.py
+++ b/build/win/message_compiler.py
@@ -67,7 +67,7 @@
     # we use the 2017 Fall Creator's Update by default.
     mc_help = subprocess.check_output(['mc.exe', '/?'], env=env_dict,
                                       stderr=subprocess.STDOUT, shell=True)
-    version = re.search(b'Message Compiler\s+Version (\S+)', mc_help).group(1)
+    version = re.search(br'Message Compiler\s+Version (\S+)', mc_help).group(1)
     if version != '10.0.15063':
       return
 
diff --git a/cc/animation/animation_host.cc b/cc/animation/animation_host.cc
index 108c332..0f19e5f6 100644
--- a/cc/animation/animation_host.cc
+++ b/cc/animation/animation_host.cc
@@ -413,8 +413,8 @@
   TickMutator(monotonic_time, scroll_tree, true /* is_active_tree */);
 }
 
-void AnimationHost::TickWorkletAnimations(base::TimeTicks monotonic_time) {
-  TickAnimationsIf(ticking_animations_, monotonic_time,
+void AnimationHost::TickWorkletAnimations() {
+  TickAnimationsIf(ticking_animations_, base::TimeTicks(),
                    [](const Animation& animation) {
                      return animation.IsWorkletAnimation();
                    });
diff --git a/cc/animation/animation_host.h b/cc/animation/animation_host.h
index 0713f5d..21db692 100644
--- a/cc/animation/animation_host.h
+++ b/cc/animation/animation_host.h
@@ -113,7 +113,7 @@
                       bool is_active_tree) override;
   void TickScrollAnimations(base::TimeTicks monotonic_time,
                             const ScrollTree& scroll_tree) override;
-  void TickWorkletAnimations(base::TimeTicks monotonic_time) override;
+  void TickWorkletAnimations() override;
   bool UpdateAnimationState(bool start_ready_animations,
                             MutatorEvents* events) override;
   void PromoteScrollTimelinesPendingToActive() override;
diff --git a/cc/animation/animation_host_unittest.cc b/cc/animation/animation_host_unittest.cc
index adf646e..f2f4bd650 100644
--- a/cc/animation/animation_host_unittest.cc
+++ b/cc/animation/animation_host_unittest.cc
@@ -182,7 +182,7 @@
   // Emulate behavior in PrepareToDraw. Animation worklet updates are best
   // effort, and the animation tick is deferred until draw to allow time for the
   // updates to arrive.
-  host_impl_->TickWorkletAnimations(base::TimeTicks());
+  host_impl_->TickWorkletAnimations();
 
   TestLayer* layer =
       client_.FindTestLayer(element_id_, ElementListType::ACTIVE);
diff --git a/cc/animation/animation_unittest.cc b/cc/animation/animation_unittest.cc
index ab18ff0..273491d0 100644
--- a/cc/animation/animation_unittest.cc
+++ b/cc/animation/animation_unittest.cc
@@ -907,6 +907,30 @@
       element_id_, ElementListType::PENDING, transform_x, transform_y);
 }
 
+TEST_F(AnimationTest, TickingState) {
+  KeyframeEffectId keyframe_effect_id = animation_->NextKeyframeEffectId();
+
+  animation_->AddKeyframeEffect(
+      std::make_unique<KeyframeEffect>(keyframe_effect_id));
+
+  host_->AddAnimationTimeline(timeline_);
+  timeline_->AttachAnimation(animation_);
+
+  const int transform_x = 10;
+  const int transform_y = 20;
+  const double duration = 1.;
+  animation_->AttachElementForKeyframeEffect(element_id_, keyframe_effect_id);
+  AddAnimatedTransformToAnimation(animation_.get(), duration, transform_x,
+                                  transform_y, keyframe_effect_id);
+  KeyframeEffect* keyframe_effect =
+      animation_->GetKeyframeEffectById(keyframe_effect_id);
+  EXPECT_FALSE(keyframe_effect->is_ticking());
+  client_.RegisterElement(element_id_, ElementListType::ACTIVE);
+  EXPECT_TRUE(keyframe_effect->is_ticking());
+  client_.UnregisterElement(element_id_, ElementListType::ACTIVE);
+  EXPECT_FALSE(keyframe_effect->is_ticking());
+}
+
 TEST_F(AnimationTest, KeyframeEffectSyncToImplTest) {
   host_->AddAnimationTimeline(timeline_);
   EXPECT_TRUE(timeline_->needs_push_properties());
diff --git a/cc/animation/keyframe_effect.cc b/cc/animation/keyframe_effect.cc
index 6cad95b..0d8d13c 100644
--- a/cc/animation/keyframe_effect.cc
+++ b/cc/animation/keyframe_effect.cc
@@ -206,12 +206,10 @@
 void KeyframeEffect::UpdateTickingState() {
   if (animation_->has_animation_host()) {
     bool was_ticking = is_ticking_;
-    is_ticking_ = HasNonDeletedKeyframeModel();
+    is_ticking_ = HasNonDeletedKeyframeModel() &&
+                  element_animations_->has_element_in_any_list();
 
-    bool has_element_in_any_list =
-        element_animations_->has_element_in_any_list();
-
-    if (is_ticking_ && !was_ticking && has_element_in_any_list) {
+    if (is_ticking_ && !was_ticking) {
       animation_->AddToTicking();
     } else if (!is_ticking_ && was_ticking) {
       RemoveFromTicking();
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 7bf58fe..be98f117 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -1328,8 +1328,7 @@
   // an animation worklet is asked to produce its output at the beginning of the
   // frame along side other animations but its output arrives asynchronously so
   // we tick worklet animations and apply that output here instead.
-  base::TimeTicks monotonic_time = CurrentBeginFrameArgs().frame_time;
-  mutator_host_->TickWorkletAnimations(monotonic_time);
+  mutator_host_->TickWorkletAnimations();
 
   bool ok = active_tree_->UpdateDrawProperties();
   DCHECK(ok) << "UpdateDrawProperties failed during draw";
diff --git a/cc/trees/mutator_host.h b/cc/trees/mutator_host.h
index 7ab32e3e..68ae50d 100644
--- a/cc/trees/mutator_host.h
+++ b/cc/trees/mutator_host.h
@@ -70,7 +70,7 @@
   // Tick animations that depends on scroll offset.
   virtual void TickScrollAnimations(base::TimeTicks monotonic_time,
                                     const ScrollTree& scroll_tree) = 0;
-  virtual void TickWorkletAnimations(base::TimeTicks monotonic_time) = 0;
+  virtual void TickWorkletAnimations() = 0;
   virtual bool UpdateAnimationState(bool start_ready_animations,
                                     MutatorEvents* events) = 0;
   virtual void PromoteScrollTimelinesPendingToActive() = 0;
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 25a548e3..331491a4 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -1585,17 +1585,14 @@
                              "is_modern",
                              "module_name",
                              "target_type",
-                             "enable_multidex",
                            ])
 
     deps = _chrome_public_shared_deps
 
     if (_is_modern) {
-      min_sdk_version = 21
       android_manifest = chrome_modern_public_android_manifest
       android_manifest_dep = ":chrome_modern_public_android_manifest"
     } else {
-      min_sdk_version = 19
       android_manifest = chrome_public_android_manifest
       android_manifest_dep = ":chrome_public_android_manifest"
     }
@@ -1637,7 +1634,6 @@
 chrome_public_apk_or_module_tmpl("chrome_public_apk") {
   target_type = "android_apk"
   apk_name = "ChromePublic"
-  enable_multidex = is_java_debug
 }
 
 chrome_public_apk_or_module_tmpl("chrome_modern_public_apk") {
@@ -1898,6 +1894,11 @@
       proguard_enabled = true
       proguard_configs = [ "//chrome/android/java/apk_for_test.flags" ]
     }
+
+    # The test APK contains code from both the APK under test and the
+    # test APK when proguard is enabled. That causes this APK to exceed
+    # the dex limit.
+    enable_multidex = true
   }
 }
 
@@ -1950,6 +1951,9 @@
       ":chrome_test_vr_java",
     ]
     proguard_enabled = false
+
+    # APK exceeds dex limit if not enabled
+    enable_multidex = true
   }
 }
 
@@ -1971,6 +1975,11 @@
     }
     alternative_android_sdk_dep = webview_framework_dep
 
+    # The test APK contains code from both the APK under test and the
+    # test APK when proguard is enabled. That causes this APK to exceed
+    # the dex limit.
+    enable_multidex = proguard_enabled
+
     never_incremental = true
   }
 }
diff --git a/chrome/android/OWNERS b/chrome/android/OWNERS
index a66cf43..20c4daa 100644
--- a/chrome/android/OWNERS
+++ b/chrome/android/OWNERS
@@ -8,6 +8,9 @@
 
 per-file static_initializers.gni=*
 per-file java_sources.gni=*
+per-file chrome_java_sources.gni=*
+per-file chrome_test_java_sources.gni=*
+per-file chrome_junit_test_java_sources.gni=*
 # For VR Javatest changes
 per-file BUILD.gn=bsheedy@chromium.org
 
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
new file mode 100644
index 0000000..545518b
--- /dev/null
+++ b/chrome/android/chrome_java_sources.gni
@@ -0,0 +1,1816 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+chrome_java_sources = [
+  "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
+  "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
+  "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
+  "java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
+  "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
+  "java/src/org/chromium/chrome/browser/AppHooks.java",
+  "java/src/org/chromium/chrome/browser/AppHooksModule.java",
+  "java/src/org/chromium/chrome/browser/AppIndexingUtil.java",
+  "java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
+  "java/src/org/chromium/chrome/browser/AssistStatusHandler.java",
+  "java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java",
+  "java/src/org/chromium/chrome/browser/BitmapCache.java",
+  "java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java",
+  "java/src/org/chromium/chrome/browser/BrowserRestartActivity.java",
+  "java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java",
+  "java/src/org/chromium/chrome/browser/ChromeActivity.java",
+  "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
+  "java/src/org/chromium/chrome/browser/ChromeApplication.java",
+  "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
+  "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
+  "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
+  "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
+  "java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
+  "java/src/org/chromium/chrome/browser/ChromeHttpAuthHandler.java",
+  "java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/ChromeLocalizationUtils.java",
+  "java/src/org/chromium/chrome/browser/ChromeStrictMode.java",
+  "java/src/org/chromium/chrome/browser/ChromeStringConstants.java",
+  "java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
+  "java/src/org/chromium/chrome/browser/ChromeTabbedActivity2.java",
+  "java/src/org/chromium/chrome/browser/ChromeVersionInfo.java",
+  "java/src/org/chromium/chrome/browser/ChromeWindow.java",
+  "java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java",
+  "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
+  "java/src/org/chromium/chrome/browser/DelayedScreenLockIntentHandler.java",
+  "java/src/org/chromium/chrome/browser/DeviceConditions.java",
+  "java/src/org/chromium/chrome/browser/DevToolsServer.java",
+  "java/src/org/chromium/chrome/browser/FileProviderHelper.java",
+  "java/src/org/chromium/chrome/browser/InsetObserverView.java",
+  "java/src/org/chromium/chrome/browser/IntentHandler.java",
+  "java/src/org/chromium/chrome/browser/IntentHeadersRecorder.java",
+  "java/src/org/chromium/chrome/browser/IntentHelper.java",
+  "java/src/org/chromium/chrome/browser/ItemChooserDialog.java",
+  "java/src/org/chromium/chrome/browser/KeyboardShortcuts.java",
+  "java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java",
+  "java/src/org/chromium/chrome/browser/LauncherShortcutActivity.java",
+  "java/src/org/chromium/chrome/browser/LoginPrompt.java",
+  "java/src/org/chromium/chrome/browser/NavigationBarColorController.java",
+  "java/src/org/chromium/chrome/browser/NavigationPopup.java",
+  "java/src/org/chromium/chrome/browser/NearOomMonitor.java",
+  "java/src/org/chromium/chrome/browser/PowerBroadcastReceiver.java",
+  "java/src/org/chromium/chrome/browser/SSLClientCertificateRequest.java",
+  "java/src/org/chromium/chrome/browser/ReturnToChromeExperimentsUtil.java",
+  "java/src/org/chromium/chrome/browser/SearchGeolocationDisclosureTabHelper.java",
+  "java/src/org/chromium/chrome/browser/ServiceTabLauncher.java",
+  "java/src/org/chromium/chrome/browser/ShortcutHelper.java",
+  "java/src/org/chromium/chrome/browser/SingleTabActivity.java",
+  "java/src/org/chromium/chrome/browser/SnackbarActivity.java",
+  "java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java",
+  "java/src/org/chromium/chrome/browser/SynchronousInitializationActivity.java",
+  "java/src/org/chromium/chrome/browser/TabThemeColorProvider.java",
+  "java/src/org/chromium/chrome/browser/ThemeColorProvider.java",
+  "java/src/org/chromium/chrome/browser/UrlConstants.java",
+  "java/src/org/chromium/chrome/browser/UsbChooserDialog.java",
+  "java/src/org/chromium/chrome/browser/WarmupManager.java",
+  "java/src/org/chromium/chrome/browser/WebContentsFactory.java",
+  "java/src/org/chromium/chrome/browser/WindowDelegate.java",
+  "java/src/org/chromium/chrome/browser/ZoomController.java",
+  "java/src/org/chromium/chrome/browser/accessibility/FontSizePrefs.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenu.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuButtonHelper.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuDragHelper.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuItemIcon.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuObserver.java",
+  "java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillExpirationDateFixFlowBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillExpirationDateFixFlowPrompt.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillLogger.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillNameFixFlowBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillNameFixFlowPrompt.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/AutofillUiUtils.java",
+  "java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java",
+  "java/src/org/chromium/chrome/browser/autofill/CreditCardScanner.java",
+  "java/src/org/chromium/chrome/browser/autofill/CreditCardScannerBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/PasswordGenerationAdapter.java",
+  "java/src/org/chromium/chrome/browser/autofill/PasswordGenerationPopupBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java",
+  "java/src/org/chromium/chrome/browser/autofill/PhoneNumberUtil.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessoryPagerAdapter.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetMediator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetProperties.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabModel.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetView.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/CachedProviderAdapter.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/CreditCardAccessorySheetCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryData.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMetricsRecorder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModernView.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModernViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryProperties.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryRecyclerViewMcp.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutMediator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutProperties.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutView.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardExtensionSizeManager.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingBridge.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingProperties.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingState.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingStateCache.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryInfoView.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetCoordinator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetMediator.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetModernViewBinder.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/Provider.java",
+  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PropertyProvider.java",
+  "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskScheduler.java",
+  "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/banners/AppBannerManager.java",
+  "java/src/org/chromium/chrome/browser/banners/AppBannerUiDelegateAndroid.java",
+  "java/src/org/chromium/chrome/browser/banners/AppData.java",
+  "java/src/org/chromium/chrome/browser/banners/AppDetailsDelegate.java",
+  "java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddActivity.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderRow.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkLaunchLocation.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java",
+  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java",
+  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProvider.java",
+  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java",
+  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuHelper.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuItemDelegate.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsCustomContextMenuItem.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsService.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabCreatorManager.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabModelSelector.java",
+  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabPersistencePolicy.java",
+  "java/src/org/chromium/chrome/browser/browserservices/BrowserServicesMetrics.java",
+  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionContentHandler.java",
+  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionContentUtils.java",
+  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionDataProvider.java",
+  "java/src/org/chromium/chrome/browser/browserservices/ClearDataDialogActivity.java",
+  "java/src/org/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder.java",
+  "java/src/org/chromium/chrome/browser/browserservices/ClientAppBroadcastReceiver.java",
+  "java/src/org/chromium/chrome/browser/browserservices/ClientAppDataRegister.java",
+  "java/src/org/chromium/chrome/browser/browserservices/ManageTrustedWebActivityDataActivity.java",
+  "java/src/org/chromium/chrome/browser/browserservices/Origin.java",
+  "java/src/org/chromium/chrome/browser/browserservices/OriginVerifier.java",
+  "java/src/org/chromium/chrome/browser/browserservices/PostMessageHandler.java",
+  "java/src/org/chromium/chrome/browser/browserservices/Relationship.java",
+  "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClient.java",
+  "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityUmaRecorder.java",
+  "java/src/org/chromium/chrome/browser/browserservices/UkmRecorder.java",
+  "java/src/org/chromium/chrome/browser/browserservices/VerificationResultStore.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/TrustedWebActivityCoordinator.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/TrustedWebActivityModel.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/ClientAppDataRecorder.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityDisclosureController.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityOpenTimeRecorder.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityToolbarController.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityVerifier.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/view/TrustedWebActivityDisclosureView.java",
+  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/view/TrustedWebActivityToolbarView.java",
+  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilter.java",
+  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilterBridge.java",
+  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilters.java",
+  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcher.java",
+  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherBridge.java",
+  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherImpl.java",
+  "java/src/org/chromium/chrome/browser/cached_image_fetcher/InMemoryCachedImageFetcher.java",
+  "java/src/org/chromium/chrome/browser/childaccounts/ChildAccountFeedbackReporter.java",
+  "java/src/org/chromium/chrome/browser/childaccounts/ChildAccountService.java",
+  "java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java",
+  "java/src/org/chromium/chrome/browser/component_updater/UpdateTask.java",
+  "java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java",
+  "java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl.java",
+  "java/src/org/chromium/chrome/browser/compositor/CompositorView.java",
+  "java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java",
+  "java/src/org/chromium/chrome/browser/compositor/EventOffsetHandler.java",
+  "java/src/org/chromium/chrome/browser/compositor/Invalidator.java",
+  "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java",
+  "java/src/org/chromium/chrome/browser/compositor/TitleCache.java",
+  "java/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimationHandler.java",
+  "java/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimator.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayContentDelegate.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayContentProgressObserver.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContentFactory.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContentViewDelegate.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelInflater.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelTextViewInflater.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchBarBannerControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchBarControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchCaptionControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchContextControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPromoControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchTermControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabBarControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCaptionControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabPanel.java",
+  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabTitleControl.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/ChromeAnimation.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/EmptyOverviewModeObserver.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerHost.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutProvider.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutRenderHost.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeBehavior.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeController.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/SceneChangeObserver.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/StaticLayout.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/components/CompositorButton.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/components/VirtualView.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/content/ContentOffsetProvider.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/content/InvalidationAwareThumbnailProvider.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/content/TitleBitmapFactory.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/AreaGestureEventFilter.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/BlackHoleEventFilter.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EdgeSwipeHandler.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EmptyEdgeSwipeHandler.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EventFilter.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/GestureHandler.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/ScrollDirection.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/OverlappingStack.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationPortrait.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackScroller.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackTab.java",
+  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackViewAnimation.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/SceneOverlay.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/CascadingStripStacker.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollingStripStacker.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripStacker.java",
+  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabLoadTracker.java",
+  "java/src/org/chromium/chrome/browser/compositor/resources/ResourceFactory.java",
+  "java/src/org/chromium/chrome/browser/compositor/resources/StaticResourcePreloads.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/EphemeralTabSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneOverlayLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ScrollingBottomViewSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java",
+  "java/src/org/chromium/chrome/browser/consent_auditor/ConsentAuditorBridge.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactDetails.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactView.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactViewHolder.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerDialog.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerToolbar.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/FetchIconWorkerTask.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/PickerCategoryView.java",
+  "java/src/org/chromium/chrome/browser/contacts_picker/TopView.java",
+  "java/src/org/chromium/chrome/browser/content/ContentUtils.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItem.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuParams.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuPopulator.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuTitleView.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUi.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuController.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuListAdapter.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuListView.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/ShareContextMenuItem.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuPagerAdapter.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java",
+  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ClusterList.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContentCoordinator.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionCardViewHolder.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsAdapter.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsBottomSheetContent.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsBridge.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCluster.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCoordinator.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsEnabledStateUtils.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsEventReporter.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsMediator.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModel.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModule.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSource.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSourceImpl.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitor.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitorImpl.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/FetchHelper.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimer.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/PeekConditions.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarView.java",
+  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarViewBinder.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/BarOverlapTapSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContext.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchEntityHeuristic.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFieldTrial.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristic.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristics.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchIPH.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionPersister.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionPersisterImpl.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionRecorder.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateHandler.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagementDelegate.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchNetworkCommunicator.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchObserver.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRankerLoggerImpl.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequest.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionHandler.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapState.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslateController.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslateInterface.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/CtrSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/EngagementSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/NearTopTapSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/QuickAnswersHeuristic.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/RecentScrollTapSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ResolvedSearchTerm.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/SecondTapMlOverride.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/ShortTextRunSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/SmallTextSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/SwipeRecognizer.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/TapDurationSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/TapFarFromPreviousSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/TapSuppressionHeuristics.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/TapWordEdgeSuppression.java",
+  "java/src/org/chromium/chrome/browser/contextualsearch/TapWordLengthSuppression.java",
+  "java/src/org/chromium/chrome/browser/cookies/CanonicalCookie.java",
+  "java/src/org/chromium/chrome/browser/cookies/CookiesFetcher.java",
+  "java/src/org/chromium/chrome/browser/coordinator/CoordinatorLayoutForPointer.java",
+  "java/src/org/chromium/chrome/browser/crash/ApplicationStatusTracker.java",
+  "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploadJobService.java",
+  "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploaderDelegate.java",
+  "java/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnable.java",
+  "java/src/org/chromium/chrome/browser/crash/MinidumpLogcatPrepender.java",
+  "java/src/org/chromium/chrome/browser/crash/MinidumpUploadRetry.java",
+  "java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java",
+  "java/src/org/chromium/chrome/browser/crash/PureJavaExceptionHandler.java",
+  "java/src/org/chromium/chrome/browser/crash/PureJavaExceptionReporter.java",
+  "java/src/org/chromium/chrome/browser/crypto/ByteArrayGenerator.java",
+  "java/src/org/chromium/chrome/browser/crypto/CipherFactory.java",
+  "java/src/org/chromium/chrome/browser/customtabs/ClientManager.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CloseButtonNavigator.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomButtonParams.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabBottomBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabBrowserControlsVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabNightModeStateController.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicy.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabTopBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java",
+  "java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java",
+  "java/src/org/chromium/chrome/browser/customtabs/FirstMeaningfulPaintObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java",
+  "java/src/org/chromium/chrome/browser/customtabs/NavigationInfoCaptureTrigger.java",
+  "java/src/org/chromium/chrome/browser/customtabs/PageLoadMetricsObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/PaymentHandlerActivity.java",
+  "java/src/org/chromium/chrome/browser/customtabs/RequestThrottler.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity0.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity1.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity2.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity3.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity4.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity5.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity6.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity7.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity8.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity9.java",
+  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java",
+  "java/src/org/chromium/chrome/browser/customtabs/TabObserverRegistrar.java",
+  "java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java",
+  "java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegate.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegatePostMessageBackend.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleConstants.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleCoordinator.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleNavigationEventObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModulePageLoadObserver.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleToolbarController.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleEntryPoint.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleLoader.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetrics.java",
+  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ObjectWrapper.java",
+  "java/src/org/chromium/chrome/browser/database/SQLiteCursor.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionBrandingResourceProvider.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionMainMenuItem.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionPromoScreen.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionPromoUtils.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionProxyUma.java",
+  "java/src/org/chromium/chrome/browser/datareduction/DataReductionSavingsMilestonePromo.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ActivityScope.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeActivityCommonsModule.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeActivityComponent.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppModule.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeCommonQualifiers.java",
+  "java/src/org/chromium/chrome/browser/dependency_injection/ModuleFactoryOverrides.java",
+  "java/src/org/chromium/chrome/browser/device/DeviceClassManager.java",
+  "java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutController.java",
+  "java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java",
+  "java/src/org/chromium/chrome/browser/document/DocumentActivity.java",
+  "java/src/org/chromium/chrome/browser/document/DocumentUtils.java",
+  "java/src/org/chromium/chrome/browser/document/DocumentWebContentsDelegate.java",
+  "java/src/org/chromium/chrome/browser/document/IncognitoDocumentActivity.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/DistilledPagePrefsView.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerServiceFactory.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerTabUtils.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerUIUtils.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java",
+  "java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTabInfo.java",
+  "java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java",
+  "java/src/org/chromium/chrome/browser/download/DirectoryOption.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadActivity.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadController.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadDirectoryProvider.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadForegroundService.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java",
+  "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/DownloadInfoBarController.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadItem.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadLocationCustomView.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadManagerBridge.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadManagerService.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadMediaData.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadMediaParserBridge.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadMetrics.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadNotificationServiceObserver.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadNotifier.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadPage.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadResumptionBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadResumptionScheduler.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadServiceDelegate.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceEntry.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceHelper.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadUmaStatsEntry.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadUpdate.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadUtils.java",
+  "java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java",
+  "java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java",
+  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorFactory.java",
+  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java",
+  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerUiConfig.java",
+  "java/src/org/chromium/chrome/browser/download/home/JustNowProvider.java",
+  "java/src/org/chromium/chrome/browser/download/home/OfflineItemSource.java",
+  "java/src/org/chromium/chrome/browser/download/home/StableIds.java",
+  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyProperties.java",
+  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyView.java",
+  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyViewBinder.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/DeleteUndoOfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/FilterChipsProvider.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/FilterCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/FilterProperties.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/FilterView.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/FilterViewBinder.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/Filters.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/InvalidStateOfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/OffTheRecordOfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterObserver.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterSource.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/TypeOfflineItemFilter.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/chips/Chip.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsProvider.java",
+  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/glue/DownloadGlue.java",
+  "java/src/org/chromium/chrome/browser/download/home/glue/FileDeletionQueue.java",
+  "java/src/org/chromium/chrome/browser/download/home/glue/OfflineContentProviderGlue.java",
+  "java/src/org/chromium/chrome/browser/download/home/glue/ThumbnailRequestGlue.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/BatchListModel.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/CalendarFactory.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/CalendarUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMediator.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMutator.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListView.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListViewAdapter.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/DecoratedListItemModel.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ItemUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ListItem.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ListItemModel.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ListProperties.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ListPropertyViewBinder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ListUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/ShareUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/UiUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/CustomViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/GenericViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/ImageViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressGenericViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressImageViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressVideoViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/ListItemViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/OfflineItemViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/PrefetchViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/SectionTitleViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/holder/VideoViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/AspectRatioFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/AsyncImageView.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/AutoAnimatorDrawable.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/CircularProgressView.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/ForegroundDrawableCompat.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/ForegroundRoundedCornerImageView.java",
+  "java/src/org/chromium/chrome/browser/download/home/list/view/UiUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/metrics/FileExtensions.java",
+  "java/src/org/chromium/chrome/browser/download/home/metrics/FilterChangeLogger.java",
+  "java/src/org/chromium/chrome/browser/download/home/metrics/OfflineItemStartupLogger.java",
+  "java/src/org/chromium/chrome/browser/download/home/metrics/UmaUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/rename/RenameDialogCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/rename/RenameDialogCustomView.java",
+  "java/src/org/chromium/chrome/browser/download/home/snackbars/DeleteUndoCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/snackbars/UndoUiUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/storage/StorageCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/storage/StorageSummaryProvider.java",
+  "java/src/org/chromium/chrome/browser/download/home/toolbar/DownloadHomeToolbar.java",
+  "java/src/org/chromium/chrome/browser/download/home/toolbar/ToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/download/home/toolbar/ToolbarUtils.java",
+  "java/src/org/chromium/chrome/browser/download/home/view/SelectionView.java",
+  "java/src/org/chromium/chrome/browser/download/items/DownloadBlockedOfflineContentProvider.java",
+  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorFactory.java",
+  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java",
+  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiFactory.java",
+  "java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/download/service/DownloadTaskScheduler.java",
+  "java/src/org/chromium/chrome/browser/download/ui/BackendItems.java",
+  "java/src/org/chromium/chrome/browser/download/ui/BackendProvider.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DeletedFileTracker.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadFilter.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemViewHolder.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadItemSelectionDelegate.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadManagerToolbar.java",
+  "java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java",
+  "java/src/org/chromium/chrome/browser/download/ui/FilePathsToDownloadItemsMap.java",
+  "java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java",
+  "java/src/org/chromium/chrome/browser/download/ui/LoadingStateDelegate.java",
+  "java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java",
+  "java/src/org/chromium/chrome/browser/download/ui/SpaceDisplay.java",
+  "java/src/org/chromium/chrome/browser/engagement/SiteEngagementService.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/CategoryCardAdapter.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/CategoryCardViewHolderFactory.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExperimentalExploreSitesCategoryTileView.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExperimentalExploreSitesSection.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridge.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridgeExperimental.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategory.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryCardView.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryTile.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryTileView.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesEnums.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSection.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSite.java",
+  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesTileView.java",
+  "java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java",
+  "java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java",
+  "java/src/org/chromium/chrome/browser/externalauth/VerifiedHandler.java",
+  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java",
+  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java",
+  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationParams.java",
+  "java/src/org/chromium/chrome/browser/externalnav/IntentWithGesturesHandler.java",
+  "java/src/org/chromium/chrome/browser/favicon/FaviconHelper.java",
+  "java/src/org/chromium/chrome/browser/favicon/LargeIconBridge.java",
+  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java",
+  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitorDelegate.java",
+  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotTabObserver.java",
+  "java/src/org/chromium/chrome/browser/feature_engagement/TrackerFactory.java",
+  "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSourceAdapter.java",
+  "java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java",
+  "java/src/org/chromium/chrome/browser/feedback/ConnectivityFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java",
+  "java/src/org/chromium/chrome/browser/feedback/DataReductionProxyFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/DuetFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java",
+  "java/src/org/chromium/chrome/browser/feedback/FeedbackContextFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/FeedbackReporter.java",
+  "java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/FeedbackSourceProvider.java",
+  "java/src/org/chromium/chrome/browser/feedback/HistogramFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/IMEFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/InterestFeedFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/LowEndDeviceFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/PermissionFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/ProcessIdFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
+  "java/src/org/chromium/chrome/browser/feedback/StaticScreenshotSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/SystemInfoFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/UrlFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/feedback/VariationsFeedbackSource.java",
+  "java/src/org/chromium/chrome/browser/findinpage/FindInPageBridge.java",
+  "java/src/org/chromium/chrome/browser/findinpage/FindMatchRectsDetails.java",
+  "java/src/org/chromium/chrome/browser/findinpage/FindNotificationDetails.java",
+  "java/src/org/chromium/chrome/browser/firstrun/AccountFirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunChooserView.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunView.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FirstRunViewPager.java",
+  "java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java",
+  "java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java",
+  "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
+  "java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java",
+  "java/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiver.java",
+  "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/ComposedBrowserControlsVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java",
+  "java/src/org/chromium/chrome/browser/fullscreen/TokenHolder.java",
+  "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClient.java",
+  "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java",
+  "java/src/org/chromium/chrome/browser/gcore/ConnectedTask.java",
+  "java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java",
+  "java/src/org/chromium/chrome/browser/gcore/LifecycleHook.java",
+  "java/src/org/chromium/chrome/browser/gesturenav/ArrowDrawable.java",
+  "java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java",
+  "java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java",
+  "java/src/org/chromium/chrome/browser/gsa/ContextReporter.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListener.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAContextDisplaySelection.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAContextReportDelegate.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAHelper.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java",
+  "java/src/org/chromium/chrome/browser/gsa/GSAState.java",
+  "java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java",
+  "java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryActivity.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryAdapter.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryItem.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryItemView.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryManager.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryManagerToolbar.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryManagerUtils.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryPage.java",
+  "java/src/org/chromium/chrome/browser/history/HistoryProvider.java",
+  "java/src/org/chromium/chrome/browser/historyreport/AppIndexingReporter.java",
+  "java/src/org/chromium/chrome/browser/historyreport/DeltaFileEntry.java",
+  "java/src/org/chromium/chrome/browser/historyreport/HistoryReportJniBridge.java",
+  "java/src/org/chromium/chrome/browser/historyreport/SearchJniBridge.java",
+  "java/src/org/chromium/chrome/browser/historyreport/UsageReport.java",
+  "java/src/org/chromium/chrome/browser/identity/SettingsSecureBasedIdentificationGenerator.java",
+  "java/src/org/chromium/chrome/browser/identity/UniqueIdentificationGenerator.java",
+  "java/src/org/chromium/chrome/browser/identity/UniqueIdentificationGeneratorFactory.java",
+  "java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoDisclosureActivity.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabHost.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabHostRegistry.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncher.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotController.java",
+  "java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java",
+  "java/src/org/chromium/chrome/browser/infobar/AdsBlockedInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java",
+  "java/src/org/chromium/chrome/browser/infobar/AutofillCreditCardFillingInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/AutofillSaveCardInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/CardDetail.java",
+  "java/src/org/chromium/chrome/browser/infobar/ConfirmInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/DuplicateDownloadInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/FramebustBlockInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/infobar/IPHBubbleDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/infobar/IPHInfoBarSupport.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarCompactLayout.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarControlLayout.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarMessageView.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarView.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarWrapper.java",
+  "java/src/org/chromium/chrome/browser/infobar/InstallableAmbientBadgeInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/InstantAppsInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/InstantAppsInfoBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/infobar/NearOomInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/NearOomReductionInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfoBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/infobar/PreviewsInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/PreviewsLitePageInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/ReaderModeInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/SavePasswordInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/SimpleConfirmInfoBarBuilder.java",
+  "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java",
+  "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/infobar/TextViewEllipsizerSafe.java",
+  "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java",
+  "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenu.java",
+  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenuHelper.java",
+  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabContent.java",
+  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabLayout.java",
+  "java/src/org/chromium/chrome/browser/init/ActivityLifecycleDispatcher.java",
+  "java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java",
+  "java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java",
+  "java/src/org/chromium/chrome/browser/init/BrowserParts.java",
+  "java/src/org/chromium/chrome/browser/init/ChainedTasks.java",
+  "java/src/org/chromium/chrome/browser/init/ChromeActivityNativeDelegate.java",
+  "java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java",
+  "java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java",
+  "java/src/org/chromium/chrome/browser/init/EmptyBrowserParts.java",
+  "java/src/org/chromium/chrome/browser/init/InvalidStartupDialog.java",
+  "java/src/org/chromium/chrome/browser/init/NativeInitializationController.java",
+  "java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java",
+  "java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java",
+  "java/src/org/chromium/chrome/browser/init/SingleWindowKeyboardVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderFactory.java",
+  "java/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderImpl.java",
+  "java/src/org/chromium/chrome/browser/installedapp/PackageHash.java",
+  "java/src/org/chromium/chrome/browser/instantapps/AuthenticatedProxyActivity.java",
+  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsBannerData.java",
+  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java",
+  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsSettings.java",
+  "java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapter.java",
+  "java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterService.java",
+  "java/src/org/chromium/chrome/browser/invalidation/ChromeInvalidationClientService.java",
+  "java/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsController.java",
+  "java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java",
+  "java/src/org/chromium/chrome/browser/invalidation/InvalidationServiceFactory.java",
+  "java/src/org/chromium/chrome/browser/invalidation/ResumableDelayedTaskRunner.java",
+  "java/src/org/chromium/chrome/browser/invalidation/SessionsInvalidationManager.java",
+  "java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java",
+  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialog.java",
+  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptDialogCustomView.java",
+  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptModalDialog.java",
+  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptTabModalDialog.java",
+  "java/src/org/chromium/chrome/browser/language/LanguageAskPrompt.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/ActivityResultWithNativeObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/Destroyable.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/InflationObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/LifecycleObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/NativeInitObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/PauseResumeWithNativeObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/SaveInstanceStateObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/StartStopWithNativeObserver.java",
+  "java/src/org/chromium/chrome/browser/lifecycle/WindowFocusChangedObserver.java",
+  "java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java",
+  "java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java",
+  "java/src/org/chromium/chrome/browser/locale/LocaleChangedBroadcastReceiver.java",
+  "java/src/org/chromium/chrome/browser/locale/LocaleManager.java",
+  "java/src/org/chromium/chrome/browser/locale/LocaleTemplateUrlLoader.java",
+  "java/src/org/chromium/chrome/browser/locale/SogouPromoDialog.java",
+  "java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java",
+  "java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java",
+  "java/src/org/chromium/chrome/browser/media/MediaViewerUtils.java",
+  "java/src/org/chromium/chrome/browser/media/PictureInPicture.java",
+  "java/src/org/chromium/chrome/browser/media/PictureInPictureController.java",
+  "java/src/org/chromium/chrome/browser/media/remote/RecordCastAction.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaButtonReceiver.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaImageCallback.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaImageManager.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationInfo.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationListener.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java",
+  "java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java",
+  "java/src/org/chromium/chrome/browser/metrics/ActivityStopMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker.java",
+  "java/src/org/chromium/chrome/browser/metrics/ImpressionTracker.java",
+  "java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java",
+  "java/src/org/chromium/chrome/browser/metrics/MediaSessionUMA.java",
+  "java/src/org/chromium/chrome/browser/metrics/OmniboxStartupMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/OneShotImpressionListener.java",
+  "java/src/org/chromium/chrome/browser/metrics/PackageMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/PageLoadMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java",
+  "java/src/org/chromium/chrome/browser/metrics/UmaUtils.java",
+  "java/src/org/chromium/chrome/browser/metrics/VariationsSession.java",
+  "java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java",
+  "java/src/org/chromium/chrome/browser/metrics/WebApkUma.java",
+  "java/src/org/chromium/chrome/browser/modaldialog/AppModalPresenter.java",
+  "java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java",
+  "java/src/org/chromium/chrome/browser/modaldialog/ModalDialogViewBinder.java",
+  "java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java",
+  "java/src/org/chromium/chrome/browser/modaldialog/TabModalPresenter.java",
+  "java/src/org/chromium/chrome/browser/modules/ModuleInstallUi.java",
+  "java/src/org/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar.java",
+  "java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceChromeTabbedActivity.java",
+  "java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java",
+  "java/src/org/chromium/chrome/browser/native_page/BasicNativePage.java",
+  "java/src/org/chromium/chrome/browser/native_page/ContextMenuManager.java",
+  "java/src/org/chromium/chrome/browser/native_page/FrozenNativePage.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePage.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePageAssassin.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePageHost.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegate.java",
+  "java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java",
+  "java/src/org/chromium/chrome/browser/nfc/BeamCallback.java",
+  "java/src/org/chromium/chrome/browser/nfc/BeamController.java",
+  "java/src/org/chromium/chrome/browser/nfc/BeamProvider.java",
+  "java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java",
+  "java/src/org/chromium/chrome/browser/night_mode/NightModeStateProvider.java",
+  "java/src/org/chromium/chrome/browser/night_mode/NightModeUtils.java",
+  "java/src/org/chromium/chrome/browser/night_mode/SystemNightModeMonitor.java",
+  "java/src/org/chromium/chrome/browser/notifications/ActionInfo.java",
+  "java/src/org/chromium/chrome/browser/notifications/ChromeNotification.java",
+  "java/src/org/chromium/chrome/browser/notifications/ChromeNotificationBuilder.java",
+  "java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilder.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilderBase.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilderFactory.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationCompatBuilder.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationJobService.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxyImpl.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationMetadata.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationService.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationSettingsBridge.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationSystemStatusUtil.java",
+  "java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java",
+  "java/src/org/chromium/chrome/browser/notifications/PendingIntentProvider.java",
+  "java/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilder.java",
+  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelDefinitions.java",
+  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelsInitializer.java",
+  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdater.java",
+  "java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java",
+  "java/src/org/chromium/chrome/browser/notifications/scheduler/NotificationSchedulerTask.java",
+  "java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java",
+  "java/src/org/chromium/chrome/browser/ntp/FakeRecentlyClosedTabManager.java",
+  "java/src/org/chromium/chrome/browser/ntp/ForeignSessionHelper.java",
+  "java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java",
+  "java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java",
+  "java/src/org/chromium/chrome/browser/ntp/LogoBridge.java",
+  "java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/ntp/LogoView.java",
+  "java/src/org/chromium/chrome/browser/ntp/NativePageRootFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPage.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java",
+  "java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsExpandableListView.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsPagePrefs.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedTab.java",
+  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedTabManager.java",
+  "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelper.java",
+  "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/CardsVariationParameters.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/Footer.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/Leaf.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/OptionalLeaf.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/PartiallyBindable.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressIndicatorView.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/ScrollToLoadListener.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/StatusItem.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsCategoryInfo.java",
+  "java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/CategoryInt.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/EmptySuggestionsSource.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeader.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java",
+  "java/src/org/chromium/chrome/browser/ntp/snippets/SuggestionsSource.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerBridge.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/CCTRequestStatus.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserver.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/ClientId.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/DeletedPageInfo.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/GetPagesByNamespaceForLivePageSharingCallback.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageItem.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageOrigin.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserver.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePagesDownloadManagerBridge.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/PublishPageCallback.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/SavePageAndShareCallback.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/SavePageRequest.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPacker.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/TriggerConditions.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarView.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/OfflineNotificationBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskScheduler.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchConfiguration.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchPrefs.java",
+  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java",
+  "java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java",
+  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java",
+  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
+  "java/src/org/chromium/chrome/browser/omaha/inline/NoopInlineUpdateController.java",
+  "java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java",
+  "java/src/org/chromium/chrome/browser/omaha/ExponentialBackoffScheduler.java",
+  "java/src/org/chromium/chrome/browser/omaha/MarketURLGetter.java",
+  "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java",
+  "java/src/org/chromium/chrome/browser/omaha/OmahaClient.java",
+  "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java",
+  "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java",
+  "java/src/org/chromium/chrome/browser/omaha/OmahaService.java",
+  "java/src/org/chromium/chrome/browser/omaha/RequestData.java",
+  "java/src/org/chromium/chrome/browser/omaha/RequestFailureException.java",
+  "java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java",
+  "java/src/org/chromium/chrome/browser/omaha/ResponseParser.java",
+  "java/src/org/chromium/chrome/browser/omaha/StringSanitizer.java",
+  "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
+  "java/src/org/chromium/chrome/browser/omaha/UpdateInfoBarController.java",
+  "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
+  "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
+  "java/src/org/chromium/chrome/browser/omaha/VersionNumber.java",
+  "java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java",
+  "java/src/org/chromium/chrome/browser/omaha/XMLParser.java",
+  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditText.java",
+  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextModel.java",
+  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextModelBase.java",
+  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteState.java",
+  "java/src/org/chromium/chrome/browser/omnibox/KeyboardHideHelper.java",
+  "java/src/org/chromium/chrome/browser/omnibox/LocationBar.java",
+  "java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java",
+  "java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java",
+  "java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java",
+  "java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java",
+  "java/src/org/chromium/chrome/browser/omnibox/OmniboxPrerender.java",
+  "java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java",
+  "java/src/org/chromium/chrome/browser/omnibox/OmniboxViewUtil.java",
+  "java/src/org/chromium/chrome/browser/omnibox/SpannableAutocompleteEditTextModel.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBar.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarData.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java",
+  "java/src/org/chromium/chrome/browser/omnibox/UrlFocusChangeListener.java",
+  "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java",
+  "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationTracker.java",
+  "java/src/org/chromium/chrome/browser/omnibox/geo/PlatformNetworksManager.java",
+  "java/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworks.java",
+  "java/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTracker.java",
+  "java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java",
+  "java/src/org/chromium/chrome/browser/omnibox/status/StatusViewBinder.java",
+  "java/src/org/chromium/chrome/browser/omnibox/status/StatusProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AnswersImageFetcher.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestion.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionUiType.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsList.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/VoiceSuggestionProvider.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionView.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextClassic.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionView.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewDelegate.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessor.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProperties.java",
+  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java",
+  "java/src/org/chromium/chrome/browser/page_info/CertificateChainHelper.java",
+  "java/src/org/chromium/chrome/browser/page_info/CertificateViewer.java",
+  "java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java",
+  "java/src/org/chromium/chrome/browser/page_info/PageInfoController.java",
+  "java/src/org/chromium/chrome/browser/page_info/PageInfoDialog.java",
+  "java/src/org/chromium/chrome/browser/page_info/PageInfoView.java",
+  "java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java",
+  "java/src/org/chromium/chrome/browser/page_info/SystemSettingsActivityRequiredListener.java",
+  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmark.java",
+  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottle.java",
+  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java",
+  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader.java",
+  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksShim.java",
+  "java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java",
+  "java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java",
+  "java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java",
+  "java/src/org/chromium/chrome/browser/password_manager/AutoSigninFirstRunDialog.java",
+  "java/src/org/chromium/chrome/browser/password_manager/Credential.java",
+  "java/src/org/chromium/chrome/browser/password_manager/GooglePasswordManagerUIProvider.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogBridge.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogCoordinator.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogCustomView.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogMediator.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogModel.java",
+  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogViewBinder.java",
+  "java/src/org/chromium/chrome/browser/payments/AddressEditor.java",
+  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java",
+  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFactory.java",
+  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java",
+  "java/src/org/chromium/chrome/browser/payments/AutofillAddress.java",
+  "java/src/org/chromium/chrome/browser/payments/AutofillContact.java",
+  "java/src/org/chromium/chrome/browser/payments/AutofillPaymentApp.java",
+  "java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java",
+  "java/src/org/chromium/chrome/browser/payments/BasicCardUtils.java",
+  "java/src/org/chromium/chrome/browser/payments/CanMakePaymentQuery.java",
+  "java/src/org/chromium/chrome/browser/payments/CardEditor.java",
+  "java/src/org/chromium/chrome/browser/payments/ContactEditor.java",
+  "java/src/org/chromium/chrome/browser/payments/JourneyLogger.java",
+  "java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentApp.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentAppFactory.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentInstrument.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentPreferencesUtil.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentRequestFactory.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java",
+  "java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java",
+  "java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentApp.java",
+  "java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java",
+  "java/src/org/chromium/chrome/browser/payments/SettingsAutofillAndPaymentsObserver.java",
+  "java/src/org/chromium/chrome/browser/payments/ShippingStrings.java",
+  "java/src/org/chromium/chrome/browser/payments/SslValidityChecker.java",
+  "java/src/org/chromium/chrome/browser/payments/UriUtils.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/ContactDetailsSection.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentInformation.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestBottomBar.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUiErrorView.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/SectionInformation.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/SectionUiUtils.java",
+  "java/src/org/chromium/chrome/browser/payments/ui/ShoppingCart.java",
+  "java/src/org/chromium/chrome/browser/permissions/AndroidPermissionRequester.java",
+  "java/src/org/chromium/chrome/browser/permissions/PermissionAppModalDialogView.java",
+  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java",
+  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java",
+  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogView.java",
+  "java/src/org/chromium/chrome/browser/permissions/PermissionUmaUtil.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/BitmapScalerTask.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/BitmapUtils.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/FileEnumWorkerTask.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialog.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerToolbar.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmap.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapView.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java",
+  "java/src/org/chromium/chrome/browser/photo_picker/PickerCategoryView.java",
+  "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/AboutChromePreferenceOSVersion.java",
+  "java/src/org/chromium/chrome/browser/preferences/AboutChromePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/AccessibilityPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/ButtonPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ChromeBaseCheckBoxPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ChromeBaseListPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ChromeBasePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java",
+  "java/src/org/chromium/chrome/browser/preferences/ChromeSwitchPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ClearBrowsingDataCheckBoxPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ContextualSuggestionsPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java",
+  "java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/HyperlinkPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/LearnMorePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/LegalInformationPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/LocationSettings.java",
+  "java/src/org/chromium/chrome/browser/preferences/MainPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/ManagedPreferenceDelegate.java",
+  "java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java",
+  "java/src/org/chromium/chrome/browser/preferences/ManageSyncPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/NightModePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/NotificationsPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/PrefChangeRegistrar.java",
+  "java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java",
+  "java/src/org/chromium/chrome/browser/preferences/PreferenceUtils.java",
+  "java/src/org/chromium/chrome/browser/preferences/Preferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java",
+  "java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java",
+  "java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SearchUtils.java",
+  "java/src/org/chromium/chrome/browser/preferences/SeekBarLinkedCheckBoxPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SeekBarPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SignInPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SpinnerPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SyncPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java",
+  "java/src/org/chromium/chrome/browser/preferences/SyncedAccountPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/TextAndButtonPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/TextMessagePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/TextScalePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AndroidPaymentAppPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AndroidPaymentAppsFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillCreditCardEditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillEditorBase.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPaymentMethodsFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileBridge.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileEditorPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillServerCardEditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillServerProfilePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill/CreditCardNumberFormattingTextWatcher.java",
+  "java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionDataUseItem.java",
+  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionSiteBreakdownView.java",
+  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionStatsPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/developer/DeveloperPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/developer/TracingCategoriesPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/developer/TracingPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java",
+  "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceAdapter.java",
+  "java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/AddLanguageFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageItem.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java",
+  "java/src/org/chromium/chrome/browser/preferences/languages/LanguagesPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/CallbackDelayer.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/DialogManager.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ExportErrorDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ExportWarningDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ManualCallbackDelayer.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/PasswordEntryEditor.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/PasswordManagerHandler.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/PasswordManagerHandlerProvider.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/PasswordReauthenticationFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/PasswordUIView.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ProgressBarDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/ReauthenticationManager.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/SavedPasswordEntry.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/SingleThreadBarrierClosure.java",
+  "java/src/org/chromium/chrome/browser/preferences/password/TimedCallbackDelayer.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/BandwidthType.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataBridge.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataCounterBridge.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataFetcher.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesAdvanced.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasic.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ConfirmImportantSitesDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/ContextualSearchPreferenceFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/DoNotTrackPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/OtherFormsOfHistoryDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java",
+  "java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/ChosenObjectInfo.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/ChosenObjectPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/ClearWebsiteStorage.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",
+  "java/src/org/chromium/chrome/browser/preferences/website/LocalStorageInfo.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/LocationCategory.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivity.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/NotificationCategory.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/PermissionInfo.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SettingsNavigationSource.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SiteDataCleaner.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/StorageInfo.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/TranslatePreferences.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/TriStateSiteSettingsPreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/Website.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/WebsiteAddress.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePreference.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java",
+  "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
+  "java/src/org/chromium/chrome/browser/prerender/ExternalPrerenderHandler.java",
+  "java/src/org/chromium/chrome/browser/previews/PreviewsAndroidBridge.java",
+  "java/src/org/chromium/chrome/browser/previews/PreviewsUma.java",
+  "java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java",
+  "java/src/org/chromium/chrome/browser/printing/TabPrinter.java",
+  "java/src/org/chromium/chrome/browser/profiles/Profile.java",
+  "java/src/org/chromium/chrome/browser/profiles/ProfileDownloader.java",
+  "java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java",
+  "java/src/org/chromium/chrome/browser/provider/BaseColumns.java",
+  "java/src/org/chromium/chrome/browser/provider/BookmarkColumns.java",
+  "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
+  "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProviderSuggestionsCursor.java",
+  "java/src/org/chromium/chrome/browser/provider/SearchColumns.java",
+  "java/src/org/chromium/chrome/browser/push_messaging/PushMessagingServiceObserver.java",
+  "java/src/org/chromium/chrome/browser/rappor/RapporServiceBridge.java",
+  "java/src/org/chromium/chrome/browser/rlz/RevenueStats.java",
+  "java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java",
+  "java/src/org/chromium/chrome/browser/search_engines/TemplateUrl.java",
+  "java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java",
+  "java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java",
+  "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java",
+  "java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java",
+  "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
+  "java/src/org/chromium/chrome/browser/send_tab_to_self/NotificationManager.java",
+  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridge.java",
+  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfEntry.java",
+  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivity.java",
+  "java/src/org/chromium/chrome/browser/services/AccountsChangedReceiver.java",
+  "java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
+  "java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
+  "java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
+  "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
+  "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
+  "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
+  "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
+  "java/src/org/chromium/chrome/browser/sessions/SessionTabHelper.java",
+  "java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java",
+  "java/src/org/chromium/chrome/browser/share/ShareActivity.java",
+  "java/src/org/chromium/chrome/browser/share/ShareDialogAdapter.java",
+  "java/src/org/chromium/chrome/browser/share/ShareHelper.java",
+  "java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java",
+  "java/src/org/chromium/chrome/browser/share/ShareParams.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountAdder.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountSigninChooseView.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountSigninConfirmationView.java",
+  "java/src/org/chromium/chrome/browser/signin/AccountSigninView.java",
+  "java/src/org/chromium/chrome/browser/signin/IdentityServicesProvider.java",
+  "java/src/org/chromium/chrome/browser/signin/ConfirmImportSyncDataDialog.java",
+  "java/src/org/chromium/chrome/browser/signin/ConfirmManagedSyncDataDialog.java",
+  "java/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachine.java",
+  "java/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachineDelegate.java",
+  "java/src/org/chromium/chrome/browser/signin/ConsentTextTracker.java",
+  "java/src/org/chromium/chrome/browser/signin/DisplayableProfileData.java",
+  "java/src/org/chromium/chrome/browser/signin/GoogleActivityController.java",
+  "java/src/org/chromium/chrome/browser/signin/PersonalizedSigninPromoView.java",
+  "java/src/org/chromium/chrome/browser/signin/ProfileDataCache.java",
+  "java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninActivity.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninFragment.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninFragmentBase.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninHelper.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninInvestigator.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninManager.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninPromoController.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninScrollView.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninUtils.java",
+  "java/src/org/chromium/chrome/browser/signin/SigninView.java",
+  "java/src/org/chromium/chrome/browser/signin/SyncPromoView.java",
+  "java/src/org/chromium/chrome/browser/signin/UnifiedConsentServiceBridge.java",
+  "java/src/org/chromium/chrome/browser/snackbar/BottomContainer.java",
+  "java/src/org/chromium/chrome/browser/snackbar/Snackbar.java",
+  "java/src/org/chromium/chrome/browser/snackbar/SnackbarCollection.java",
+  "java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java",
+  "java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java",
+  "java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java",
+  "java/src/org/chromium/chrome/browser/snackbar/smartlockautosignin/AutoSigninSnackbarController.java",
+  "java/src/org/chromium/chrome/browser/snackbar/undo/UndoBarController.java",
+  "java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java",
+  "java/src/org/chromium/chrome/browser/ssl/SecurityStateModel.java",
+  "java/src/org/chromium/chrome/browser/subresource_filter/TestSubresourceFilterPublisher.java",
+  "java/src/org/chromium/chrome/browser/suggestions/DestructionObserver.java",
+  "java/src/org/chromium/chrome/browser/suggestions/ImageFetcher.java",
+  "java/src/org/chromium/chrome/browser/suggestions/MostVisitedSites.java",
+  "java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java",
+  "java/src/org/chromium/chrome/browser/suggestions/NavigationRecorder.java",
+  "java/src/org/chromium/chrome/browser/suggestions/OfflinableSuggestion.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SiteSection.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SiteSectionViewHolder.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SiteSuggestion.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsDependencyFactory.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsEventReporter.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsEventReporterBridge.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsMetrics.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsOfflineModelObserver.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsRanker.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserver.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsTileView.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsUiDelegate.java",
+  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsUiDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/suggestions/ThumbnailGradient.java",
+  "java/src/org/chromium/chrome/browser/suggestions/Tile.java",
+  "java/src/org/chromium/chrome/browser/suggestions/TileGridLayout.java",
+  "java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java",
+  "java/src/org/chromium/chrome/browser/suggestions/TileGroup.java",
+  "java/src/org/chromium/chrome/browser/suggestions/TileGroupDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java",
+  "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java",
+  "java/src/org/chromium/chrome/browser/survey/SurveyController.java",
+  "java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java",
+  "java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java",
+  "java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java",
+  "java/src/org/chromium/chrome/browser/sync/SyncController.java",
+  "java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java",
+  "java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java",
+  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java",
+  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseCreationDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java",
+  "java/src/org/chromium/chrome/browser/sync/ui/SyncCustomizationFragment.java",
+  "java/src/org/chromium/chrome/browser/tab/AuthenticatorNavigationInterceptor.java",
+  "java/src/org/chromium/chrome/browser/tab/BrowserControlsVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/tab/ChildBackgroundTabShowObserver.java",
+  "java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java",
+  "java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/tab/SadTab.java",
+  "java/src/org/chromium/chrome/browser/tab/SadTabView.java",
+  "java/src/org/chromium/chrome/browser/tab/Tab.java",
+  "java/src/org/chromium/chrome/browser/tab/TabAttributeKeys.java",
+  "java/src/org/chromium/chrome/browser/tab/TabAttributes.java",
+  "java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java",
+  "java/src/org/chromium/chrome/browser/tab/TabBuilder.java",
+  "java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java",
+  "java/src/org/chromium/chrome/browser/tab/TabContextMenuPopulator.java",
+  "java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java",
+  "java/src/org/chromium/chrome/browser/tab/TabFavicon.java",
+  "java/src/org/chromium/chrome/browser/tab/TabFullscreenHandler.java",
+  "java/src/org/chromium/chrome/browser/tab/TabGestureStateListener.java",
+  "java/src/org/chromium/chrome/browser/tab/TabIdManager.java",
+  "java/src/org/chromium/chrome/browser/tab/TabImportanceManager.java",
+  "java/src/org/chromium/chrome/browser/tab/TabHelpers.java",
+  "java/src/org/chromium/chrome/browser/tab/TabObserver.java",
+  "java/src/org/chromium/chrome/browser/tab/TabParentIntent.java",
+  "java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java",
+  "java/src/org/chromium/chrome/browser/tab/TabState.java",
+  "java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java",
+  "java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java",
+  "java/src/org/chromium/chrome/browser/tab/TabUma.java",
+  "java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java",
+  "java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java",
+  "java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java",
+  "java/src/org/chromium/chrome/browser/tab/TabWebContentsUserData.java",
+  "java/src/org/chromium/chrome/browser/tab/TrustedCdn.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParams.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelFilter.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/SingleTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/SingleTabModelSelector.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabList.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelDelegate.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelFilterProvider.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderController.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorUma.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabPersistencePolicy.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabPersister.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/ActivityDelegate.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/ActivityDelegateImpl.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/AsyncTabCreationParams.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelSelector.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/IncognitoDocumentTabModel.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/StorageDelegate.java",
+  "java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java",
+  "java/src/org/chromium/chrome/browser/tasks/TasksUma.java",
+  "java/src/org/chromium/chrome/browser/tasks/tabgroup/TabGroupModelFilter.java",
+  "java/src/org/chromium/chrome/browser/tasks/tab_groups/LayoutTabGroupCreationButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/AppThemeColorProvider.java",
+  "java/src/org/chromium/chrome/browser/toolbar/HomeButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/IncognitoStateProvider.java",
+  "java/src/org/chromium/chrome/browser/toolbar/IncognitoToggleTabLayout.java",
+  "java/src/org/chromium/chrome/browser/toolbar/KeyboardNavigationListener.java",
+  "java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java",
+  "java/src/org/chromium/chrome/browser/toolbar/MenuButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/NewTabButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabCountProvider.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonProperties.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonView.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonViewBinder.java",
+  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherDrawable.java",
+  "java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java",
+  "java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java",
+  "java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java",
+  "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/CloseAllTabsButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java",
+  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ActionModeController.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbarAnimationDelegate.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTCoordinatorPhone.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToggleTabStackButton.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java",
+  "java/src/org/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate.java",
+  "java/src/org/chromium/chrome/browser/tracing/TracingController.java",
+  "java/src/org/chromium/chrome/browser/tracing/TracingNotificationManager.java",
+  "java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
+  "java/src/org/chromium/chrome/browser/translate/TranslateBridge.java",
+  "java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java",
+  "java/src/org/chromium/chrome/browser/upgrade/UpgradeActivity.java",
+  "java/src/org/chromium/chrome/browser/upgrade/UpgradeIntentService.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/DigitalWellbeingClient.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/EventTracker.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/PageViewObserver.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/SuspendedTab.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/SuspensionTracker.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/TokenGenerator.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/TokenTracker.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsBridge.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentActivity.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsService.java",
+  "java/src/org/chromium/chrome/browser/usage_stats/WebsiteEvent.java",
+  "java/src/org/chromium/chrome/browser/util/AccessibilityUtil.java",
+  "java/src/org/chromium/chrome/browser/util/ChromeContextUtil.java",
+  "java/src/org/chromium/chrome/browser/util/ChromeFileProvider.java",
+  "java/src/org/chromium/chrome/browser/util/ColorUtils.java",
+  "java/src/org/chromium/chrome/browser/util/ConversionUtils.java",
+  "java/src/org/chromium/chrome/browser/util/FeatureUtilities.java",
+  "java/src/org/chromium/chrome/browser/util/FileSizeUtil.java",
+  "java/src/org/chromium/chrome/browser/util/HashUtil.java",
+  "java/src/org/chromium/chrome/browser/util/IntentUtils.java",
+  "java/src/org/chromium/chrome/browser/util/KeyNavigationUtil.java",
+  "java/src/org/chromium/chrome/browser/util/MathUtils.java",
+  "java/src/org/chromium/chrome/browser/util/PlatformUtil.java",
+  "java/src/org/chromium/chrome/browser/util/UrlUtilities.java",
+  "java/src/org/chromium/chrome/browser/util/ViewUtils.java",
+  "java/src/org/chromium/chrome/browser/vr/ArDelegate.java",
+  "java/src/org/chromium/chrome/browser/vr/ArDelegateProvider.java",
+  "java/src/org/chromium/chrome/browser/webapps/ActivateWebApkActivity.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",
+  "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java",
+  "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHostSignature.java",
+  "java/src/org/chromium/chrome/browser/webapps/GooglePlayWebApkInstallDelegate.java",
+  "java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java",
+  "java/src/org/chromium/chrome/browser/metrics/SameActivityWebappUmaCache.java",
+  "java/src/org/chromium/chrome/browser/webapps/SameTaskWebApkActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/SplashscreenObserver.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity0.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity1.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity2.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity3.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity4.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity5.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity6.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity7.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity8.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity9.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkInstallService.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkManagedActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkPostShareTargetNavigator.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkServiceClient.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkShareTargetUtil.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkSplashNetworkErrorObserver.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateTask.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkVersionManager.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationManager.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity0.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity1.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity2.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity3.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity4.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity5.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity6.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity7.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity8.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappActivity9.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappAuthenticator.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappBrowserControlsDelegate.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappDirectoryManager.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarController.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappInfo.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappManagedActivity.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebApkOfflineDialog.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappScopePolicy.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappSplashDelegate.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappSplashScreenController.java",
+  "java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java",
+  "java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java",
+  "java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
+  "java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java",
+  "java/src/org/chromium/chrome/browser/webauth/HandlerResponseCallback.java",
+  "java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java",
+  "java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java",
+  "java/src/org/chromium/chrome/browser/widget/AlertDialogEditText.java",
+  "java/src/org/chromium/chrome/browser/widget/AlwaysDismissedDialog.java",
+  "java/src/org/chromium/chrome/browser/widget/BoundedLinearLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/ClipDrawableProgressBar.java",
+  "java/src/org/chromium/chrome/browser/widget/CompatibilityTextInputLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/ContextMenuDialog.java",
+  "java/src/org/chromium/chrome/browser/widget/ControlContainer.java",
+  "java/src/org/chromium/chrome/browser/widget/DateDividedAdapter.java",
+  "java/src/org/chromium/chrome/browser/widget/DualControlLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/EmptyAlertEditText.java",
+  "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/FeatureHighlightProvider.java",
+  "java/src/org/chromium/chrome/browser/widget/ListMenuButton.java",
+  "java/src/org/chromium/chrome/browser/widget/LoadingView.java",
+  "java/src/org/chromium/chrome/browser/widget/MaterialProgressBar.java",
+  "java/src/org/chromium/chrome/browser/widget/NumberRollView.java",
+  "java/src/org/chromium/chrome/browser/widget/OverviewListLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/PaddedFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/ProgressAnimationSmooth.java",
+  "java/src/org/chromium/chrome/browser/widget/PromoDialog.java",
+  "java/src/org/chromium/chrome/browser/widget/PromoDialogLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/PulseDrawable.java",
+  "java/src/org/chromium/chrome/browser/widget/PulseInterpolator.java",
+  "java/src/org/chromium/chrome/browser/widget/RadioButtonLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/RadioButtonWithDescription.java",
+  "java/src/org/chromium/chrome/browser/widget/RoundedIconGenerator.java",
+  "java/src/org/chromium/chrome/browser/widget/ScrimView.java",
+  "java/src/org/chromium/chrome/browser/widget/TextViewWithCompoundDrawables.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailGenerator.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailGeneratorCallback.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailProvider.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java",
+  "java/src/org/chromium/chrome/browser/widget/ThumbnailStorageDelegate.java",
+  "java/src/org/chromium/chrome/browser/widget/TintedDrawable.java",
+  "java/src/org/chromium/chrome/browser/widget/ToolbarProgressBar.java",
+  "java/src/org/chromium/chrome/browser/widget/ToolbarProgressBarAnimatingView.java",
+  "java/src/org/chromium/chrome/browser/widget/VerticallyFixedEditText.java",
+  "java/src/org/chromium/chrome/browser/widget/ViewHighlighter.java",
+  "java/src/org/chromium/chrome/browser/widget/ViewResourceFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelAdapter.java",
+  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java",
+  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListView.java",
+  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelWrapper.java",
+  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibleTextView.java",
+  "java/src/org/chromium/chrome/browser/widget/animation/AnimatorProperties.java",
+  "java/src/org/chromium/chrome/browser/widget/animation/CancelAwareAnimatorListener.java",
+  "java/src/org/chromium/chrome/browser/widget/animation/FocusAnimator.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetMetrics.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserver.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetSwipeDetector.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/EmptyBottomSheetObserver.java",
+  "java/src/org/chromium/chrome/browser/widget/bottomsheet/TouchRestrictingFrameLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserver.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/HorizontalDisplayStyle.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/VerticalDisplayStyle.java",
+  "java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java",
+  "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java",
+  "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewWrapper.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarManager.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarObserver.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarPhone.java",
+  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarTablet.java",
+  "java/src/org/chromium/chrome/browser/widget/incognitotoggle/IncognitoToggleButton.java",
+  "java/src/org/chromium/chrome/browser/widget/incognitotoggle/IncognitoToggleButtonTablet.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/Completable.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/DropdownFieldAdapter.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditableOption.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorBase.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialogToolbar.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorFieldModel.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorFieldView.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorIconsField.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorLabelField.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorModel.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorObserverForTest.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorTextField.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/ExpandableGridView.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/HintedDropDownAdapter.java",
+  "java/src/org/chromium/chrome/browser/widget/prefeditor/HintedDropDownAdapterWithPlusIcon.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemViewBase.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemViewHolder.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java",
+  "java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java",
+  "java/src/org/chromium/chrome/browser/widget/textbubble/ArrowBubbleDrawable.java",
+  "java/src/org/chromium/chrome/browser/widget/textbubble/ImageTextBubble.java",
+  "java/src/org/chromium/chrome/browser/widget/textbubble/TextBubble.java",
+  "java/src/org/chromium/chrome/browser/widget/tile/TileView.java",
+  "java/src/org/chromium/chrome/browser/widget/tile/TileWithTextView.java",
+]
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni
new file mode 100644
index 0000000..1d0605f
--- /dev/null
+++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -0,0 +1,184 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Java unit test file for clank components. all test sources that are not
+# conditionally added. See java_source.gni for conditionally added files.
+
+chrome_junit_test_java_sources = [
+  "junit/src/org/chromium/chrome/browser/AppIndexingUtilTest.java",
+  "junit/src/org/chromium/chrome/browser/BitmapCacheTest.java",
+  "junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java",
+  "junit/src/org/chromium/chrome/browser/ChromeBackupAgentTest.java",
+  "junit/src/org/chromium/chrome/browser/DelayedScreenLockIntentHandlerTest.java",
+  "junit/src/org/chromium/chrome/browser/InsetObserverViewTest.java",
+  "junit/src/org/chromium/chrome/browser/IntentHeadersRecorderTest.java",
+  "junit/src/org/chromium/chrome/browser/ShadowDeviceConditions.java",
+  "junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java",
+  "junit/src/org/chromium/chrome/browser/SSLClientCertificateRequestTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/AutofillUiUtilsTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskSchedulerTest.java",
+  "junit/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskTest.java",
+  "junit/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTaskTest.java",
+  "junit/src/org/chromium/chrome/browser/browseractions/BrowserActionsIntentTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorderTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/ClientAppBroadcastReceiverTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/ClientAppDataRegisterTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/OriginTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/ClientAppDataRecorderTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityDisclosureControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityOpenTimeRecorderTest.java",
+  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityVerifierTest.java",
+  "junit/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherImplTest.java",
+  "junit/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSourceImplTest.java",
+  "junit/src/org/chromium/chrome/browser/cached_image_fetcher/InMemoryCachedImageFetcherTest.java",
+  "junit/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManagerImplTest.java",
+  "junit/src/org/chromium/chrome/browser/compositor/EventOffsetHandlerTest.java",
+  "junit/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimatorTest.java",
+  "junit/src/org/chromium/chrome/browser/compositor/layouts/CompositorAnimationHandlerTest.java",
+  "junit/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutUpdateHost.java",
+  "junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java",
+  "junit/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorTest.java",
+  "junit/src/org/chromium/chrome/browser/contextual_suggestions/FetchHelperTest.java",
+  "junit/src/org/chromium/chrome/browser/contextual_suggestions/GoogleSearchRestrictionTest.java",
+  "junit/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimerTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContextForTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContextTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchEntityHeuristicTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/cookies/CanonicalCookieTest.java",
+  "junit/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnableUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/customtabs/CloseButtonNavigatorTest.java",
+  "junit/src/org/chromium/chrome/browser/customtabs/NavigationInfoCaptureTriggerTest.java",
+  "junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/download/DownloadResumptionSchedulerTest.java",
+  "junit/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceEntryTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/DeleteUndoOfflineItemFilterTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/FiltersTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/OffTheRecordOfflineItemFilterTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/filter/TypeOfflineItemFilterTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/glue/FileDeletionQueueTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMutatorTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/list/ItemUtilsTest.java",
+  "junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java",
+  "junit/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiTest.java",
+  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBackgroundTaskUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSectionUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtilsTest.java",
+  "junit/src/org/chromium/chrome/browser/feedback/FeedbackCollectorTest.java",
+  "junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java",
+  "junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java",
+  "junit/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegateTest.java",
+  "junit/src/org/chromium/chrome/browser/fullscreen/TokenHolderTest.java",
+  "junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java",
+  "junit/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/infobar/IPHInfoBarSupportTest.java",
+  "junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java",
+  "junit/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderTest.java",
+  "junit/src/org/chromium/chrome/browser/installedapp/PackageHashTest.java",
+  "junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/invalidation/ResumableDelayedTaskRunnerTest.java",
+  "junit/src/org/chromium/chrome/browser/invalidation/SessionsInvalidationManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaImageManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationActionsUpdatedTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationButtonComputationTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationFaviconTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerNotificationTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerServiceActionsTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerServiceLifecycleTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerTestBase.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerThrottlerTest.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTestShadowResources.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTestTabHolder.java",
+  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTitleUpdatedTest.java",
+  "junit/src/org/chromium/chrome/browser/metrics/VariationsSessionTest.java",
+  "junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java",
+  "junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/notifications/NotificationSystemStatusUtilUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/notifications/channels/ChannelDefinitionsTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/TitleUtilTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/ContentSuggestionsUnitTestUtils.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/SectionListTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsCategoryInfoTest.java",
+  "junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/ClientIdTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTaskTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageOriginUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/prefetch/OfflineNotificationBackgroundTaskUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java",
+  "junit/src/org/chromium/chrome/browser/omaha/UpdateStatusProviderTest.java",
+  "junit/src/org/chromium/chrome/browser/omaha/VersionNumberTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/AutocompleteStateUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/KeyboardHideHelperUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/SpannableAutocompleteEditTextModelUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/UrlBarMediatorUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/geo/PlatformNetworksManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTest.java",
+  "junit/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTrackerTest.java",
+  "junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottleTest.java",
+  "junit/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizationsUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/payments/AutofillContactTest.java",
+  "junit/src/org/chromium/chrome/browser/payments/AutofillContactUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/DialogManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/EnsureAsyncPostingRule.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/ExportWarningDialogFragmentTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/PasswordReauthenticationFragmentTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/ReauthenticationManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/SingleThreadBarrierClosureTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/password/TimedCallbackDelayerTest.java",
+  "junit/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridgeTest.java",
+  "junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java",
+  "junit/src/org/chromium/chrome/browser/snackbar/SnackbarCollectionUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/suggestions/ImageFetcherTest.java",
+  "junit/src/org/chromium/chrome/browser/suggestions/TileGroupUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/tab/TabAttributesTest.java",
+  "junit/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/tabstate/TabStateUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java",
+  "junit/src/org/chromium/chrome/browser/usage_stats/EventTrackerTest.java",
+  "junit/src/org/chromium/chrome/browser/usage_stats/PageViewObserverTest.java",
+  "junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/util/test/ShadowUrlUtilities.java",
+  "junit/src/org/chromium/chrome/browser/webapps/MockWebappDataStorageClockRule.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebApkShareTargetUtilTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappDirectoryManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java",
+  "junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java",
+  "junit/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetSwipeDetectorTest.java",
+  "junit/src/org/chromium/chrome/browser/widget/selection/SelectionDelegateTest.java",
+]
\ No newline at end of file
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
index 00f7177..eb3ec3f 100644
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -118,6 +118,16 @@
   target(_target_type, target_name) {
     forward_variables_from(invoker, "*")
 
+    if (_is_trichrome) {
+      min_sdk_version = 28
+    } else if (_is_monochrome) {
+      min_sdk_version = 24
+    } else if (_is_modern) {
+      min_sdk_version = 21
+    } else {
+      min_sdk_version = 19
+    }
+
     resource_blacklist_regex = "[/-]xxxhdpi[/-]"
 
     # Exception rationale in https://crbug.com/691733.
@@ -342,7 +352,6 @@
       }
       alternative_android_sdk_dep = webview_framework_dep
       app_as_shared_lib = true
-      min_sdk_version = 24
       _pak_prefix = "monochrome"
     }
     if (is_trichrome) {
@@ -359,7 +368,6 @@
       if (android_64bit_target_cpu && build_apk_secondary_abi) {
         secondary_native_lib_placeholders = [ "libdummy.so" ]
       }
-      min_sdk_version = 28
       _pak_prefix = "trichrome_chrome"
     }
 
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni
new file mode 100644
index 0000000..4dbac7d
--- /dev/null
+++ b/chrome/android/chrome_test_java_sources.gni
@@ -0,0 +1,519 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Java test file for clank components. all test sources that are not
+# conditionally added. See java_source.gni for conditionally added files.
+
+chrome_test_java_sources = [
+  "javatests/src/org/chromium/chrome/browser/ActivityTabProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/AudioTest.java",
+  "javatests/src/org/chromium/chrome/browser/BackgroundSyncLauncherTest.java",
+  "javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/ChromeHttpAuthHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/ContentViewFocusTest.java",
+  "javatests/src/org/chromium/chrome/browser/CopylessPasteTest.java",
+  "javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/FeaturesAnnotationsTest.java",
+  "javatests/src/org/chromium/chrome/browser/FocusedEditableTextFieldZoomTest.java",
+  "javatests/src/org/chromium/chrome/browser/HTTPSTabsOpenedFromExternalAppTest.java",
+  "javatests/src/org/chromium/chrome/browser/InstalledAppTest.java",
+  "javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/JavaScriptEvalChromeTest.java",
+  "javatests/src/org/chromium/chrome/browser/MainActivityWithURLTest.java",
+  "javatests/src/org/chromium/chrome/browser/MockSafeBrowsingApiHandler.java",
+  "javatests/src/org/chromium/chrome/browser/NavigateTest.java",
+  "javatests/src/org/chromium/chrome/browser/NavigationBarColorControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java",
+  "javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java",
+  "javatests/src/org/chromium/chrome/browser/PopularUrlsTest.java",
+  "javatests/src/org/chromium/chrome/browser/PopupTest.java",
+  "javatests/src/org/chromium/chrome/browser/PowerBroadcastReceiverTest.java",
+  "javatests/src/org/chromium/chrome/browser/PrerenderTest.java",
+  "javatests/src/org/chromium/chrome/browser/ProcessIsolationTest.java",
+  "javatests/src/org/chromium/chrome/browser/ReachedCodeProfilerTest.java",
+  "javatests/src/org/chromium/chrome/browser/RestoreHistogramTest.java",
+  "javatests/src/org/chromium/chrome/browser/SafeBrowsingTest.java",
+  "javatests/src/org/chromium/chrome/browser/SelectFileDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/ServicificationBackgroundService.java",
+  "javatests/src/org/chromium/chrome/browser/ServicificationBackgroundServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/ShareIntentTest.java",
+  "javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/SubresourceFilterTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabThemeTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java",
+  "javatests/src/org/chromium/chrome/browser/TabsTest.java",
+  "javatests/src/org/chromium/chrome/browser/UrlSchemeTest.java",
+  "javatests/src/org/chromium/chrome/browser/UsbChooserDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/VideoFullscreenOrientationLockChromeTest.java",
+  "javatests/src/org/chromium/chrome/browser/WarmupManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/WebShareTest.java",
+  "javatests/src/org/chromium/chrome/browser/accessibility/FontSizePrefsTest.java",
+  "javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java",
+  "javatests/src/org/chromium/chrome/browser/appmenu/DataSaverAppMenuTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AutofillKeyboardAccessoryIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/FakeKeyboard.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetModernViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkModelTest.java",
+  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java",
+  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java",
+  "javatests/src/org/chromium/chrome/browser/browseractions/BrowserActionActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/browserservices/OriginVerifierTest.java",
+  "javatests/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientTest.java",
+  "javatests/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/browsing_data/BrowsingDataRemoverIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelEventFilterTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerWrapper.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/layouts/ChromeAnimationTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockContextForLayout.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutHost.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java",
+  "javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java",
+  "javatests/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUiTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/EmptyEnabledStateMonitor.java",
+  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitorTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/FakeContextualSuggestionsSource.java",
+  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/FakeTracker.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateControllerWrapper.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPolicyTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequestTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapEventTest.java",
+  "javatests/src/org/chromium/chrome/browser/contextualsearch/MockContextualSearchPolicy.java",
+  "javatests/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnableTest.java",
+  "javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/crash/PureJavaExceptionReporterTest.java",
+  "javatests/src/org/chromium/chrome/browser/crypto/CipherFactoryTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityIncognitoTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabExternalNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabFromChromeExternalNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistenceIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/DetachedResourceRequestTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/RequestThrottlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/TrustedCdnPublisherUrlTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleLoaderTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModulePostMessageTest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleUITest.java",
+  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetricsTest.java",
+  "javatests/src/org/chromium/chrome/browser/datareduction/DataReductionPromoUtilsTest.java",
+  "javatests/src/org/chromium/chrome/browser/datareduction/DataReductionSavingsMilestonePromoTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionStatsPreferenceTest.java",
+  "javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/document/LauncherActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/dom_distiller/DistillabilityServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/dom_distiller/DistilledPagePrefsTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/ChromeDownloadDelegateTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadInfoBarControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadLocationChangeTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadMediaParserTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/download/DownloadUtilsTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java",
+  "javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/ServicificationDownloadTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/SystemDownloadNotifierTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/TestDownloadDirectoryProvider.java",
+  "javatests/src/org/chromium/chrome/browser/download/home/DownloadActivityV2Test.java",
+  "javatests/src/org/chromium/chrome/browser/download/home/StubbedOfflineContentProvider.java",
+  "javatests/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapterTest.java",
+  "javatests/src/org/chromium/chrome/browser/download/ui/StubbedProvider.java",
+  "javatests/src/org/chromium/chrome/browser/engagement/SiteEngagementServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridgeExperimentalTest.java",
+  "javatests/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPageTest.java",
+  "javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java",
+  "javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/externalnav/IntentWithGesturesHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java",
+  "javatests/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitorTest.java",
+  "javatests/src/org/chromium/chrome/browser/feature_engagement/ScreenshotTabObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTest.java",
+  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.java",
+  "javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivityTestObserver.java",
+  "javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/gcore/MockConnectedTask.java",
+  "javatests/src/org/chromium/chrome/browser/gcore/MockConnectedTaskTest.java",
+  "javatests/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListenerTest.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ChromeTabbedActivityHWATest.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/CustomTabActivityHWATest.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ManifestHWATest.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ToastHWATest.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/Utils.java",
+  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/WebappActivityHWATest.java",
+  "javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/history/HistoryAdapterTest.java",
+  "javatests/src/org/chromium/chrome/browser/history/StubbedHistoryProvider.java",
+  "javatests/src/org/chromium/chrome/browser/history/TestBrowsingHistoryObserver.java",
+  "javatests/src/org/chromium/chrome/browser/identity/SettingsSecureBasedIdentificationGeneratorTest.java",
+  "javatests/src/org/chromium/chrome/browser/identity/UniqueIdentificationGeneratorFactoryTest.java",
+  "javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java",
+  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoDisclosureDialogAppearanceTest.java",
+  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoNotificationServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncherTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarContainerTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarControlLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java",
+  "javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java",
+  "javatests/src/org/chromium/chrome/browser/init/ChainedTasksTest.java",
+  "javatests/src/org/chromium/chrome/browser/init/ChromeBrowserInitializerTest.java",
+  "javatests/src/org/chromium/chrome/browser/input/SelectPopupOtherContentViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/interstitials/LookalikeInterstitialTest.java",
+  "javatests/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterTest.java",
+  "javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/invalidation/InvalidationServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptTabModalDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelperTest.java",
+  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelperUtils.java",
+  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/locale/LocaleManagerReferralTest.java",
+  "javatests/src/org/chromium/chrome/browser/locale/LocaleManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java",
+  "javatests/src/org/chromium/chrome/browser/media/ui/PauseOnHeadsetUnplugTest.java",
+  "javatests/src/org/chromium/chrome/browser/media/ui/PictureInPictureControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetricsIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/metrics/PageLoadMetricsTest.java",
+  "javatests/src/org/chromium/chrome/browser/metrics/StartupLoadingMetricsTest.java",
+  "javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java",
+  "javatests/src/org/chromium/chrome/browser/modaldialog/AppModalPresenterTest.java",
+  "javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/modaldialog/TabModalPresenterTest.java",
+  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowTestHelper.java",
+  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtilsTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/ChromeNotificationBuilderTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilderTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationBuilderBaseTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptorTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/NotificationTestUtil.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/channels/ChannelsInitializerTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdaterTest.java",
+  "javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageLoadTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/NtpUiCaptureTestData.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/RecentTabsPageTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItemTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerViewTest.java",
+  "javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/MHTMLPageTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageAutoFetchTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/RecentTabsTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetectorDelegateStub.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetectorTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchConfigurationTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchFeedFlowTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchFlowTest.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/TestOfflinePageService.java",
+  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/TestSuggestionsService.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/ExponentialBackoffSchedulerTest.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/MockExponentialBackoffScheduler.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/RequestGeneratorTest.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/StringSanitizerTest.java",
+  "javatests/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelperTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java",
+  "javatests/src/org/chromium/chrome/browser/omnibox/suggestions/VoiceSuggestionProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopupTest.java",
+  "javatests/src/org/chromium/chrome/browser/page_info/PageInfoControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/BasePartnerBrowserCustomizationIntegrationTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/BasePartnerBrowserCustomizationUnitTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableBookmarksEditingUnitTest.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableIncognitoModeIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableIncognitoModeUnitTest.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java",
+  "javatests/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/CurrencyFormatterTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentManifestDownloaderTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentManifestParserTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressWithoutPhoneTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBlobUrlTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentGooglePayTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentMetricsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentQueryNoCardTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentQueryTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCardEditorAutoAdvanceTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCcCanMakePaymentQueryNoCardTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCcCanMakePaymentQueryTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsAndFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsSectionUnitTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDataUrlTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDebitTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDontHaveDebitTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDynamicShippingMultipleAddressesTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDynamicShippingSingleAddressTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailAndFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailAndPhoneTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmptyUpdateTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestExpiredLocalCardTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestExtraShippingOptionsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFailCompleteTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFieldTrialTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIdTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteContactDetailsAndFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteContactDetailsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteEmailTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompletePhoneTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteServerCardTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestJourneyLoggerTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestLongIdTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMultipleContactDetailsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNameAndFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNameTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNoShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNoUpdateWithTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndBasicCardWithModifiersTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppCanMakePaymentQueryTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppUiSkipPreloadTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppUiSkipTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppsSortingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentMethodIdentifierTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneAndFreeShippingTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestRemoveBillingAddressTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestRetryTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestServerCardTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestServiceWorkerPaymentAppTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressChangeTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShowTwiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTabTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUpdateWithTest.java",
+  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUseStatsTest.java",
+  "javatests/src/org/chromium/chrome/browser/permissions/GeolocationTest.java",
+  "javatests/src/org/chromium/chrome/browser/permissions/MediaTest.java",
+  "javatests/src/org/chromium/chrome/browser/permissions/PermissionNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/permissions/PermissionTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/permissions/QuotaTest.java",
+  "javatests/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/policy/CombinedPolicyProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/ContextualSuggestionsPreferenceTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/NotificationsPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/PasswordViewingTypeTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/developer/TracingPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataBridgeTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerNativeTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/WebsiteAddressTest.java",
+  "javatests/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcherTest.java",
+  "javatests/src/org/chromium/chrome/browser/prerender/ExternalPrerenderHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/provider/ProviderBookmarkNodeUnitTest.java",
+  "javatests/src/org/chromium/chrome/browser/provider/ProviderBookmarksUriTest.java",
+  "javatests/src/org/chromium/chrome/browser/provider/ProviderSearchesUriTest.java",
+  "javatests/src/org/chromium/chrome/browser/provider/ProviderTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java",
+  "javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/services/GoogleServicesManagerIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/shape_detection/ShapeDetectionTest.java",
+  "javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java",
+  "javatests/src/org/chromium/chrome/browser/signin/OAuth2TokenServiceIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/signin/OAuth2TokenServiceTest.java",
+  "javatests/src/org/chromium/chrome/browser/signin/SigninHelperTest.java",
+  "javatests/src/org/chromium/chrome/browser/signin/SigninTest.java",
+  "javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java",
+  "javatests/src/org/chromium/chrome/browser/snackbar/undo/UndoBarControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/ssl/CaptivePortalTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetCardsUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetNoTilesUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/TileGridLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/suggestions/TileGroupTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/FakeProfileSyncService.java",
+  "javatests/src/org/chromium/chrome/browser/sync/FirstRunTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/OpenTabsTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/SyncTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/sync/TypedUrlsTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/UkmTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/ui/PassphraseActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragmentTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/MockTab.java",
+  "javatests/src/org/chromium/chrome/browser/tab/RepostFormWarningTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/TabIdManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/TabStateTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/TabTestUtils.java",
+  "javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java",
+  "javatests/src/org/chromium/chrome/browser/tab/UndoIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/AsyncTabCreationParamsManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreatorTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/ContextMenuLoadUrlParamsTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassinTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/MultiInstanceMigrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/RestoreMigrateTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelMergingTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/TestTabModelDirectory.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java",
+  "javatests/src/org/chromium/chrome/browser/tabmodel/document/MockDocumentTabModel.java",
+  "javatests/src/org/chromium/chrome/browser/test/ChromeBrowserTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/test/ClearAppDataTestRule.java",
+  "javatests/src/org/chromium/chrome/browser/test/CommandLineInitRule.java",
+  "javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java",
+  "javatests/src/org/chromium/chrome/browser/toolbar/LocationBarModelTest.java",
+  "javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java",
+  "javatests/src/org/chromium/chrome/browser/toolbar/top/BrandColorTest.java",
+  "javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java",
+  "javatests/src/org/chromium/chrome/browser/translate/TranslateOptionsTest.java",
+  "javatests/src/org/chromium/chrome/browser/util/ChromeFileProviderTest.java",
+  "javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java",
+  "javatests/src/org/chromium/chrome/browser/util/HashUtilTest.java",
+  "javatests/src/org/chromium/chrome/browser/util/UrlUtilitiesTest.java",
+  "javatests/src/org/chromium/chrome/browser/video/FullscreenVideoTest.java",
+  "javatests/src/org/chromium/chrome/browser/video/VideoTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappAuthenticatorTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappDeferredStartupTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java",
+  "javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java",
+  "javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/DualControlLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/PromoDialogTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/RadioButtonLayoutTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/RoundedIconGeneratorTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/ScrimTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorageTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/ThumbnailProviderImplTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/ViewHighlighterTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserverTest.java",
+  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/TestBottomSheetContent.java",
+  "javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java",
+  "javatests/src/org/chromium/chrome/test/crash/IntentionalCrashTest.java",
+  "javatests/src/org/chromium/chrome/test/ui/DisableAnimationsTestRule.java",
+  "javatests/src/org/chromium/chrome/test/ui/DisableNativeTestRule.java",
+  "javatests/src/org/chromium/chrome/test/ui/DummyUiActivity.java",
+  "javatests/src/org/chromium/chrome/test/ui/DummyUiActivityTestCase.java",
+  "javatests/src/org/chromium/chrome/test/ui/LoadNative.java",
+  "javatests/src/org/chromium/chrome/test/util/ChromeSigninUtilsTest.java",
+]
diff --git a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayModel.java b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayModel.java
index 9921959..38894c09 100644
--- a/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayModel.java
+++ b/chrome/android/features/autofill_assistant/java/src/org/chromium/chrome/browser/autofill_assistant/overlay/AssistantOverlayModel.java
@@ -21,8 +21,10 @@
 public class AssistantOverlayModel extends PropertyModel {
     public static final WritableIntPropertyKey STATE = new WritableIntPropertyKey();
 
+    // Skipping equality as a way of fixing offset issues. See b/129048184.
+    // TODO(b/129050125): Handle offsets properly and remove.
     public static final WritableObjectPropertyKey<List<RectF>> TOUCHABLE_AREA =
-            new WritableObjectPropertyKey<>();
+            new WritableObjectPropertyKey<>(/* skipEquality= */ true);
 
     public static final WritableObjectPropertyKey<AssistantOverlayDelegate> DELEGATE =
             new WritableObjectPropertyKey<>();
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
index 9f1a254d..bb106d1 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedProcessScopeFactory.java
@@ -7,10 +7,12 @@
 import android.support.annotation.Nullable;
 
 import com.google.android.libraries.feed.api.scope.FeedProcessScope;
+import com.google.android.libraries.feed.common.functional.Consumer;
 import com.google.android.libraries.feed.host.config.ApplicationInfo;
 import com.google.android.libraries.feed.host.config.Configuration;
 import com.google.android.libraries.feed.host.config.DebugBehavior;
 import com.google.android.libraries.feed.host.network.NetworkClient;
+import com.google.android.libraries.feed.host.stream.TooltipSupportedApi;
 import com.google.android.libraries.feed.hostimpl.logging.LoggingApiImpl;
 
 import org.chromium.base.ContextUtils;
@@ -139,7 +141,8 @@
                                     .Builder(configHostApi, Executors.newSingleThreadExecutor(),
                                             new LoggingApiImpl(), sFeedLoggingBridge, networkClient,
                                             schedulerBridge, DebugBehavior.SILENT,
-                                            ContextUtils.getApplicationContext(), applicationInfo)
+                                            ContextUtils.getApplicationContext(), applicationInfo,
+                                            new StubFeedTooltiSupportedApi())
                                     .setContentStorage(contentStorage)
                                     .setJournalStorage(journalStorage)
                                     .build();
@@ -180,7 +183,8 @@
                                     .Builder(configHostApi, Executors.newSingleThreadExecutor(),
                                             new LoggingApiImpl(), sFeedLoggingBridge, networkClient,
                                             sFeedScheduler, DebugBehavior.SILENT,
-                                            ContextUtils.getApplicationContext(), applicationInfo)
+                                            ContextUtils.getApplicationContext(), applicationInfo,
+                                            new StubFeedTooltiSupportedApi())
                                     .build();
     }
 
@@ -259,4 +263,9 @@
             sFeedLoggingBridge = null;
         }
     }
+
+    private static class StubFeedTooltiSupportedApi implements TooltipSupportedApi {
+        @Override
+        public void wouldTriggerHelpUi(String featureName, Consumer<Boolean> consumer) {}
+    }
 }
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/TestNetworkClient.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/TestNetworkClient.java
index eda92c4f..0df4dea 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/TestNetworkClient.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/TestNetworkClient.java
@@ -8,7 +8,7 @@
 
 import com.google.android.libraries.feed.common.functional.Consumer;
 import com.google.android.libraries.feed.common.logging.Logger;
-import com.google.android.libraries.feed.feedrequestmanager.FeedRequestManager;
+import com.google.android.libraries.feed.feedrequestmanager.RequestHelper;
 import com.google.android.libraries.feed.host.config.Configuration;
 import com.google.android.libraries.feed.host.network.HttpRequest;
 import com.google.android.libraries.feed.host.network.HttpRequest.HttpMethod;
@@ -126,10 +126,10 @@
     private Request getRequest(HttpRequest httpRequest) throws IOException {
         byte[] rawRequest = new byte[0];
         if (httpRequest.getMethod().equals(HttpMethod.GET)) {
-            if (httpRequest.getUri().getQueryParameter(FeedRequestManager.MOTHERSHIP_PARAM_PAYLOAD)
+            if (httpRequest.getUri().getQueryParameter(RequestHelper.MOTHERSHIP_PARAM_PAYLOAD)
                     != null) {
                 rawRequest = Base64.decode(httpRequest.getUri().getQueryParameter(
-                                                   FeedRequestManager.MOTHERSHIP_PARAM_PAYLOAD),
+                                                   RequestHelper.MOTHERSHIP_PARAM_PAYLOAD),
                         Base64.URL_SAFE);
             }
         } else {
diff --git a/chrome/android/java/res/layout/list_menu_item.xml b/chrome/android/java/res/layout/list_menu_item.xml
index d7ed5a00..dca6c97 100644
--- a/chrome/android/java/res/layout/list_menu_item.xml
+++ b/chrome/android/java/res/layout/list_menu_item.xml
@@ -3,9 +3,12 @@
      Use of this source code is governed by a BSD-style license that can be
      found in the LICENSE file. -->
 
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+<org.chromium.chrome.browser.widget.TextViewWithCompoundDrawables
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="?android:attr/listPreferredItemHeightSmall"
     android:textAppearance="@style/TextAppearance.ListMenuItem"
     android:gravity="center_vertical"
-    style="@style/ListMenuItemStyle" />
+    style="@style/ListMenuItemStyle"
+    app:chromeDrawableTint="@color/default_icon_color_blue" />
diff --git a/chrome/android/java/res/layout/payments_request_editor_textview.xml b/chrome/android/java/res/layout/payments_request_editor_textview.xml
index b7e372e..98a8c54 100644
--- a/chrome/android/java/res/layout/payments_request_editor_textview.xml
+++ b/chrome/android/java/res/layout/payments_request_editor_textview.xml
@@ -5,6 +5,7 @@
 
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -14,7 +15,8 @@
     <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
         android:id="@+id/text_input_layout"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        app:errorTextAppearance="@style/TextAppearance.ErrorCaption">
 
         <!-- TODO(crbug.com/900912): Fix and remove lint ignore -->
         <AutoCompleteTextView
diff --git a/chrome/android/java/res/layout/sync_error_widget.xml b/chrome/android/java/res/layout/sync_error_widget.xml
index 48192c4d..b7c8e9d 100644
--- a/chrome/android/java/res/layout/sync_error_widget.xml
+++ b/chrome/android/java/res/layout/sync_error_widget.xml
@@ -5,9 +5,10 @@
 
 <!-- The widget at the tail of the SignInPreference in settings screen to indicate sync error -->
 <ImageView
-	xmlns:android="http://schemas.android.com/apk/res/android"
-	android:layout_width="wrap_content"
-	android:layout_height="wrap_content"
-	android:src="@drawable/sync_error"
-	android:contentDescription="@string/sign_in_sync_error_widget"/>
-	
\ No newline at end of file
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:src="@drawable/sync_error"
+    android:contentDescription="@string/sign_in_sync_error_widget"
+    app:tint="@color/default_red"/>
diff --git a/chrome/android/java/res/values/colors.xml b/chrome/android/java/res/values/colors.xml
index efb85db..8cfc9b8 100644
--- a/chrome/android/java/res/values/colors.xml
+++ b/chrome/android/java/res/values/colors.xml
@@ -11,7 +11,6 @@
     <color name="input_underline_error_color">#D32F2F</color>
     <color name="explanation_text_color">#909090</color>
     <color name="text_highlight_color">#C6DAFC</color>
-    <color name="error_text_color">@color/default_red</color>
 
     <!-- Control colors for toggles, checkboxes, ratio buttons, list item highlight, and accent.
          Note that these should NOT be used for icon tint. -->
@@ -27,9 +26,6 @@
     <color name="dark_status_bar_color">#161E21</color>
     <color name="modal_dialog_scrim_color">@color/black_alpha_65</color>
 
-    <color name="default_red">@color/default_red_dark</color>
-    <color name="default_green">@color/default_green_dark</color>
-
     <!-- Modern color palette -->
     <color name="black_alpha_11">#1D000000</color>
     <color name="black_alpha_12">#1F000000</color>
diff --git a/chrome/android/java/res/xml/sync_customization_preferences.xml b/chrome/android/java/res/xml/sync_customization_preferences.xml
index f8f372e..fb975c2 100644
--- a/chrome/android/java/res/xml/sync_customization_preferences.xml
+++ b/chrome/android/java/res/xml/sync_customization_preferences.xml
@@ -3,11 +3,13 @@
      Use of this source code is governed by a BSD-style license that can be
      found in the LICENSE file. -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <org.chromium.chrome.browser.preferences.SyncErrorCardPreference
         android:key="sync_error_card"
         android:icon="@drawable/sync_error"
+        app:iconTint="@color/default_red"
         android:title="@string/sync_error_card_title"/>
 
     <org.chromium.chrome.browser.preferences.ChromeSwitchPreference
diff --git a/chrome/android/java/res_night/values-night/colors.xml b/chrome/android/java/res_night/values-night/colors.xml
index 55e9f97..2ba67ff 100644
--- a/chrome/android/java/res_night/values-night/colors.xml
+++ b/chrome/android/java/res_night/values-night/colors.xml
@@ -6,8 +6,6 @@
 <resources>
     <color name="light_active_color">@color/modern_blue_300</color>
     <color name="control_normal_color">@color/modern_grey_200</color>
-    <color name="default_red">@color/default_red_light</color>
-    <color name="default_green">@color/default_green_light</color>
 
     <color name="toolbar_text_box_background">@color/modern_grey_800</color>
 
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 58788f8..cb91c23 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -263,7 +263,6 @@
     public static final String NTP_ARTICLE_SUGGESTIONS = "NTPArticleSuggestions";
     public static final String NTP_BUTTON = "NTPButton";
     public static final String NTP_LAUNCH_AFTER_INACTIVITY = "NTPLaunchAfterInactivity";
-    public static final String NTP_SNIPPETS_INCREASED_VISIBILITY = "NTPSnippetsIncreasedVisibility";
     public static final String OFFLINE_INDICATOR = "OfflineIndicator";
     public static final String OFFLINE_INDICATOR_ALWAYS_HTTP_PROBE =
             "OfflineIndicatorAlwaysHttpProbe";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsConfig.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsConfig.java
deleted file mode 100644
index ea85bb7..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsConfig.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.ntp.snippets;
-
-import org.chromium.chrome.browser.ChromeFeatureList;
-
-/**
- * Provides configuration details for NTP snippets.
- */
-public final class SnippetsConfig {
-    private SnippetsConfig() {}
-
-    /** https://crbug.com/660837 */
-    public static boolean isIncreasedCardVisibilityEnabled() {
-        return ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_SNIPPETS_INCREASED_VISIBILITY);
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
index d00aa615..b55e7429 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
@@ -23,7 +23,6 @@
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AppCompatActivity;
-import android.support.v7.content.res.AppCompatResources;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -56,6 +55,7 @@
 import org.chromium.components.signin.ChromeSigninController;
 import org.chromium.components.sync.AndroidSyncSettings;
 import org.chromium.content_public.browser.UiThreadTaskTraits;
+import org.chromium.ui.UiUtils;
 import org.chromium.ui.widget.ButtonCompat;
 
 import java.lang.annotation.Retention;
@@ -166,8 +166,8 @@
 
         mSyncCategory = (PreferenceCategory) findPreference(PREF_SYNC_CATEGORY);
         mSyncErrorCard = findPreference(PREF_SYNC_ERROR_CARD);
-        mSyncErrorCard.setIcon(
-                AppCompatResources.getDrawable(getActivity(), R.drawable.ic_sync_error_40dp));
+        mSyncErrorCard.setIcon(UiUtils.getTintedDrawable(
+                getActivity(), R.drawable.ic_sync_error_40dp, R.color.default_red));
         mSyncErrorCard.setOnPreferenceClickListener(
                 SyncPreferenceUtils.toOnClickListener(this, this::onSyncErrorCardClicked));
         mSyncRequested = (ChromeSwitchPreference) findPreference(PREF_SYNC_REQUESTED);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java
index a1c2350..7b4bb3b2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java
@@ -5,7 +5,6 @@
 package org.chromium.chrome.browser.preferences;
 
 import android.content.Context;
-import android.preference.Preference;
 import android.util.AttributeSet;
 import android.util.TypedValue;
 import android.view.View;
@@ -20,7 +19,7 @@
  * A preference that displays hint message to resolve sync error. Click of it navigates user to
  * appropriate place to resolve error.
  */
-public class SyncErrorCardPreference extends Preference {
+public class SyncErrorCardPreference extends ChromeBasePreference {
     /**
      * Constructor for inflating from XML.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
index 309592f..8179fdf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
@@ -7,7 +7,6 @@
 import android.preference.Preference;
 import android.util.AttributeSet;
 
-import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.chrome.R;
 import org.chromium.ui.UiUtils;
 
@@ -28,8 +27,8 @@
         setSummary(SyncPreferenceUtils.getSyncStatusSummary(getContext()));
 
         if (SyncPreferenceUtils.showSyncErrorIcon(getContext())) {
-            setIcon(ApiCompatibilityUtils.getDrawable(
-                    getContext().getResources(), R.drawable.sync_error));
+            setIcon(UiUtils.getTintedDrawable(
+                    getContext(), R.drawable.sync_error, R.color.default_red));
         } else {
             setIcon(UiUtils.getTintedDrawable(getContext(), R.drawable.permission_background_sync,
                     R.color.default_icon_color_blue));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java
index 9995ddfe..c7e4f199 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java
@@ -9,7 +9,6 @@
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.support.annotation.Nullable;
-import android.support.v7.content.res.AppCompatResources;
 
 import org.chromium.base.BuildInfo;
 import org.chromium.base.metrics.RecordHistogram;
@@ -112,17 +111,19 @@
         ProfileSyncService profileSyncService = ProfileSyncService.get();
         if (profileSyncService == null || !AndroidSyncSettings.get().isSyncEnabled()) {
             return UiUtils.getTintedDrawable(
-                    context, R.drawable.ic_sync_green_40dp, R.color.modern_grey_700);
+                    context, R.drawable.ic_sync_green_40dp, R.color.default_icon_color);
         }
 
         if (profileSyncService.isEngineInitialized()
                 && (profileSyncService.hasUnrecoverableError()
                         || profileSyncService.getAuthError() != GoogleServiceAuthError.State.NONE
                         || profileSyncService.isPassphraseRequiredForDecryption())) {
-            return AppCompatResources.getDrawable(context, R.drawable.ic_sync_error_40dp);
+            return UiUtils.getTintedDrawable(
+                    context, R.drawable.ic_sync_error_40dp, R.color.default_red);
         }
 
-        return AppCompatResources.getDrawable(context, R.drawable.ic_sync_green_40dp);
+        return UiUtils.getTintedDrawable(
+                context, R.drawable.ic_sync_green_40dp, R.color.default_green);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
index 3a4ab381..e69073b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java
@@ -257,10 +257,6 @@
                     openerRenderFrameId, frameName, targetUrl, newWebContents);
         }
         // The URL can't be taken from the WebContents if it's paused.  Save it for later.
-        // TODO(crbug.com/758186): Remove after debugging.
-        if (mWebContentsUrlMapping.containsKey(newWebContents)) {
-            Log.e(TAG, "Duplicate mWebContentsUrlMapping key");
-        }
         assert !mWebContentsUrlMapping.containsKey(newWebContents);
         mWebContentsUrlMapping.put(newWebContents, targetUrl);
 
@@ -309,10 +305,6 @@
     @CalledByNative
     public boolean addNewContents(WebContents sourceWebContents, WebContents webContents,
             int disposition, Rect initialPosition, boolean userGesture) {
-        // TODO(crbug.com/758186): Remove after debugging.
-        if (!mWebContentsUrlMapping.containsKey(webContents)) {
-            Log.e(TAG, "Missing mWebContentsUrlMapping key");
-        }
         assert mWebContentsUrlMapping.containsKey(webContents);
 
         TabCreator tabCreator = mTab.getActivity().getTabCreator(mTab.isIncognito());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java
index a8aae94..69ae294f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java
@@ -211,7 +211,7 @@
 
         // Cancel editing when the user hits the back arrow.
         toolbar.setNavigationContentDescription(R.string.cancel);
-        toolbar.setNavigationIcon(getBlackTintedBackIcon());
+        toolbar.setNavigationIcon(getTintedBackIcon());
         toolbar.setNavigationOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -622,8 +622,8 @@
         return mDropdownFields;
     }
 
-    private Drawable getBlackTintedBackIcon() {
+    private Drawable getTintedBackIcon() {
         return TintedDrawable.constructTintedDrawable(
-                getContext(), R.drawable.ic_arrow_back_white_24dp, android.R.color.black);
+                getContext(), R.drawable.ic_arrow_back_white_24dp, R.color.default_icon_color);
     }
 }
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 b490412..238534e 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="1023450834687746199">ለ<ph name="APP_NAME" /> ውሂብን አጽድተዋል።</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ን በማከል ላይ...</translation>
 <translation id="1041308826830691739">ከድር ጣቢያዎች</translation>
 <translation id="1049743911850919806">ማንነት የማያሳውቅ</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">አልተሳካም</translation>
 <translation id="2781151931089541271">1 ሰከንድ ይቀራል</translation>
 <translation id="2784212955220061919">በቀላል ሁነታ ላይ Chrome ገጾችን በበለጠ ፍጥነት የሚጭን ሲሆን እስከ 60 በመቶ ያነሰ ውሂብ ይጠቀማል። የGoogle ደመና ቴክኖሎጂ እርስዎ የሚጎበኟቸውን ገጾች ያተባል።</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" />ን አራግፈዋል።</translation>
 <translation id="2803478378562657435">የተቀመጡ የይለፍ ቃላትን እና የይለፍ ቃል አማራጮችን በማሳየት ላይ</translation>
 <translation id="2810645512293415242">ውሂብን ለመቆጠብ እና በበለጠ ፍጥነት ለመጫን የተቃለለ ገጽ።</translation>
 <translation id="281504910091592009">የተቀመጡ የይለፍ ቃላትን በእርስዎ <ph name="BEGIN_LINK" />Google መለያ<ph name="END_LINK" /> ውስጥ ይመልከቱ እና ያስተዳድሩ</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">ጫን  </translation>
 <translation id="3810838688059735925">ቪዲዮ</translation>
 <translation id="3810973564298564668">አቀናብር</translation>
-<translation id="3814315701645566481">ለ<ph name="URL" /> ውሂብን ማጽዳት ይፈልጋሉ?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> የሚወርዱ ተሰርዘዋል</translation>
 <translation id="3819562311292413223">ለእርስዎ የሚሆኑ ጽሑፎችን አይውርዱ</translation>
 <translation id="3822502789641063741">የጣቢያ ማከማቻ ይጽዳ?</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 f4249440..faeabcb8 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="1023450834687746199">لقد محوت بيانات <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">جارٍ إضافة <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">من المواقع الإلكترونية</translation>
 <translation id="1049743911850919806">التصفح المتخفي</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">تعذَّر التنزيل</translation>
 <translation id="2781151931089541271">يتبقى ثانية واحدة</translation>
 <translation id="2784212955220061919">‏في الوضع البسيط، يُحمِّل Chrome الصفحات بشكلٍ أسرع ويستخدم بيانات أقل بنسبة تصل إلى 60 بالمائة. وتعمل تكنولوجيا السحابة الإلكترونية من Google على تحسين الصفحات التي تزورها.</translation>
-<translation id="2785336755839207516">لقد ألغيت تثبيت <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">عرض كلمات المرور المحفوظة وخيارات كلمة المرور</translation>
 <translation id="2810645512293415242">صفحة مبسَّطة لحفظ البيانات والاستمتاع بتحميل أسرع.</translation>
 <translation id="281504910091592009">‏عرض كلمات المرور المحفوظة وإدارتها في <ph name="BEGIN_LINK" />حسابك على Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">تثبيت</translation>
 <translation id="3810838688059735925">فيديو</translation>
 <translation id="3810973564298564668">إدارة محرّكات البحث</translation>
-<translation id="3814315701645566481">هل تريد مسح البيانات للعنوان <ph name="URL" />؟</translation>
 <translation id="3819178904835489326">تم إلغاء <ph name="NUMBER_OF_DOWNLOADS" /> من التنزيلات</translation>
 <translation id="3819562311292413223">تنزيل مقالات لك</translation>
 <translation id="3822502789641063741">أتمحو مساحة تخزين الموقع؟</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 7655b002..a36a000 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="1023450834687746199">Изчистихте данните за <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> се добавя...</translation>
 <translation id="1041308826830691739">От уебсайтове</translation>
 <translation id="1049743911850919806">„Инкогнито“</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">неуспешно</translation>
 <translation id="2781151931089541271">Остава 1 сек</translation>
 <translation id="2784212955220061919">В олекотения режим на Chrome страниците се зареждат по-бързо и се използват до 60 процента по-малко данни. Посещаваните от вас страници се оптимизират с помощта на базираната на облака технология на Google.</translation>
-<translation id="2785336755839207516">Деинсталирахте <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Запазените пароли и опциите за пароли са показани</translation>
 <translation id="2810645512293415242">Страницата е опростена с цел пестене на данни и по-бързо зареждане.</translation>
 <translation id="281504910091592009">Преглеждайте и управлявайте запазените пароли в <ph name="BEGIN_LINK" />профила си в Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Инсталиране</translation>
 <translation id="3810838688059735925">Видео</translation>
 <translation id="3810973564298564668">Управление</translation>
-<translation id="3814315701645566481">Искате ли да изчистите данните за <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> изтегляния бяха изтрити</translation>
 <translation id="3819562311292413223">Изтегляне на статии за вас</translation>
 <translation id="3822502789641063741">Изчистване на данните?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
index d176ec2..859aedf7 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_bn.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="bn">
 <translation id="1006017844123154345">অনলাইনে খুলুন</translation>
-<translation id="1023450834687746199">আপনি <ph name="APP_NAME" /> অ্যাপের ডেটা মুছে ফেলেছেন।</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> যোগ করা হচ্ছে...</translation>
 <translation id="1041308826830691739">ওয়েবসাইট থেকে</translation>
 <translation id="1049743911850919806">ছদ্মবেশী</translation>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">মোনোস্পেস</translation>
 <translation id="2610239185026711824">পাসওয়ার্ড সাজেস্ট করুন</translation>
 <translation id="2612676031748830579">কার্ড নম্বর</translation>
+<translation id="2613747923081026172">গ্রুপ তৈরি করুন</translation>
 <translation id="2621115761605608342">একটি নির্দিষ্ট সাইটের জন্য JavaScript মঞ্জুর করুন।</translation>
 <translation id="2625189173221582860">পাসওয়ার্ড কপি করা হয়েছে</translation>
 <translation id="2631006050119455616">সংরক্ষিত হয়েছে</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">করা যায়নি</translation>
 <translation id="2781151931089541271">১ সেকেন্ড বাকি আছে</translation>
 <translation id="2784212955220061919">লাইট মোডে, Chrome আরও দ্রুত পৃষ্ঠা লোড করে এবং ৬০ শতাংশ পর্যন্ত কম ডেটা ব্যবহার করে। Google ক্লাউড টেকনোলজি আপনার ঘুরে দেখা পৃষ্ঠাকে অপ্টিমাইজ করে।</translation>
-<translation id="2785336755839207516">আপনি <ph name="APP_NAME" /> অ্যাপটি আন-ইনস্টল করেছেন।</translation>
 <translation id="2803478378562657435">সেভ করা পাসওয়ার্ড এবং পাসওয়ার্ড বিকল্পগুলি দেখানো হচ্ছে</translation>
 <translation id="2810645512293415242">পৃষ্ঠায় সহজে ডেটা সংরক্ষণ করে এবং দ্রুত লোড করুন।</translation>
 <translation id="281504910091592009">আপনার <ph name="BEGIN_LINK" />Google অ্যাকাউন্ট<ph name="END_LINK" />-এ সেভ করা পাসওয়ার্ড দেখুন এবং পরিচালনা করুন</translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">ইনস্টল করুন</translation>
 <translation id="3810838688059735925">ভিডিও</translation>
 <translation id="3810973564298564668">পরিচালনা</translation>
-<translation id="3814315701645566481"><ph name="URL" />-এর সব ডেটা মুছে ফেলতে চান?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" />টি ডাউনলোড মোছা হয়েছে</translation>
 <translation id="3819562311292413223">আপনার জন্য নিবন্ধ ডাউনলোড করা</translation>
 <translation id="3822502789641063741">সাইটের সঞ্চয়স্থান সাফ করবেন?</translation>
@@ -745,7 +743,7 @@
 <translation id="6447842834002726250">কুকিজ</translation>
 <translation id="6448273550210938826">সার্চ এবং URL পরামর্শগুলি</translation>
 <translation id="6461962085415701688">ফাইল খোলা যাচ্ছে না</translation>
-<translation id="6464977750820128603">Chrome-এ দেখা সাইটগুলি আপনি দেখতে পাবেন এবং সাইটগুলিতে টাইমার সেট করতে পারবেন।\n\nযে সমস্ত সাইটে টাইমার সেট করেছেন বা কত সময় ধরে সাইটটি দেখেছেন তার সমস্ত তথ্য Google-এর কাছে যায়। ডিজিটাল ওয়েলবিয়িং-কে আরও উন্নত করতে এই তথ্য ব্যবহার করা হয়।</translation>
+<translation id="6464977750820128603">Chrome-এ দেখা সাইটগুলি আপনি দেখতে পাবেন এবং সাইটগুলিতে টাইমার সেট করতে পারবেন।\n\nযে সমস্ত সাইটে টাইমার সেট করেছেন বা কত সময় ধরে সাইটটি দেখেছেন তার সমস্ত তথ্য Google-এর কাছে যায়। ডিজিটাল ওয়েলবিং-কে আরও উন্নত করতে এই তথ্য ব্যবহার করা হয়।</translation>
 <translation id="6475951671322991020">ভিডিও ডাউনলোড করুন</translation>
 <translation id="6482749332252372425">স্টোরেজে জায়গার ঘাটতির কারণে <ph name="FILE_NAME" /> ডাউনলোড করা যায়নি।</translation>
 <translation id="6496823230996795692"><ph name="APP_NAME" /> প্রথমবার ব্যবহার করার জন্য অনুগ্রহ করে ইন্টারনেটে সংযুক্ত হন।</translation>
@@ -885,7 +883,9 @@
 <translation id="7473891865547856676">না থাক</translation>
 <translation id="7475192538862203634">আপনি যদি এটি প্রায়ই দেখতে পান, তাহলে <ph name="BEGIN_LINK" />প্রস্তাবনাগুলি<ph name="END_LINK" /> চেষ্টা করে দেখুন৷</translation>
 <translation id="7475688122056506577">এসডি কার্ড পাওয়া যায়নি। আপনার কিছু ফাইল নাও থাকতে পারে।</translation>
+<translation id="7479104141328977413">ট্যাব ম্যানেজমেন্ট</translation>
 <translation id="7481312909269577407">ফরওয়ার্ড</translation>
+<translation id="7482697587265222445">আপনার ডিভাইসে ট্যাব পাঠানো হয়েছে</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (আপডেট করা হয়েছে <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">পাসওয়ার্ড দেখান</translation>
 <translation id="7494974237137038751">সেভ করা ডেটা</translation>
@@ -977,7 +977,7 @@
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8105951947646329362">সম্পর্কিত পৃষ্ঠাগুলি সাজেস্ট করুন</translation>
 <translation id="8109613176066109935">আপনার সমস্ত ডিভাইসে বুকমার্কগুলি পেতে সিঙ্ক বিকল্প চালু করুন</translation>
-<translation id="8110087112193408731">ডিজিটাল ওয়েলবিয়িং-এ আপনার Chrome অ্যাক্টিভিটি দেখবেন?</translation>
+<translation id="8110087112193408731">ডিজিটাল ওয়েলবিং-এ আপনার Chrome অ্যাক্টিভিটি দেখতে চান?</translation>
 <translation id="8116925261070264013">মিউট করা আছে</translation>
 <translation id="813082847718468539">সাইটের তথ্য দর্শন করুন</translation>
 <translation id="8131740175452115882">নিশ্চিত হন</translation>
@@ -1113,7 +1113,7 @@
 <translation id="9206873250291191720">আ</translation>
 <translation id="9215534869786664672">৬০ শতাংশ পর্যন্ত কম ডেটা ব্যবহার করে এবং ওয়েবের গতি বৃদ্ধি করে। আপনার দেখা পৃষ্ঠাগুলি Google সার্ভার অপ্টিমাইজ করে দেবে।</translation>
 <translation id="9219103736887031265">ছবিগুলি</translation>
-<translation id="926205370408745186">ডিজিটাল ওয়েলবিয়িং থেকে আপনার Chrome অ্যাক্টিভিটি সরিয়ে দিন</translation>
+<translation id="926205370408745186">ডিজিটাল ওয়েলবিং থেকে আপনার Chrome অ্যাক্টিভিটি সরিয়ে দিন</translation>
 <translation id="932327136139879170">হোম</translation>
 <translation id="932599481871055447">ডেটা সেভ করুন এবং দ্রুত ব্রাউজ করুন</translation>
 <translation id="938850635132480979">ত্রুটি: <ph name="ERROR_CODE" /></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 f8ff728..dfd00df 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="1023450834687746199">Has esborrat dades de l'aplicació <ph name="APP_NAME" />.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">ha fallat</translation>
 <translation id="2781151931089541271">Queda 1 segon</translation>
 <translation id="2784212955220061919">En el mode bàsic, Chrome carrega les pàgines més ràpidament i utilitza un 60 per cent menys de dades. La tecnologia en núvol de Google optimitza les pàgines que visites.</translation>
-<translation id="2785336755839207516">Has desinstal·lat l'aplicació <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">S'estan mostrant les contrasenyes desades i les opcions de contrasenyes</translation>
 <translation id="2810645512293415242">La pàgina s'ha simplificat per estalviar dades i carregar-se més ràpidament.</translation>
 <translation id="281504910091592009">Consulta i gestiona les contrasenyes desades al <ph name="BEGIN_LINK" />Compte de Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instal·la</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="3810973564298564668">Gestiona</translation>
-<translation id="3814315701645566481">Vols esborrar dades de l'URL <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> baixades suprimides</translation>
 <translation id="3819562311292413223">Baixa articles que et poden interessar</translation>
 <translation id="3822502789641063741">Esborrar emmagatz. lloc?</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 f2b57ff..a3442e6 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="1023450834687746199">Vymazali jste data aplikace <ph name="APP_NAME" />.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">nezdařilo se</translation>
 <translation id="2781151931089541271">Zbývá: 1 s</translation>
 <translation id="2784212955220061919">Ve zjednodušeném režimu načítá Chrome stránky rychleji a používá až o 60 procent méně dat. Navštívené stránky se optimalizují pomocí cloudové technologie společnosti Google.</translation>
-<translation id="2785336755839207516">Odinstalovali jste aplikaci <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Zobrazování uložených hesel a možností hesel</translation>
 <translation id="2810645512293415242">Stránka byla zjednodušena s cílem ušetřit data a zrychlit načtení.</translation>
 <translation id="281504910091592009">Zobrazit a spravovat uložená hesla v <ph name="BEGIN_LINK" />účtu Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalovat</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Spravovat</translation>
-<translation id="3814315701645566481">Chcete vymazat data pro adresu <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Počet smazaných stažených souborů: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Stahovat články pro vás</translation>
 <translation id="3822502789641063741">Vymazat úložiště webů?</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 00d26ae..a26e310d 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="1023450834687746199">Du har ryddet data for <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Tilføjer <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Fra websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">mislykkedes</translation>
 <translation id="2781151931089541271">1 sekund tilbage</translation>
 <translation id="2784212955220061919">Chrome indlæser sider hurtigere og bruger op til 60 procent mindre data i Lite-tilstand. Googles skyteknologi optimerer de sider, du besøger.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> blev afinstalleret.</translation>
 <translation id="2803478378562657435">Viser gemte adgangskoder og valgmuligheder for adgangskoder</translation>
 <translation id="2810645512293415242">Forenklet side, der sparer data og indlæses hurtigere.</translation>
 <translation id="281504910091592009">Se og administrer gemte adgangskoder på din <ph name="BEGIN_LINK" />Google-konto<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installer</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Valgmuligheder</translation>
-<translation id="3814315701645566481">Vil du rydde data for <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads blev slettet</translation>
 <translation id="3819562311292413223">Download artikler til dig</translation>
 <translation id="3822502789641063741">Vil du rydde websitelagerpladsen?</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 b45f3a2..f2aa846 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="1023450834687746199">Sie haben die Daten für <ph name="APP_NAME" /> gelöscht.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> wird hinzugefügt...</translation>
 <translation id="1041308826830691739">Von Websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">fehlgeschlagen</translation>
 <translation id="2781151931089541271">1 Sekunde übrig</translation>
 <translation id="2784212955220061919">Im Lite-Modus werden Seiten schneller in Chrome geladen und es werden bis zu 60 Prozent weniger Daten verbraucht. Durch die Cloud-Technologie von Google werden die von Ihnen besuchten Seiten optimiert.</translation>
-<translation id="2785336755839207516">Sie haben <ph name="APP_NAME" /> deinstalliert.</translation>
 <translation id="2803478378562657435">Gespeicherte Passwörter und Passwortoptionen werden angezeigt</translation>
 <translation id="2810645512293415242">Vereinfachte Seite für einen geringeren Datenverbrauch und schnelleres Laden.</translation>
 <translation id="281504910091592009">Gespeicherte Passwörter in Ihrem <ph name="BEGIN_LINK" />Google-Konto<ph name="END_LINK" /> ansehen und verwalten</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installieren</translation>
 <translation id="3810838688059735925">Videos</translation>
 <translation id="3810973564298564668">Verwalten</translation>
-<translation id="3814315701645566481">Möchten Sie die Daten für <ph name="URL" /> löschen?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> Downloads gelöscht</translation>
 <translation id="3819562311292413223">Artikel für Sie herunterladen</translation>
 <translation id="3822502789641063741">Websitespeicher löschen?</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 44ade541..7d33a7d 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="1023450834687746199">Έχετε διαγράψει τα δεδομένα για την εφαρμογή <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Προσθήκη <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Από ιστοτόπους</translation>
 <translation id="1049743911850919806">Ανώνυμη περιήγηση</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">απέτυχε</translation>
 <translation id="2781151931089541271">Απομένει 1 δευτερόλεπτο</translation>
 <translation id="2784212955220061919">Στη λειτουργία Lite, το Chrome φορτώνει σελίδες πιο γρήγορα και χρησιμοποιεί έως και 60 τοις εκατό λιγότερα δεδομένα. Η τεχνολογία cloud της Google βελτιστοποιεί τις σελίδες που επισκέπτεστε.</translation>
-<translation id="2785336755839207516">Έχετε απεγκαταστήσει την εφαρμογή <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Εμφάνιση αποθηκευμένων κωδικών πρόσβασης και επιλογών κωδικού πρόσβασης</translation>
 <translation id="2810645512293415242">Απλοποιημένη σελίδα για την αποθήκευση δεδομένων και για πιο γρήγορη φόρτωση.</translation>
 <translation id="281504910091592009">Προβολή και διαχείριση αποθηκευμένων κωδικών πρόσβασης στον <ph name="BEGIN_LINK" />Λογαριασμό σας Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Εγκατάσταση</translation>
 <translation id="3810838688059735925">Βίντεο</translation>
 <translation id="3810973564298564668">Διαχείριση</translation>
-<translation id="3814315701645566481">Θέλετε να διαγράψετε τα δεδομένα για <ph name="URL" />;</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> λήψεις διαγράφηκαν</translation>
 <translation id="3819562311292413223">Λήψη άρθρων για εσάς</translation>
 <translation id="3822502789641063741">Διαγ.αποθ.χώρου ιστότ.;</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 35eb6e4..d58e5d4b 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="1023450834687746199">You have cleared data for <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Adding <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">From websites</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -247,7 +246,6 @@
 <translation id="2779651927720337254">failed</translation>
 <translation id="2781151931089541271">1 sec left</translation>
 <translation id="2784212955220061919">In Lite mode, Chrome loads pages faster and uses up to 60 per cent less data. Google's cloud technology optimises the pages that you visit.</translation>
-<translation id="2785336755839207516">You have uninstalled <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Showing saved passwords and password options</translation>
 <translation id="2810645512293415242">Simplified page to save data and load faster.</translation>
 <translation id="281504910091592009">View and manage saved passwords in your <ph name="BEGIN_LINK" />Google account<ph name="END_LINK" /></translation>
@@ -373,7 +371,6 @@
 <translation id="3789841737615482174">Install</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Manage</translation>
-<translation id="3814315701645566481">Would you like to clear data for <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads deleted</translation>
 <translation id="3819562311292413223">Download articles for you</translation>
 <translation id="3822502789641063741">Clear site storage?</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 fbe8260..aeede6c 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="1023450834687746199">Borraste datos de <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Agregando <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">De sitios web</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">error</translation>
 <translation id="2781151931089541271">1 segundo restante</translation>
 <translation id="2784212955220061919">En el modo lite, Chrome carga las páginas más rápido y usa hasta un 60 por ciento menos de datos. La tecnología de la nube de Google optimiza las páginas que visitas.</translation>
-<translation id="2785336755839207516">Desinstalaste <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Se muestran las contraseñas guardadas y las opciones de contraseña</translation>
 <translation id="2810645512293415242">La página se simplificó para ahorrar datos y acelerar la carga.</translation>
 <translation id="281504910091592009">Ver y administrar las contraseñas guardadas en tu <ph name="BEGIN_LINK" />cuenta de Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalar</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Administrar</translation>
-<translation id="3814315701645566481">¿Quieres borrar los datos relacionados con <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> descargas borradas</translation>
 <translation id="3819562311292413223">Descargar artículos para ti</translation>
 <translation id="3822502789641063741">¿Borrar el almacenamiento de sitios?</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 9cdddff4..ac500a0 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="1023450834687746199">Has borrado los datos de <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Añadiendo <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De sitios web</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">ha fallado</translation>
 <translation id="2781151931089541271">Queda 1 segundo</translation>
 <translation id="2784212955220061919">En el modo básico, Chrome carga las páginas más rápido y reduce el uso de datos hasta un 60 por ciento. La tecnología de la nube de Google optimiza las páginas que visitas.</translation>
-<translation id="2785336755839207516">Has desinstalado <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Mostrando contraseñas guardadas y opciones de contraseña</translation>
 <translation id="2810645512293415242">Esta página se ha simplificado para ahorrar datos y poder cargarla más rápido.</translation>
 <translation id="281504910091592009">Consulta y gestiona las contraseñas guardadas en tu <ph name="BEGIN_LINK" />cuenta de Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalar</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="3810973564298564668">Gestionar</translation>
-<translation id="3814315701645566481">¿Quieres borrar los datos de <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Descargas eliminadas: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Descargar artículos recomendados para ti</translation>
 <translation id="3822502789641063741">¿Borrar almacenamiento web?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
index 8aa0f3c..1dc58232 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_et.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="et">
 <translation id="1006017844123154345">Ava veebis</translation>
-<translation id="1023450834687746199">Olete kustutanud rakenduse <ph name="APP_NAME" /> andmed.</translation>
 <translation id="1036727731225946849">APK <ph name="WEBAPK_NAME" /> lisamine …</translation>
 <translation id="1041308826830691739">Veebisaitidelt</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -247,7 +246,6 @@
 <translation id="2779651927720337254">ebaõnnestus</translation>
 <translation id="2781151931089541271">Jäänud on 1 sekund</translation>
 <translation id="2784212955220061919">Lihtsustatud režiimis laadib Chrome lehti kiiremini ja kasutab kuni 60 protsenti vähem andmemahtu. Google'i pilvetehnoloogia optimeerib külastatavaid lehti.</translation>
-<translation id="2785336755839207516">Olete desinstallinud rakenduse <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Kuvatud on salvestatud paroolid ja paroolivalikud</translation>
 <translation id="2810645512293415242">Lihtsustatud leht andmemahu säästmiseks ja laadimise kiirendamiseks.</translation>
 <translation id="281504910091592009">Vaadake ja hallake salvestatud paroole oma <ph name="BEGIN_LINK" />Google'i kontol<ph name="END_LINK" /></translation>
@@ -373,7 +371,6 @@
 <translation id="3789841737615482174">Installi</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Halda</translation>
-<translation id="3814315701645566481">Kas soovite kustutada aadressiga <ph name="URL" /> seotud andmed?</translation>
 <translation id="3819178904835489326">Tuvastati <ph name="NUMBER_OF_DOWNLOADS" /> allalaadimist</translation>
 <translation id="3819562311292413223">Teile soovitatud artiklite allalaadimine</translation>
 <translation id="3822502789641063741">Kas tühj. saidi salvestusruum?</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 181c7464..d383e87 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="1023450834687746199">داده‌ها را برای <ph name="APP_NAME" /> پاک کردید.</translation>
 <translation id="1036727731225946849">درحال افزودن <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">از وب‌سایت‌ها</translation>
 <translation id="1049743911850919806">ناشناس</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">انجام نشد</translation>
 <translation id="2781151931089541271">۱ ثانیه باقی‌مانده است</translation>
 <translation id="2784212955220061919">‏در «حالت ساده»، Chrome صفحه‌ها را سریع‌تر بار می‌کند و تا ۶۰ درصد مصرف داده را کاهش می‌دهد. فناوری ابری Google صفحه‌هایی را که بازدید می‌کنید بهینه می‌کند.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> را حذف نصب کردید.</translation>
 <translation id="2803478378562657435">درحال نمایش گذرواژه‌های ذخیره‌شده و گزینه‌های گذرواژه</translation>
 <translation id="2810645512293415242">صفحه ساده‌شده برای ذخیره داده‌ها و بارگیری با سرعت بیشتر.</translation>
 <translation id="281504910091592009">‏در <ph name="BEGIN_LINK" />حساب Google<ph name="END_LINK" /> خود گذرواژه‌های ذخیره‌شده را مشاهده و مدیریت کنید</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">نصب</translation>
 <translation id="3810838688059735925">فیلم</translation>
 <translation id="3810973564298564668">مدیریت</translation>
-<translation id="3814315701645566481">می‌خواهید داده‌های <ph name="URL" /> را پاک کنید؟</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> بارگیری حذف شد</translation>
 <translation id="3819562311292413223">بارگیری مقاله‌هایی برای شما</translation>
 <translation id="3822502789641063741">فضای ذخیره سایت پاک شود؟</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 9895764..a371e32 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="1023450834687746199">Olet poistanut datan sovelluksesta <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Lisätään <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Verkkosivustoilta</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">epäonnistui</translation>
 <translation id="2781151931089541271">1 sekunti jäljellä</translation>
 <translation id="2784212955220061919">Yksinkertaistetussa tilassa Chrome lataa sivuja nopeammin ja käyttää jopa 60 prosenttia vähemmän dataa. Googlen pilviteknologia optimoi sivut, joilla käyt.</translation>
-<translation id="2785336755839207516">Olet poistanut sovelluksen <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Näytetään tallennetut salasanat ja salasana-asetukset</translation>
 <translation id="2810645512293415242">Yksinkertaistettu sivu, joka säästää dataa ja latautuu nopeammin.</translation>
 <translation id="281504910091592009">Katso ja ylläpidä <ph name="BEGIN_LINK" />Google-tilille<ph name="END_LINK" /> tallennettuja salasanoja</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Asenna</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Hallinnoi</translation>
-<translation id="3814315701645566481">Poistetaanko tämä data (<ph name="URL" />)?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> latausta poistettiin.</translation>
 <translation id="3819562311292413223">Lataa sinulle valittuja artikkeleita</translation>
 <translation id="3822502789641063741">Poistetaanko tiedot?</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 7bb1ac2..4522fa0 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="1023450834687746199">Na-clear mo ang data para sa <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Idinaragdag ang <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Mula sa mga website</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">Monospace</translation>
 <translation id="2610239185026711824">Magmungkahi ng password</translation>
 <translation id="2612676031748830579">Numero ng card</translation>
+<translation id="2613747923081026172">Gumawa ng pangkat</translation>
 <translation id="2621115761605608342">Payagan ang JavaScript para sa isang partikular na site.</translation>
 <translation id="2625189173221582860">Nakopya ang password</translation>
 <translation id="2631006050119455616">Na-save</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">nabigo</translation>
 <translation id="2781151931089541271">1 segundo na lang ang natitira</translation>
 <translation id="2784212955220061919">Sa Lite mode, mas mabilis na nilo-load ng Chrome ang mga page at mas kaunti nang 60 porsyento ang ginagamit nitong data. Ino-optimize ng cloud technology ng Google ang mga page na binibisita mo.</translation>
-<translation id="2785336755839207516">Na-uninstall mo ang <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Ipinapakita ang mga naka-save na password at mga opsyon sa password</translation>
 <translation id="2810645512293415242">Pinasimple ang page upang ma-save ang data at mag-load nang mas mabilis.</translation>
 <translation id="281504910091592009">Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" /></translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">Mag-install</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Mamahala</translation>
-<translation id="3814315701645566481">Gusto mo bang i-clear ang data para sa <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Na-delete ang <ph name="NUMBER_OF_DOWNLOADS" /> (na) pag-download</translation>
 <translation id="3819562311292413223">Mag-download ng mga artikulo para sa iyo</translation>
 <translation id="3822502789641063741">I-clear ang storage ng site?</translation>
@@ -883,7 +881,9 @@
 <translation id="7473891865547856676">Hindi, Salamat</translation>
 <translation id="7475192538862203634">Kung madalas mo itong makita, subukan ang <ph name="BEGIN_LINK" />mga suhestyon<ph name="END_LINK" /> na ito.</translation>
 <translation id="7475688122056506577">Hindi nakita ang SD card. Maaaring nawawala ang ilan sa iyong mga file.</translation>
+<translation id="7479104141328977413">Pamamahala sa tab</translation>
 <translation id="7481312909269577407">Sumulong</translation>
+<translation id="7482697587265222445">Tab na ipinadala sa iyong mga device</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Na-update <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">Ipakita ang mga password</translation>
 <translation id="7494974237137038751">natipid na data</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 00b3781..d8c8852 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="1023450834687746199">Vous avez effacé les données de l'application <ph name="APP_NAME" />.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">échec</translation>
 <translation id="2781151931089541271">1 seconde restante</translation>
 <translation id="2784212955220061919">En mode simplifié, Chrome charge les pages plus rapidement et consomme jusqu'à 60 pour cent de données en moins. La technologie cloud de Google optimise les pages que vous consultez.</translation>
-<translation id="2785336755839207516">Vous avez désinstallé <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Affichage des mots de passe enregistrés et des options de mot de passe</translation>
 <translation id="2810645512293415242">Page simplifiée pour économiser des données et accélérer le chargement.</translation>
 <translation id="281504910091592009">Afficher et gérer les mots de passe enregistrés dans votre <ph name="BEGIN_LINK" />compte Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installer</translation>
 <translation id="3810838688059735925">Vidéo</translation>
 <translation id="3810973564298564668">Gérer</translation>
-<translation id="3814315701645566481">Voulez-vous effacer les données associées à <ph name="URL" /> ?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> téléchargements supprimés</translation>
 <translation id="3819562311292413223">Télécharger des articles pour vous</translation>
 <translation id="3822502789641063741">Suppr. données de site ?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
index 1257695..fcbc80a0 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_gu.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="gu">
 <translation id="1006017844123154345">ઑનલાઇન ખોલો</translation>
-<translation id="1023450834687746199">તમે <ph name="APP_NAME" /> માટેનો ડેટા સાફ કર્યો છે.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ઉમેરી રહ્યાં છીએ…</translation>
 <translation id="1041308826830691739">વેબસાઇટ પરથી</translation>
 <translation id="1049743911850919806">છૂપી</translation>
@@ -144,6 +143,7 @@
 <translation id="200815880754187296">અન્ય અ‍ૅપ્લિકેશનો દ્વારા <ph name="KILOBYTES" /> KB</translation>
 <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# ફાઇલ}one{# ફાઇલો}other{# ફાઇલો}}</translation>
 <translation id="2017836877785168846">ઍડ્રેસ બારમાં ઇતિહાસ અને સ્વતઃપૂર્ણ કરવું સાફ કરો.</translation>
+<translation id="2018707881002649255">તમે નીચે આપેલામાંથી જે સંપર્કો પસંદ કરશો, તેને <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />ની વેબસાઇટ સાથે શેર કરવામાં આવશે.</translation>
 <translation id="2021896219286479412">પૂર્ણ સ્ક્રીન સાઇટ નિયંત્રણો</translation>
 <translation id="2038563949887743358">વિનંતી ડેસ્કટૉપ સાઇટ ચાલુ કરો</translation>
 <translation id="204321170514947529"><ph name="APP_NAME" /> નો ડેટા Chromeમાં પણ છે</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">નિષ્ફળ થયું</translation>
 <translation id="2781151931089541271">1 સેકંડ બાકી</translation>
 <translation id="2784212955220061919">લાઇટ મોડમાં, Chrome પેજને વધુ ઝડપથી લોડ કરે છે અને તે 60 ટકા ઓછા ડેટાનો ઉપયોગ કરે છે. Googleની ક્લાઉડ ટેક્નોલોજી તમે મુલાકાત લો છો તે પેજને ઑપ્ટિમાઇઝ કરે છે.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> તમે અનઇન્સ્ટૉલ કરી છે.</translation>
 <translation id="2803478378562657435">સાચવેલા પાસવર્ડ અને પાસવર્ડ માટેના વિકલ્પો બતાવી રહ્યા છીએ</translation>
 <translation id="2810645512293415242">ડેટા બચાવવા અને વધુ ઝડપથી પેજ લોડ કરવા માટે પેજ સરળ બનાવ્યું.</translation>
 <translation id="281504910091592009">સાચવેલા પાસવર્ડ તમારા <ph name="BEGIN_LINK" />Google એકાઉન્ટ<ph name="END_LINK" />માં જુઓ અને મેનેજ કરો</translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">ઇન્સ્ટોલ કરો</translation>
 <translation id="3810838688059735925">વીડિયો</translation>
 <translation id="3810973564298564668">મેનેજ કરો</translation>
-<translation id="3814315701645566481">શું તમે <ph name="URL" /> માટે ડેટા સાફ કરવા માગો છો?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ડાઉનલોડ કાઢી નાખ્યાં</translation>
 <translation id="3819562311292413223">તમારા માટે લેખ ડાઉનલોડ કરો</translation>
 <translation id="3822502789641063741">સાઇટ સ્ટોરેજ સાફ કરીએ?</translation>
@@ -547,6 +545,7 @@
 <translation id="5039804452771397117">મંજૂરી આપો</translation>
 <translation id="5040262127954254034">ગોપનીયતા</translation>
 <translation id="5063480226653192405">ઉપયોગ</translation>
+<translation id="5073204694187207510">પૂર્ણસ્ક્રીન ગ્રિડને છુપાવો</translation>
 <translation id="5082793167783849073">ગ્રૂપ બનાવીને ઝડપથી પેજની સરખામણી કરો. શરૂ કરવા માટે, લિંકને સ્પર્શ કરી રાખો.</translation>
 <translation id="5087580092889165836">કાર્ડ ઉમેરો</translation>
 <translation id="5100237604440890931">સંકુચિત - વિસ્તૃત કરવા માટે ક્લિક કરો.</translation>
@@ -742,11 +741,13 @@
 <translation id="6447842834002726250">કૂકીઝ</translation>
 <translation id="6448273550210938826">શોધ અને URL સૂચનો</translation>
 <translation id="6461962085415701688">ફાઇલ ખોલી શકતાં નથી</translation>
+<translation id="6464977750820128603">તમે Chromeમાં મુલાકાત લીધેલી સાઇટ જોઈ શકશો અને તેના માટે ટાઇમર પણ સેટ કરી શકશો.\n\nતમે જે સાઇટ માટે ટાઇમર સેટ કરો છો અને કેટલા સમય માટે તેની મુલાકાત લો છો, તે માહિતી Google મેળવે છે. આ માહિતી ડિજિટલ લાઇફસ્ટાઇલને બહેતર બનાવવા માટે ઉપયોગમાં લેવામાં આવે છે.</translation>
 <translation id="6475951671322991020">વીડિયો ડાઉનલોડ કરો</translation>
 <translation id="6482749332252372425">સ્ટોરેજ સ્થાનના અભાવના કારણે <ph name="FILE_NAME" /> ડાઉનલોડ નિષ્ફળ થયું.</translation>
 <translation id="6496823230996795692">પહેલી વખત <ph name="APP_NAME" />નો ઉપયોગ કરવા માટે, કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો.</translation>
 <translation id="6508722015517270189">Chrome ને પુનઃપ્રારંભ કરો</translation>
 <translation id="6527303717912515753">શેર કરો</translation>
+<translation id="6532866250404780454">Chromeમાં તમે મુલાકાત લીધેલી સાઇટ બતાવવામાં આવશે નહીં. સાઇટના બધા ટાઇમર ડિલીટ કરવામાં આવશે.</translation>
 <translation id="6534565668554028783">પ્રતિભાવ આપવા માટે Googleએ ઘણો સમય લીધો</translation>
 <translation id="6538442820324228105"><ph name="GBS" /> GB ડાઉનલોડ કર્યા</translation>
 <translation id="654446541061731451">બીમ કરવા માટે એક ટેબ પસંદ કરો</translation>
@@ -891,6 +892,7 @@
 <translation id="751961395872307827">સાઇટ સાથે કનેક્ટ કરી શકાતું નથી</translation>
 <translation id="7521387064766892559">JavaScript</translation>
 <translation id="7542481630195938534">સૂચનો મેળવી શકતાં નથી</translation>
+<translation id="7559245342362162951">ગ્રુપના ટૅબને પૂર્ણસ્ક્રીન ગ્રિડમાં બતાવો</translation>
 <translation id="7559975015014302720">લાઇટ મોડ બંધ છે</translation>
 <translation id="7562080006725997899">બ્રાઉઝિંગ ડેટા સાફ કરો</translation>
 <translation id="756809126120519699">Chrome ડેટા સાફ કર્યો</translation>
@@ -973,6 +975,7 @@
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8105951947646329362">સંબંધિત પેજ સૂચવો</translation>
 <translation id="8109613176066109935">તમારા બધા ઉપકરણો પર તમારા બુકમાર્ક મેળવવા માટે, સિંક કરવાનું ચાલુ કરો</translation>
+<translation id="8110087112193408731">શું તમારી Chromeની પ્રવૃત્તિ ડિજિટલ લાઇફસ્ટાઇલમાં બતાવીએ?</translation>
 <translation id="8116925261070264013">મ્યૂટ કરેલ</translation>
 <translation id="813082847718468539">સ્થાન માહિતી જુઓ</translation>
 <translation id="8131740175452115882">પુષ્ટિ કરો</translation>
@@ -1068,6 +1071,7 @@
 <translation id="8912362522468806198">Google એકાઉન્ટ</translation>
 <translation id="8920114477895755567">માતાપિતાની વિગતોની રાહ જોઈ રહ્યાં છે.</translation>
 <translation id="8922289737868596582">વધુ વિકલ્પો બટનની મદદથી પેજ ડાઉનલોડ કરો, જેથી તમે ઇન્ટરનેટ વિના પણ તેનો ઉપયોગ કરી શકો</translation>
+<translation id="8937772741022875483">તમારી Chromeની પ્રવૃત્તિને ડિજિટલ લાઇફસ્ટાઇલમાંથી કાઢી નાખીએ?</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8942627711005830162">અન્ય વિંડોમાં ખોલો</translation>
 <translation id="8951232171465285730">Chrome એ તમારો <ph name="MEGABYTES" /> MB ડેટા બચાવ્યો</translation>
@@ -1099,12 +1103,15 @@
 <translation id="9137013805542155359">મૂળ બતાવો</translation>
 <translation id="9139068048179869749">સાઇટ્સને સૂચનાઓ મોકલતાં પહેલાં પૂછો (ભલામણ કરેલ)</translation>
 <translation id="9139318394846604261">ખરીદી</translation>
+<translation id="9150694013019234766">સ્ક્રીનના નીચેના ભાગમાં, તમારા ટૅબ ગ્રૂપમાં એકથી વધુ ટૅબની વચ્ચે સ્વિચ કરો</translation>
 <translation id="9155898266292537608">તમે કોઈએક શબ્દ પર ટૅપ કરીને પણ ઝડપથી શોધી શકો છો</translation>
+<translation id="9169594135889675189">ગ્રૂપમાં નવું ટૅબ ઉમેરો</translation>
 <translation id="9188680907066685419">સંચાલિત એકાઉન્ટમાંથી સાઇન આઉટ કરો</translation>
 <translation id="9204836675896933765">1 ફાઇલ બાકી છે</translation>
 <translation id="9206873250291191720">A</translation>
 <translation id="9215534869786664672">60 ટકા જેટલા ઓછા ડેટાનો ઉપયોગ કરો અને વેબની ઝડપ વધારો. Google સર્વર, તમે મુલાકાત લો છો તે પેજને ઑપ્ટિમાઇઝ કરશે.</translation>
 <translation id="9219103736887031265">છબીઓ</translation>
+<translation id="926205370408745186">ડિજિટલ લાઇફસ્ટાઇલમાંથી તમારી Chromeની પ્રવૃત્તિને કેવી રીતે કાઢવી</translation>
 <translation id="932327136139879170">હોમ</translation>
 <translation id="932599481871055447">ડેટા બચાવો અને વધુ ઝડપથી બ્રાઉઝ કરો</translation>
 <translation id="938850635132480979">ભૂલ: <ph name="ERROR_CODE" /></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 fc42556b..c7f7454 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="1023450834687746199">आपने <ph name="APP_NAME" /> का डेटा हटा दिया है.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> जोड़ा जा रहा है...</translation>
 <translation id="1041308826830691739">वेबसाइटों से</translation>
 <translation id="1049743911850919806">गुप्त</translation>
@@ -245,7 +244,6 @@
 <translation id="2779651927720337254">डाउनलोड नहीं हो सका</translation>
 <translation id="2781151931089541271">1 सेकंड शेष</translation>
 <translation id="2784212955220061919">'लाइट मोड' में, Chrome पेजों को ज़्यादा तेज़ी से लोड करता है और 60 प्रतिशत तक कम डेटा इस्तेमाल करता है. Google की क्लाउड तकनीक आपके देखे गए पेज ऑप्टिमाइज़ करती है.</translation>
-<translation id="2785336755839207516">आपने <ph name="APP_NAME" /> को अनइंस्टॉल कर दिया है.</translation>
 <translation id="2803478378562657435">सेव किए हुए पासवर्ड और पासवर्ड के विकल्प दिखाए जा रहे हैं</translation>
 <translation id="2810645512293415242">डेटा बचाने और तेज़ी से लोड करने के लिए आसान बनाया गया पेज.</translation>
 <translation id="281504910091592009">अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें</translation>
@@ -371,7 +369,6 @@
 <translation id="3789841737615482174">इंस्‍टॉल करें</translation>
 <translation id="3810838688059735925">वीडियो</translation>
 <translation id="3810973564298564668">प्रबंधित करें</translation>
-<translation id="3814315701645566481">क्या आप <ph name="URL" /> का डेटा साफ़ करना चाहते हैं?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड हटाए गए</translation>
 <translation id="3819562311292413223">अपने लिए लेख डाउनलोड करें</translation>
 <translation id="3822502789641063741">साइट मेमोरी साफ़ करें?</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 e8b00fd..8846b5fa 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="1023450834687746199">Izbrisali ste podatke za aplikaciju <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Dodavanje stavke <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">S web-lokacija</translation>
 <translation id="1049743911850919806">Anonimno</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">nije uspjelo</translation>
 <translation id="2781151931089541271">Još 1 s</translation>
 <translation id="2784212955220061919">U Jednostavnom načinu Chrome učitava stranice brže i smanjuje podatkovni promet do 60 posto. Googleova tehnologija u oblaku optimizira stranice koje posjećujete.</translation>
-<translation id="2785336755839207516">Deinstalirali ste aplikaciju <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Prikazivanje spremljenih zaporki i opcija zaporki</translation>
 <translation id="2810645512293415242">Pojednostavljena stranica štedi podatke i učitava se brže.</translation>
 <translation id="281504910091592009">Spremljene zaporke možete pregledati i upravljati njima na svojem <ph name="BEGIN_LINK" />Google računu<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instaliraj</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Upravljaj</translation>
-<translation id="3814315701645566481">Želite li izbrisati podatke za <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Izbrisano preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Preuzmite članke za vas</translation>
 <translation id="3822502789641063741">Izbrisati pohranu?</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 779bafd..3ecb8a21 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="1023450834687746199">Törölte a(z) <ph name="APP_NAME" /> adatait.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">sikertelen</translation>
 <translation id="2781151931089541271">1 másodperc van hátra</translation>
 <translation id="2784212955220061919">Lite módban a Chrome gyorsabban betölti az oldalakat, és akár 60 százalékkal kisebb adatforgalmat generál. A Google felhőtechnológiája optimalizálja a felkeresett oldalakat.</translation>
-<translation id="2785336755839207516">Eltávolította a(z) <ph name="APP_NAME" /> alkalmazást.</translation>
 <translation id="2803478378562657435">Mentett jelszavak és jelszóbeállítások megjelenítve</translation>
 <translation id="2810645512293415242">Egyszerűsített oldal az alacsonyabb adathasználat és a gyorsabb betöltés érdekében.</translation>
 <translation id="281504910091592009">Mentett jelszavait megtekintheti és kezelheti <ph name="BEGIN_LINK" />Google-fiókjában<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Telepítés</translation>
 <translation id="3810838688059735925">Videó</translation>
 <translation id="3810973564298564668">Szerkesztés</translation>
-<translation id="3814315701645566481">Szeretné törölni a következő URL-lel kapcsolatos adatokat: <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> letöltés törölve</translation>
 <translation id="3819562311292413223">Cikkek Önnek – letöltés</translation>
 <translation id="3822502789641063741">Törli a webhely tárhelyét?</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 12e98fbc..2378f39d 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="1023450834687746199">Anda telah menghapus data <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Menambahkan <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Dari situs</translation>
 <translation id="1049743911850919806">Penyamaran</translation>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">Monospace</translation>
 <translation id="2610239185026711824">Sarankan sandi</translation>
 <translation id="2612676031748830579">Nomor kartu kredit</translation>
+<translation id="2613747923081026172">Buat grup</translation>
 <translation id="2621115761605608342">Izinkan JavaScript untuk situs tertentu.</translation>
 <translation id="2625189173221582860">Sandi disalin</translation>
 <translation id="2631006050119455616">Dihemat</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 detik lagi</translation>
 <translation id="2784212955220061919">Dalam mode Ringan, Chrome memuat halaman lebih cepat dan menghemat data hingga 60 persen. Teknologi cloud Google mengoptimalkan halaman yang Anda buka.</translation>
-<translation id="2785336755839207516">Anda telah meng-uninstal <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Menampilkan opsi sandi dan sandi yang disimpan</translation>
 <translation id="2810645512293415242">Halaman disederhanakan agar data disimpan dan dimuat lebih cepat.</translation>
 <translation id="281504910091592009">Lihat dan kelola sandi tersimpan di <ph name="BEGIN_LINK" />Akun Google<ph name="END_LINK" /></translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">Instal</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Kelola</translation>
-<translation id="3814315701645566481">Ingin menghapus data untuk <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> download dihapus</translation>
 <translation id="3819562311292413223">Mendownload artikel untuk Anda</translation>
 <translation id="3822502789641063741">Kosongkan penyimpanan situs?</translation>
@@ -883,7 +881,9 @@
 <translation id="7473891865547856676">Lain Kali</translation>
 <translation id="7475192538862203634">Jika masalah ini sering terjadi, coba <ph name="BEGIN_LINK" />saran<ph name="END_LINK" /> berikut.</translation>
 <translation id="7475688122056506577">Kartu SD tidak ditemukan. Beberapa file Anda mungkin tidak tersimpan.</translation>
+<translation id="7479104141328977413">Pengelolaan tab</translation>
 <translation id="7481312909269577407">Maju</translation>
+<translation id="7482697587265222445">Tab dikirim ke perangkat Anda</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Diperbarui <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">Tampilkan sandi</translation>
 <translation id="7494974237137038751">data yang dihemat</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 55c7e61f..15479d25 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="1023450834687746199">Hai cancellato i dati di <ph name="APP_NAME" />.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">non riuscito</translation>
 <translation id="2781151931089541271">1 sec rimanente</translation>
 <translation id="2784212955220061919">Nella modalità Lite, Chrome carica le pagine più rapidamente e utilizza fino al 60 percento di dati in meno. La tecnologia cloud di Google ottimizza le pagine che visiti.</translation>
-<translation id="2785336755839207516">Hai disinstallato <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Mostra password salvate e opzioni password</translation>
 <translation id="2810645512293415242">Pagina semplificata per risparmiare dati e caricarla più velocemente.</translation>
 <translation id="281504910091592009">Visualizza e gestisci le password salvate nel tuo <ph name="BEGIN_LINK" />Account Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installa</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Gestisci</translation>
-<translation id="3814315701645566481">Vuoi cancellare i dati di <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> download eliminati</translation>
 <translation id="3819562311292413223">Scarica articoli per te</translation>
 <translation id="3822502789641063741">Cancellare memoria usata da siti?</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 44716d0..34c220d 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="1023450834687746199">ניקית את הנתונים של <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">מוסיף את <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">מאתרים</translation>
 <translation id="1049743911850919806">גלישה פרטית</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">נכשל</translation>
 <translation id="2781151931089541271">נותרה שניה אחת</translation>
 <translation id="2784212955220061919">‏במצב טעינה מהירה, Chrome טוען דפים מהר יותר ומפחית את השימוש בנתונים בשיעור של עד 60 אחוזים. טכנולוגיית הענן של Google מבצעת אופטימיזציה של הדפים.</translation>
-<translation id="2785336755839207516">הסרת את ההתקנה של <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">הצגת סיסמאות שמורות ואפשרויות סיסמה</translation>
 <translation id="2810645512293415242">דף פשוט יותר שחוסך בנתונים ונטען מהר יותר.</translation>
 <translation id="281504910091592009">‏הצגה וניהול של סיסמאות שמורות ב<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">התקן</translation>
 <translation id="3810838688059735925">וידאו</translation>
 <translation id="3810973564298564668">נהל</translation>
-<translation id="3814315701645566481">רוצה לנקות את הנתונים של <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> הורדות נמחקו</translation>
 <translation id="3819562311292413223">הורדת מאמרים שעשויים לעניין אותך</translation>
 <translation id="3822502789641063741">למחוק נתוני אתר מהאחסון?</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 c5075923..edac228 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="1023450834687746199"><ph name="APP_NAME" /> のデータを消去しました。</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> を追加しています...</translation>
 <translation id="1041308826830691739">ウェブサイトから</translation>
 <translation id="1049743911850919806">シークレット モード</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">残り 1 秒</translation>
 <translation id="2784212955220061919">ライトモードを使用すると、Chrome でページの読み込みが高速化され、データ使用量も最大 60 パーセント抑えることができます。Google のクラウド技術により、アクセス先のページが最適化されます。</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> をアンインストールしました。</translation>
 <translation id="2803478378562657435">保存したパスワードとパスワードのオプションを表示しています</translation>
 <translation id="2810645512293415242">簡易版ページを使用してデータの保存と読み込みを高速化します。</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google アカウント<ph name="END_LINK" />での保存パスワードの表示と管理</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">インストール</translation>
 <translation id="3810838688059735925">動画</translation>
 <translation id="3810973564298564668">管理</translation>
-<translation id="3814315701645566481"><ph name="URL" /> のデータを消去してもよろしいですか?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> 件のダウンロードを削除しました</translation>
 <translation id="3819562311292413223">おすすめの記事をダウンロード</translation>
 <translation id="3822502789641063741">サイトのストレージを消去しますか?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
index 6f30993d..97a2f19 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
 <translation id="1006017844123154345">ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
-<translation id="1023450834687746199">ನೀವು <ph name="APP_NAME" />ಸಲುವಾಗಿನ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿದ್ದೀರಿ.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1041308826830691739">ವೆಬ್‌ಸೈಟ್‌ಗಳ ಮೂಲಕ</translation>
 <translation id="1049743911850919806">ಅದೃಶ್ಯ</translation>
@@ -145,6 +144,7 @@
 <translation id="200815880754187296"><ph name="KILOBYTES" /> KB ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
 <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# ಫೈಲ್}one{# ಫೈಲ್‌ಗಳು}other{# ಫೈಲ್‌ಗಳು}}</translation>
 <translation id="2017836877785168846">ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ ಮತ್ತು ವಿಳಾಸಪಟ್ಟಿಯಲ್ಲಿರುವುದನ್ನು ಸ್ವಯಂಪೂರ್ಣಗೊಳಿಸಿ.</translation>
+<translation id="2018707881002649255">ನೀವು ಕೆಳಗೆ ಆಯ್ಕೆ ಮಾಡುವ ಸಂಪರ್ಕಗಳನ್ನು <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ವೆಬ್‌ಸೈಟ್‌ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.</translation>
 <translation id="2021896219286479412">ಪೂರ್ಣ ಪರದೆ ಸೈಟ್ ನಿಯಂತ್ರಣಗಳು</translation>
 <translation id="2038563949887743358">ಡೆಸ್ಕ್‌ಟಾಪ್ ಸೈಟ್ ವಿನಂತಿಯನ್ನು ಆನ್ ಮಾಡಿ</translation>
 <translation id="204321170514947529"><ph name="APP_NAME" />ಆ್ಯಪ್‌ನ ಡೇಟಾವು Chrome ನಲ್ಲಿಯೂ ಇದೆ</translation>
@@ -224,6 +224,7 @@
 <translation id="2593272815202181319">ಮೊನೋಸ್ಪೇಸ್</translation>
 <translation id="2610239185026711824">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಸೂಚಿಸಿ</translation>
 <translation id="2612676031748830579">ಕಾರ್ಡ್ ಸಂಖ್ಯೆ</translation>
+<translation id="2613747923081026172">ಗುಂಪನ್ನು ರಚಿಸಿ</translation>
 <translation id="2621115761605608342">ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ಗೆ JavaScript ಅನ್ನು ಅನುಮತಿಸಿ.</translation>
 <translation id="2625189173221582860">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="2631006050119455616">ಉಳಿಸಲಾಗಿದೆ</translation>
@@ -246,7 +247,6 @@
 <translation id="2779651927720337254">ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="2781151931089541271">1 ಸೆಕೆಂಡು ಉಳಿದಿದೆ</translation>
 <translation id="2784212955220061919">ಲೈಟ್ ಮೋಡ್‍ನಲ್ಲಿ, Chrome ವೇಗವಾಗಿ ಪುಟಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಡೇಟಾವನ್ನು ಸುಮಾರು ಶೇಕಡಾ 60 ರಷ್ಟು ಕಡಿಮೆ ಬಳಸುತ್ತದೆ. Google ನ ಕ್ಲೌಡ್ ತಂತ್ರಜ್ಞಾನವು, ನೀವು ಭೇಟಿ ನೀಡುವ ಪುಟಗಳನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುತ್ತದೆ.</translation>
-<translation id="2785336755839207516">ನೀವು <ph name="APP_NAME" />ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ್ದೀರಿ.</translation>
 <translation id="2803478378562657435">ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2810645512293415242">ಡೇಟಾ ಉಳಿಸಲು ಮತ್ತು ವೇಗವಾಗಿ ಲೋಡ್ ಮಾಡಲು ಪುಟವನ್ನು ಸರಳೀಕೃತಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="281504910091592009">ಉಳಿಸಲಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ <ph name="BEGIN_LINK" />Google ಖಾತೆಯಲ್ಲಿ<ph name="END_LINK" /> ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation>
@@ -372,7 +372,6 @@
 <translation id="3789841737615482174">ಸ್ಥಾಪಿಸು</translation>
 <translation id="3810838688059735925">ವೀಡಿಯೊ</translation>
 <translation id="3810973564298564668">ನಿರ್ವಹಿಸು</translation>
-<translation id="3814315701645566481">ನೀವು <ph name="URL" /> ನ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ</translation>
 <translation id="3819562311292413223">ನಿಮಗಾಗಿ ಲೇಖನಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="3822502789641063741">ಸೈಟ್ ಸಂಗ್ರಹಣೆ ತೆರವುಗೊಳಿಸುವುದೇ?</translation>
@@ -546,6 +545,7 @@
 <translation id="5039804452771397117">ಅನುಮತಿಸಿ</translation>
 <translation id="5040262127954254034">ಗೌಪ್ಯತೆ</translation>
 <translation id="5063480226653192405">ಬಳಕೆ</translation>
+<translation id="5073204694187207510">ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ ಗ್ರಿಡ್‌ ಅನ್ನು ಮರೆಮಾಡಿ</translation>
 <translation id="5082793167783849073">ಗುಂಪನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪುಟಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಹೋಲಿಸಿ ನೋಡಿ. ಪ್ರಾರಂಭಿಸಲು, ಲಿಂಕ್ ಸ್ಪರ್ಶಿಸಿ ಹಿಡಿಯಿರಿ.</translation>
 <translation id="5087580092889165836">ಕಾರ್ಡ್ ಸೇರಿಸಿ</translation>
 <translation id="5100237604440890931">ಕುಗ್ಗಿಸಲಾಗಿದೆ - ವಿಸ್ತರಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
@@ -741,11 +741,13 @@
 <translation id="6447842834002726250">ಕುಕೀಸ್</translation>
 <translation id="6448273550210938826">ಹುಡುಕಾಟ ಮತ್ತು URL ಸಲಹೆಗಳು</translation>
 <translation id="6461962085415701688">ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
+<translation id="6464977750820128603">ನೀವು Chrome ನಲ್ಲಿ ಭೇಟಿ ಮಾಡಿದ ಸೈಟ್‌ಗಳನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಅವುಗಳಿಗೆ ಟೈಮರ್‌ಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.\n\nನೀವು ಯಾವ ಸೈಟ್‌ಗಳಿಗೆ   ಟೈಮರ್‌ ಗಳನ್ನು ಹೊಂದಿಸಿದ್ದೀರಿ ಮತ್ತು  ಅವುಗಳಿಗೆ ಭೇಟಿ ಮಾಡಿ ಎಷ್ಟು ಸಮಯ ಕಳೆದಿರುವಿರಿ ಎನ್ನುವುದರ ಕುರಿತ ಮಾಹಿತಿಯನ್ನು Google ಪಡೆಯುತ್ತದೆ. ಡಿಜಿಟಲ್ ಯೋಗಕ್ಷೇಮವನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಈ ಮಾಹಿತಿಯನ್ನು ಬಳಸಲಾಗುವುದು.</translation>
 <translation id="6475951671322991020">ವೀಡಿಯೊ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="6482749332252372425">ಸಂಗ್ರಹಣೆ ಸ್ಥಳದ ಕೊರತೆಯ ಕಾರಣದಿಂದ <ph name="FILE_NAME" /> ಡೌನ್‌ಲೋಡ್ ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="6496823230996795692"><ph name="APP_NAME" /> ಅನ್ನು ಮೊದಲ ಬಾರಿಗೆ ಬಳಸಲು, ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಸಿ.</translation>
 <translation id="6508722015517270189">Chrome ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="6527303717912515753">ಹಂಚಿಕೊಳ್ಳು</translation>
+<translation id="6532866250404780454">Chrome ನಲ್ಲಿ ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್‌ಗಳನ್ನು ತೋರಿಸುವುದಿಲ್ಲ. ಎಲ್ಲಾ ಸೈಟ್‌ ಟೈಮರ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗುವುದು.</translation>
 <translation id="6534565668554028783">ಪ್ರತಿಕ್ರಿಯಿಸಲು Google ತೀರಾ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಂಡಿದೆ.</translation>
 <translation id="6538442820324228105"><ph name="GBS" /> GB ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="654446541061731451">ಬೀಮ್‌ ಗೆ ಟ್ಯಾಬ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
@@ -880,7 +882,9 @@
 <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="7475192538862203634">ಇದನ್ನು ನೀವು ಪದೇ ಪದೇ ವೀಕ್ಷಿಸುತ್ತಿದ್ದರೆ, ಈ <ph name="BEGIN_LINK" />ಸಲಹೆಗಳನ್ನು<ph name="END_LINK" /> ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7475688122056506577">SD ಕಾರ್ಡ್ ಕಂಡುಬಂದಿಲ್ಲ. ನಿಮ್ಮ ಕೆಲವು ಫೈಲ್‌ಗಳು ಕಾಣೆಯಾಗಿರಬಹುದು.</translation>
+<translation id="7479104141328977413">ಟ್ಯಾಬ್ ನಿರ್ವಹಣೆ</translation>
 <translation id="7481312909269577407">ಫಾರ್ವರ್ಡ್</translation>
+<translation id="7482697587265222445">ಟ್ಯಾಬ್ ಅನ್ನು ನಿಮ್ಮ ಸಾಧನಗಳಿಗೆ ಕಳುಹಿಸಲಾಗಿದೆ</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (<ph name="TIME_SINCE_UPDATE" /> ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="7494879913343971937">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="7494974237137038751">ಉಳಿತಾಯವಾದ ಡೇಟಾ</translation>
@@ -889,6 +893,7 @@
 <translation id="751961395872307827">ಸೈಟ್‌ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="7521387064766892559">JavaScript</translation>
 <translation id="7542481630195938534">ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
+<translation id="7559245342362162951">ಗುಂಪಿನ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪೂರ್ಣ ಸ್ಕ್ರೀನ್‌ ಗ್ರಿಡ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="7559975015014302720">ಲೈಟ್ ಮೋಡ್ ಆಫ್ ಆಗಿದೆ</translation>
 <translation id="7562080006725997899">ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="756809126120519699">Chrome ಡೇಟಾ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation>
@@ -971,6 +976,7 @@
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8105951947646329362">ಸಂಬಂಧಿತ ಪುಟಗಳನ್ನು ಸೂಚಿಸಿ</translation>
 <translation id="8109613176066109935">ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸಿಂಕ್‌ ಆನ್‌ ಮಾಡಿ</translation>
+<translation id="8110087112193408731">ಡಿಜಿಟಲ್ ಯೋಗಕ್ಷೇಮದಲ್ಲಿ ನಿಮ್ಮ Chrome ಚಟುವಟಿಕೆಯನ್ನು ತೋರಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="8116925261070264013">ಮ್ಯೂಟ್‌ ಆಗಿರುವುದು</translation>
 <translation id="813082847718468539">ಸೈಟ್ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಿ</translation>
 <translation id="8131740175452115882">ದೃಢೀಕರಿಸು</translation>
@@ -1066,6 +1072,7 @@
 <translation id="8912362522468806198">Google ಖಾತೆ</translation>
 <translation id="8920114477895755567">ಪೋಷಕರ ವಿವರಗಳಿಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="8922289737868596582">ಪುಟಗಳನ್ನು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಬಳಸಲು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳ ಬಟನ್ ಮೂಲಕ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿ</translation>
+<translation id="8937772741022875483">ಡಿಜಿಟಲ್ ಯೋಗಕ್ಷೇಮದಿಂದ ನಿಮ್ಮ Chrome ಚಟುವಟಿಕೆಯನ್ನು ತೆಗೆದುಹಾಕಬೇಕೇ?</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8942627711005830162">ಇತರ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="8951232171465285730">ನಿಮ್ಮ <ph name="MEGABYTES" /> MB ಅನ್ನು Chrome ಉಳಿಸಿದೆ</translation>
@@ -1097,12 +1104,15 @@
 <translation id="9137013805542155359">ಮೂಲವನ್ನು ತೋರಿಸಿ</translation>
 <translation id="9139068048179869749">ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸುವ ಮೊದಲು ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="9139318394846604261">ಶಾಪಿಂಗ್</translation>
+<translation id="9150694013019234766">ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಭಾಗದಲ್ಲಿರುವ ನಿಮ್ಮ ಟ್ಯಾಬ್ ಗುಂಪಿನಲ್ಲಿರುವ ಟ್ಯಾಬ್‌ಗಳ ನಡುವೆ ಬದಲಾಯಿಸಿ</translation>
 <translation id="9155898266292537608">ನೀವು ಪದವನ್ನು ಕ್ಷಿಪ್ರವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡುವ ಮೂಲಕವೂ ಹುಡುಕಬಹುದು</translation>
+<translation id="9169594135889675189">ಗುಂಪಿಗೆ ಹೊಸ ಟ್ಯಾಬ್‌ ಸೇರಿಸಿ</translation>
 <translation id="9188680907066685419">ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="9204836675896933765">1 ಫೈಲ್ ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="9206873250291191720">A</translation>
 <translation id="9215534869786664672">ಶೇಕಡಾ 60 ರಷ್ಟು ಕಡಿಮೆ ಡೇಟಾವನ್ನು ಬಳಸಿ ಮತ್ತು ವೆಬ್‌ನ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸಿ. ನೀವು ಭೇಟಿ ಮಾಡುವ ಪುಟಗಳನ್ನು Google ಸರ್ವರ್‌ಗಳು ಆಪ್ಟಿಮೈಸ್ ಮಾಡುತ್ತವೆ.</translation>
 <translation id="9219103736887031265">ಚಿತ್ರಗಳು</translation>
+<translation id="926205370408745186">ಡಿಜಿಟಲ್ ಯೋಗಕ್ಷೇಮದಿಂದ ನಿಮ್ಮ Chrome ಚಟುವಟಿಕೆಯನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="932327136139879170">Home</translation>
 <translation id="932599481871055447">ಡೇಟಾವನ್ನು ಉಳಿಸಿ ಮತ್ತು ವೇಗವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="938850635132480979">ದೋಷ: <ph name="ERROR_CODE" /></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 5a787f763..f91d88d 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="1023450834687746199"><ph name="APP_NAME" /> 데이터를 삭제했습니다</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> 추가 중...</translation>
 <translation id="1041308826830691739">웹사이트 알림</translation>
 <translation id="1049743911850919806">시크릿</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">실패</translation>
 <translation id="2781151931089541271">1초 남음</translation>
 <translation id="2784212955220061919">Chrome의 라이트 모드를 사용하면 페이지가 더 빠르게 로드되고 데이터가 최대 60퍼센트 절약됩니다. Google의 클라우드 기술이 내가 방문하는 페이지를 최적화해 줍니다.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> 앱을 제거했습니다</translation>
 <translation id="2803478378562657435">저장된 비밀번호 및 비밀번호 옵션 표시 중</translation>
 <translation id="2810645512293415242">페이지가 간소화되어 데이터가 절약되고 로드 속도가 빨라졌습니다.</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google 계정<ph name="END_LINK" />에서 저장된 비밀번호 보기 및 관리</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">설치</translation>
 <translation id="3810838688059735925">동영상</translation>
 <translation id="3810973564298564668">관리</translation>
-<translation id="3814315701645566481"><ph name="URL" />의 데이터를 삭제하시겠습니까?</translation>
 <translation id="3819178904835489326">다운로드 <ph name="NUMBER_OF_DOWNLOADS" />개 삭제됨</translation>
 <translation id="3819562311292413223">추천 기사 다운로드</translation>
 <translation id="3822502789641063741">사이트 저장공간을 삭제하시겠습니까?</translation>
@@ -749,7 +746,7 @@
 <translation id="6496823230996795692">처음으로 <ph name="APP_NAME" />을(를) 사용하는 경우 인터넷에 연결하세요.</translation>
 <translation id="6508722015517270189">Chrome 다시 시작하기</translation>
 <translation id="6527303717912515753">공유</translation>
-<translation id="6532866250404780454">Chrome에서 방문한 사이트가 표시되지 않습니다. 모든 사이트 항목이 삭제됩니다.</translation>
+<translation id="6532866250404780454">Chrome에서 방문한 사이트가 표시되지 않습니다. 모든 사이트 타이머가 삭제됩니다.</translation>
 <translation id="6534565668554028783">Google에서 응답하는 데 시간이 너무 오래 걸립니다.</translation>
 <translation id="6538442820324228105"><ph name="GBS" />GB 다운로드됨</translation>
 <translation id="654446541061731451">공유할 탭을 선택하세요.</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 5bb4c87..f56ddfe 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="1023450834687746199">Išvalėte „<ph name="APP_NAME" />“ duomenis.</translation>
 <translation id="1036727731225946849">Pridedamas APK „<ph name="WEBAPK_NAME" />“...</translation>
 <translation id="1041308826830691739">Iš svetainių</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -247,7 +246,6 @@
 <translation id="2779651927720337254">nepavyko</translation>
 <translation id="2781151931089541271">Liko 1 sek.</translation>
 <translation id="2784212955220061919">Kai įjungtas supaprastintasis režimas, sistemoje „Chrome“ puslapiai įkeliami sparčiau ir naudojama iki 60 proc. mažiau duomenų. „Google“ debesies technologija optimizuoja jūsų lankomus puslapius.</translation>
-<translation id="2785336755839207516">Pašalinote „<ph name="APP_NAME" />“.</translation>
 <translation id="2803478378562657435">Rodomi išsaugoti slaptažodžiai ir slaptažodžių parinktys</translation>
 <translation id="2810645512293415242">Supaprastintas puslapis, kad būtų galima saugoti duomenis ir greičiau įkelti.</translation>
 <translation id="281504910091592009">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="BEGIN_LINK" />„Google“ paskyroje<ph name="END_LINK" /></translation>
@@ -373,7 +371,6 @@
 <translation id="3789841737615482174">Įdiegti</translation>
 <translation id="3810838688059735925">Vaizdo</translation>
 <translation id="3810973564298564668">Valdyti</translation>
-<translation id="3814315701645566481">Ar norite išvalyti <ph name="URL" /> duomenis?</translation>
 <translation id="3819178904835489326">Ištrinta atsisiuntimų: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Atsisiunčiami jums skirti straipsniai</translation>
 <translation id="3822502789641063741">Išvalyti svet. saugyklą?</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 1b33acc..beed606 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="1023450834687746199">Jūs notīrījāt <ph name="APP_NAME" /> datus.</translation>
 <translation id="1036727731225946849">Tiek pievienots <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">No vietnēm</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">neizdevās</translation>
 <translation id="2781151931089541271">Atlikusi 1 s</translation>
 <translation id="2784212955220061919">Vienkāršotajā režīmā Chrome ielādē lapas ātrāk un patērē pat par 60 procentiem mazāk datu. Google mākoņa tehnoloģija optimizē lapas, kuras apmeklējat.</translation>
-<translation id="2785336755839207516">Jūs atinstalējāt lietotni <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Tiek rādītas saglabātās paroles un paroļu iespējas</translation>
 <translation id="2810645512293415242">Lapa tika vienkāršota, lai samazinātu datu lietojumu un paātrinātu ielādi.</translation>
 <translation id="281504910091592009">Skatiet un pārvaldiet saglabātās paroles savā <ph name="BEGIN_LINK" />Google kontā<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalēt</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Pārvaldīt</translation>
-<translation id="3814315701645566481">Vai vēlaties notīrīt datus, kas saistīti ar vietni <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Izdzēsti <ph name="NUMBER_OF_DOWNLOADS" /> lejupielādētie vienumi</translation>
 <translation id="3819562311292413223">Ieteikto rakstu lejupielāde</translation>
 <translation id="3822502789641063741">Vai notīrīt vietnes krātuvi?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
index 7057391..24d370f 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ml.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ml">
 <translation id="1006017844123154345">ഓൺലൈനായി തുറക്കുക</translation>
-<translation id="1023450834687746199"><ph name="APP_NAME" /> എന്നതിനുള്ള ഡാറ്റ മായ്‌ച്ചു.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ചേർക്കുന്നു...</translation>
 <translation id="1041308826830691739">വെബ്‌സൈറ്റുകളിൽ നിന്ന്</translation>
 <translation id="1049743911850919806">ആള്‍‌മാറാട്ടം</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">പരാജയപ്പെട്ടു</translation>
 <translation id="2781151931089541271">ഒരു സെക്കൻഡ് ശേഷിക്കുന്നു</translation>
 <translation id="2784212955220061919">ലൈറ്റ് മോഡിൽ, Chrome 60 ശതമാനം വരെ കുറവ് ഡാറ്റ ഉപയോഗിക്കുകയും പേജുകൾ വേഗത്തിൽ ലോഡ് ചെയ്യുകയും ചെയ്യുന്നു. Google-ന്‍റെ ക്ലൗഡ് സാങ്കേതികവിദ്യ, നിങ്ങൾ സന്ദർശിക്കുന്ന പേജുകൾ ഒപ്റ്റിമൈസ് ചെയ്യുന്നു.</translation>
-<translation id="2785336755839207516">നിങ്ങൾ <ph name="APP_NAME" /> ഇൻസ്‌റ്റാൾ ചെയ്‌തു.</translation>
 <translation id="2803478378562657435">സംരക്ഷിച്ച പാസ്‌വേഡുകളും പാസ്‌വേഡ് ഓപ്‌ഷനുകളും കാണിക്കുന്നു</translation>
 <translation id="2810645512293415242">ഡാറ്റ ലാഭിക്കുന്നതിനും വേഗത്തിൽ ലോഡുചെയ്യുന്നതിനുമായി ലളിതവൽക്കരിച്ചിരിക്കുന്ന പേജ്.</translation>
 <translation id="281504910091592009">നിങ്ങളുടെ <ph name="BEGIN_LINK" />Google അക്കൗണ്ടിൽ<ph name="END_LINK" /> സംരക്ഷിച്ച പാസ്‌വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">ഇന്‍സ്റ്റാളുചെയ്യുക</translation>
 <translation id="3810838688059735925">വീഡിയോ</translation>
 <translation id="3810973564298564668">മാനേജ് ചെയ്യുക</translation>
-<translation id="3814315701645566481"><ph name="URL" /> എന്നതിനായുള്ള ഡാറ്റ മായ്‌ക്കണോ?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ഡൗൺലോഡുകൾ ഇല്ലാതാക്കി</translation>
 <translation id="3819562311292413223">നിങ്ങൾക്കായി ലേഖനങ്ങൾ ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="3822502789641063741">സൈറ്റ് സ്‌റ്റോറേജ് മായ്‌ക്കണോ?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
index 41cc619..c120cd40 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="mr">
 <translation id="1006017844123154345">ऑनलाइन उघडा</translation>
-<translation id="1023450834687746199">तुम्ही <ph name="APP_NAME" />साठीचा डेटा साफ केला आहे.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> जोडत आहे…</translation>
 <translation id="1041308826830691739">वेबसाइटवरून</translation>
 <translation id="1049743911850919806">गुप्त</translation>
@@ -247,7 +246,6 @@
 <translation id="2779651927720337254">अयशस्वी झाले</translation>
 <translation id="2781151931089541271">1 सेकंद शिल्लक</translation>
 <translation id="2784212955220061919">लाइट मोडमध्ये, Chrome पेज आणखी जलद लोड करते आणि ६० टक्के पर्यंत कमी डेटा वापरते. Google चे क्लाउड तंत्रज्ञान तुम्ही भेट देत असलेल्या पेजना ऑप्टिमाइझ करते.</translation>
-<translation id="2785336755839207516">तुम्ही <ph name="APP_NAME" /> अनइंस्टॉल केले आहे.</translation>
 <translation id="2803478378562657435">सेव्ह केलेले पासवर्ड आणि पासवर्ड पर्याय दाखवत आहे</translation>
 <translation id="2810645512293415242">डेटा सेव्ह करण्यासाठी आणि तो लवकर लोड होण्यासाठी पेज सुलभ केले.</translation>
 <translation id="281504910091592009">तुमच्या <ph name="BEGIN_LINK" />Google खात्यामध्ये<ph name="END_LINK" /> सेव्ह केलेले पासवर्ड पाहा आणि व्यवस्थापित करा</translation>
@@ -373,7 +371,6 @@
 <translation id="3789841737615482174">स्थापना करा</translation>
 <translation id="3810838688059735925">व्हिडिओ</translation>
 <translation id="3810973564298564668">व्यवस्थापित करा</translation>
-<translation id="3814315701645566481">तुम्हाला <ph name="URL" /> साठीचा डेटा साफ करायचा आहे का?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> डाउनलोड हटविले</translation>
 <translation id="3819562311292413223">तुमच्यासाठी लेख डाउनलोड करा</translation>
 <translation id="3822502789641063741">साइट स्टोरेज साफ करायचा?</translation>
@@ -744,13 +741,13 @@
 <translation id="6447842834002726250">कुकीज</translation>
 <translation id="6448273550210938826">शोध आणि URL सूचना</translation>
 <translation id="6461962085415701688">फाइल उघडू शकत नाही</translation>
-<translation id="6464977750820128603">तुम्ही Chrome मध्ये भेट दिलेल्या साइट पाहू शकता आणि त्यांच्यासाठी टाइमर सेट करू शकता.\n\nGoogle ला तुम्ही ज्या साइटसाठी टाइमर सेट केला आणि त्यांना किती वेळ भेट दिली याबद्दलची माहिती मिळते. ही माहिती डिजिटल संतुलन चांगले करण्यास वापरली जाते.</translation>
+<translation id="6464977750820128603">तुम्ही Chrome मध्ये भेट दिलेल्या साइट पाहू शकता आणि त्यांच्यासाठी टायमर सेट करू शकता.\n\nGoogle ला तुम्ही ज्या साइटसाठी टायमर सेट केला आणि त्यांना किती वेळ भेट दिली याबद्दलची माहिती मिळते. ही माहिती डिजिटल संतुलन चांगले करण्यास वापरली जाते.</translation>
 <translation id="6475951671322991020">व्हिडिओ डाउनलोड करा</translation>
 <translation id="6482749332252372425">स्टोरेज स्थानाच्या अभावामुळे <ph name="FILE_NAME" /> डाउनलोड अयशस्वी झाले.</translation>
 <translation id="6496823230996795692"><ph name="APP_NAME" /> पहिल्यांदा वापरण्यासाठी, कृपया इंटरनेटशी कनेक्ट करा.</translation>
 <translation id="6508722015517270189">Chrome रीस्टार्ट करा</translation>
 <translation id="6527303717912515753">शेअर करा</translation>
-<translation id="6532866250404780454">तुम्ही Chrome मध्ये भेट दिलेल्या साइट दाखवणार नाही. सर्व साइट टाइमर हटवले जातील.</translation>
+<translation id="6532866250404780454">तुम्ही Chrome मध्ये भेट दिलेल्या साइट दाखवणार नाही. सर्व साइट टायमर हटवले जातील.</translation>
 <translation id="6534565668554028783">Google ने प्रतिसाद देण्यास बराच वेळ घेतला</translation>
 <translation id="6538442820324228105"><ph name="GBS" /> GB डाउलोड केले</translation>
 <translation id="654446541061731451">बीममध्ये एक टॅब निवडा</translation>
@@ -978,7 +975,7 @@
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8105951947646329362">संबंधित पेज सूचवा</translation>
 <translation id="8109613176066109935">तुमच्या सर्व डिव्हाइसवरील तुमचे बुकमार्क मिळवण्यासाठी, सिंक सुरू करा</translation>
-<translation id="8110087112193408731">डिजिटल संतुलनामध्ये तुमची Chrome अॅक्टिव्हिटी दाखवायची का?</translation>
+<translation id="8110087112193408731">डिजिटल संतुलन मध्ये तुमची Chrome अॅक्टिव्हिटी दाखवायची का?</translation>
 <translation id="8116925261070264013">म्यूट केले</translation>
 <translation id="813082847718468539">साइटची माहिती पहा</translation>
 <translation id="8131740175452115882">पुष्टी करा</translation>
@@ -1074,7 +1071,7 @@
 <translation id="8912362522468806198">Google खाते</translation>
 <translation id="8920114477895755567">पालकांच्या तपशीलांसाठी प्रतीक्षा करत आहोत.</translation>
 <translation id="8922289737868596582">पेज ऑफलाइन वापरता येण्यासाठी ती अधिक पर्यायांमधून डाउनलोड करा</translation>
-<translation id="8937772741022875483">डिजिटल संतुलनावरून तुमची Chrome अॅक्टिव्हिटी काढून टाकायची का?</translation>
+<translation id="8937772741022875483">डिजिटल संतुलन वरून तुमची Chrome अॅक्टिव्हिटी काढून टाकायची का?</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8942627711005830162">इतर विंडोमध्ये उघडा</translation>
 <translation id="8951232171465285730">Chrome ने तुमच्यासाठी <ph name="MEGABYTES" /> MB सेव्ह केले</translation>
@@ -1114,7 +1111,7 @@
 <translation id="9206873250291191720">A</translation>
 <translation id="9215534869786664672">६० टक्क्यांपर्यंत कमी डेटा वापरा आणि वेबचा वेग वाढवा. Google सर्व्हर तुम्ही भेट देत असलेली पेज ऑप्टिमाइझ करतील.</translation>
 <translation id="9219103736887031265">इमेज</translation>
-<translation id="926205370408745186">डिजिटल संतुलनावरून तुमची Chrome अॅक्टिव्हिटी काढून टाका</translation>
+<translation id="926205370408745186">डिजिटल संतुलन वरून तुमची Chrome अॅक्टिव्हिटी काढून टाका</translation>
 <translation id="932327136139879170">घर</translation>
 <translation id="932599481871055447">डेटा सेव्ह करा आणि अधिक जलद ब्राउझ करा</translation>
 <translation id="938850635132480979">एरर: <ph name="ERROR_CODE" /></translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
index dbf1fda5..c096677 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ms.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ms">
 <translation id="1006017844123154345">Buka Dalam Talian</translation>
-<translation id="1023450834687746199">Anda telah mengosongkan data <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Menambahkan <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Daripada tapak web</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">gagal</translation>
 <translation id="2781151931089541271">1 saat lagi</translation>
 <translation id="2784212955220061919">Dalam mod Ringkas, Chrome memuatkan halaman lebih pantas dan mengurangkan penggunaan data sehingga 60 peratus. Teknologi awan Google mengoptimumkan halaman yang anda lawati.</translation>
-<translation id="2785336755839207516">Anda telah menyahpasang <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Menunjukkan kata laluan yang disimpan dan pilihan kata laluan</translation>
 <translation id="2810645512293415242">Halaman diringkaskan untuk menjimatkan data dan memuatkan dengan lebih cepat.</translation>
 <translation id="281504910091592009">Lihat dan urus kata laluan yang disimpan dalam <ph name="BEGIN_LINK" />Akaun Google<ph name="END_LINK" /> anda</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Pasang</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Urus</translation>
-<translation id="3814315701645566481">Adakah anda mahu memadam bersih data untuk <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> muat turun dipadamkan</translation>
 <translation id="3819562311292413223">Muat turun artikel untuk anda</translation>
 <translation id="3822502789641063741">Hapuskan storan tapak?</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 a7b3b47..eea2d5f 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="1023450834687746199">Je hebt de gegevens voor <ph name="APP_NAME" /> verwijderd.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> toevoegen...</translation>
 <translation id="1041308826830691739">Van websites</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">mislukt</translation>
 <translation id="2781151931089541271">1 seconde resterend</translation>
 <translation id="2784212955220061919">In de Lite-versie van Chrome worden pagina's sneller geladen en wordt tot wel 60 procent minder data verbruikt. De cloudtechnologie van Google optimaliseert de pagina's die je bezoekt.</translation>
-<translation id="2785336755839207516">Je hebt <ph name="APP_NAME" /> verwijderd.</translation>
 <translation id="2803478378562657435">Opgeslagen wachtwoorden en wachtwoordopties weergeven</translation>
 <translation id="2810645512293415242">Vereenvoudigde pagina om data te besparen en sneller te laden.</translation>
 <translation id="281504910091592009">Bekijk en beheer opgeslagen wachtwoorden in je <ph name="BEGIN_LINK" />Google-account<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installeren</translation>
 <translation id="3810838688059735925">Videobestanden</translation>
 <translation id="3810973564298564668">Beheren</translation>
-<translation id="3814315701645566481">Wil je gegevens voor <ph name="URL" /> verwijderen?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads verwijderd</translation>
 <translation id="3819562311292413223">Artikelen voor jou downloaden</translation>
 <translation id="3822502789641063741">Site-opslag wissen?</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 8c108df..bbefcb6 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="1023450834687746199">Du har slettet dataene for <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Legger til <ph name="WEBAPK_NAME" /> …</translation>
 <translation id="1041308826830691739">Fra nettsteder</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -144,7 +143,7 @@
 <translation id="200815880754187296"><ph name="KILOBYTES" /> kB andre apper</translation>
 <translation id="2013642289801508067">{FILE_COUNT,plural, =1{# fil}other{# filer}}</translation>
 <translation id="2017836877785168846">Tømmer loggen og fjerner automatiske fullføringer fra adressefeltet.</translation>
-<translation id="2018707881002649255">Kontaktene du velger nedenfor deles med nettstedet <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
+<translation id="2018707881002649255">Kontaktene du velger nedenfor, deles med nettstedet <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation>
 <translation id="2021896219286479412">Navigering i full skjerm</translation>
 <translation id="2038563949887743358">Slå på Bruk skrivebordsversjon</translation>
 <translation id="204321170514947529"><ph name="APP_NAME" /> har også data i Chrome</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">mislyktes</translation>
 <translation id="2781151931089541271">1 sekund igjen</translation>
 <translation id="2784212955220061919">I forenklet modus laster Chrome inn sider raskere og bruker opptil 60 prosent mindre data. Googles skyteknologi optimaliserer sidene du besøker.</translation>
-<translation id="2785336755839207516">Du har avinstallert <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Viser lagrede passord og passordalternativer</translation>
 <translation id="2810645512293415242">Siden er forenklet for å spare data og laste den inn raskere.</translation>
 <translation id="281504910091592009">Se og administrer lagrede passord i <ph name="BEGIN_LINK" />Google-kontoen<ph name="END_LINK" /> din</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Installer</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Administrer</translation>
-<translation id="3814315701645566481">Vil du slette data for <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> nedlastinger er slettet</translation>
 <translation id="3819562311292413223">Last ned artikler for deg</translation>
 <translation id="3822502789641063741">Slette nettstedslagring?</translation>
@@ -743,7 +740,7 @@
 <translation id="6447842834002726250">Informasjonskapsler</translation>
 <translation id="6448273550210938826">Nettadresse- og søkeforslag</translation>
 <translation id="6461962085415701688">Kan ikke åpne filen</translation>
-<translation id="6464977750820128603">Du kan se nettstedene du besøker i Chrome og angi tidtakere for dem.\n\nGoogle får informasjon om nettstedene du setter tidtakere for, og hvor lenge du besøker dem. Denne informasjonen brukes til å gjøre Digital balanse bedre.</translation>
+<translation id="6464977750820128603">Du kan se nettstedene du besøker i Chrome, og angi tidtakere for dem.\n\nGoogle får informasjon om nettstedene du angir tidtakere for, og hvor lenge du besøker dem. Denne informasjonen brukes til å gjøre Digital balanse bedre.</translation>
 <translation id="6475951671322991020">Last ned videoen</translation>
 <translation id="6482749332252372425">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av mangel på lagringsplass.</translation>
 <translation id="6496823230996795692">For å bruke <ph name="APP_NAME" /> for første gang, koble til Internett.</translation>
@@ -892,7 +889,7 @@
 <translation id="751961395872307827">Kan ikke koble til nettstedet</translation>
 <translation id="7521387064766892559">JavaScript</translation>
 <translation id="7542481630195938534">Kan ikke hente forslag</translation>
-<translation id="7559245342362162951">Viser gruppens faner i fullskjermrutenett</translation>
+<translation id="7559245342362162951">Vis gruppens faner i fullskjermrutenett</translation>
 <translation id="7559975015014302720">Forenklet modus er av</translation>
 <translation id="7562080006725997899">Sletter nettlesingsdata</translation>
 <translation id="756809126120519699">Chrome-dataene er slettet</translation>
@@ -975,7 +972,7 @@
 <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation>
 <translation id="8105951947646329362">Foreslå relaterte sider</translation>
 <translation id="8109613176066109935">For å få bokmerkene dine på alle enhetene dine, slå på synkronisering</translation>
-<translation id="8110087112193408731">Vise Chrome-aktiviteten din i Digital balanse?</translation>
+<translation id="8110087112193408731">Vil du vise Chrome-aktiviteten din i Digital balanse?</translation>
 <translation id="8116925261070264013">Kuttet lyd</translation>
 <translation id="813082847718468539">Vis nettstedsinformasjon</translation>
 <translation id="8131740175452115882">Bekreft</translation>
@@ -1071,7 +1068,7 @@
 <translation id="8912362522468806198">Google-konto</translation>
 <translation id="8920114477895755567">Venter på informasjon om foreldre.</translation>
 <translation id="8922289737868596582">Last ned sider via Flere alternativer-knappen for å bruke dem uten nett</translation>
-<translation id="8937772741022875483">Fjerne Chrome-aktiviteten din fra Digital balanse?</translation>
+<translation id="8937772741022875483">Vil du fjerne Chrome-aktiviteten din fra Digital balanse?</translation>
 <translation id="8941729603749328384">www.example.com</translation>
 <translation id="8942627711005830162">Åpne i et annet vindu</translation>
 <translation id="8951232171465285730">Chrome har spart deg for <ph name="MEGABYTES" /> MB</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 e9e845c..37397d0 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="1023450834687746199">Dane aplikacji <ph name="APP_NAME" /> zostały usunięte.</translation>
 <translation id="1036727731225946849">Dodaję aplikację <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Ze stron internetowych</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">Nie pobrano</translation>
 <translation id="2781151931089541271">Pozostała sekunda</translation>
 <translation id="2784212955220061919">Chrome szybciej ładuje strony w wersji uproszczonej, przesyłając nawet o 60 procent mniej danych. Technologia chmurowa Google optymalizuje odwiedzane strony.</translation>
-<translation id="2785336755839207516">Aplikacja <ph name="APP_NAME" /> została odinstalowana.</translation>
 <translation id="2803478378562657435">Wyświetlam zapisane hasła i opcje haseł</translation>
 <translation id="2810645512293415242">Uproszczona wersja strony pozwala szybciej zapisywać i wczytywać dane.</translation>
 <translation id="281504910091592009">Zapisane hasła znajdziesz na swoim <ph name="BEGIN_LINK" />koncie Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Zainstaluj</translation>
 <translation id="3810838688059735925">Wideo</translation>
 <translation id="3810973564298564668">Zarządzaj</translation>
-<translation id="3814315701645566481">Czy chcesz wyczyścić dane <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Usunięte pobrane pliki: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Pobieranie artykułów dla Ciebie</translation>
 <translation id="3822502789641063741">Wyczyścić dane witryn?</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 b058c5c..726541c 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="1023450834687746199">Você excluiu os dados do app <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Adicionando <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">De sites</translation>
 <translation id="1049743911850919806">Modo anônimo</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">falha</translation>
 <translation id="2781151931089541271">Um segundo restante</translation>
 <translation id="2784212955220061919">Com o Modo Lite, as páginas são carregadas mais rapidamente no Chrome, e há uma economia de dados de até 60 por cento. A tecnologia de nuvem do Google otimiza as páginas visitadas.</translation>
-<translation id="2785336755839207516">Você desinstalou o app <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Mostrando as senhas salvas e as opções de senha</translation>
 <translation id="2810645512293415242">Página simplificada para economizar dados e carregar mais rapidamente.</translation>
 <translation id="281504910091592009">Ver e gerenciar as senhas salvas na sua <ph name="BEGIN_LINK" />Conta do Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalar</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="3810973564298564668">Gerenciar</translation>
-<translation id="3814315701645566481">Você quer limpar os dados de <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads excluídos</translation>
 <translation id="3819562311292413223">Fazer o download de artigos para você</translation>
 <translation id="3822502789641063741">Limpar armaz. de sites?</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 02d2a93..8db368dd 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="1023450834687746199">Limpou os dados da aplicação <ph name="APP_NAME" />.</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>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">Monoespaço</translation>
 <translation id="2610239185026711824">Sugerir palavra-passe</translation>
 <translation id="2612676031748830579">Número do cartão</translation>
+<translation id="2613747923081026172">Criar grupo</translation>
 <translation id="2621115761605608342">Permitir JavaScript num site específico.</translation>
 <translation id="2625189173221582860">Palavra-passe copiada</translation>
 <translation id="2631006050119455616">Guardado</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">falhou</translation>
 <translation id="2781151931089541271">Falta 1 segundo</translation>
 <translation id="2784212955220061919">No Modo Lite, o Chrome carrega páginas mais rapidamente e utiliza até menos 60 por cento de dados. A tecnologia na nuvem da Google otimiza as páginas visitadas.</translation>
-<translation id="2785336755839207516">Desinstalou a aplicação <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">A mostrar palavras-passe guardadas e opções de palavra-passe</translation>
 <translation id="2810645512293415242">Página simplificada para poupar dados e carregar mais rapidamente.</translation>
 <translation id="281504910091592009">Veja e faça a gestão das palavras-passe guardadas na sua <ph name="BEGIN_LINK" />Conta Google<ph name="END_LINK" />.</translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">Instalar</translation>
 <translation id="3810838688059735925">Vídeo</translation>
 <translation id="3810973564298564668">Gerir</translation>
-<translation id="3814315701645566481">Pretende limpar os dados de <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> transferências eliminadas</translation>
 <translation id="3819562311292413223">Transferir artigos para si</translation>
 <translation id="3822502789641063741">Limpar armazenamento do site?</translation>
@@ -883,7 +881,9 @@
 <translation id="7473891865547856676">Não, obrigado</translation>
 <translation id="7475192538862203634">Se vê isto com frequência, experimente estas <ph name="BEGIN_LINK" />sugestões<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Cartão SD não encontrado. Alguns dos seus ficheiros poderão estar em falta.</translation>
+<translation id="7479104141328977413">Gestão de separadores</translation>
 <translation id="7481312909269577407">Avançar</translation>
+<translation id="7482697587265222445">Separador enviado para os dispositivos</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (atualizado há <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">Mostrar palavras-passe</translation>
 <translation id="7494974237137038751">dados guardados</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 45adbe96..f855eb4 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="1023450834687746199">Ai șters datele aplicației <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Se adaugă <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De la site-uri</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">nereușită</translation>
 <translation id="2781151931089541271">1 sec. rămasă</translation>
 <translation id="2784212955220061919">În modul Lite, Chrome încarcă mai repede paginile și folosește cu până la 60 de procente mai puține date. Tehnologia Google cloud optimizează paginile pe care le vizitezi.</translation>
-<translation id="2785336755839207516">Ai dezinstalat <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Se afișează parolele salvate și opțiunile pentru parole</translation>
 <translation id="2810645512293415242">Pagină simplificată pentru economie de date și încărcare mai rapidă.</translation>
 <translation id="281504910091592009">Vezi și gestionează parolele salvate în <ph name="BEGIN_LINK" />Contul Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Instalează</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Gestionează</translation>
-<translation id="3814315701645566481">Dorești să ștergi datele pentru <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> descărcări șterse</translation>
 <translation id="3819562311292413223">Descarcă articole pentru tine</translation>
 <translation id="3822502789641063741">Ștergi stocarea site-urilor?</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 e68f0735..d125f1a40 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="1023450834687746199">Данные приложения "<ph name="APP_NAME" />" удалены</translation>
 <translation id="1036727731225946849">Добавление файла "<ph name="WEBAPK_NAME" />"…</translation>
 <translation id="1041308826830691739">От сайтов</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">ошибка</translation>
 <translation id="2781151931089541271">Осталась 1 сек.</translation>
 <translation id="2784212955220061919">В упрощенном режиме Chrome быстрее загружает страницы и экономит до 60 процентов трафика. Страницы, на которые вы заходите, оптимизируются с помощью технологий Google.</translation>
-<translation id="2785336755839207516">Приложение "<ph name="APP_NAME" />" удалено</translation>
 <translation id="2803478378562657435">На экране показаны сохраненные пароли и настройки паролей</translation>
 <translation id="2810645512293415242">Страница была открыта в упрощенном виде, чтобы уменьшить объем трафика и время загрузки.</translation>
 <translation id="281504910091592009">Просматривайте сохраненные пароли и управляйте ими на странице <ph name="BEGIN_LINK" />Аккаунт Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Установить</translation>
 <translation id="3810838688059735925">Видео</translation>
 <translation id="3810973564298564668">Настроить</translation>
-<translation id="3814315701645566481">Удалить данные страницы <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Удаленные скачивания: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Скачивать статьи для вас</translation>
 <translation id="3822502789641063741">Удалить данные сайтов?</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 c68f05a..07be58ef 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="1023450834687746199">Vymazali ste údaje aplikácie <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Pridáva sa <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Z webov</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">neúspešné</translation>
 <translation id="2781151931089541271">Zostáva: 1 s</translation>
 <translation id="2784212955220061919">V zjednodušenom režime načítava Chrome stránky rýchlejšie a využíva až o 60 percent menej dát. Navštevované stránky optimalizuje cloudová technológia Googlu.</translation>
-<translation id="2785336755839207516">Odinštalovali ste aplikáciu <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Zobrazujú sa uložené heslá a možnosti hesiel</translation>
 <translation id="2810645512293415242">Zjednodušená stránka vám pomôže ušetriť dáta a zrýchliť načítavanie.</translation>
 <translation id="281504910091592009">Zobrazenie a správa uložených hesiel v <ph name="BEGIN_LINK" />účte Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Inštalovať</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Spravovať</translation>
-<translation id="3814315701645566481">Chcete vymazať údaje o webovej adrese <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Počet odstránených stiahnutých súborov: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Sťahovať články pre vás</translation>
 <translation id="3822502789641063741">Vymazať úložisko webu?</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 3b015628..705a2786 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="1023450834687746199">Izbrisali ste podatke za aplikacijo <ph name="APP_NAME" />.</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>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">Stalna širina</translation>
 <translation id="2610239185026711824">Predlagaj geslo</translation>
 <translation id="2612676031748830579">Številka kartice</translation>
+<translation id="2613747923081026172">Ustvarjanje skupine</translation>
 <translation id="2621115761605608342">Dovoli JavaScript za določeno spletno mesto.</translation>
 <translation id="2625189173221582860">Geslo kopirano</translation>
 <translation id="2631006050119455616">Prihranjeno</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">ni uspelo</translation>
 <translation id="2781151931089541271">Še 1 s</translation>
 <translation id="2784212955220061919">Chrome v lahkem načinu naloži strani hitreje in uporabi do 60 odstotkov manj podatkov. Googlova tehnologija v oblaku optimizira strani, ki jih obiščete.</translation>
-<translation id="2785336755839207516">Odmestili ste aplikacijo <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Prikazovanje shranjenih gesel in možnosti za gesla</translation>
 <translation id="2810645512293415242">Poenostavljena stran zaradi prihranka pri prenosu podatkov in hitrejšega nalaganja.</translation>
 <translation id="281504910091592009">Ogled in upravljanje shranjenih gesel v <ph name="BEGIN_LINK" />Google Računu<ph name="END_LINK" /></translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">Namesti</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Upravljanje</translation>
-<translation id="3814315701645566481">Ali želite izbrisati podatke za <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Št. izbrisanih prenosov: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Prenos člankov za vas</translation>
 <translation id="3822502789641063741">Izbris pod. spl. mesta?</translation>
@@ -882,7 +880,9 @@
 <translation id="7473891865547856676">Ne, hvala</translation>
 <translation id="7475192538862203634">Če se to pogosto pokaže, poskusite te <ph name="BEGIN_LINK" />predloge<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Kartice SD ni bilo mogoče najti. Nekatere vaše datoteke morda manjkajo.</translation>
+<translation id="7479104141328977413">Upravljanje zavihkov</translation>
 <translation id="7481312909269577407">Naprej</translation>
+<translation id="7482697587265222445">Zavihek je bil poslan v naprave</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (Posodobljeno: <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">Prikaz gesel</translation>
 <translation id="7494974237137038751">prihranjen prenos podatkov</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 a5bb08cf..0d793637 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="1023450834687746199">Обрисали сте податке за <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Додаје се <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Са веб-сајтова</translation>
 <translation id="1049743911850919806">Без архивирања</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">није успело</translation>
 <translation id="2781151931089541271">Још 1 сек</translation>
 <translation id="2784212955220061919">У Lite режиму Chrome учитава странице брже и користи и до 60 процената мање података. Google клауд технологија оптимизује странице које посећујете.</translation>
-<translation id="2785336755839207516">Деинсталирали сте <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Приказују се сачуване лозинке и опције за лозинке</translation>
 <translation id="2810645512293415242">Страница је поједностављена ради уштеде на подацима и бржег учитавања.</translation>
 <translation id="281504910091592009">Прегледајте сачуване лозинке и управљајте њима на <ph name="BEGIN_LINK" />Google налогу<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Инсталирај</translation>
 <translation id="3810838688059735925">Видео</translation>
 <translation id="3810973564298564668">Промени</translation>
-<translation id="3814315701645566481">Желите ли да обришете податке за <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Избрисана преузимања: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Преузмите чланке за вас</translation>
 <translation id="3822502789641063741">Бришете меморију сајта?</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 01549a3..29e411a 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="1023450834687746199">Du har rensat data för <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Lägger till <ph name="WEBAPK_NAME" /> …</translation>
 <translation id="1041308826830691739">Från webbplatser</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">Monospace</translation>
 <translation id="2610239185026711824">Föreslå lösenord</translation>
 <translation id="2612676031748830579">Kortnummer</translation>
+<translation id="2613747923081026172">Skapa grupp</translation>
 <translation id="2621115761605608342">Tillåt Javascript på en specifik webbplats.</translation>
 <translation id="2625189173221582860">Lösenordet har kopierats</translation>
 <translation id="2631006050119455616">Sparat</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">misslyckades</translation>
 <translation id="2781151931089541271">1 sekund kvar</translation>
 <translation id="2784212955220061919">I begränsat läge läses sidorna in snabbare och dataförbrukningen minskar med upp till 60 procent. Sidorna du besöker optimeras med Googles molnteknik.</translation>
-<translation id="2785336755839207516">Du har avinstallerat <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Sparade lösenord och lösenordsalternativ visas</translation>
 <translation id="2810645512293415242">Förenklad sida visades för att spara data och minska inläsningstiden.</translation>
 <translation id="281504910091592009">Visa och hantera sparade lösenord i <ph name="BEGIN_LINK" />Google-kontot<ph name="END_LINK" /></translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">Installera</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Hantera</translation>
-<translation id="3814315701645566481">Vill du radera data för <ph name="URL" />?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> nedladdningar har raderats</translation>
 <translation id="3819562311292413223">Ladda ned artiklar för dig</translation>
 <translation id="3822502789641063741">Rensa webbplatslagring?</translation>
@@ -883,7 +881,9 @@
 <translation id="7473891865547856676">Nej tack</translation>
 <translation id="7475192538862203634">Om du ser detta ofta provar du de här <ph name="BEGIN_LINK" />förslagen<ph name="END_LINK" />.</translation>
 <translation id="7475688122056506577">Det gick inte att hitta SD-kortet. Det kan saknas filer.</translation>
+<translation id="7479104141328977413">Flikhantering</translation>
 <translation id="7481312909269577407">Framåt</translation>
+<translation id="7482697587265222445">Fliken har skickats till enheterna</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (uppdaterades <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">Visa lösenord</translation>
 <translation id="7494974237137038751">Sparad data</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 ac765f1..925d16e 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="1023450834687746199">Umefuta data ya <ph name="APP_NAME" />.</translation>
 <translation id="1036727731225946849">Inaongeza <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Kutoka kwenye tovuti</translation>
 <translation id="1049743911850919806">Kichupo fiche</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">imeshindwa</translation>
 <translation id="2781151931089541271">Imesalia sekunde 1</translation>
 <translation id="2784212955220061919">Katika Hali nyepesi, Chrome hupakia kurasa haraka zaidi na huokoa data kwa hadi asilimia 60. Teknolojia ya Wingu la Google huboresha kurasa unazotembelea.</translation>
-<translation id="2785336755839207516">Umeondoa <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Inaonyesha manenosiri yaliyohifadhiwa na chaguo za manenosiri</translation>
 <translation id="2810645512293415242">Ukurasa umerahisishwa ili uokoe data na upakie haraka zaidi.</translation>
 <translation id="281504910091592009">Angalia na udhibiti manenosiri yaliyohifadhiwa kwenye <ph name="BEGIN_LINK" />Akaunti yako ya Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Sakinisha</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Dhibiti</translation>
-<translation id="3814315701645566481">Ungependa kuondoa data ya <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Vipakuliwa <ph name="NUMBER_OF_DOWNLOADS" /> vimefutwa</translation>
 <translation id="3819562311292413223">Pakua makala tunayokupendekezea</translation>
 <translation id="3822502789641063741">Ungependa kufuta hifadhi ya tovuti?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
index e5f110fe..40740fa 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ta">
 <translation id="1006017844123154345">ஆன்லைனில் திற</translation>
-<translation id="1023450834687746199"><ph name="APP_NAME" /> ஆப்ஸின் தரவு அழிக்கப்பட்டது.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ஐச் சேர்க்கிறது...</translation>
 <translation id="1041308826830691739">இணையதளங்களிலிருந்து</translation>
 <translation id="1049743911850919806">மறைநிலை</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">தோல்வியுற்றது</translation>
 <translation id="2781151931089541271">1 வினாடி மீதமுள்ளது</translation>
 <translation id="2784212955220061919">’லைட்’ பயன்முறையில், பக்கங்களை Chrome வேகமாக ஏற்றுவதோடு, டேட்டாவை 60 சதவீதம் குறைவாகவும் பயன்படுத்தும். Google கிளவுட் தொழில்நுட்பம் நீங்கள் பார்க்கும் பக்கத்தை மேம்படுத்தும்.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> ஆப்ஸை நிறுவல் நீக்கியுள்ளீர்கள்.</translation>
 <translation id="2803478378562657435">சேமித்த கடவுச்சொற்களையும் கடவுச்சொல் விருப்பங்களையும் காண்பிக்கிறது</translation>
 <translation id="2810645512293415242">தரவைச் சேமித்து, வேகமாக ஏற்றுவதற்கு எளிதாக்கப்பட்ட பக்கம்.</translation>
 <translation id="281504910091592009">உங்கள் <ph name="BEGIN_LINK" />Google கணக்கில்<ph name="END_LINK" /> சேமிக்கப்பட்ட கடவுச்சொற்களைப் பார்த்து, நிர்வகிக்கவும்</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">நிறுவுக</translation>
 <translation id="3810838688059735925">வீடியோ</translation>
 <translation id="3810973564298564668">நிர்வகி</translation>
-<translation id="3814315701645566481"><ph name="URL" />க்கான தரவை அழிக்க விரும்புகிறீர்களா?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> பதிவிறக்கங்கள் உள்ளன</translation>
 <translation id="3819562311292413223">உங்களுக்கான செய்திக் கட்டுரைகளைப் பதிவிறக்குக</translation>
 <translation id="3822502789641063741">தளச் சேமிப்பகத்தை அழிக்கவா?</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
index d80c967..dbf8fda 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_te.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
 <translation id="1006017844123154345">ఆన్‌లైన్‌లో తెరువు</translation>
-<translation id="1023450834687746199">మీరు <ph name="APP_NAME" /> డేటాను క్లియర్ చేసారు.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ని జోడిస్తోంది...</translation>
 <translation id="1041308826830691739">వెబ్‌సైట్‌ల నుండి</translation>
 <translation id="1049743911850919806">అజ్ఞాత</translation>
@@ -79,7 +78,7 @@
 <translation id="1513858653616922153">పాస్‌వర్డ్‌ను తొలగించు</translation>
 <translation id="1516229014686355813">'వెతకడానికి నొక్కండి' ఫీచర్, ఎంచుకున్న పదాన్ని మరియు ప్రస్తుత పేజీని సంబంధిత సందర్భం లాగా Google శోధనకు పంపుతుంది. మీరు <ph name="BEGIN_LINK" />సెట్టింగ్‌లు<ph name="END_LINK" />లో దీనిని ఆఫ్ చేయవచ్చు.</translation>
 <translation id="1539064842193522527">లింక్ Chromeలో తెరవబడింది</translation>
-<translation id="1549000191223877751">వేరే విండోకి తరలించు</translation>
+<translation id="1549000191223877751">వేరే విండోకు తరలించు</translation>
 <translation id="1553358976309200471">Chromeని నవీకరించు</translation>
 <translation id="1569387923882100876">కనెక్ట్ చేసిన డివైజ్</translation>
 <translation id="1571304935088121812">వినియోగదారు పేరును కాపీ చేస్తుంది</translation>
@@ -224,6 +223,7 @@
 <translation id="2593272815202181319">మోనోస్పేస్</translation>
 <translation id="2610239185026711824">పాస్‌వర్డ్‌ని సూచించు</translation>
 <translation id="2612676031748830579">కార్డ్ సంఖ్య</translation>
+<translation id="2613747923081026172">సమూహాన్ని సృష్టించు</translation>
 <translation id="2621115761605608342">నిర్దిష్ట సైట్ కోసం జావా స్క్రిప్ట్‌ను అనుమతిస్తుంది.</translation>
 <translation id="2625189173221582860">పాస్‌వర్డ్ కాపీ చేయబడింది</translation>
 <translation id="2631006050119455616">ఆదా చేయబడింది</translation>
@@ -246,7 +246,6 @@
 <translation id="2779651927720337254">విఫలమైంది</translation>
 <translation id="2781151931089541271">1 సెకను మిగిలి ఉంది</translation>
 <translation id="2784212955220061919">లైట్ మోడ్‌లో, Chrome పేజీలను వేగంగా లోడ్ చేస్తుంది, అలాగే 60 శాతం తక్కువ డేటాను ఉపయోగిస్తుంది. Google క్లౌడ్ సాంకేతికత మీరు సందర్శించే పేజీలను ఆప్టిమైజ్ చేస్తుంది.</translation>
-<translation id="2785336755839207516">మీరు <ph name="APP_NAME" />ని అన్ఇన్‌స్టాల్ చేసారు.</translation>
 <translation id="2803478378562657435">సేవ్ చేసిన పాస్‌వర్డ్‌లు మరియు పాస్‌వర్డ్ ఎంపికలను చూపిస్తోంది</translation>
 <translation id="2810645512293415242">డేటాను సేవ్ చేయడానికి మరియు మరింత వేగంగా లోడ్ చేయడానికి సరళీకరించిన పేజీ.</translation>
 <translation id="281504910091592009">మీ <ph name="BEGIN_LINK" />Google ఖాతా<ph name="END_LINK" />లో సేవ్ చేసిన పాస్‌వర్డ్‌లను చూడండి మరియు నిర్వహించండి</translation>
@@ -292,7 +291,7 @@
 <translation id="3143515551205905069">సింక్‌ను రద్దు చేయి</translation>
 <translation id="3148434565183091099">మీ అన్ని పరికరాలలో మీ బుక్‌మార్క్‌లను పొందడానికి, Chromeకు సైన్ ఇన్ చేయండి.</translation>
 <translation id="3157842584138209013">'మరిన్ని ఎంపికలు' బటన్ నుండి మీరు ఎంత డేటాను సేవ్ చేసారో చూడండి</translation>
-<translation id="3166827708714933426">ట్యాబ్ మరియు విండో షార్ట్‌క‌ట్‌లు</translation>
+<translation id="3166827708714933426">ట్యాబ్ మరియు విండో షార్ట్‌కట్‌లు</translation>
 <translation id="3190152372525844641"><ph name="BEGIN_LINK" />Android సెట్టింగ్‌లు<ph name="END_LINK" />లో Chrome కోసం అనుమతులను ఆన్ చేయండి.</translation>
 <translation id="3198916472715691905"><ph name="STORAGE_AMOUNT" /> నిల్వ డేటా</translation>
 <translation id="3205824638308738187">దాదాపు పూర్తయింది!</translation>
@@ -372,7 +371,6 @@
 <translation id="3789841737615482174">ఇన్‌స్టాల్ చేయి</translation>
 <translation id="3810838688059735925">వీడియో</translation>
 <translation id="3810973564298564668">నిర్వహించు</translation>
-<translation id="3814315701645566481">మీరు <ph name="URL" />కి సంబంధించిన డేటాను తీసివేయాలనుకుంటున్నారా?</translation>
 <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> డౌన్‌లోడ్‌లు తొలగించబడ్డాయి</translation>
 <translation id="3819562311292413223">మీ కోసం కథనాలను డౌన్‌లోడ్ చేయండి</translation>
 <translation id="3822502789641063741">సైట్ నిల్వను తీసివేయాలా?</translation>
@@ -743,13 +741,13 @@
 <translation id="6447842834002726250">కుక్కీలు</translation>
 <translation id="6448273550210938826">శోధన మరియు URL సూచనలు</translation>
 <translation id="6461962085415701688">ఫైల్‌ను తెరవడం సాధ్యపడదు</translation>
-<translation id="6464977750820128603">Chromeలో మీరు ఏయే సైట్‌లను సందర్శించారో చూడవచ్చు, వాటికి టైమర్‌లను సెట్ చేయవచ్చు.\n\nమీరు టైమర్‌లను సెట్ చేసిన సైట్‌ల సమాచారం, మీరు ఎంతసేపు వాటిని సందర్శించారనే వివరాలు Googleకి అందించబడతాయ. డిజిటల్ సంక్షేమాన్ని మరింత మెరుగుపరచడానికి ఈ సమాచారం ఉపయోగించబడుతుంది.</translation>
+<translation id="6464977750820128603">Chromeలో మీరు ఏయే సైట్‌లను సందర్శించారో చూడవచ్చు, వాటికి టైమర్‌లను సెట్ చేయవచ్చు.\n\nమీరు టైమర్‌లను సెట్ చేసిన సైట్‌ల సమాచారం, మీరు ఎంతసేపు వాటిని సందర్శించారనే వివరాలు Googleకు అందించబడతాయి. డిజిటల్ సంక్షేమాన్ని మరింత మెరుగుపరచడానికి ఈ సమాచారం ఉపయోగించబడుతుంది.</translation>
 <translation id="6475951671322991020">వీడియోను డౌన్‌లోడ్ చేయి</translation>
 <translation id="6482749332252372425">నిల్వ స్థలం లేనందున <ph name="FILE_NAME" /> డౌన్‌లోడ్ విఫలమైంది.</translation>
 <translation id="6496823230996795692">మొదటి సారి <ph name="APP_NAME" />ని ఉపయోగించడానికి, దయచేసి ఇంటర్నెట్‌కు కనెక్ట్ చేయండి.</translation>
 <translation id="6508722015517270189">Chromeను పునఃప్రారంభించండి</translation>
 <translation id="6527303717912515753">భాగస్వామ్యం చేయి</translation>
-<translation id="6532866250404780454">మీర Chromeలో సందర్శించిన సైట్‌లు చూపబడవు. అన్ని సైట్ టైమర్‌లు తొలగించబడతాయి.</translation>
+<translation id="6532866250404780454">మీరు Chromeలో సందర్శించిన సైట్‌లు చూపబడవు. అన్ని సైట్ టైమర్‌లు తొలగించబడతాయి.</translation>
 <translation id="6534565668554028783">Google ప్రతిస్పందించడానికి చాలా ఎక్కువ సమయం తీసుకుంది</translation>
 <translation id="6538442820324228105"><ph name="GBS" /> GB డౌన్‌లోడ్ చేయబడింది</translation>
 <translation id="654446541061731451">Beam చేయడానికి ట్యాబ్‌ను ఎంచుకోండి</translation>
@@ -883,7 +881,9 @@
 <translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation>
 <translation id="7475192538862203634">మీకు ఇది తరచుగా కనిపిస్తుంటే, ఈ <ph name="BEGIN_LINK" />సూచనల<ph name="END_LINK" />ను ప్రయత్నించండి.</translation>
 <translation id="7475688122056506577">SD కార్డ్ కనుగొనబడలేదు. మీ ఫైల్‌లలో కొన్ని ఉండకపోవచ్చు.</translation>
+<translation id="7479104141328977413">ట్యాబ్ నిర్వహణ</translation>
 <translation id="7481312909269577407">ఫార్వర్డ్</translation>
+<translation id="7482697587265222445">ట్యాబ్ మీ పరికరాలకు పంపబడింది</translation>
 <translation id="7493994139787901920"><ph name="VERSION" /> (నవీకరించినది <ph name="TIME_SINCE_UPDATE" />)</translation>
 <translation id="7494879913343971937">పాస్‌వర్డ్‌లను చూపుతుంది</translation>
 <translation id="7494974237137038751">ఆదా అయిన డేటా</translation>
@@ -1103,7 +1103,7 @@
 <translation id="9137013805542155359">అసలును చూపించు</translation>
 <translation id="9139068048179869749">సైట్‌లను నోటిఫికేషన్‌లు పంపేందుకు అనుమతించడానికి ముందు మిమ్మల్ని అడుగుతుంది (సిఫార్సు చేయబడింది)</translation>
 <translation id="9139318394846604261">షాపింగ్</translation>
-<translation id="9150694013019234766">స్క్రీన్ దిగువ భాగంలో దగ్గరలో ఉండే మీ ట్యాబ్ సమూహంలో కోరుకునే ట్యాబ్‌లకు మారండి</translation>
+<translation id="9150694013019234766">స్క్రీన్ దిగువ భాగం దగ్గరలో ఉండే మీ ట్యాబ్ సమూహంలో కోరుకునే ట్యాబ్‌లకు మారండి</translation>
 <translation id="9155898266292537608">ఒక పదంపై నొక్కడం ద్వారా కూడా మీరు త్వరగా వెతకవచ్చు</translation>
 <translation id="9169594135889675189">సమూహానికి కొత్త ట్యాబ్‌ను జోడించు</translation>
 <translation id="9188680907066685419">నిర్వహిత ఖాతా నుండి సైన్ అవుట్ చేయండి</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 0de565d..a0ce93c 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="1023450834687746199">คุณล้างข้อมูล <ph name="APP_NAME" /> แล้ว</translation>
 <translation id="1036727731225946849">กำลังเพิ่ม <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">จากเว็บไซต์</translation>
 <translation id="1049743911850919806">โหมดไม่ระบุตัวตน</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">ล้มเหลว</translation>
 <translation id="2781151931089541271">เหลือ 1 วิ</translation>
 <translation id="2784212955220061919">ในโหมด Lite เบราว์เซอร์ Chrome จะโหลดหน้าเว็บได้เร็วขึ้นและใช้เน็ตน้อยลงสูงสุดถึง 60 เปอร์เซ็นต์ เทคโนโลยีระบบคลาวด์ของ Google ช่วยเพิ่มประสิทธิภาพหน้าเว็บที่คุณเข้าชม</translation>
-<translation id="2785336755839207516">คุณถอนการติดตั้ง <ph name="APP_NAME" /> แล้ว</translation>
 <translation id="2803478378562657435">กำลังแสดงรหัสผ่านที่บันทึกไว้และตัวเลือกรหัสผ่าน</translation>
 <translation id="2810645512293415242">ลดรายละเอียดหน้าเว็บเพื่อประหยัดเน็ตมือถือและโหลดได้เร็วขึ้น</translation>
 <translation id="281504910091592009">ดูและจัดการรหัสผ่านที่บันทึกไว้ใน<ph name="BEGIN_LINK" />บัญชี Google<ph name="END_LINK" /></translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">ติดตั้ง</translation>
 <translation id="3810838688059735925">วิดีโอ</translation>
 <translation id="3810973564298564668">จัดการ</translation>
-<translation id="3814315701645566481">ต้องการล้างข้อมูลของ <ph name="URL" /> ไหม</translation>
 <translation id="3819178904835489326">ลบการดาวน์โหลด <ph name="NUMBER_OF_DOWNLOADS" /> รายการแล้ว</translation>
 <translation id="3819562311292413223">ดาวน์โหลดบทความสำหรับคุณ</translation>
 <translation id="3822502789641063741">ล้างพื้นที่เก็บข้อมูลเว็บไซต์ไหม</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 d1fd688..c338a31e 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="1023450834687746199"><ph name="APP_NAME" /> uygulamasına ait verileri temizlediniz.</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ekleniyor...</translation>
 <translation id="1041308826830691739">Web sitelerinden</translation>
 <translation id="1049743911850919806">Gizli mod</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">başarısız</translation>
 <translation id="2781151931089541271">1 sn. kaldı</translation>
 <translation id="2784212955220061919">Chrome, Basit modda sayfaları daha hızlı yükler ve yüzde 60'a kadar daha az veri kullanır. Google'ın bulut teknolojisi, ziyaret ettiğiniz sayfaları optimize eder.</translation>
-<translation id="2785336755839207516"><ph name="APP_NAME" /> uygulamasının yüklemesini kaldırdınız.</translation>
 <translation id="2803478378562657435">Kayıtlı şifreler ve şifre seçenekleri gösteriliyor</translation>
 <translation id="2810645512293415242">Veriden tasarruf etmek ve daha hızlı yüklemek için basitleştirilmiş sayfa.</translation>
 <translation id="281504910091592009"><ph name="BEGIN_LINK" />Google Hesabınızdaki<ph name="END_LINK" /> kayıtlı şifrelerinizi görüntüleyin ve yönetin.</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Yükle</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Yönet</translation>
-<translation id="3814315701645566481"><ph name="URL" /> ile ilgili verileri silmek ister misiniz?</translation>
 <translation id="3819178904835489326">İndirilen <ph name="NUMBER_OF_DOWNLOADS" /> dosya silindi</translation>
 <translation id="3819562311292413223">Sizin için seçilmiş makaleleri indirin</translation>
 <translation id="3822502789641063741">Site depo. silinsin mi?</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 a08b0a4..9377bf6 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="1023450834687746199">Дані додатка <ph name="APP_NAME" /> видалено.</translation>
 <translation id="1036727731225946849">Додається <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">З веб-сайтів</translation>
 <translation id="1049743911850919806">Анонімний перегляд</translation>
@@ -247,7 +246,6 @@
 <translation id="2779651927720337254">не завантажено</translation>
 <translation id="2781151931089541271">Залишилась 1 с</translation>
 <translation id="2784212955220061919">У спрощеному режимі Chrome завантажує сторінки швидше та використовує на 60 відсотків менше трафіку. Хмарна технологія Google оптимізує сторінки, які ви відвідуєте.</translation>
-<translation id="2785336755839207516">Додаток <ph name="APP_NAME" /> видалено.</translation>
 <translation id="2803478378562657435">Показано збережені паролі та їх параметри</translation>
 <translation id="2810645512293415242">Спрощена сторінка для заощадження трафіку та швидшого завантаження.</translation>
 <translation id="281504910091592009">Переглядайте збережені паролі й керуйте ними в <ph name="BEGIN_LINK" />обліковому записі Google<ph name="END_LINK" /></translation>
@@ -373,7 +371,6 @@
 <translation id="3789841737615482174">Встановити</translation>
 <translation id="3810838688059735925">Відео</translation>
 <translation id="3810973564298564668">Змінити</translation>
-<translation id="3814315701645566481">Очистити дані веб-сторінки <ph name="URL" />?</translation>
 <translation id="3819178904835489326">Видалено завантажених файлів: <ph name="NUMBER_OF_DOWNLOADS" /></translation>
 <translation id="3819562311292413223">Завантажувати статті для вас</translation>
 <translation id="3822502789641063741">Видалити дані сайтів?</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 a10e615..811c812 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="1023450834687746199">Bạn đã xóa dữ liệu của <ph name="APP_NAME" />.</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>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">không tải xuống được</translation>
 <translation id="2781151931089541271">Còn 1 giây</translation>
 <translation id="2784212955220061919">Ở Chế độ thu gọn, Chrome tải trang nhanh hơn và sử dụng ít dữ liệu hơn lên tới 60 phần trăm. Công nghệ đám mây của Google tối ưu hóa các trang bạn truy cập.</translation>
-<translation id="2785336755839207516">Bạn đã gỡ cài đặt <ph name="APP_NAME" />.</translation>
 <translation id="2803478378562657435">Đang hiển thị mật khẩu đã lưu và các tùy chọn mật khẩu</translation>
 <translation id="2810645512293415242">Trang đơn giản giúp lưu dữ liệu và tải nhanh hơn.</translation>
 <translation id="281504910091592009">Xem và quản lý các mật khẩu đã lưu trong <ph name="BEGIN_LINK" />Tài khoản Google<ph name="END_LINK" /> của bạn</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">Cài đặt</translation>
 <translation id="3810838688059735925">Video</translation>
 <translation id="3810973564298564668">Quản lý</translation>
-<translation id="3814315701645566481">Bạn có muốn xóa dữ liệu cho <ph name="URL" /> không?</translation>
 <translation id="3819178904835489326">Đã xóa <ph name="NUMBER_OF_DOWNLOADS" /> bản tải xuống</translation>
 <translation id="3819562311292413223">Tải bài viết dành cho bạn xuống</translation>
 <translation id="3822502789641063741">Xóa bộ nhớ trang web?</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 c3d6457..eb3e0a8 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="1023450834687746199">您已清除<ph name="APP_NAME" />的数据。</translation>
 <translation id="1036727731225946849">正在添加<ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">来自网站</translation>
 <translation id="1049743911850919806">隐身</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">失败</translation>
 <translation id="2781151931089541271">还剩 1 秒</translation>
 <translation id="2784212955220061919">在精简模式下,Chrome 可更快速地加载网页,并可节省多达百分之 60 的流量。Google 的云技术会优化您访问的网页。</translation>
-<translation id="2785336755839207516">您已卸载<ph name="APP_NAME" />。</translation>
 <translation id="2803478378562657435">正在显示已保存的密码和密码选项</translation>
 <translation id="2810645512293415242">简化版网页不仅可节省数据流量,还可更快速地进行加载。</translation>
 <translation id="281504910091592009">查看和管理您的 <ph name="BEGIN_LINK" />Google 帐号<ph name="END_LINK" />中保存的密码</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">安装</translation>
 <translation id="3810838688059735925">视频</translation>
 <translation id="3810973564298564668">管理</translation>
-<translation id="3814315701645566481">要清除 <ph name="URL" /> 的相关数据吗?</translation>
 <translation id="3819178904835489326">已删除 <ph name="NUMBER_OF_DOWNLOADS" /> 项下载内容</translation>
 <translation id="3819562311292413223">下载为您推荐的文章</translation>
 <translation id="3822502789641063741">要清除网站存储数据吗?</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 aaa16347..a9d538a 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="1023450834687746199">你已清除「<ph name="APP_NAME" />」的資料。</translation>
 <translation id="1036727731225946849">正在新增「<ph name="WEBAPK_NAME" />」...</translation>
 <translation id="1041308826830691739">來自網站</translation>
 <translation id="1049743911850919806">無痕模式</translation>
@@ -246,7 +245,6 @@
 <translation id="2779651927720337254">失敗</translation>
 <translation id="2781151931089541271">還剩 1 秒</translation>
 <translation id="2784212955220061919">使用精簡模式時,Chrome 可加快網頁載入速度,並可節省多達百分之 60 的數據用量。Google 的雲端技術會透過最佳化功能來處理你所造訪的網頁。</translation>
-<translation id="2785336755839207516">你已解除安裝「<ph name="APP_NAME" />」。</translation>
 <translation id="2803478378562657435">正在顯示已儲存的密碼和密碼選項</translation>
 <translation id="2810645512293415242">網頁內容經過簡化,不僅節省數據用量,更加快載入速度。</translation>
 <translation id="281504910091592009">你可以查看及管理 <ph name="BEGIN_LINK" />Google 帳戶<ph name="END_LINK" />中儲存的密碼</translation>
@@ -372,7 +370,6 @@
 <translation id="3789841737615482174">安裝</translation>
 <translation id="3810838688059735925">影片</translation>
 <translation id="3810973564298564668">管理</translation>
-<translation id="3814315701645566481">你要清除 <ph name="URL" /> 的資料嗎?</translation>
 <translation id="3819178904835489326">已刪除 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載項目</translation>
 <translation id="3819562311292413223">下載為你推薦的文章</translation>
 <translation id="3822502789641063741">要清除網站儲存的資料嗎?</translation>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index a953c30a..b016c1e 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -6,1824 +6,13 @@
 import("//chrome/android/features/autofill_assistant/public/java_sources.gni")
 import("//chrome/android/features/tab_ui/tab_management_java_sources.gni")
 import("//chrome/android/feed/feed_java_sources.gni")
+import("//chrome/android/chrome_java_sources.gni")
+import("//chrome/android/chrome_test_java_sources.gni")
+import("//chrome/android/chrome_junit_test_java_sources.gni")
 import("//components/feed/features.gni")
 import("//components/offline_pages/buildflags/features.gni")
 import("//device/vr/buildflags/buildflags.gni")
 
-chrome_java_sources = [
-  "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
-  "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
-  "java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
-  "java/src/org/chromium/chrome/browser/ChromeLocalizationUtils.java",
-  "java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
-  "java/src/org/chromium/chrome/browser/AfterStartupTaskUtils.java",
-  "java/src/org/chromium/chrome/browser/AppHooks.java",
-  "java/src/org/chromium/chrome/browser/modules/ModuleInstallUi.java",
-  "java/src/org/chromium/chrome/browser/AppHooksModule.java",
-  "java/src/org/chromium/chrome/browser/AppIndexingUtil.java",
-  "java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
-  "java/src/org/chromium/chrome/browser/AssistStatusHandler.java",
-  "java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java",
-  "java/src/org/chromium/chrome/browser/BitmapCache.java",
-  "java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java",
-  "java/src/org/chromium/chrome/browser/BrowserRestartActivity.java",
-  "java/src/org/chromium/chrome/browser/ChromeActionModeCallback.java",
-  "java/src/org/chromium/chrome/browser/ChromeActivity.java",
-  "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
-  "java/src/org/chromium/chrome/browser/ChromeApplication.java",
-  "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
-  "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
-  "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
-  "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
-  "java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
-  "java/src/org/chromium/chrome/browser/ChromeHttpAuthHandler.java",
-  "java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/ChromeStrictMode.java",
-  "java/src/org/chromium/chrome/browser/ChromeStringConstants.java",
-  "java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java",
-  "java/src/org/chromium/chrome/browser/ChromeTabbedActivity2.java",
-  "java/src/org/chromium/chrome/browser/ChromeVersionInfo.java",
-  "java/src/org/chromium/chrome/browser/ChromeWindow.java",
-  "java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java",
-  "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
-  "java/src/org/chromium/chrome/browser/DelayedScreenLockIntentHandler.java",
-  "java/src/org/chromium/chrome/browser/DeviceConditions.java",
-  "java/src/org/chromium/chrome/browser/DevToolsServer.java",
-  "java/src/org/chromium/chrome/browser/FileProviderHelper.java",
-  "java/src/org/chromium/chrome/browser/InsetObserverView.java",
-  "java/src/org/chromium/chrome/browser/IntentHandler.java",
-  "java/src/org/chromium/chrome/browser/IntentHeadersRecorder.java",
-  "java/src/org/chromium/chrome/browser/IntentHelper.java",
-  "java/src/org/chromium/chrome/browser/ItemChooserDialog.java",
-  "java/src/org/chromium/chrome/browser/KeyboardShortcuts.java",
-  "java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java",
-  "java/src/org/chromium/chrome/browser/LauncherShortcutActivity.java",
-  "java/src/org/chromium/chrome/browser/LoginPrompt.java",
-  "java/src/org/chromium/chrome/browser/NavigationBarColorController.java",
-  "java/src/org/chromium/chrome/browser/NavigationPopup.java",
-  "java/src/org/chromium/chrome/browser/NearOomMonitor.java",
-  "java/src/org/chromium/chrome/browser/PowerBroadcastReceiver.java",
-  "java/src/org/chromium/chrome/browser/SSLClientCertificateRequest.java",
-  "java/src/org/chromium/chrome/browser/ReturnToChromeExperimentsUtil.java",
-  "java/src/org/chromium/chrome/browser/SearchGeolocationDisclosureTabHelper.java",
-  "java/src/org/chromium/chrome/browser/ServiceTabLauncher.java",
-  "java/src/org/chromium/chrome/browser/ShortcutHelper.java",
-  "java/src/org/chromium/chrome/browser/SingleTabActivity.java",
-  "java/src/org/chromium/chrome/browser/SnackbarActivity.java",
-  "java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java",
-  "java/src/org/chromium/chrome/browser/SynchronousInitializationActivity.java",
-  "java/src/org/chromium/chrome/browser/TabThemeColorProvider.java",
-  "java/src/org/chromium/chrome/browser/ThemeColorProvider.java",
-  "java/src/org/chromium/chrome/browser/UrlConstants.java",
-  "java/src/org/chromium/chrome/browser/UsbChooserDialog.java",
-  "java/src/org/chromium/chrome/browser/WarmupManager.java",
-  "java/src/org/chromium/chrome/browser/WebContentsFactory.java",
-  "java/src/org/chromium/chrome/browser/WindowDelegate.java",
-  "java/src/org/chromium/chrome/browser/ZoomController.java",
-  "java/src/org/chromium/chrome/browser/accessibility/FontSizePrefs.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenu.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuButtonHelper.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuDragHelper.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuIconRowFooter.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuItemIcon.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuObserver.java",
-  "java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillExpirationDateFixFlowBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillExpirationDateFixFlowPrompt.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillLogger.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillNameFixFlowBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillNameFixFlowPrompt.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillPopupBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/AutofillUiUtils.java",
-  "java/src/org/chromium/chrome/browser/autofill/CardUnmaskBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java",
-  "java/src/org/chromium/chrome/browser/autofill/CreditCardScanner.java",
-  "java/src/org/chromium/chrome/browser/autofill/CreditCardScannerBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/PasswordGenerationAdapter.java",
-  "java/src/org/chromium/chrome/browser/autofill/PasswordGenerationPopupBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java",
-  "java/src/org/chromium/chrome/browser/autofill/PhoneNumberUtil.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessoryPagerAdapter.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetMediator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetProperties.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabModel.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetView.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/CachedProviderAdapter.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/CreditCardAccessorySheetCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryData.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMetricsRecorder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModernView.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryModernViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryProperties.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryRecyclerViewMcp.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutMediator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutProperties.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutView.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryView.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardExtensionSizeManager.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingBridge.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingProperties.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingState.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingStateCache.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryInfoView.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetCoordinator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetMediator.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetModernViewBinder.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/Provider.java",
-  "java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PropertyProvider.java",
-  "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskScheduler.java",
-  "java/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/banners/AppBannerManager.java",
-  "java/src/org/chromium/chrome/browser/banners/AppBannerUiDelegateAndroid.java",
-  "java/src/org/chromium/chrome/browser/banners/AppData.java",
-  "java/src/org/chromium/chrome/browser/banners/AppDetailsDelegate.java",
-  "java/src/org/chromium/chrome/browser/banners/SwipableOverlayView.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddActivity.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderRow.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkLaunchLocation.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUndoController.java",
-  "java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java",
-  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProvider.java",
-  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetProxy.java",
-  "java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionActivity.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuHelper.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuItemDelegate.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsCustomContextMenuItem.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsService.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabCreatorManager.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabModelSelector.java",
-  "java/src/org/chromium/chrome/browser/browseractions/BrowserActionsTabPersistencePolicy.java",
-  "java/src/org/chromium/chrome/browser/browserservices/BrowserServicesMetrics.java",
-  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionContentHandler.java",
-  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionContentUtils.java",
-  "java/src/org/chromium/chrome/browser/browserservices/BrowserSessionDataProvider.java",
-  "java/src/org/chromium/chrome/browser/browserservices/ClearDataDialogActivity.java",
-  "java/src/org/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorder.java",
-  "java/src/org/chromium/chrome/browser/browserservices/ClientAppBroadcastReceiver.java",
-  "java/src/org/chromium/chrome/browser/browserservices/ClientAppDataRegister.java",
-  "java/src/org/chromium/chrome/browser/browserservices/ManageTrustedWebActivityDataActivity.java",
-  "java/src/org/chromium/chrome/browser/browserservices/Origin.java",
-  "java/src/org/chromium/chrome/browser/browserservices/OriginVerifier.java",
-  "java/src/org/chromium/chrome/browser/browserservices/PostMessageHandler.java",
-  "java/src/org/chromium/chrome/browser/browserservices/Relationship.java",
-  "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClient.java",
-  "java/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityUmaRecorder.java",
-  "java/src/org/chromium/chrome/browser/browserservices/UkmRecorder.java",
-  "java/src/org/chromium/chrome/browser/browserservices/VerificationResultStore.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/TrustedWebActivityCoordinator.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/TrustedWebActivityModel.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/ClientAppDataRecorder.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityDisclosureController.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityOpenTimeRecorder.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityToolbarController.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityVerifier.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/view/TrustedWebActivityDisclosureView.java",
-  "java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/view/TrustedWebActivityToolbarView.java",
-  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilter.java",
-  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilterBridge.java",
-  "java/src/org/chromium/chrome/browser/browsing_data/UrlFilters.java",
-  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcher.java",
-  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherBridge.java",
-  "java/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherImpl.java",
-  "java/src/org/chromium/chrome/browser/cached_image_fetcher/InMemoryCachedImageFetcher.java",
-  "java/src/org/chromium/chrome/browser/childaccounts/ChildAccountFeedbackReporter.java",
-  "java/src/org/chromium/chrome/browser/childaccounts/ChildAccountService.java",
-  "java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java",
-  "java/src/org/chromium/chrome/browser/component_updater/UpdateTask.java",
-  "java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManager.java",
-  "java/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManagerImpl.java",
-  "java/src/org/chromium/chrome/browser/compositor/CompositorView.java",
-  "java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java",
-  "java/src/org/chromium/chrome/browser/compositor/EventOffsetHandler.java",
-  "java/src/org/chromium/chrome/browser/compositor/Invalidator.java",
-  "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java",
-  "java/src/org/chromium/chrome/browser/compositor/TitleCache.java",
-  "java/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimationHandler.java",
-  "java/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimator.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayContentDelegate.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayContentProgressObserver.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanel.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelAnimation.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBase.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContentFactory.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContentViewDelegate.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelInflater.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManager.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelTextViewInflater.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchBarBannerControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchBarControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchCaptionControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchContextControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPromoControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchTermControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabBarControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabCaptionControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabPanel.java",
-  "java/src/org/chromium/chrome/browser/compositor/bottombar/ephemeraltab/EphemeralTabTitleControl.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/ChromeAnimation.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/EmptyOverviewModeObserver.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/Layout.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManager.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerHost.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutProvider.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutRenderHost.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/LayoutUpdateHost.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeBehavior.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/OverviewModeController.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/SceneChangeObserver.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/StaticLayout.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/components/CompositorButton.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/components/VirtualView.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/content/ContentOffsetProvider.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/content/InvalidationAwareThumbnailProvider.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/content/TitleBitmapFactory.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/AreaGestureEventFilter.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/BlackHoleEventFilter.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EdgeSwipeHandler.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EmptyEdgeSwipeHandler.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/EventFilter.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/GestureEventFilter.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/GestureHandler.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/OverlayPanelEventFilter.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/eventfilter/ScrollDirection.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/SimpleAnimationLayout.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayout.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/StackLayoutBase.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/NonOverlappingStack.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/OverlappingStack.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/Stack.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimation.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationLandscape.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackAnimationPortrait.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackScroller.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackTab.java",
-  "java/src/org/chromium/chrome/browser/compositor/layouts/phone/stack/StackViewAnimation.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/SceneOverlay.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/CascadingStripStacker.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollingStripStacker.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripStacker.java",
-  "java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabLoadTracker.java",
-  "java/src/org/chromium/chrome/browser/compositor/resources/ResourceFactory.java",
-  "java/src/org/chromium/chrome/browser/compositor/resources/StaticResourcePreloads.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ContextualSearchSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/EphemeralTabSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/SceneOverlayLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ScrollingBottomViewSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java",
-  "java/src/org/chromium/chrome/browser/consent_auditor/ConsentAuditorBridge.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactDetails.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactView.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactViewHolder.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsFetcherWorkerTask.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerDialog.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerToolbar.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/FetchIconWorkerTask.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/PickerAdapter.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/PickerCategoryView.java",
-  "java/src/org/chromium/chrome/browser/contacts_picker/TopView.java",
-  "java/src/org/chromium/chrome/browser/content/ContentUtils.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuHelper.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItem.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuParams.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuPopulator.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuTitleView.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ContextMenuUi.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/PlatformContextMenuUi.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuController.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuListAdapter.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/RevampedContextMenuListView.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/ShareContextMenuItem.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuListAdapter.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuPagerAdapter.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUi.java",
-  "java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ClusterList.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContentCoordinator.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionCardViewHolder.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsAdapter.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsBottomSheetContent.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsBridge.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCluster.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsCoordinator.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsEnabledStateUtils.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsEventReporter.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsMediator.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModel.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsModule.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSource.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSourceImpl.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitor.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitorImpl.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/FetchHelper.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimer.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/PeekConditions.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarView.java",
-  "java/src/org/chromium/chrome/browser/contextual_suggestions/ToolbarViewBinder.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/BarOverlapTapSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContext.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchEntityHeuristic.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFieldTrial.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristic.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchHeuristics.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchIPH.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionPersister.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionPersisterImpl.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInteractionRecorder.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateController.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateHandler.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagementDelegate.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchNetworkCommunicator.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchObserver.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPolicy.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRankerLoggerImpl.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequest.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionController.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionHandler.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTabHelper.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapState.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslateController.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTranslateInterface.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/CtrSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/DisableablePromoTapCounter.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/EngagementSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/NearTopTapSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/QuickAnswersHeuristic.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/RecentScrollTapSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ResolvedSearchTerm.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/SecondTapMlOverride.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManager.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/ShortTextRunSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/SmallTextSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/SwipeRecognizer.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/TapDurationSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/TapFarFromPreviousSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/TapSuppressionHeuristics.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/TapWordEdgeSuppression.java",
-  "java/src/org/chromium/chrome/browser/contextualsearch/TapWordLengthSuppression.java",
-  "java/src/org/chromium/chrome/browser/cookies/CanonicalCookie.java",
-  "java/src/org/chromium/chrome/browser/cookies/CookiesFetcher.java",
-  "java/src/org/chromium/chrome/browser/coordinator/CoordinatorLayoutForPointer.java",
-  "java/src/org/chromium/chrome/browser/crash/ApplicationStatusTracker.java",
-  "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploadJobService.java",
-  "java/src/org/chromium/chrome/browser/crash/ChromeMinidumpUploaderDelegate.java",
-  "java/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnable.java",
-  "java/src/org/chromium/chrome/browser/crash/MinidumpLogcatPrepender.java",
-  "java/src/org/chromium/chrome/browser/crash/MinidumpUploadRetry.java",
-  "java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java",
-  "java/src/org/chromium/chrome/browser/crash/PureJavaExceptionHandler.java",
-  "java/src/org/chromium/chrome/browser/crash/PureJavaExceptionReporter.java",
-  "java/src/org/chromium/chrome/browser/crypto/ByteArrayGenerator.java",
-  "java/src/org/chromium/chrome/browser/crypto/CipherFactory.java",
-  "java/src/org/chromium/chrome/browser/customtabs/ClientManager.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CloseButtonNavigator.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomButtonParams.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabBottomBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabBrowserControlsVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabNavigationEventObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabNightModeStateController.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicy.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabTopBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java",
-  "java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java",
-  "java/src/org/chromium/chrome/browser/customtabs/FirstMeaningfulPaintObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/HiddenTabHolder.java",
-  "java/src/org/chromium/chrome/browser/customtabs/NavigationInfoCaptureTrigger.java",
-  "java/src/org/chromium/chrome/browser/customtabs/PageLoadMetricsObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/PaymentHandlerActivity.java",
-  "java/src/org/chromium/chrome/browser/customtabs/RequestThrottler.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity0.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity1.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity2.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity3.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity4.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity5.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity6.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity7.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity8.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskCustomTabActivity9.java",
-  "java/src/org/chromium/chrome/browser/customtabs/SeparateTaskManagedCustomTabActivity.java",
-  "java/src/org/chromium/chrome/browser/customtabs/TabObserverRegistrar.java",
-  "java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabController.java",
-  "java/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabFactory.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegate.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegatePostMessageBackend.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleConstants.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleCoordinator.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleNavigationEventObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModulePageLoadObserver.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleToolbarController.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleEntryPoint.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleLoader.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetrics.java",
-  "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ObjectWrapper.java",
-  "java/src/org/chromium/chrome/browser/database/SQLiteCursor.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionBrandingResourceProvider.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionMainMenuItem.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionPromoScreen.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionPromoUtils.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionProxyUma.java",
-  "java/src/org/chromium/chrome/browser/datareduction/DataReductionSavingsMilestonePromo.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ActivityScope.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeActivityCommonsModule.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeActivityComponent.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppComponent.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeAppModule.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ChromeCommonQualifiers.java",
-  "java/src/org/chromium/chrome/browser/dependency_injection/ModuleFactoryOverrides.java",
-  "java/src/org/chromium/chrome/browser/device/DeviceClassManager.java",
-  "java/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutController.java",
-  "java/src/org/chromium/chrome/browser/document/ChromeLauncherActivity.java",
-  "java/src/org/chromium/chrome/browser/document/DocumentActivity.java",
-  "java/src/org/chromium/chrome/browser/document/DocumentUtils.java",
-  "java/src/org/chromium/chrome/browser/document/DocumentWebContentsDelegate.java",
-  "java/src/org/chromium/chrome/browser/document/IncognitoDocumentActivity.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/DistilledPagePrefsView.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerServiceFactory.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerTabUtils.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/DomDistillerUIUtils.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java",
-  "java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeTabInfo.java",
-  "java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java",
-  "java/src/org/chromium/chrome/browser/download/DirectoryOption.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadActivity.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadBroadcastManager.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadController.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadDirectoryProvider.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadForegroundService.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java",
-  "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/DownloadInfoBarController.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadItem.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadLocationCustomView.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadManagerBridge.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadManagerService.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadMediaData.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadMediaParserBridge.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadMetrics.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadNotificationServiceObserver.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadNotificationUmaHelper.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadNotifier.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadPage.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadResumptionBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadResumptionScheduler.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadServiceDelegate.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceEntry.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceHelper.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadUmaStatsEntry.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadUpdate.java",
-  "java/src/org/chromium/chrome/browser/download/DownloadUtils.java",
-  "java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java",
-  "java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java",
-  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorFactory.java",
-  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerCoordinatorImpl.java",
-  "java/src/org/chromium/chrome/browser/download/home/DownloadManagerUiConfig.java",
-  "java/src/org/chromium/chrome/browser/download/home/JustNowProvider.java",
-  "java/src/org/chromium/chrome/browser/download/home/OfflineItemSource.java",
-  "java/src/org/chromium/chrome/browser/download/home/StableIds.java",
-  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyProperties.java",
-  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyView.java",
-  "java/src/org/chromium/chrome/browser/download/home/empty/EmptyViewBinder.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/DeleteUndoOfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/FilterChipsProvider.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/FilterCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/FilterProperties.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/FilterView.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/FilterViewBinder.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/Filters.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/InvalidStateOfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/OffTheRecordOfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterObserver.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterSource.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/TypeOfflineItemFilter.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/chips/Chip.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsProvider.java",
-  "java/src/org/chromium/chrome/browser/download/home/filter/chips/ChipsViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/glue/DownloadGlue.java",
-  "java/src/org/chromium/chrome/browser/download/home/glue/FileDeletionQueue.java",
-  "java/src/org/chromium/chrome/browser/download/home/glue/OfflineContentProviderGlue.java",
-  "java/src/org/chromium/chrome/browser/download/home/glue/ThumbnailRequestGlue.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/BatchListModel.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/CalendarFactory.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/CalendarUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMediator.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMutator.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListView.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DateOrderedListViewAdapter.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/DecoratedListItemModel.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ItemUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ListItem.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ListItemModel.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ListProperties.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ListPropertyViewBinder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ListUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/ShareUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/UiUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/CustomViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/GenericViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/ImageViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressGenericViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressImageViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressVideoViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/InProgressViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/ListItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/OfflineItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/PrefetchViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/SectionTitleViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/holder/VideoViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/AspectRatioFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/AsyncImageView.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/AutoAnimatorDrawable.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/CircularProgressView.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/ForegroundDrawableCompat.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/ForegroundRoundedCornerImageView.java",
-  "java/src/org/chromium/chrome/browser/download/home/list/view/UiUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/metrics/FileExtensions.java",
-  "java/src/org/chromium/chrome/browser/download/home/metrics/FilterChangeLogger.java",
-  "java/src/org/chromium/chrome/browser/download/home/metrics/OfflineItemStartupLogger.java",
-  "java/src/org/chromium/chrome/browser/download/home/metrics/UmaUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/rename/RenameDialogCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/rename/RenameDialogCustomView.java",
-  "java/src/org/chromium/chrome/browser/download/home/snackbars/DeleteUndoCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/snackbars/UndoUiUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/storage/StorageCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/storage/StorageSummaryProvider.java",
-  "java/src/org/chromium/chrome/browser/download/home/toolbar/DownloadHomeToolbar.java",
-  "java/src/org/chromium/chrome/browser/download/home/toolbar/ToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/download/home/toolbar/ToolbarUtils.java",
-  "java/src/org/chromium/chrome/browser/download/home/view/SelectionView.java",
-  "java/src/org/chromium/chrome/browser/download/items/DownloadBlockedOfflineContentProvider.java",
-  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorFactory.java",
-  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUi.java",
-  "java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiFactory.java",
-  "java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/download/service/DownloadTaskScheduler.java",
-  "java/src/org/chromium/chrome/browser/download/ui/BackendItems.java",
-  "java/src/org/chromium/chrome/browser/download/ui/BackendProvider.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DeletedFileTracker.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadFilter.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadItemSelectionDelegate.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadManagerToolbar.java",
-  "java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java",
-  "java/src/org/chromium/chrome/browser/download/ui/FilePathsToDownloadItemsMap.java",
-  "java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java",
-  "java/src/org/chromium/chrome/browser/download/ui/LoadingStateDelegate.java",
-  "java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java",
-  "java/src/org/chromium/chrome/browser/download/ui/SpaceDisplay.java",
-  "java/src/org/chromium/chrome/browser/engagement/SiteEngagementService.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/CategoryCardAdapter.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/CategoryCardViewHolderFactory.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExperimentalExploreSitesCategoryTileView.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExperimentalExploreSitesSection.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridge.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridgeExperimental.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategory.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryCardView.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryTile.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryTileView.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesEnums.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPage.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSection.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSite.java",
-  "java/src/org/chromium/chrome/browser/explore_sites/ExploreSitesTileView.java",
-  "java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java",
-  "java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java",
-  "java/src/org/chromium/chrome/browser/externalauth/VerifiedHandler.java",
-  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java",
-  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java",
-  "java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationParams.java",
-  "java/src/org/chromium/chrome/browser/externalnav/IntentWithGesturesHandler.java",
-  "java/src/org/chromium/chrome/browser/favicon/FaviconHelper.java",
-  "java/src/org/chromium/chrome/browser/favicon/LargeIconBridge.java",
-  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitor.java",
-  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitorDelegate.java",
-  "java/src/org/chromium/chrome/browser/feature_engagement/ScreenshotTabObserver.java",
-  "java/src/org/chromium/chrome/browser/feature_engagement/TrackerFactory.java",
-  "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/AsyncFeedbackSourceAdapter.java",
-  "java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java",
-  "java/src/org/chromium/chrome/browser/feedback/ConnectivityFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/ConnectivityTask.java",
-  "java/src/org/chromium/chrome/browser/feedback/DataReductionProxyFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/DuetFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java",
-  "java/src/org/chromium/chrome/browser/feedback/FeedbackContextFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/FeedbackReporter.java",
-  "java/src/org/chromium/chrome/browser/feedback/FeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/FeedbackSourceProvider.java",
-  "java/src/org/chromium/chrome/browser/feedback/HistogramFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/IMEFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/InterestFeedFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/LowEndDeviceFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/PermissionFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/ProcessIdFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/ScreenshotSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
-  "java/src/org/chromium/chrome/browser/feedback/StaticScreenshotSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/SystemInfoFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/UrlFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/feedback/VariationsFeedbackSource.java",
-  "java/src/org/chromium/chrome/browser/findinpage/FindInPageBridge.java",
-  "java/src/org/chromium/chrome/browser/findinpage/FindMatchRectsDetails.java",
-  "java/src/org/chromium/chrome/browser/findinpage/FindNotificationDetails.java",
-  "java/src/org/chromium/chrome/browser/firstrun/AccountFirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/firstrun/DataReductionProxyFirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunChooserView.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPage.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunPagerAdapter.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunSignInProcessor.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunView.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FirstRunViewPager.java",
-  "java/src/org/chromium/chrome/browser/firstrun/ForcedSigninProcessor.java",
-  "java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java",
-  "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
-  "java/src/org/chromium/chrome/browser/firstrun/SigninFirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java",
-  "java/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiver.java",
-  "java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/ComposedBrowserControlsVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java",
-  "java/src/org/chromium/chrome/browser/fullscreen/TokenHolder.java",
-  "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClient.java",
-  "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java",
-  "java/src/org/chromium/chrome/browser/gcore/ConnectedTask.java",
-  "java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java",
-  "java/src/org/chromium/chrome/browser/gcore/LifecycleHook.java",
-  "java/src/org/chromium/chrome/browser/gesturenav/ArrowDrawable.java",
-  "java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java",
-  "java/src/org/chromium/chrome/browser/gesturenav/SideSlideLayout.java",
-  "java/src/org/chromium/chrome/browser/gsa/ContextReporter.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListener.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAContextDisplaySelection.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAContextReportDelegate.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAHelper.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAServiceClient.java",
-  "java/src/org/chromium/chrome/browser/gsa/GSAState.java",
-  "java/src/org/chromium/chrome/browser/help/HelpAndFeedback.java",
-  "java/src/org/chromium/chrome/browser/history/BrowsingHistoryBridge.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryActivity.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryAdapter.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryItem.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryItemView.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryManager.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryManagerToolbar.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryManagerUtils.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryPage.java",
-  "java/src/org/chromium/chrome/browser/history/HistoryProvider.java",
-  "java/src/org/chromium/chrome/browser/historyreport/AppIndexingReporter.java",
-  "java/src/org/chromium/chrome/browser/historyreport/DeltaFileEntry.java",
-  "java/src/org/chromium/chrome/browser/historyreport/HistoryReportJniBridge.java",
-  "java/src/org/chromium/chrome/browser/historyreport/SearchJniBridge.java",
-  "java/src/org/chromium/chrome/browser/historyreport/UsageReport.java",
-  "java/src/org/chromium/chrome/browser/identity/SettingsSecureBasedIdentificationGenerator.java",
-  "java/src/org/chromium/chrome/browser/identity/UniqueIdentificationGenerator.java",
-  "java/src/org/chromium/chrome/browser/identity/UniqueIdentificationGeneratorFactory.java",
-  "java/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGenerator.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoDisclosureActivity.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabHost.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabHostRegistry.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncher.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotController.java",
-  "java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java",
-  "java/src/org/chromium/chrome/browser/infobar/AdsBlockedInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/AppBannerInfoBarAndroid.java",
-  "java/src/org/chromium/chrome/browser/infobar/AutofillCreditCardFillingInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/AutofillSaveCardInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/CardDetail.java",
-  "java/src/org/chromium/chrome/browser/infobar/ConfirmInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/DataReductionPromoInfoBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/infobar/DownloadProgressInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/DuplicateDownloadInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/FramebustBlockInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/infobar/IPHBubbleDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/infobar/IPHInfoBarSupport.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarCompactLayout.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarControlLayout.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarLayout.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarMessageView.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarView.java",
-  "java/src/org/chromium/chrome/browser/infobar/InfoBarWrapper.java",
-  "java/src/org/chromium/chrome/browser/infobar/InstallableAmbientBadgeInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/InstantAppsInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/InstantAppsInfoBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/infobar/NearOomInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/NearOomReductionInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/PermissionInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfoBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/infobar/PreviewsInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/PreviewsLitePageInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/ReaderModeInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/SavePasswordInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/SimpleConfirmInfoBarBuilder.java",
-  "java/src/org/chromium/chrome/browser/infobar/SubPanelListener.java",
-  "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/SurveyInfoBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/infobar/TextViewEllipsizerSafe.java",
-  "java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java",
-  "java/src/org/chromium/chrome/browser/infobar/UpdatePasswordInfoBar.java",
-  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenu.java",
-  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateMenuHelper.java",
-  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabContent.java",
-  "java/src/org/chromium/chrome/browser/infobar/translate/TranslateTabLayout.java",
-  "java/src/org/chromium/chrome/browser/init/ActivityLifecycleDispatcher.java",
-  "java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java",
-  "java/src/org/chromium/chrome/browser/init/AsyncInitializationActivity.java",
-  "java/src/org/chromium/chrome/browser/init/BrowserParts.java",
-  "java/src/org/chromium/chrome/browser/init/ChainedTasks.java",
-  "java/src/org/chromium/chrome/browser/init/ChromeActivityNativeDelegate.java",
-  "java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java",
-  "java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java",
-  "java/src/org/chromium/chrome/browser/init/EmptyBrowserParts.java",
-  "java/src/org/chromium/chrome/browser/init/InvalidStartupDialog.java",
-  "java/src/org/chromium/chrome/browser/init/NativeInitializationController.java",
-  "java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java",
-  "java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java",
-  "java/src/org/chromium/chrome/browser/init/SingleWindowKeyboardVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderFactory.java",
-  "java/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderImpl.java",
-  "java/src/org/chromium/chrome/browser/installedapp/PackageHash.java",
-  "java/src/org/chromium/chrome/browser/instantapps/AuthenticatedProxyActivity.java",
-  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsBannerData.java",
-  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java",
-  "java/src/org/chromium/chrome/browser/instantapps/InstantAppsSettings.java",
-  "java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapter.java",
-  "java/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterService.java",
-  "java/src/org/chromium/chrome/browser/invalidation/ChromeInvalidationClientService.java",
-  "java/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsController.java",
-  "java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java",
-  "java/src/org/chromium/chrome/browser/invalidation/InvalidationServiceFactory.java",
-  "java/src/org/chromium/chrome/browser/invalidation/ResumableDelayedTaskRunner.java",
-  "java/src/org/chromium/chrome/browser/invalidation/SessionsInvalidationManager.java",
-  "java/src/org/chromium/chrome/browser/invalidation/UniqueIdInvalidationClientNameGenerator.java",
-  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialog.java",
-  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptDialogCustomView.java",
-  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptModalDialog.java",
-  "java/src/org/chromium/chrome/browser/jsdialog/JavascriptTabModalDialog.java",
-  "java/src/org/chromium/chrome/browser/language/LanguageAskPrompt.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/ActivityResultWithNativeObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/Destroyable.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/InflationObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/LifecycleObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/NativeInitObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/PauseResumeWithNativeObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/SaveInstanceStateObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/StartStopWithNativeObserver.java",
-  "java/src/org/chromium/chrome/browser/lifecycle/WindowFocusChangedObserver.java",
-  "java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java",
-  "java/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialog.java",
-  "java/src/org/chromium/chrome/browser/locale/LocaleChangedBroadcastReceiver.java",
-  "java/src/org/chromium/chrome/browser/locale/LocaleManager.java",
-  "java/src/org/chromium/chrome/browser/locale/LocaleTemplateUrlLoader.java",
-  "java/src/org/chromium/chrome/browser/locale/SogouPromoDialog.java",
-  "java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java",
-  "java/src/org/chromium/chrome/browser/media/MediaLauncherActivity.java",
-  "java/src/org/chromium/chrome/browser/media/MediaViewerUtils.java",
-  "java/src/org/chromium/chrome/browser/media/PictureInPicture.java",
-  "java/src/org/chromium/chrome/browser/media/PictureInPictureController.java",
-  "java/src/org/chromium/chrome/browser/media/remote/RecordCastAction.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaButtonReceiver.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaImageCallback.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaImageManager.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationInfo.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationListener.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java",
-  "java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java",
-  "java/src/org/chromium/chrome/browser/metrics/ActivityStopMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/ActivityTabStartupMetricsTracker.java",
-  "java/src/org/chromium/chrome/browser/metrics/ImpressionTracker.java",
-  "java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/MediaNotificationUma.java",
-  "java/src/org/chromium/chrome/browser/metrics/MediaSessionUMA.java",
-  "java/src/org/chromium/chrome/browser/metrics/OmniboxStartupMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/OneShotImpressionListener.java",
-  "java/src/org/chromium/chrome/browser/metrics/PackageMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/PageLoadMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/UmaSessionStats.java",
-  "java/src/org/chromium/chrome/browser/metrics/UmaUtils.java",
-  "java/src/org/chromium/chrome/browser/metrics/VariationsSession.java",
-  "java/src/org/chromium/chrome/browser/metrics/WebApkSplashscreenMetrics.java",
-  "java/src/org/chromium/chrome/browser/metrics/WebApkUma.java",
-  "java/src/org/chromium/chrome/browser/modaldialog/AppModalPresenter.java",
-  "java/src/org/chromium/chrome/browser/modaldialog/ModalDialogView.java",
-  "java/src/org/chromium/chrome/browser/modaldialog/ModalDialogViewBinder.java",
-  "java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java",
-  "java/src/org/chromium/chrome/browser/modaldialog/TabModalPresenter.java",
-  "java/src/org/chromium/chrome/browser/mojo/ChromeInterfaceRegistrar.java",
-  "java/src/org/chromium/chrome/browser/multiwindow/MultiInstanceChromeTabbedActivity.java",
-  "java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java",
-  "java/src/org/chromium/chrome/browser/native_page/BasicNativePage.java",
-  "java/src/org/chromium/chrome/browser/native_page/ContextMenuManager.java",
-  "java/src/org/chromium/chrome/browser/native_page/FrozenNativePage.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePage.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePageAssassin.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePageHost.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegate.java",
-  "java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java",
-  "java/src/org/chromium/chrome/browser/nfc/BeamCallback.java",
-  "java/src/org/chromium/chrome/browser/nfc/BeamController.java",
-  "java/src/org/chromium/chrome/browser/nfc/BeamProvider.java",
-  "java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java",
-  "java/src/org/chromium/chrome/browser/night_mode/NightModeStateProvider.java",
-  "java/src/org/chromium/chrome/browser/night_mode/NightModeUtils.java",
-  "java/src/org/chromium/chrome/browser/night_mode/SystemNightModeMonitor.java",
-  "java/src/org/chromium/chrome/browser/notifications/ActionInfo.java",
-  "java/src/org/chromium/chrome/browser/notifications/ChromeNotification.java",
-  "java/src/org/chromium/chrome/browser/notifications/ChromeNotificationBuilder.java",
-  "java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilder.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilderBase.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationBuilderFactory.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationCompatBuilder.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationJobService.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxyImpl.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationMetadata.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationService.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationSettingsBridge.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationSystemStatusUtil.java",
-  "java/src/org/chromium/chrome/browser/notifications/NotificationUmaTracker.java",
-  "java/src/org/chromium/chrome/browser/notifications/PendingIntentProvider.java",
-  "java/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilder.java",
-  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelDefinitions.java",
-  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelsInitializer.java",
-  "java/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdater.java",
-  "java/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManager.java",
-  "java/src/org/chromium/chrome/browser/notifications/scheduler/NotificationSchedulerTask.java",
-  "java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotifier.java",
-  "java/src/org/chromium/chrome/browser/ntp/FakeRecentlyClosedTabManager.java",
-  "java/src/org/chromium/chrome/browser/ntp/ForeignSessionHelper.java",
-  "java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPage.java",
-  "java/src/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java",
-  "java/src/org/chromium/chrome/browser/ntp/LogoBridge.java",
-  "java/src/org/chromium/chrome/browser/ntp/LogoDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/ntp/LogoView.java",
-  "java/src/org/chromium/chrome/browser/ntp/NativePageRootFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabPage.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabPageScrollView.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabPageUma.java",
-  "java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsExpandableListView.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsPagePrefs.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentTabsRowAdapter.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedBridge.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedTab.java",
-  "java/src/org/chromium/chrome/browser/ntp/RecentlyClosedTabManager.java",
-  "java/src/org/chromium/chrome/browser/ntp/SnapScrollHelper.java",
-  "java/src/org/chromium/chrome/browser/ntp/TitleUtil.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/AboveTheFoldItem.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItem.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/CardsVariationParameters.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ChildNode.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/Footer.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/InnerNode.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ItemViewType.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/Leaf.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/OptionalLeaf.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/PartiallyBindable.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressIndicatorView.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressItem.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ProgressViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/ScrollToLoadListener.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/SectionList.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/StatusItem.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsCategoryInfo.java",
-  "java/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSection.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/CategoryInt.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/EmptySuggestionsSource.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeader.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderView.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SectionHeaderViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsConfig.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java",
-  "java/src/org/chromium/chrome/browser/ntp/snippets/SuggestionsSource.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundScheduler.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerBridge.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerProcessor.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/CCTRequestStatus.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserver.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/ClientId.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/DeletedPageInfo.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/GetPagesByNamespaceForLivePageSharingCallback.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageItem.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageOrigin.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserver.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/OfflinePagesDownloadManagerBridge.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/PublishPageCallback.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/SavePageAndShareCallback.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/SavePageRequest.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPacker.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/TriggerConditions.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/downloads/OfflinePageDownloadBridge.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/AutoFetchNotifier.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetector.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarView.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/OfflineNotificationBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskScheduler.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchConfiguration.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchPrefs.java",
-  "java/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchedPagesNotifier.java",
-  "java/src/org/chromium/chrome/browser/omaha/inline/FakeAppUpdateManagerWrapper.java",
-  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java",
-  "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
-  "java/src/org/chromium/chrome/browser/omaha/inline/NoopInlineUpdateController.java",
-  "java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java",
-  "java/src/org/chromium/chrome/browser/omaha/ExponentialBackoffScheduler.java",
-  "java/src/org/chromium/chrome/browser/omaha/MarketURLGetter.java",
-  "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java",
-  "java/src/org/chromium/chrome/browser/omaha/OmahaClient.java",
-  "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java",
-  "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java",
-  "java/src/org/chromium/chrome/browser/omaha/OmahaService.java",
-  "java/src/org/chromium/chrome/browser/omaha/RequestData.java",
-  "java/src/org/chromium/chrome/browser/omaha/RequestFailureException.java",
-  "java/src/org/chromium/chrome/browser/omaha/RequestGenerator.java",
-  "java/src/org/chromium/chrome/browser/omaha/ResponseParser.java",
-  "java/src/org/chromium/chrome/browser/omaha/StringSanitizer.java",
-  "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
-  "java/src/org/chromium/chrome/browser/omaha/UpdateInfoBarController.java",
-  "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
-  "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
-  "java/src/org/chromium/chrome/browser/omaha/VersionNumber.java",
-  "java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java",
-  "java/src/org/chromium/chrome/browser/omaha/XMLParser.java",
-  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditText.java",
-  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextModel.java",
-  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextModelBase.java",
-  "java/src/org/chromium/chrome/browser/omnibox/AutocompleteState.java",
-  "java/src/org/chromium/chrome/browser/omnibox/KeyboardHideHelper.java",
-  "java/src/org/chromium/chrome/browser/omnibox/LocationBar.java",
-  "java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java",
-  "java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java",
-  "java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java",
-  "java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java",
-  "java/src/org/chromium/chrome/browser/omnibox/OmniboxPrerender.java",
-  "java/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizer.java",
-  "java/src/org/chromium/chrome/browser/omnibox/OmniboxViewUtil.java",
-  "java/src/org/chromium/chrome/browser/omnibox/SpannableAutocompleteEditTextModel.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBar.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarData.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarEditingTextStateProvider.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarMediator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlBarViewBinder.java",
-  "java/src/org/chromium/chrome/browser/omnibox/UrlFocusChangeListener.java",
-  "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java",
-  "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationTracker.java",
-  "java/src/org/chromium/chrome/browser/omnibox/geo/PlatformNetworksManager.java",
-  "java/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworks.java",
-  "java/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTracker.java",
-  "java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java",
-  "java/src/org/chromium/chrome/browser/omnibox/status/StatusViewBinder.java",
-  "java/src/org/chromium/chrome/browser/omnibox/status/StatusProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AnswersImageFetcher.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestion.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionUiType.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsList.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionListViewBinder.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/VoiceSuggestionProvider.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionView.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerText.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextClassic.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerTextNewLayout.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessor.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionHost.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionView.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewDelegate.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/SuggestionViewViewBinder.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessor.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProperties.java",
-  "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionViewBinder.java",
-  "java/src/org/chromium/chrome/browser/page_info/CertificateChainHelper.java",
-  "java/src/org/chromium/chrome/browser/page_info/CertificateViewer.java",
-  "java/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopup.java",
-  "java/src/org/chromium/chrome/browser/page_info/PageInfoController.java",
-  "java/src/org/chromium/chrome/browser/page_info/PageInfoDialog.java",
-  "java/src/org/chromium/chrome/browser/page_info/PageInfoView.java",
-  "java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java",
-  "java/src/org/chromium/chrome/browser/page_info/SystemSettingsActivityRequiredListener.java",
-  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmark.java",
-  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottle.java",
-  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java",
-  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksReader.java",
-  "java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksShim.java",
-  "java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java",
-  "java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java",
-  "java/src/org/chromium/chrome/browser/password_manager/AccountChooserDialog.java",
-  "java/src/org/chromium/chrome/browser/password_manager/AutoSigninFirstRunDialog.java",
-  "java/src/org/chromium/chrome/browser/password_manager/Credential.java",
-  "java/src/org/chromium/chrome/browser/password_manager/GooglePasswordManagerUIProvider.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogBridge.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogCoordinator.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogCustomView.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogMediator.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogModel.java",
-  "java/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogViewBinder.java",
-  "java/src/org/chromium/chrome/browser/payments/AddressEditor.java",
-  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentApp.java",
-  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFactory.java",
-  "java/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinder.java",
-  "java/src/org/chromium/chrome/browser/payments/AutofillAddress.java",
-  "java/src/org/chromium/chrome/browser/payments/AutofillContact.java",
-  "java/src/org/chromium/chrome/browser/payments/AutofillPaymentApp.java",
-  "java/src/org/chromium/chrome/browser/payments/AutofillPaymentInstrument.java",
-  "java/src/org/chromium/chrome/browser/payments/BasicCardUtils.java",
-  "java/src/org/chromium/chrome/browser/payments/CanMakePaymentQuery.java",
-  "java/src/org/chromium/chrome/browser/payments/CardEditor.java",
-  "java/src/org/chromium/chrome/browser/payments/ContactEditor.java",
-  "java/src/org/chromium/chrome/browser/payments/JourneyLogger.java",
-  "java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentApp.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentAppFactory.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentInstrument.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentManifestVerifier.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentManifestWebDataService.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentPreferencesUtil.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentRequestFactory.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java",
-  "java/src/org/chromium/chrome/browser/payments/PaymentResponseHelper.java",
-  "java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentApp.java",
-  "java/src/org/chromium/chrome/browser/payments/ServiceWorkerPaymentAppBridge.java",
-  "java/src/org/chromium/chrome/browser/payments/SettingsAutofillAndPaymentsObserver.java",
-  "java/src/org/chromium/chrome/browser/payments/ShippingStrings.java",
-  "java/src/org/chromium/chrome/browser/payments/SslValidityChecker.java",
-  "java/src/org/chromium/chrome/browser/payments/UriUtils.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/ContactDetailsSection.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentInformation.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestBottomBar.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestHeader.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestSection.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUI.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/PaymentRequestUiErrorView.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/SectionInformation.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/SectionUiUtils.java",
-  "java/src/org/chromium/chrome/browser/payments/ui/ShoppingCart.java",
-  "java/src/org/chromium/chrome/browser/permissions/AndroidPermissionRequester.java",
-  "java/src/org/chromium/chrome/browser/permissions/PermissionAppModalDialogView.java",
-  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogController.java",
-  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogDelegate.java",
-  "java/src/org/chromium/chrome/browser/permissions/PermissionDialogView.java",
-  "java/src/org/chromium/chrome/browser/permissions/PermissionUmaUtil.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/BitmapScalerTask.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/BitmapUtils.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceHost.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/FileEnumWorkerTask.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialog.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PhotoPickerToolbar.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmap.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapView.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java",
-  "java/src/org/chromium/chrome/browser/photo_picker/PickerCategoryView.java",
-  "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/AboutChromePreferenceOSVersion.java",
-  "java/src/org/chromium/chrome/browser/preferences/AboutChromePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/AccessibilityPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/ButtonPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ChromeBaseCheckBoxPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ChromeBaseListPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ChromeBasePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java",
-  "java/src/org/chromium/chrome/browser/preferences/ChromeSwitchPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ClearBrowsingDataCheckBoxPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ContextualSuggestionsPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java",
-  "java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/HyperlinkPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/LearnMorePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/LegalInformationPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/LocationSettings.java",
-  "java/src/org/chromium/chrome/browser/preferences/MainPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/ManagedPreferenceDelegate.java",
-  "java/src/org/chromium/chrome/browser/preferences/ManagedPreferencesUtils.java",
-  "java/src/org/chromium/chrome/browser/preferences/ManageSyncPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/NightModePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/NotificationsPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/PrefChangeRegistrar.java",
-  "java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java",
-  "java/src/org/chromium/chrome/browser/preferences/PreferenceUtils.java",
-  "java/src/org/chromium/chrome/browser/preferences/Preferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/PreferencesLauncher.java",
-  "java/src/org/chromium/chrome/browser/preferences/SearchEngineAdapter.java",
-  "java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SearchUtils.java",
-  "java/src/org/chromium/chrome/browser/preferences/SeekBarLinkedCheckBoxPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SeekBarPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SignInPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SpinnerPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/SyncErrorCardPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SyncPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/SyncPreferenceUtils.java",
-  "java/src/org/chromium/chrome/browser/preferences/SyncedAccountPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/TextAndButtonPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/TextMessagePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/TextScalePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AndroidPaymentAppPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AndroidPaymentAppsFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillCreditCardEditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillEditorBase.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillLocalCardEditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPaymentMethodsFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileBridge.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfileEditorPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillServerCardEditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/AutofillServerProfilePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill/CreditCardNumberFormattingTextWatcher.java",
-  "java/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionDataUseItem.java",
-  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionSiteBreakdownView.java",
-  "java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionStatsPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/developer/DeveloperPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/developer/TracingCategoriesPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/developer/TracingPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/download/DownloadDirectoryAdapter.java",
-  "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/download/DownloadLocationPreferenceAdapter.java",
-  "java/src/org/chromium/chrome/browser/preferences/download/DownloadPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/AddLanguageFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageItem.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageListBaseAdapter.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/LanguageListPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/LanguagesManager.java",
-  "java/src/org/chromium/chrome/browser/preferences/languages/LanguagesPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/CallbackDelayer.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/DialogManager.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ExportErrorDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ExportFlow.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ExportWarningDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ManualCallbackDelayer.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/PasswordEntryEditor.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/PasswordManagerHandler.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/PasswordManagerHandlerProvider.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/PasswordReauthenticationFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/PasswordUIView.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ProgressBarDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/ReauthenticationManager.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/SavedPasswordEntry.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/SingleThreadBarrierClosure.java",
-  "java/src/org/chromium/chrome/browser/preferences/password/TimedCallbackDelayer.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/BandwidthType.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataBridge.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataCounterBridge.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataFetcher.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesAdvanced.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasic.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataTabsFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ConfirmImportantSitesDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/ContextualSearchPreferenceFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/DoNotTrackPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/OtherFormsOfHistoryDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManager.java",
-  "java/src/org/chromium/chrome/browser/preferences/privacy/UsageAndCrashReportsPreferenceFragment.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/ChosenObjectInfo.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/ChosenObjectPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/ClearWebsiteStorage.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",
-  "java/src/org/chromium/chrome/browser/preferences/website/LocalStorageInfo.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/LocationCategory.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivity.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/NotificationCategory.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/PermissionInfo.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SettingsNavigationSource.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SiteDataCleaner.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/StorageInfo.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/TranslatePreferences.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/TriStateSiteSettingsPreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/Website.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/WebsiteAddress.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePreference.java",
-  "java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java",
-  "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
-  "java/src/org/chromium/chrome/browser/prerender/ExternalPrerenderHandler.java",
-  "java/src/org/chromium/chrome/browser/previews/PreviewsAndroidBridge.java",
-  "java/src/org/chromium/chrome/browser/previews/PreviewsUma.java",
-  "java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java",
-  "java/src/org/chromium/chrome/browser/printing/TabPrinter.java",
-  "java/src/org/chromium/chrome/browser/profiles/Profile.java",
-  "java/src/org/chromium/chrome/browser/profiles/ProfileDownloader.java",
-  "java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java",
-  "java/src/org/chromium/chrome/browser/provider/BaseColumns.java",
-  "java/src/org/chromium/chrome/browser/provider/BookmarkColumns.java",
-  "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
-  "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProviderSuggestionsCursor.java",
-  "java/src/org/chromium/chrome/browser/provider/SearchColumns.java",
-  "java/src/org/chromium/chrome/browser/push_messaging/PushMessagingServiceObserver.java",
-  "java/src/org/chromium/chrome/browser/rappor/RapporServiceBridge.java",
-  "java/src/org/chromium/chrome/browser/rlz/RevenueStats.java",
-  "java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java",
-  "java/src/org/chromium/chrome/browser/search_engines/TemplateUrl.java",
-  "java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java",
-  "java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java",
-  "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java",
-  "java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java",
-  "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
-  "java/src/org/chromium/chrome/browser/send_tab_to_self/NotificationManager.java",
-  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridge.java",
-  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfEntry.java",
-  "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivity.java",
-  "java/src/org/chromium/chrome/browser/services/AccountsChangedReceiver.java",
-  "java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
-  "java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
-  "java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
-  "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
-  "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
-  "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
-  "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
-  "java/src/org/chromium/chrome/browser/sessions/SessionTabHelper.java",
-  "java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java",
-  "java/src/org/chromium/chrome/browser/share/ShareActivity.java",
-  "java/src/org/chromium/chrome/browser/share/ShareDialogAdapter.java",
-  "java/src/org/chromium/chrome/browser/share/ShareHelper.java",
-  "java/src/org/chromium/chrome/browser/share/ShareMenuActionHandler.java",
-  "java/src/org/chromium/chrome/browser/share/ShareParams.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountAdder.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountSigninActivity.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountSigninChooseView.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountSigninConfirmationView.java",
-  "java/src/org/chromium/chrome/browser/signin/AccountSigninView.java",
-  "java/src/org/chromium/chrome/browser/signin/IdentityServicesProvider.java",
-  "java/src/org/chromium/chrome/browser/signin/ConfirmImportSyncDataDialog.java",
-  "java/src/org/chromium/chrome/browser/signin/ConfirmManagedSyncDataDialog.java",
-  "java/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachine.java",
-  "java/src/org/chromium/chrome/browser/signin/ConfirmSyncDataStateMachineDelegate.java",
-  "java/src/org/chromium/chrome/browser/signin/ConsentTextTracker.java",
-  "java/src/org/chromium/chrome/browser/signin/DisplayableProfileData.java",
-  "java/src/org/chromium/chrome/browser/signin/GoogleActivityController.java",
-  "java/src/org/chromium/chrome/browser/signin/PersonalizedSigninPromoView.java",
-  "java/src/org/chromium/chrome/browser/signin/ProfileDataCache.java",
-  "java/src/org/chromium/chrome/browser/signin/SignOutDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninActivity.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninFragment.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninFragmentBase.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninHelper.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninInvestigator.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninManager.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninPromoController.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninScrollView.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninUtils.java",
-  "java/src/org/chromium/chrome/browser/signin/SigninView.java",
-  "java/src/org/chromium/chrome/browser/signin/SyncPromoView.java",
-  "java/src/org/chromium/chrome/browser/signin/UnifiedConsentServiceBridge.java",
-  "java/src/org/chromium/chrome/browser/snackbar/BottomContainer.java",
-  "java/src/org/chromium/chrome/browser/snackbar/Snackbar.java",
-  "java/src/org/chromium/chrome/browser/snackbar/SnackbarCollection.java",
-  "java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java",
-  "java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java",
-  "java/src/org/chromium/chrome/browser/snackbar/TemplatePreservingTextView.java",
-  "java/src/org/chromium/chrome/browser/snackbar/smartlockautosignin/AutoSigninSnackbarController.java",
-  "java/src/org/chromium/chrome/browser/snackbar/undo/UndoBarController.java",
-  "java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java",
-  "java/src/org/chromium/chrome/browser/ssl/SecurityStateModel.java",
-  "java/src/org/chromium/chrome/browser/subresource_filter/TestSubresourceFilterPublisher.java",
-  "java/src/org/chromium/chrome/browser/suggestions/DestructionObserver.java",
-  "java/src/org/chromium/chrome/browser/suggestions/ImageFetcher.java",
-  "java/src/org/chromium/chrome/browser/suggestions/MostVisitedSites.java",
-  "java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java",
-  "java/src/org/chromium/chrome/browser/suggestions/NavigationRecorder.java",
-  "java/src/org/chromium/chrome/browser/suggestions/OfflinableSuggestion.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SiteSection.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SiteSectionViewHolder.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SiteSuggestion.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsBinder.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsConfig.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsDependencyFactory.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsEventReporter.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsEventReporterBridge.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsMetrics.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsOfflineModelObserver.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsRanker.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserver.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsTileView.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsUiDelegate.java",
-  "java/src/org/chromium/chrome/browser/suggestions/SuggestionsUiDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/suggestions/ThumbnailGradient.java",
-  "java/src/org/chromium/chrome/browser/suggestions/Tile.java",
-  "java/src/org/chromium/chrome/browser/suggestions/TileGridLayout.java",
-  "java/src/org/chromium/chrome/browser/suggestions/TileGridViewHolder.java",
-  "java/src/org/chromium/chrome/browser/suggestions/TileGroup.java",
-  "java/src/org/chromium/chrome/browser/suggestions/TileGroupDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java",
-  "java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java",
-  "java/src/org/chromium/chrome/browser/survey/SurveyController.java",
-  "java/src/org/chromium/chrome/browser/sync/GoogleServiceAuthError.java",
-  "java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java",
-  "java/src/org/chromium/chrome/browser/sync/SyncAccountSwitcher.java",
-  "java/src/org/chromium/chrome/browser/sync/SyncController.java",
-  "java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java",
-  "java/src/org/chromium/chrome/browser/sync/SyncUserDataWiper.java",
-  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseActivity.java",
-  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseCreationDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragment.java",
-  "java/src/org/chromium/chrome/browser/sync/ui/SyncCustomizationFragment.java",
-  "java/src/org/chromium/chrome/browser/tab/AuthenticatorNavigationInterceptor.java",
-  "java/src/org/chromium/chrome/browser/tab/BrowserControlsVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/tab/ChildBackgroundTabShowObserver.java",
-  "java/src/org/chromium/chrome/browser/tab/EmptyTabObserver.java",
-  "java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/tab/SadTab.java",
-  "java/src/org/chromium/chrome/browser/tab/SadTabView.java",
-  "java/src/org/chromium/chrome/browser/tab/Tab.java",
-  "java/src/org/chromium/chrome/browser/tab/TabAttributeKeys.java",
-  "java/src/org/chromium/chrome/browser/tab/TabAttributes.java",
-  "java/src/org/chromium/chrome/browser/tab/TabBrowserControlsOffsetHelper.java",
-  "java/src/org/chromium/chrome/browser/tab/TabBuilder.java",
-  "java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java",
-  "java/src/org/chromium/chrome/browser/tab/TabContextMenuPopulator.java",
-  "java/src/org/chromium/chrome/browser/tab/TabDelegateFactory.java",
-  "java/src/org/chromium/chrome/browser/tab/TabFavicon.java",
-  "java/src/org/chromium/chrome/browser/tab/TabFullscreenHandler.java",
-  "java/src/org/chromium/chrome/browser/tab/TabGestureStateListener.java",
-  "java/src/org/chromium/chrome/browser/tab/TabIdManager.java",
-  "java/src/org/chromium/chrome/browser/tab/TabImportanceManager.java",
-  "java/src/org/chromium/chrome/browser/tab/TabHelpers.java",
-  "java/src/org/chromium/chrome/browser/tab/TabObserver.java",
-  "java/src/org/chromium/chrome/browser/tab/TabParentIntent.java",
-  "java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java",
-  "java/src/org/chromium/chrome/browser/tab/TabState.java",
-  "java/src/org/chromium/chrome/browser/tab/TabStateBrowserControlsVisibilityDelegate.java",
-  "java/src/org/chromium/chrome/browser/tab/TabThemeColorHelper.java",
-  "java/src/org/chromium/chrome/browser/tab/TabUma.java",
-  "java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java",
-  "java/src/org/chromium/chrome/browser/tab/TabWebContentsDelegateAndroid.java",
-  "java/src/org/chromium/chrome/browser/tab/TabWebContentsObserver.java",
-  "java/src/org/chromium/chrome/browser/tab/TabWebContentsUserData.java",
-  "java/src/org/chromium/chrome/browser/tab/TrustedCdn.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParams.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/AsyncTabParamsManager.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassin.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelFilter.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelImplCreator.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/SingleTabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/SingleTabModelSelector.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabList.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelDelegate.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelFilterProvider.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelOrderController.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserver.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorUma.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabPersistencePolicy.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabPersister.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabReparentingParams.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/TabbedModeTabPersistencePolicy.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/ActivityDelegate.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/ActivityDelegateImpl.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/AsyncTabCreationParams.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelImpl.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/DocumentTabModelSelector.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/IncognitoDocumentTabModel.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/StorageDelegate.java",
-  "java/src/org/chromium/chrome/browser/tabmodel/document/TabDelegate.java",
-  "java/src/org/chromium/chrome/browser/tasks/TasksUma.java",
-  "java/src/org/chromium/chrome/browser/tasks/tabgroup/TabGroupModelFilter.java",
-  "java/src/org/chromium/chrome/browser/tasks/tab_groups/LayoutTabGroupCreationButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/AppThemeColorProvider.java",
-  "java/src/org/chromium/chrome/browser/toolbar/HomeButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/IncognitoStateProvider.java",
-  "java/src/org/chromium/chrome/browser/toolbar/IncognitoToggleTabLayout.java",
-  "java/src/org/chromium/chrome/browser/toolbar/KeyboardNavigationListener.java",
-  "java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java",
-  "java/src/org/chromium/chrome/browser/toolbar/MenuButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/NewTabButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabCountProvider.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonProperties.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonView.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherButtonViewBinder.java",
-  "java/src/org/chromium/chrome/browser/toolbar/TabSwitcherDrawable.java",
-  "java/src/org/chromium/chrome/browser/toolbar/ToolbarButtonInProductHelpController.java",
-  "java/src/org/chromium/chrome/browser/toolbar/ToolbarDataProvider.java",
-  "java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java",
-  "java/src/org/chromium/chrome/browser/toolbar/ToolbarTabController.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsProperties.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsViewBinder.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarNewTabButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BottomToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarMediator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarModel.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/BrowsingModeBottomToolbarViewBinder.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/CloseAllTabsButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewResourceFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/SearchAccelerator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/ShareButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarMediator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarModel.java",
-  "java/src/org/chromium/chrome/browser/toolbar/bottom/TabSwitcherBottomToolbarViewBinder.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ActionModeController.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbar.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/CustomTabToolbarAnimationDelegate.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTCoordinatorPhone.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/TabSwitcherModeTTPhone.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToggleTabStackButton.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/Toolbar.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarActionModeCallback.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java",
-  "java/src/org/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate.java",
-  "java/src/org/chromium/chrome/browser/tracing/TracingController.java",
-  "java/src/org/chromium/chrome/browser/tracing/TracingNotificationManager.java",
-  "java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
-  "java/src/org/chromium/chrome/browser/translate/TranslateBridge.java",
-  "java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java",
-  "java/src/org/chromium/chrome/browser/upgrade/UpgradeActivity.java",
-  "java/src/org/chromium/chrome/browser/upgrade/UpgradeIntentService.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/DigitalWellbeingClient.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/EventTracker.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/PageViewObserver.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/SuspendedTab.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/SuspensionTracker.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/TokenGenerator.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/TokenTracker.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsBridge.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentActivity.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentDialog.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsService.java",
-  "java/src/org/chromium/chrome/browser/usage_stats/WebsiteEvent.java",
-  "java/src/org/chromium/chrome/browser/util/AccessibilityUtil.java",
-  "java/src/org/chromium/chrome/browser/util/ChromeContextUtil.java",
-  "java/src/org/chromium/chrome/browser/util/ChromeFileProvider.java",
-  "java/src/org/chromium/chrome/browser/util/ColorUtils.java",
-  "java/src/org/chromium/chrome/browser/util/ConversionUtils.java",
-  "java/src/org/chromium/chrome/browser/util/FeatureUtilities.java",
-  "java/src/org/chromium/chrome/browser/util/FileSizeUtil.java",
-  "java/src/org/chromium/chrome/browser/util/HashUtil.java",
-  "java/src/org/chromium/chrome/browser/util/IntentUtils.java",
-  "java/src/org/chromium/chrome/browser/util/KeyNavigationUtil.java",
-  "java/src/org/chromium/chrome/browser/util/MathUtils.java",
-  "java/src/org/chromium/chrome/browser/util/PlatformUtil.java",
-  "java/src/org/chromium/chrome/browser/util/UrlUtilities.java",
-  "java/src/org/chromium/chrome/browser/util/ViewUtils.java",
-  "java/src/org/chromium/chrome/browser/vr/ArDelegate.java",
-  "java/src/org/chromium/chrome/browser/vr/ArDelegateProvider.java",
-  "java/src/org/chromium/chrome/browser/webapps/ActivateWebApkActivity.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",
-  "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java",
-  "java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHostSignature.java",
-  "java/src/org/chromium/chrome/browser/webapps/GooglePlayWebApkInstallDelegate.java",
-  "java/src/org/chromium/chrome/browser/webapps/SameActivityWebappSplashDelegate.java",
-  "java/src/org/chromium/chrome/browser/metrics/SameActivityWebappUmaCache.java",
-  "java/src/org/chromium/chrome/browser/webapps/SameTaskWebApkActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/SplashscreenObserver.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity0.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity1.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity2.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity3.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity4.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity5.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity6.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity7.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity8.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkActivity9.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkInstallService.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkInstaller.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkManagedActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkPostShareTargetNavigator.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkServiceClient.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkShareTargetUtil.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkSplashNetworkErrorObserver.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkUpdateTask.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkVersionManager.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationManager.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity0.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity1.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity2.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity3.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity4.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity5.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity6.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity7.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity8.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappActivity9.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappAuthenticator.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappBrowserControlsDelegate.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappCustomTabTimeSpentLogger.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappDataStorage.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappDelegateFactory.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappDirectoryManager.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarController.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappInfo.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappLauncherActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappManagedActivity.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebApkOfflineDialog.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappScopePolicy.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappSplashDelegate.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappSplashScreenController.java",
-  "java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java",
-  "java/src/org/chromium/chrome/browser/webauth/AuthenticatorFactory.java",
-  "java/src/org/chromium/chrome/browser/webauth/AuthenticatorImpl.java",
-  "java/src/org/chromium/chrome/browser/webauth/Fido2ApiHandler.java",
-  "java/src/org/chromium/chrome/browser/webauth/HandlerResponseCallback.java",
-  "java/src/org/chromium/chrome/browser/webshare/ShareServiceImpl.java",
-  "java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java",
-  "java/src/org/chromium/chrome/browser/widget/AlertDialogEditText.java",
-  "java/src/org/chromium/chrome/browser/widget/AlwaysDismissedDialog.java",
-  "java/src/org/chromium/chrome/browser/widget/BoundedLinearLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/ClipDrawableProgressBar.java",
-  "java/src/org/chromium/chrome/browser/widget/CompatibilityTextInputLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/ContextMenuDialog.java",
-  "java/src/org/chromium/chrome/browser/widget/ControlContainer.java",
-  "java/src/org/chromium/chrome/browser/widget/DateDividedAdapter.java",
-  "java/src/org/chromium/chrome/browser/widget/DualControlLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/EmptyAlertEditText.java",
-  "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/FeatureHighlightProvider.java",
-  "java/src/org/chromium/chrome/browser/widget/ListMenuButton.java",
-  "java/src/org/chromium/chrome/browser/widget/LoadingView.java",
-  "java/src/org/chromium/chrome/browser/widget/MaterialProgressBar.java",
-  "java/src/org/chromium/chrome/browser/widget/NumberRollView.java",
-  "java/src/org/chromium/chrome/browser/widget/OverviewListLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/PaddedFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/ProgressAnimationSmooth.java",
-  "java/src/org/chromium/chrome/browser/widget/PromoDialog.java",
-  "java/src/org/chromium/chrome/browser/widget/PromoDialogLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/PulseDrawable.java",
-  "java/src/org/chromium/chrome/browser/widget/PulseInterpolator.java",
-  "java/src/org/chromium/chrome/browser/widget/RadioButtonLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/RadioButtonWithDescription.java",
-  "java/src/org/chromium/chrome/browser/widget/RoundedIconGenerator.java",
-  "java/src/org/chromium/chrome/browser/widget/ScrimView.java",
-  "java/src/org/chromium/chrome/browser/widget/TextViewWithCompoundDrawables.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorage.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailGenerator.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailGeneratorCallback.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailProvider.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailProviderImpl.java",
-  "java/src/org/chromium/chrome/browser/widget/ThumbnailStorageDelegate.java",
-  "java/src/org/chromium/chrome/browser/widget/TintedDrawable.java",
-  "java/src/org/chromium/chrome/browser/widget/ToolbarProgressBar.java",
-  "java/src/org/chromium/chrome/browser/widget/ToolbarProgressBarAnimatingView.java",
-  "java/src/org/chromium/chrome/browser/widget/VerticallyFixedEditText.java",
-  "java/src/org/chromium/chrome/browser/widget/ViewHighlighter.java",
-  "java/src/org/chromium/chrome/browser/widget/ViewResourceFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelAdapter.java",
-  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java",
-  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListView.java",
-  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelWrapper.java",
-  "java/src/org/chromium/chrome/browser/widget/accessibility/AccessibleTextView.java",
-  "java/src/org/chromium/chrome/browser/widget/animation/AnimatorProperties.java",
-  "java/src/org/chromium/chrome/browser/widget/animation/CancelAwareAnimatorListener.java",
-  "java/src/org/chromium/chrome/browser/widget/animation/FocusAnimator.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetMetrics.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserver.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetSwipeDetector.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/EmptyBottomSheetObserver.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/TouchRestrictingFrameLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserver.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/DisplayStyleObserverAdapter.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/HorizontalDisplayStyle.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/UiConfig.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/VerticalDisplayStyle.java",
-  "java/src/org/chromium/chrome/browser/widget/displaystyle/ViewResizer.java",
-  "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java",
-  "java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewWrapper.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarManager.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarObserver.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarPhone.java",
-  "java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarTablet.java",
-  "java/src/org/chromium/chrome/browser/widget/incognitotoggle/IncognitoToggleButton.java",
-  "java/src/org/chromium/chrome/browser/widget/incognitotoggle/IncognitoToggleButtonTablet.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/Completable.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/DropdownFieldAdapter.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditableOption.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorBase.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialogToolbar.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorFieldModel.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorFieldView.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorIconsField.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorLabelField.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorModel.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorObserverForTest.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/EditorTextField.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/ExpandableGridView.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/HintedDropDownAdapter.java",
-  "java/src/org/chromium/chrome/browser/widget/prefeditor/HintedDropDownAdapterWithPlusIcon.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemViewBase.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectableItemViewHolder.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java",
-  "java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java",
-  "java/src/org/chromium/chrome/browser/widget/textbubble/ArrowBubbleDrawable.java",
-  "java/src/org/chromium/chrome/browser/widget/textbubble/ImageTextBubble.java",
-  "java/src/org/chromium/chrome/browser/widget/textbubble/TextBubble.java",
-  "java/src/org/chromium/chrome/browser/widget/tile/TileView.java",
-  "java/src/org/chromium/chrome/browser/widget/tile/TileWithTextView.java",
-]
-
 chrome_java_sources += public_autofill_assistant_java_sources
 
 if (enable_vr) {
@@ -1864,701 +53,10 @@
   ]
 }
 
-chrome_test_java_sources = [
-  "javatests/src/org/chromium/chrome/browser/ActivityTabProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/AudioTest.java",
-  "javatests/src/org/chromium/chrome/browser/BackgroundSyncLauncherTest.java",
-  "javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/ChromeActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/ChromeBackgroundServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/ChromeHttpAuthHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/ContentViewFocusTest.java",
-  "javatests/src/org/chromium/chrome/browser/CopylessPasteTest.java",
-  "javatests/src/org/chromium/chrome/browser/ExampleUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/FeaturesAnnotationsTest.java",
-  "javatests/src/org/chromium/chrome/browser/FocusedEditableTextFieldZoomTest.java",
-  "javatests/src/org/chromium/chrome/browser/HTTPSTabsOpenedFromExternalAppTest.java",
-  "javatests/src/org/chromium/chrome/browser/InstalledAppTest.java",
-  "javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/ItemChooserDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/JavaScriptEvalChromeTest.java",
-  "javatests/src/org/chromium/chrome/browser/MainActivityWithURLTest.java",
-  "javatests/src/org/chromium/chrome/browser/MockSafeBrowsingApiHandler.java",
-  "javatests/src/org/chromium/chrome/browser/NavigateTest.java",
-  "javatests/src/org/chromium/chrome/browser/NavigationBarColorControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java",
-  "javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java",
-  "javatests/src/org/chromium/chrome/browser/PopularUrlsTest.java",
-  "javatests/src/org/chromium/chrome/browser/PopupTest.java",
-  "javatests/src/org/chromium/chrome/browser/PowerBroadcastReceiverTest.java",
-  "javatests/src/org/chromium/chrome/browser/PrerenderTest.java",
-  "javatests/src/org/chromium/chrome/browser/ProcessIsolationTest.java",
-  "javatests/src/org/chromium/chrome/browser/ReachedCodeProfilerTest.java",
-  "javatests/src/org/chromium/chrome/browser/RestoreHistogramTest.java",
-  "javatests/src/org/chromium/chrome/browser/SafeBrowsingTest.java",
-  "javatests/src/org/chromium/chrome/browser/SelectFileDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/ServicificationBackgroundService.java",
-  "javatests/src/org/chromium/chrome/browser/ServicificationBackgroundServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/ShareIntentTest.java",
-  "javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/SubresourceFilterTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabCountLabelTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabThemeTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java",
-  "javatests/src/org/chromium/chrome/browser/TabsTest.java",
-  "javatests/src/org/chromium/chrome/browser/UrlSchemeTest.java",
-  "javatests/src/org/chromium/chrome/browser/UsbChooserDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/VideoFullscreenOrientationLockChromeTest.java",
-  "javatests/src/org/chromium/chrome/browser/WarmupManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/WebShareTest.java",
-  "javatests/src/org/chromium/chrome/browser/accessibility/FontSizePrefsTest.java",
-  "javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java",
-  "javatests/src/org/chromium/chrome/browser/appmenu/DataSaverAppMenuTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/AutofillTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/AutofillTestHelper.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetTabViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AutofillKeyboardAccessoryIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/FakeKeyboard.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetModernViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/banners/AppBannerManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkModelTest.java",
-  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java",
-  "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java",
-  "javatests/src/org/chromium/chrome/browser/browseractions/BrowserActionActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/browserservices/OriginVerifierTest.java",
-  "javatests/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientTest.java",
-  "javatests/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/browsing_data/BrowsingDataRemoverIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelBaseTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelEventFilterTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelManagerWrapper.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/layouts/ChromeAnimationTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockContextForLayout.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutHost.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/layouts/MockResourcesForLayout.java",
-  "javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java",
-  "javatests/src/org/chromium/chrome/browser/contacts_picker/ContactsPickerDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuUiTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/EmptyEnabledStateMonitor.java",
-  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/EnabledStateMonitorTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/FakeContextualSuggestionsSource.java",
-  "javatests/src/org/chromium/chrome/browser/contextual_suggestions/FakeTracker.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateControllerWrapper.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPolicyTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchRequestTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchTapEventTest.java",
-  "javatests/src/org/chromium/chrome/browser/contextualsearch/MockContextualSearchPolicy.java",
-  "javatests/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnableTest.java",
-  "javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/crash/PureJavaExceptionReporterTest.java",
-  "javatests/src/org/chromium/chrome/browser/crypto/CipherFactoryTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/ClientManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityIncognitoTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabExternalNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabFromChromeExternalNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistenceIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabTabPersistencePolicyTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/DetachedResourceRequestTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/RequestThrottlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/TrustedCdnPublisherUrlTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleLoaderTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModulePostMessageTest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/CustomTabsDynamicModuleUITest.java",
-  "javatests/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetricsTest.java",
-  "javatests/src/org/chromium/chrome/browser/datareduction/DataReductionPromoUtilsTest.java",
-  "javatests/src/org/chromium/chrome/browser/datareduction/DataReductionSavingsMilestonePromoTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionStatsPreferenceTest.java",
-  "javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/display_cutout/WebappDisplayCutoutTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/document/LauncherActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/dom_distiller/DistillabilityServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/dom_distiller/DistilledPagePrefsTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/ChromeDownloadDelegateTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadInfoBarControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadLocationChangeTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadManagerServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadMediaParserTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadNotificationServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/download/DownloadUtilsTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/MockDownloadNotificationService.java",
-  "javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/ServicificationDownloadTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/SystemDownloadNotifierTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/TestDownloadDirectoryProvider.java",
-  "javatests/src/org/chromium/chrome/browser/download/home/DownloadActivityV2Test.java",
-  "javatests/src/org/chromium/chrome/browser/download/home/StubbedOfflineContentProvider.java",
-  "javatests/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapterTest.java",
-  "javatests/src/org/chromium/chrome/browser/download/ui/StubbedProvider.java",
-  "javatests/src/org/chromium/chrome/browser/engagement/SiteEngagementServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBridgeExperimentalTest.java",
-  "javatests/src/org/chromium/chrome/browser/explore_sites/ExploreSitesPageTest.java",
-  "javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImplTest.java",
-  "javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/externalnav/IntentWithGesturesHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/externalnav/UrlOverridingTest.java",
-  "javatests/src/org/chromium/chrome/browser/feature_engagement/ScreenshotMonitorTest.java",
-  "javatests/src/org/chromium/chrome/browser/feature_engagement/ScreenshotTabObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTest.java",
-  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.java",
-  "javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivityTestObserver.java",
-  "javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/gcore/MockConnectedTask.java",
-  "javatests/src/org/chromium/chrome/browser/gcore/MockConnectedTaskTest.java",
-  "javatests/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListenerTest.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ChromeTabbedActivityHWATest.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/CustomTabActivityHWATest.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ManifestHWATest.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/ToastHWATest.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/Utils.java",
-  "javatests/src/org/chromium/chrome/browser/hardware_acceleration/WebappActivityHWATest.java",
-  "javatests/src/org/chromium/chrome/browser/history/HistoryActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/history/HistoryAdapterTest.java",
-  "javatests/src/org/chromium/chrome/browser/history/StubbedHistoryProvider.java",
-  "javatests/src/org/chromium/chrome/browser/history/TestBrowsingHistoryObserver.java",
-  "javatests/src/org/chromium/chrome/browser/identity/SettingsSecureBasedIdentificationGeneratorTest.java",
-  "javatests/src/org/chromium/chrome/browser/identity/UniqueIdentificationGeneratorFactoryTest.java",
-  "javatests/src/org/chromium/chrome/browser/identity/UuidBasedUniqueIdentificationGeneratorTest.java",
-  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoDisclosureDialogAppearanceTest.java",
-  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoNotificationServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/incognito/IncognitoTabLauncherTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarAppearanceTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarContainerTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarControlLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/InfoBarTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java",
-  "javatests/src/org/chromium/chrome/browser/infobar/SearchGeolocationDisclosureInfoBarTest.java",
-  "javatests/src/org/chromium/chrome/browser/init/ChainedTasksTest.java",
-  "javatests/src/org/chromium/chrome/browser/init/ChromeBrowserInitializerTest.java",
-  "javatests/src/org/chromium/chrome/browser/input/SelectPopupOtherContentViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/instantapps/InstantAppsHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/interstitials/LookalikeInterstitialTest.java",
-  "javatests/src/org/chromium/chrome/browser/invalidation/ChromeBrowserSyncAdapterTest.java",
-  "javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/invalidation/InvalidationServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptAppModalDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/jsdialog/JavascriptTabModalDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelperTest.java",
-  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelperUtils.java",
-  "javatests/src/org/chromium/chrome/browser/locale/DefaultSearchEnginePromoDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/locale/LocaleManagerReferralTest.java",
-  "javatests/src/org/chromium/chrome/browser/locale/LocaleManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/media/ui/AutoplayMutedNotificationTest.java",
-  "javatests/src/org/chromium/chrome/browser/media/ui/PauseOnHeadsetUnplugTest.java",
-  "javatests/src/org/chromium/chrome/browser/media/ui/PictureInPictureControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetricsIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/metrics/PageLoadMetricsTest.java",
-  "javatests/src/org/chromium/chrome/browser/metrics/StartupLoadingMetricsTest.java",
-  "javatests/src/org/chromium/chrome/browser/metrics/UkmTest.java",
-  "javatests/src/org/chromium/chrome/browser/modaldialog/AppModalPresenterTest.java",
-  "javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/modaldialog/TabModalPresenterTest.java",
-  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowTestHelper.java",
-  "javatests/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtilsTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/ChromeNotificationBuilderTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilderTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationBuilderBaseTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptorTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeIntentTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/NotificationTestUtil.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilderTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/channels/ChannelsInitializerTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/channels/ChannelsUpdaterTest.java",
-  "javatests/src/org/chromium/chrome/browser/notifications/channels/SiteChannelsManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageLoadTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/NtpUiCaptureTestData.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/RecentTabsPageTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/cards/AllDismissedItemTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerViewTest.java",
-  "javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/MHTMLPageTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageAutoFetchTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageRequestTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/RecentTabsTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetectorDelegateStub.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/ConnectivityDetectorTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchConfigurationTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchFeedFlowTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchFlowTest.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/TestOfflinePageService.java",
-  "javatests/src/org/chromium/chrome/browser/offlinepages/prefetch/TestSuggestionsService.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/ExponentialBackoffSchedulerTest.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/MockExponentialBackoffScheduler.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/OmahaBaseTest.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/RequestGeneratorTest.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/StringSanitizerTest.java",
-  "javatests/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelperTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/OmniboxTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/OmniboxUrlEmphasizerTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/UrlBarTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java",
-  "javatests/src/org/chromium/chrome/browser/omnibox/suggestions/VoiceSuggestionProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/page_info/ConnectionInfoPopupTest.java",
-  "javatests/src/org/chromium/chrome/browser/page_info/PageInfoControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/BasePartnerBrowserCustomizationIntegrationTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/BasePartnerBrowserCustomizationUnitTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableBookmarksEditingUnitTest.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableIncognitoModeIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerDisableIncognitoModeUnitTest.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/partnercustomizations/PartnerHomepageUnitTest.java",
-  "javatests/src/org/chromium/chrome/browser/password_manager/PasswordGenerationDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/CurrencyFormatterTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/MockPackageManagerDelegate.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentManifestDownloaderTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentManifestParserTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestAbortTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBillingAddressWithoutPhoneTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestBlobUrlTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentGooglePayTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentMetricsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentQueryNoCardTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCanMakePaymentQueryTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCardEditorAutoAdvanceTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCcCanMakePaymentQueryNoCardTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestCcCanMakePaymentQueryTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsAndFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsSectionUnitTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestContactDetailsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDataUrlTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDebitTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDontHaveDebitTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDynamicShippingMultipleAddressesTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestDynamicShippingSingleAddressTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailAndFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailAndPhoneTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmailTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestEmptyUpdateTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestExpiredLocalCardTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestExtraShippingOptionsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFailCompleteTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFieldTrialTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIdTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteContactDetailsAndFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteContactDetailsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteEmailTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompletePhoneTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestIncompleteServerCardTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestJourneyLoggerTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestLongIdTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMetricsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestMultipleContactDetailsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNameAndFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNameTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNoShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestNoUpdateWithTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndBasicCardWithModifiersTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppAndCardsTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppCanMakePaymentQueryTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppUiSkipPreloadTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppUiSkipTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentAppsSortingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPaymentMethodIdentifierTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneAndFreeShippingTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestRemoveBillingAddressTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestRetryTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestServerCardTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestServiceWorkerPaymentAppTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressAndOptionTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShippingAddressChangeTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestShowTwiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTabTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUpdateWithTest.java",
-  "javatests/src/org/chromium/chrome/browser/payments/PaymentRequestUseStatsTest.java",
-  "javatests/src/org/chromium/chrome/browser/permissions/GeolocationTest.java",
-  "javatests/src/org/chromium/chrome/browser/permissions/MediaTest.java",
-  "javatests/src/org/chromium/chrome/browser/permissions/PermissionNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/permissions/PermissionTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/permissions/QuotaTest.java",
-  "javatests/src/org/chromium/chrome/browser/photo_picker/PhotoPickerDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/policy/CombinedPolicyProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/ContextualSuggestionsPreferenceTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/NotificationsPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/PasswordViewingTypeTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/PreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/autofill_assistant/AutofillAssistantPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/developer/TracingPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataBridgeTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/privacy/BrowsingDataTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerNativeTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/website/PermissionInfoTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferencesTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/website/WebsiteAddressTest.java",
-  "javatests/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcherTest.java",
-  "javatests/src/org/chromium/chrome/browser/prerender/ExternalPrerenderHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/provider/ProviderBookmarkNodeUnitTest.java",
-  "javatests/src/org/chromium/chrome/browser/provider/ProviderBookmarksUriTest.java",
-  "javatests/src/org/chromium/chrome/browser/provider/ProviderSearchesUriTest.java",
-  "javatests/src/org/chromium/chrome/browser/provider/ProviderTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/push_messaging/PushMessagingTest.java",
-  "javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/services/GoogleServicesManagerIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/shape_detection/ShapeDetectionTest.java",
-  "javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/share/ShareUrlTest.java",
-  "javatests/src/org/chromium/chrome/browser/signin/OAuth2TokenServiceIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/signin/OAuth2TokenServiceTest.java",
-  "javatests/src/org/chromium/chrome/browser/signin/SigninHelperTest.java",
-  "javatests/src/org/chromium/chrome/browser/signin/SigninTest.java",
-  "javatests/src/org/chromium/chrome/browser/snackbar/SnackbarTest.java",
-  "javatests/src/org/chromium/chrome/browser/snackbar/undo/UndoBarControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/ssl/CaptivePortalTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetCardsUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetNoTilesUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetTilesUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/HomeSheetUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/NavigationRecorderTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetUiCaptureTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/SuggestionsSheetVisibilityChangeObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/TileGridLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/suggestions/TileGroupTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/AutofillTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/BookmarksTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/FakeProfileSyncService.java",
-  "javatests/src/org/chromium/chrome/browser/sync/FirstRunTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/OpenTabsTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/SyncCustomizationFragmentTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/SyncTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/sync/TypedUrlsTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/UkmTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/ui/PassphraseActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/sync/ui/PassphraseTypeDialogFragmentTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/MockTab.java",
-  "javatests/src/org/chromium/chrome/browser/tab/RepostFormWarningTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/SadTabTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/TabIdManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/TabStateTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/TabTestUtils.java",
-  "javatests/src/org/chromium/chrome/browser/tab/TabUmaTest.java",
-  "javatests/src/org/chromium/chrome/browser/tab/UndoIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/AsyncTabCreationParamsManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreatorTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/ContextMenuLoadUrlParamsTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/DocumentModeAssassinTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModelTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/MultiInstanceMigrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/RestoreMigrateTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelMergingTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserverTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabModelObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorTabObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/TestTabModelDirectory.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/UndoTabModelTest.java",
-  "javatests/src/org/chromium/chrome/browser/tabmodel/document/MockDocumentTabModel.java",
-  "javatests/src/org/chromium/chrome/browser/test/ChromeBrowserTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/test/ClearAppDataTestRule.java",
-  "javatests/src/org/chromium/chrome/browser/test/CommandLineInitRule.java",
-  "javatests/src/org/chromium/chrome/browser/test/ScreenShooter.java",
-  "javatests/src/org/chromium/chrome/browser/toolbar/LocationBarModelTest.java",
-  "javatests/src/org/chromium/chrome/browser/toolbar/ToolbarTest.java",
-  "javatests/src/org/chromium/chrome/browser/toolbar/top/BrandColorTest.java",
-  "javatests/src/org/chromium/chrome/browser/translate/TranslateCompactInfoBarTest.java",
-  "javatests/src/org/chromium/chrome/browser/translate/TranslateOptionsTest.java",
-  "javatests/src/org/chromium/chrome/browser/util/ChromeFileProviderTest.java",
-  "javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java",
-  "javatests/src/org/chromium/chrome/browser/util/HashUtilTest.java",
-  "javatests/src/org/chromium/chrome/browser/util/UrlUtilitiesTest.java",
-  "javatests/src/org/chromium/chrome/browser/video/FullscreenVideoTest.java",
-  "javatests/src/org/chromium/chrome/browser/video/VideoTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/ActivityAssignerTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebApkIntegrationTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappActionsNotificationTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappAuthenticatorTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappDeferredStartupTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappDisplayModeTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappModeTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappNavigationTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenBackgroundColorTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenHomescreenIconTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenIconTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappSplashScreenThemeColorTest.java",
-  "javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java",
-  "javatests/src/org/chromium/chrome/browser/webauth/AuthenticatorTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/DualControlLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/OverviewListLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/PromoDialogTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/RadioButtonLayoutTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/RoundedIconGeneratorTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/ScrimTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/ThumbnailDiskStorageTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/ThumbnailProviderImplTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/ToolbarProgressBarTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/ViewHighlighterTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetObserverTest.java",
-  "javatests/src/org/chromium/chrome/browser/widget/bottomsheet/TestBottomSheetContent.java",
-  "javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java",
-  "javatests/src/org/chromium/chrome/test/crash/IntentionalCrashTest.java",
-  "javatests/src/org/chromium/chrome/test/ui/DisableAnimationsTestRule.java",
-  "javatests/src/org/chromium/chrome/test/ui/DisableNativeTestRule.java",
-  "javatests/src/org/chromium/chrome/test/ui/DummyUiActivity.java",
-  "javatests/src/org/chromium/chrome/test/ui/DummyUiActivityTestCase.java",
-  "javatests/src/org/chromium/chrome/test/ui/LoadNative.java",
-  "javatests/src/org/chromium/chrome/test/util/ChromeSigninUtilsTest.java",
-]
-
 if (notouch_build) {
   chrome_test_java_sources += [ "touchless/javatests/src/org/chromium/chrome/browser/touchless/NoTouchActivityTest.java" ]
 }
 
-chrome_junit_test_java_sources = [
-  "junit/src/org/chromium/chrome/browser/AppIndexingUtilTest.java",
-  "junit/src/org/chromium/chrome/browser/BitmapCacheTest.java",
-  "junit/src/org/chromium/chrome/browser/ChromeActionModeCallbackTest.java",
-  "junit/src/org/chromium/chrome/browser/ChromeBackupAgentTest.java",
-  "junit/src/org/chromium/chrome/browser/DelayedScreenLockIntentHandlerTest.java",
-  "junit/src/org/chromium/chrome/browser/InsetObserverViewTest.java",
-  "junit/src/org/chromium/chrome/browser/IntentHeadersRecorderTest.java",
-  "junit/src/org/chromium/chrome/browser/ShadowDeviceConditions.java",
-  "junit/src/org/chromium/chrome/browser/ShortcutHelperTest.java",
-  "junit/src/org/chromium/chrome/browser/SSLClientCertificateRequestTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/AutofillUiUtilsTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryTabLayoutControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessorySheetControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskSchedulerTest.java",
-  "junit/src/org/chromium/chrome/browser/background_sync/BackgroundSyncBackgroundTaskTest.java",
-  "junit/src/org/chromium/chrome/browser/background_task_scheduler/NativeBackgroundTaskTest.java",
-  "junit/src/org/chromium/chrome/browser/browseractions/BrowserActionsIntentTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/ClearDataDialogResultRecorderTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/ClientAppBroadcastReceiverTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/ClientAppDataRegisterTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/OriginTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/TrustedWebActivityClientTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/ClientAppDataRecorderTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityDisclosureControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityOpenTimeRecorderTest.java",
-  "junit/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/controller/TrustedWebActivityVerifierTest.java",
-  "junit/src/org/chromium/chrome/browser/cached_image_fetcher/CachedImageFetcherImplTest.java",
-  "junit/src/org/chromium/chrome/browser/contextual_suggestions/ContextualSuggestionsSourceImplTest.java",
-  "junit/src/org/chromium/chrome/browser/cached_image_fetcher/InMemoryCachedImageFetcherTest.java",
-  "junit/src/org/chromium/chrome/browser/compositor/CompositorSurfaceManagerImplTest.java",
-  "junit/src/org/chromium/chrome/browser/compositor/EventOffsetHandlerTest.java",
-  "junit/src/org/chromium/chrome/browser/compositor/animation/CompositorAnimatorTest.java",
-  "junit/src/org/chromium/chrome/browser/compositor/layouts/CompositorAnimationHandlerTest.java",
-  "junit/src/org/chromium/chrome/browser/compositor/layouts/MockLayoutUpdateHost.java",
-  "junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperTest.java",
-  "junit/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulatorTest.java",
-  "junit/src/org/chromium/chrome/browser/contextual_suggestions/FetchHelperTest.java",
-  "junit/src/org/chromium/chrome/browser/contextual_suggestions/GoogleSearchRestrictionTest.java",
-  "junit/src/org/chromium/chrome/browser/contextual_suggestions/PageViewTimerTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContextForTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchContextTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchEntityHeuristicTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchInternalStateTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchSelectionControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/contextualsearch/SelectionClientManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/cookies/CanonicalCookieTest.java",
-  "junit/src/org/chromium/chrome/browser/crash/LogcatExtractionRunnableUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/customtabs/CloseButtonNavigatorTest.java",
-  "junit/src/org/chromium/chrome/browser/customtabs/NavigationInfoCaptureTriggerTest.java",
-  "junit/src/org/chromium/chrome/browser/customtabs/content/CustomTabActivityTabControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/display_cutout/DisplayCutoutControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/download/DownloadResumptionSchedulerTest.java",
-  "junit/src/org/chromium/chrome/browser/download/DownloadSharedPreferenceEntryTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/DeleteUndoOfflineItemFilterTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/FiltersTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/OffTheRecordOfflineItemFilterTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/OfflineItemFilterTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/SearchOfflineItemFilterTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/filter/TypeOfflineItemFilterTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/glue/FileDeletionQueueTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/list/DateOrderedListMutatorTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/list/ItemUtilsTest.java",
-  "junit/src/org/chromium/chrome/browser/download/home/list/ShareUtilsTest.java",
-  "junit/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorNotificationBridgeUiTest.java",
-  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesBackgroundTaskUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesCategoryUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/explore_sites/ExploreSitesSectionUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtilsTest.java",
-  "junit/src/org/chromium/chrome/browser/feedback/FeedbackCollectorTest.java",
-  "junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java",
-  "junit/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/firstrun/ToSAckedReceiverTest.java",
-  "junit/src/org/chromium/chrome/browser/fullscreen/BrowserStateBrowserControlsVisibilityDelegateTest.java",
-  "junit/src/org/chromium/chrome/browser/fullscreen/TokenHolderTest.java",
-  "junit/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelperTest.java",
-  "junit/src/org/chromium/chrome/browser/incognito/IncognitoTabSnapshotControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/infobar/IPHInfoBarSupportTest.java",
-  "junit/src/org/chromium/chrome/browser/init/AsyncInitTaskRunnerTest.java",
-  "junit/src/org/chromium/chrome/browser/installedapp/InstalledAppProviderTest.java",
-  "junit/src/org/chromium/chrome/browser/installedapp/PackageHashTest.java",
-  "junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/invalidation/ResumableDelayedTaskRunnerTest.java",
-  "junit/src/org/chromium/chrome/browser/invalidation/SessionsInvalidationManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaImageManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationActionsUpdatedTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationButtonComputationTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationFaviconTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerNotificationTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerServiceActionsTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerServiceLifecycleTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerTestBase.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationManagerThrottlerTest.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTestShadowResources.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTestTabHolder.java",
-  "junit/src/org/chromium/chrome/browser/media/ui/MediaNotificationTitleUpdatedTest.java",
-  "junit/src/org/chromium/chrome/browser/metrics/VariationsSessionTest.java",
-  "junit/src/org/chromium/chrome/browser/native_page/NativePageFactoryTest.java",
-  "junit/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridgeUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/notifications/NotificationSystemStatusUtilUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/notifications/channels/ChannelDefinitionsTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/TitleUtilTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/ContentSuggestionsUnitTestUtils.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/SectionListTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsCategoryInfoTest.java",
-  "junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/BackgroundSchedulerTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/CctOfflinePageModelObserverTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/ClientIdTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/OfflineBackgroundTaskTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageOriginUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtilsUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/prefetch/OfflineNotificationBackgroundTaskUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/offlinepages/prefetch/PrefetchBackgroundTaskUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omaha/ResponseParserTest.java",
-  "junit/src/org/chromium/chrome/browser/omaha/UpdateStatusProviderTest.java",
-  "junit/src/org/chromium/chrome/browser/omaha/VersionNumberTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/AutocompleteEditTextTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/AutocompleteStateUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/KeyboardHideHelperUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/SpannableAutocompleteEditTextModelUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/UrlBarMediatorUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/geo/PlatformNetworksManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTest.java",
-  "junit/src/org/chromium/chrome/browser/omnibox/geo/VisibleNetworksTrackerTest.java",
-  "junit/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilderUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksFaviconThrottleTest.java",
-  "junit/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizationsUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/payments/AndroidPaymentAppFinderUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/payments/AutofillContactTest.java",
-  "junit/src/org/chromium/chrome/browser/payments/AutofillContactUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/DialogManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/EnsureAsyncPostingRule.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/ExportWarningDialogFragmentTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/PasswordReauthenticationFragmentTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/ReauthenticationManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/SingleThreadBarrierClosureTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/password/TimedCallbackDelayerTest.java",
-  "junit/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridgeTest.java",
-  "junit/src/org/chromium/chrome/browser/signin/SigninManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/signin/SigninPromoUtilTest.java",
-  "junit/src/org/chromium/chrome/browser/snackbar/SnackbarCollectionUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/suggestions/ImageFetcherTest.java",
-  "junit/src/org/chromium/chrome/browser/suggestions/TileGroupUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/survey/ChromeSurveyControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/tab/TabAttributesTest.java",
-  "junit/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/tabstate/TabStateUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java",
-  "junit/src/org/chromium/chrome/browser/usage_stats/EventTrackerTest.java",
-  "junit/src/org/chromium/chrome/browser/usage_stats/PageViewObserverTest.java",
-  "junit/src/org/chromium/chrome/browser/util/UrlUtilitiesUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/util/test/ShadowUrlUtilities.java",
-  "junit/src/org/chromium/chrome/browser/webapps/MockWebappDataStorageClockRule.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebApkInfoTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebApkShareTargetUtilTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappDirectoryManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappDisclosureSnackbarControllerTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappLauncherActivityTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappInfoTest.java",
-  "junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java",
-  "junit/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetSwipeDetectorTest.java",
-  "junit/src/org/chromium/chrome/browser/widget/selection/SelectionDelegateTest.java",
-]
-
 # Only used for testing, should not be shipped to end users.
 if (enable_offline_pages_harness) {
   chrome_java_sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
diff --git a/chrome/android/trichrome.gni b/chrome/android/trichrome.gni
index 5d51e08..1a3841d 100644
--- a/chrome/android/trichrome.gni
+++ b/chrome/android/trichrome.gni
@@ -58,6 +58,7 @@
     uncompress_dex = use_uncompressed_dex
     version_name = chrome_version_name
     version_code = trichrome_version_code
+    min_sdk_version = 28
 
     # TODO(torne): using system_webview_resources just to get a temporary icon
     deps = [
diff --git a/chrome/app/chrome_content_browser_overlay_manifest.cc b/chrome/app/chrome_content_browser_overlay_manifest.cc
index a6e2342..356b529 100644
--- a/chrome/app/chrome_content_browser_overlay_manifest.cc
+++ b/chrome/app/chrome_content_browser_overlay_manifest.cc
@@ -62,6 +62,7 @@
 #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
 #include "media/capture/video/chromeos/mojo/cros_image_capture.mojom.h"
 #include "services/ws/common/switches.h"
+#include "services/ws/public/mojom/constants.mojom.h"
 #include "ui/accessibility/mojom/ax_host.mojom.h"  // nogncheck
 #if BUILDFLAG(ENABLE_CROS_ASSISTANT)
 #include "chromeos/services/assistant/public/cpp/manifest.h"  // nogncheck
@@ -187,6 +188,9 @@
 #if defined(OS_CHROMEOS)
             .RequireCapability(shortcut_viewer::mojom::kServiceName,
                                shortcut_viewer::mojom::kToggleUiCapability)
+            // This is required for remoting, which runs in the browser and
+            // injects events.
+            .RequireCapability(ws::mojom::kServiceName, "privileged")
             .RequireCapability(tap_visualizer::mojom::kServiceName,
                                tap_visualizer::mojom::kShowUiCapability)
             .ExposeInterfaceFilterCapability_Deprecated(
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 7b685ef..0419f9c57 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -182,7 +182,7 @@
 <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation>
 <translation id="6863361426438995919">Google Pay (Chromiumకి కాపీ చేయబడింది)</translation>
 <translation id="6893813176749746474">Chromium నవీకరించబడింది, కానీ మీరు దీన్ని గత 30 రోజులుగా ఉపయోగించలేదు.</translation>
-<translation id="6964305034639999644">Chromium అజ్ఞా&amp;త విండోలో లింక్‌ని తెరువు</translation>
+<translation id="6964305034639999644">Chromium అజ్ఞా&amp;త విండోలో లింక్‌ను తెరువు</translation>
 <translation id="6970811910055250180">మీ పరికరాన్ని అప్‌డేట్ చేస్తోంది...</translation>
 <translation id="6990124437352146030">ఈ సైట్ కోసం మీ మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromiumకు అనుమతి అవసరం</translation>
 <translation id="705851970750939768">Chromiumను అప్‌డేట్ చేయి</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index fbbcd32b..b275e810 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">এই সাইটটি নিজে থেকে একাধিক ফাইল ডাউনলোড করেছে</translation>
 <translation id="3046910703532196514">ওয়েবপৃষ্ঠা, সম্পন্ন</translation>
 <translation id="304747341537320566">ভাষ্য ইঞ্জিন</translation>
+<translation id="3047644958362961983">এই তথ্য আপনার অ্যাসিস্ট্যান্ট সংক্রান্ত সমস্যাগুলি আমাদের আরও ভাল করে বুঝতে সাহায্য করে। এটি ৯০ দিন পর্যন্ত স্টোর করা থাকে এবং অ্যাক্সেস উপযুক্ত ইঞ্জিনিয়ারিং এবং মতামত টিমগুলির মধ্যে সীমাবদ্ধ থাকে।</translation>
 <translation id="3053013834507634016">সার্টিফিকেট কী ব্যবহার</translation>
 <translation id="3058498974290601450">যেকোনও সময় সেটিংস থেকে আপনি সিঙ্ক চালু করতে পারেন</translation>
 <translation id="3060379269883947824">'বাছুন ও শুনুন' চালু করুন</translation>
@@ -1519,6 +1520,7 @@
 <translation id="3440663250074896476"><ph name="BOOKMARK_NAME" /> এর জন্য আরও অ্যাকশন</translation>
 <translation id="3440761377721825626">আপনার কম্পিউটার অ্যাক্সেস করার জন্য যখন কোনো সাইট কোনো প্ল্যাগ ইন ব্যবহার করতে চায় তখন জিজ্ঞাসা করবেন</translation>
 <translation id="3441653493275994384">বাছাই করুন</translation>
+<translation id="3442151986393356303">Sherlog-এর মাধ্যমে অ্যাসিস্ট্যান্টের সাম্প্রতিক ইতিহাস যোগ করুন। এর মধ্যে আপনার পরিচয়, লোকেশন এবং ডিবাগ সংক্রান্ত তথ্য থাকতে পারে <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">USB-C ডিভাইস</translation>
 <translation id="344630545793878684">কতগুলি ওয়েবসাইটে আপনার ডেটা পড়ে</translation>
 <translation id="3449839693241009168"><ph name="SEARCH_KEY" />তে আদেশগুলি প্রেরণ করতে <ph name="EXTENSION_NAME" /> টি টিপুন</translation>
@@ -3539,6 +3541,7 @@
 <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="6676212663108450937">আপনার ভয়েস ট্রেনিং করার সময় হেডফোন ব্যবহার করুন</translation>
 <translation id="6678717876183468697">কুয়েরি URL</translation>
 <translation id="6680442031740878064">খালি জায়গা: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">দ্রুততা</translation>
@@ -4220,6 +4223,7 @@
 <translation id="7788383851298063850">কী ঘটছে তা আমাদের বলুন</translation>
 <translation id="7788444488075094252">ভাষা এবং ইনপুট</translation>
 <translation id="7788668840732459509">লোকেশন:</translation>
+<translation id="7789963078219276159">স্টার্ট পেজের ব্যাকগ্রাউন্ড পরিবর্তন করে <ph name="CATEGORY" /> করা হয়েছে।</translation>
 <translation id="7791543448312431591">জুড়ুন</translation>
 <translation id="7792012425874949788">প্রবেশ করার সময় কিছু সমস্যা হয়েছে</translation>
 <translation id="7792388396321542707">শেয়ার করা বন্ধ করুন</translation>
@@ -4853,6 +4857,7 @@
 <translation id="8767621466733104912">সকল ব্যবহারকারীর জন্য স্বয়ংক্রিয়ভাবে Chrome আপডেট করুন</translation>
 <translation id="8770406935328356739">এক্সটেনশান রুট ডিরেক্টরি</translation>
 <translation id="8770507190024617908">ব্যক্তিগণকে পরিচালনা করুন</translation>
+<translation id="8771300903067484968">স্টার্ট পেজের ব্যাকগ্রাউন্ড ডিফল্ট ব্যাকগ্রাউন্ডে রিসেট করা হয়েছে।</translation>
 <translation id="8774934320277480003">শীর্ষ মার্জিন</translation>
 <translation id="8775144690796719618">অবৈধ URL</translation>
 <translation id="8777628254805677039">রুট পাসওয়ার্ড</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 72e6da16..805967de 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">Awtomatikong nag-download ng maraming file ang site na ito</translation>
 <translation id="3046910703532196514">Webpage, Kumpleto</translation>
 <translation id="304747341537320566">Mga Engine sa Pagsasalita</translation>
+<translation id="3047644958362961983">Makakatulong sa amin ang impormasyong ito na maunawaan nang mas mabuti ang iyong isyu sa Assistant. Iso-store ito sa loob ng hanggang 90 araw at paghihigpitan ang access sa mga naaangkop na team ng engineering at feedback.</translation>
 <translation id="3053013834507634016">Paggamit ng Certificate Key </translation>
 <translation id="3058498974290601450">Maaari mong i-on ang pag-sync anumang oras sa mga setting.</translation>
 <translation id="3060379269883947824">I-enable ang Select to Speak</translation>
@@ -1522,6 +1523,7 @@
 <translation id="3440663250074896476">Higit pang aksyon para sa <ph name="BOOKMARK_NAME" /></translation>
 <translation id="3440761377721825626">Magtanong kapag gusto ng isang site na gumamit ng plugin upang i-access ang iyong computer</translation>
 <translation id="3441653493275994384">Screen</translation>
+<translation id="3442151986393356303">Isama ang kamakailang history ng Assistant sa pamamagitan ng Sherlog. Puwedeng kasama rito ang iyong pagkakakilanlan, lokasyon, at impormasyon sa pag-debug <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">USB-C device</translation>
 <translation id="344630545793878684">Basahin ang iyong data sa ilang website</translation>
 <translation id="3449839693241009168">Pindutin ang <ph name="SEARCH_KEY" /> upang magpadala ng mga command sa <ph name="EXTENSION_NAME" /></translation>
@@ -3541,6 +3543,7 @@
 <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="6676212663108450937">Pag-isipang gumamit ng headphones habang sinasanay ang iyong boses</translation>
 <translation id="6678717876183468697">URL ng Query</translation>
 <translation id="6680442031740878064">Available: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">I-rate</translation>
@@ -4223,6 +4226,7 @@
 <translation id="7788383851298063850">Sabihin sa amin kung ano ang nangyayari</translation>
 <translation id="7788444488075094252">Mga wika at input</translation>
 <translation id="7788668840732459509">Posisyon:</translation>
+<translation id="7789963078219276159">Napalitan ng <ph name="CATEGORY" /> ang background ng start page.</translation>
 <translation id="7791543448312431591">Magdagdag</translation>
 <translation id="7792012425874949788">Nagkaproblema sa pag-sign in</translation>
 <translation id="7792388396321542707">Ihinto ang pagbabahagi</translation>
@@ -4857,6 +4861,7 @@
 <translation id="8767621466733104912">Awtomatikong i-update ang Chrome para sa lahat ng user</translation>
 <translation id="8770406935328356739">Root directory ng extension</translation>
 <translation id="8770507190024617908">Pamahalaan ang Mga Tao</translation>
+<translation id="8771300903067484968">Na-reset sa default na background ang background ng start page.</translation>
 <translation id="8774934320277480003">Tuktok na margin</translation>
 <translation id="8775144690796719618">Di-wastong URL</translation>
 <translation id="8777628254805677039">root password</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 34583497..9e164974 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1273,6 +1273,7 @@
 <translation id="3016780570757425217">તમારું સ્થાન જાણો</translation>
 <translation id="3020183492814296499">શૉર્ટકટ</translation>
 <translation id="3020990233660977256">સીરિયલ નંબર: <ph name="SERIAL_NUMBER" /></translation>
+<translation id="3021066826692793094">પતંગિયું</translation>
 <translation id="3021678814754966447">ફ્રેમ સ્રોત &amp;જુઓ</translation>
 <translation id="3022978424994383087">તે મળ્યો નથી.</translation>
 <translation id="3023464535986383522">સાંભળવા માટે પસંદ કરો</translation>
@@ -2274,6 +2275,7 @@
 <translation id="4663373278480897665">કૅમેરાને મંજૂરી</translation>
 <translation id="4664482161435122549">PKCS #12 નિકાસ ભૂલ</translation>
 <translation id="4665014895760275686">નિર્માતા</translation>
+<translation id="4665446389743427678"><ph name="SITE" />નો સ્ટોર કરેલો બધો ડેટા ડિલીટ કરવામાં આવશે.</translation>
 <translation id="4668721319092543482"><ph name="PLUGIN_NAME" />ને ચાલુ કરવા માટે ક્લિક કરો</translation>
 <translation id="4672657274720418656">Distill પૃષ્ઠ</translation>
 <translation id="4673442866648850031">જ્યારે સ્ટાઇલસ દૂર કરવામાં આવ્યું હોય ત્યારે સ્ટાઇલસનાં સાધનો ખોલો</translation>
@@ -2434,6 +2436,7 @@
 <translation id="4917385247580444890">સશક્ત</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> એ એક્સ્ટેન્શન "<ph name="EXTENSION_NAME" />" સાથે વાર્તાલાપ કરવા માંગે છે</translation>
 <translation id="4918086044614829423">સ્વીકારો</translation>
+<translation id="4918221908152712722"><ph name="APP_NAME" />ને ઇન્સ્ટૉલ કરો (કોઈ ડાઉનલોડ આવશ્યક નથી)</translation>
 <translation id="4920887663447894854">નીચેની સાઇટ્સને આ પૃષ્ઠ પર તમારા સ્થાનને ટ્રેક કરવાથી અવરોધિત કરી છે:</translation>
 <translation id="4922897038695506037"><ph name="URL_HOST" /> એ અતિરિક્ત પરવાનગીઓની વિનંતી કરી છે.</translation>
 <translation id="492299503953721473">Android ઍપ્લિકેશનો દૂર કરો</translation>
@@ -4873,6 +4876,7 @@
 <translation id="8803953437405899238">એક નવી ટૅબ એક ક્લિકમાં ખોલો</translation>
 <translation id="8804398419035066391">સહયોગ કરતી વેબસાઇટ્સ સાથે સંચાર કરો</translation>
 <translation id="8805140816472474147">સમન્વયન શરૂ કરવા સમન્વયન સેટિંગ્સની પુષ્ટિ કરો.</translation>
+<translation id="8806680466228877631">આકસ્મિક રીતે બંધ થયેલા ટૅબને <ph name="SHORTCUT" /> ફરી ખોલી શકે છે</translation>
 <translation id="8807632654848257479">ઘોડાર</translation>
 <translation id="8808478386290700967">વેબ બજાર</translation>
 <translation id="8808686172382650546">બિલાડી</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index e8d4a68..4859ea1 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">Situs ini mendownload beberapa file secara otomatis</translation>
 <translation id="3046910703532196514">Halaman Web, Lengkap</translation>
 <translation id="304747341537320566">Mesin Ucapan</translation>
+<translation id="3047644958362961983">Informasi ini membantu kami memahami masalah Asisten dengan lebih baik. Informasi tersebut disimpan selama 90 hari dan hanya dapat diakses oleh tim teknis dan masukan yang terkait.</translation>
 <translation id="3053013834507634016">Penggunaan Kunci Sertifikat</translation>
 <translation id="3058498974290601450">Anda dapat mengaktifkan sinkronisasi kapan saja di setelan</translation>
 <translation id="3060379269883947824">Aktifkan fitur klik untuk diucapkan</translation>
@@ -1520,6 +1521,7 @@
 <translation id="3440663250074896476">Tindakan lainnya untuk <ph name="BOOKMARK_NAME" /></translation>
 <translation id="3440761377721825626">Tanyakan saat situs ingin menggunakan plugin untuk mengakses komputer</translation>
 <translation id="3441653493275994384">Layar</translation>
+<translation id="3442151986393356303">Sertakan histori Asisten terbaru melalui Sherlog. Histori dapat mencakup identitas, lokasi, dan info debug <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">Perangkat USB-C</translation>
 <translation id="344630545793878684">Membaca data Anda di sejumlah situs</translation>
 <translation id="3449839693241009168">Tekan <ph name="SEARCH_KEY" /> untuk mengirimkan perintah ke <ph name="EXTENSION_NAME" /></translation>
@@ -3539,6 +3541,7 @@
 <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="6676212663108450937">Pertimbangkan untuk menggunakan headphone saat melatih suara Anda</translation>
 <translation id="6678717876183468697">URL Kueri</translation>
 <translation id="6680442031740878064">Tersedia: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Beri nilai</translation>
@@ -4221,6 +4224,7 @@
 <translation id="7788383851298063850">Beri tahu kami apa yang terjadi</translation>
 <translation id="7788444488075094252">Bahasa dan masukan</translation>
 <translation id="7788668840732459509">Posisi:</translation>
+<translation id="7789963078219276159">Latar belakang halaman awal telah diubah menjadi <ph name="CATEGORY" />.</translation>
 <translation id="7791543448312431591">Tambahkan</translation>
 <translation id="7792012425874949788">Ada yang tidak beres dengan proses masuk</translation>
 <translation id="7792388396321542707">Hentikan berbagi</translation>
@@ -4854,6 +4858,7 @@
 <translation id="8767621466733104912">Update Chrome secara otomatis untuk semua pengguna</translation>
 <translation id="8770406935328356739">Direktori akar ekstensi</translation>
 <translation id="8770507190024617908">Kelola Orang</translation>
+<translation id="8771300903067484968">Latar belakang halaman awal telah disetel ulang ke latar belakang default.</translation>
 <translation id="8774934320277480003">Batas atas</translation>
 <translation id="8775144690796719618">URL tidak valid</translation>
 <translation id="8777628254805677039">sandi akar</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 15ffcea..f4e1496 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -1277,6 +1277,7 @@
 <translation id="3016780570757425217">ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ</translation>
 <translation id="3020183492814296499">ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು</translation>
 <translation id="3020990233660977256">ಕ್ರಮ ಸಂಖ್ಯೆ: <ph name="SERIAL_NUMBER" /></translation>
+<translation id="3021066826692793094">ಚಿಟ್ಟೆ</translation>
 <translation id="3021678814754966447">ಫ್ರೇಮ್ ಮೂಲವನ್ನು &amp;ವೀಕ್ಷಿಸಿ</translation>
 <translation id="3022978424994383087">ಅದು ಅರ್ಥವಾಗಲಿಲ್ಲ.</translation>
 <translation id="3023464535986383522">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ</translation>
@@ -1293,6 +1294,7 @@
 <translation id="3045447014237878114">ಈ ಸೈಟ್‌ ಬಹು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿದೆ</translation>
 <translation id="3046910703532196514">ವೆಬ್‌ಪುಟ, ಪೂರ್ಣಗೊಳಿಸಿ</translation>
 <translation id="304747341537320566">ಧ್ವನಿ ಎಂಜಿನ್‌ಗಳು</translation>
+<translation id="3047644958362961983">ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್ ಸಮಸ್ಯೆಯನ್ನು ಇನ್ನಷ್ಟು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಈ ಮಾಹಿತಿ ನಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇದನ್ನು 90 ದಿನಗಳವರೆಗೆ ಸಂಗ್ರಹಣೆ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಸೂಕ್ತ ಇಂಜಿನಿಯರಿಂಗ್ ಹಾಗೂ ಪ್ರತಿಕ್ರಿಯೆ ತಂಡಗಳಿಗೆ ಮಾತ್ರ ಇದಕ್ಕೆ ಪ್ರವೇಶಿಸಲು ಅವಕಾಶ ನೀಡಲಾಗುತ್ತದೆ.</translation>
 <translation id="3053013834507634016">ಪ್ರಮಾಣಪತ್ರ ಕೀಲಿ ಬಳಕೆ</translation>
 <translation id="3058498974290601450">ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ಸಿಂಕ್ ಆನ್ ಮಾಡಬಹುದು</translation>
 <translation id="3060379269883947824">ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಆಲಿಸಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
@@ -1521,6 +1523,7 @@
 <translation id="3440663250074896476"><ph name="BOOKMARK_NAME" /> ಗಾಗಿ ಇನ್ನಷ್ಟು ಕ್ರಿಯೆಗಳು</translation>
 <translation id="3440761377721825626">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಪ್ರವೇಶಿಸಲು ಸೈಟ್ ಪ್ಲಗ್ ಇನ್ ಬಳಸಲು ಬಯಸಿದಾಗ ಕೇಳಿ</translation>
 <translation id="3441653493275994384">ಸ್ಕ್ರೀನ್‌</translation>
+<translation id="3442151986393356303">Sherlog ಮೂಲಕ ಇತ್ತೀಚಿನ ಅಸಿಸ್ಟೆಂಟ್ ಇತಿಹಾಸವನ್ನು ಸೇರಿಸಿ. ಇದು ನಿಮ್ಮ ಗುರುತು, ಸ್ಥಳ ಮತ್ತು ಡೀಬಗ್ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">USB-C ಸಾಧನ</translation>
 <translation id="344630545793878684">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಹಲವಾರು ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿ ಓದಿ</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" /> ಗೆ ಆದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು <ph name="SEARCH_KEY" /> ಒತ್ತಿರಿ</translation>
@@ -2276,6 +2279,7 @@
 <translation id="4663373278480897665">ಕ್ಯಾಮೆರಾಗೆ ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="4664482161435122549">PKCS #12 ರಫ್ತು ದೋಷ</translation>
 <translation id="4665014895760275686">ತಯಾರಕರು</translation>
+<translation id="4665446389743427678"><ph name="SITE" /> ವೆಬ್‌ಸೈಟ್‌ ಮೂಲಕ ಸಂಗ್ರಹಣೆ ಮಾಡಲಾದ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುವುದು.</translation>
 <translation id="4668721319092543482"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="4672657274720418656">ಪುಟವನ್ನು ಶೋಧಿಸು</translation>
 <translation id="4673442866648850031">ಸ್ಟೈಲಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿದಾಗ ಸ್ಟೈಲಸ್ ಪರಿಕರಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -2437,6 +2441,7 @@
 <translation id="4917385247580444890">ಪ್ರಬಲ</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ಅವರು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯ ಜೊತೆಗೆ ಸಂವಹಿಸಲು ಬಯಸುತ್ತಾರೆ</translation>
 <translation id="4918086044614829423">ಸಮ್ಮತಿಸು</translation>
+<translation id="4918221908152712722"><ph name="APP_NAME" /> ಆ್ಯಪ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಿ (ಡೌನ್‌ಲೋಡ್‌ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ)</translation>
 <translation id="4920887663447894854">ಈ ಪುಟದಲ್ಲಿ ನಿಮ್ಮ ಸ್ಥಾನವನ್ನು ನಿಗಾ ಇರಿಸದಂತೆ ಮುಂದಿನ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ:</translation>
 <translation id="4922897038695506037"><ph name="URL_HOST" /> ಹೆಚ್ಚುವರಿ ಅನುಮತಿಗಳನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ.</translation>
 <translation id="492299503953721473">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕು</translation>
@@ -3540,6 +3545,7 @@
 <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="6676212663108450937">ನಿಮ್ಮ ಧ್ವನಿಗೆ ತರಬೇತಿ ನೀಡುವಾಗ, ಹೆಡ್‌ಫೋನ್‌ಗಳನ್ನು ಬಳಸುವುದನ್ನು ಪರಿಗಣಿಸಿ</translation>
 <translation id="6678717876183468697">ಕ್ವೆರಿ URL</translation>
 <translation id="6680442031740878064">ಲಭ್ಯವಿದೆ: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">ದರ</translation>
@@ -4223,6 +4229,7 @@
 <translation id="7788383851298063850">ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನಮಗೆ ತಿಳಿಸಿ</translation>
 <translation id="7788444488075094252">ಭಾಷೆಗಳು ಮತ್ತು ಇನ್‌ಪುಟ್</translation>
 <translation id="7788668840732459509">ಸ್ಥಳ:</translation>
+<translation id="7789963078219276159">ಆರಂಭಿಕ ಪುಟದ ಹಿನ್ನೆಲೆಯನ್ನು <ph name="CATEGORY" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
 <translation id="7791543448312431591">ಸೇರಿಸು</translation>
 <translation id="7792012425874949788">ಸೈನ್ ಇನ್ ಮಾಡುವುದರೊಂದಿಗೆ ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ</translation>
 <translation id="7792388396321542707">ಹಂಚಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಿ</translation>
@@ -4857,6 +4864,7 @@
 <translation id="8767621466733104912">ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ Chrome ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ</translation>
 <translation id="8770406935328356739">ವಿಸ್ತರಣೆ ಮೂಲ ಡೈರೆಕ್ಟರಿ</translation>
 <translation id="8770507190024617908">ಜನರನ್ನು ನಿರ್ವಹಿಸು</translation>
+<translation id="8771300903067484968">ಆರಂಭಿಕ ಪುಟದ ಹಿನ್ನೆಲೆಯನ್ನು ಡೀಫಾಲ್ಟ್ ಹಿನ್ನೆಲೆಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
 <translation id="8774934320277480003">ಮೇಲಿನ ಅಂಚು</translation>
 <translation id="8775144690796719618">ಅಮಾನ್ಯ URL</translation>
 <translation id="8777628254805677039">ಮೂಲ ಪಾಸ್‌ವರ್ಡ್</translation>
@@ -4880,6 +4888,7 @@
 <translation id="8803953437405899238">ಒಂದೇ ಕ್ಲಿಕ್‌ ಮಾಡುವ ಮೂಲಕ ಹೊಸ ಟ್ಯಾಬ್‌ ತೆರೆಯಿರಿ</translation>
 <translation id="8804398419035066391">ಸಹಕಾರಿ ವೆಬ್‌ಸೈಟ್‌ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation>
 <translation id="8805140816472474147">ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು, ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಖಚಿತಪಡಿಸಿ.</translation>
+<translation id="8806680466228877631"><ph name="SHORTCUT" /> ಬಳಸಿಕೊಂಡು ಆಕಸ್ಮಿಕವಾಗಿ ಮುಚ್ಚಲಾದ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪುನಃ ತೆರೆಯಬಹುದು</translation>
 <translation id="8807632654848257479">ಸ್ಥಿರ</translation>
 <translation id="8808478386290700967">ವೆಬ್‌ ಸ್ಟೋರ್‌</translation>
 <translation id="8808686172382650546">ಬೆಕ್ಕು</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 47d1a14..e01b155 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -2270,7 +2270,7 @@
 <translation id="4663373278480897665">Kameraet er tillatt</translation>
 <translation id="4664482161435122549">Eksportfeil for PKCS #12</translation>
 <translation id="4665014895760275686">Produsent</translation>
-<translation id="4665446389743427678">Alle data som lagres av <ph name="SITE" /> blir slettet.</translation>
+<translation id="4665446389743427678">Alle data som lagres av <ph name="SITE" />, blir slettet.</translation>
 <translation id="4668721319092543482">Klikk for å slå på <ph name="PLUGIN_NAME" /></translation>
 <translation id="4672657274720418656">Destiller siden</translation>
 <translation id="4673442866648850031">Åpne pekepennverktøyene når pekepennen fjernes</translation>
@@ -4870,7 +4870,7 @@
 <translation id="8803953437405899238">Åpne en ny fane med ett klikk</translation>
 <translation id="8804398419035066391">kommunisere med samarbeidende nettsteder</translation>
 <translation id="8805140816472474147">Bekreft synkroniseringsinnstillingene for å starte synkroniseringen.</translation>
-<translation id="8806680466228877631"><ph name="SHORTCUT" /> kan gjenåpne faner som ble lukket ved et uhell</translation>
+<translation id="8806680466228877631"><ph name="SHORTCUT" /> kan gjenåpne faner som er lukket ved et uhell</translation>
 <translation id="8807632654848257479">Stabil</translation>
 <translation id="8808478386290700967">Nettmarked</translation>
 <translation id="8808686172382650546">Katt</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 35b5817..3a097db4 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">Este site transferiu vários ficheiros automaticamente</translation>
 <translation id="3046910703532196514">Página Web, Completa</translation>
 <translation id="304747341537320566">Motores de voz</translation>
+<translation id="3047644958362961983">Estas informações ajudam-nos a compreender melhor o seu problema com o Assistente. Ficam armazenadas durante um máximo de 90 dias e o acesso está restrito às equipas relevantes de engenharia e comentários.</translation>
 <translation id="3053013834507634016">Utilização de chave de certificado</translation>
 <translation id="3058498974290601450">Pode ativar a sincronização em qualquer altura nas definições.</translation>
 <translation id="3060379269883947824">Ativar Selecionar para ativar voz</translation>
@@ -1522,6 +1523,7 @@
 <translation id="3440663250074896476">Mais ações para <ph name="BOOKMARK_NAME" /></translation>
 <translation id="3440761377721825626">Perguntar quando um site pretender utilizar um plug-in para aceder ao seu computador</translation>
 <translation id="3441653493275994384">Ecrã</translation>
+<translation id="3442151986393356303">Inclua o histórico recente do Assistente através do Sherlog. Pode incluir as suas informações de identidade, localização e depuração. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">Dispositivo USB-C</translation>
 <translation id="344630545793878684">Ler os seus dados em vários Sites</translation>
 <translation id="3449839693241009168">Prima <ph name="SEARCH_KEY" /> para enviar comandos para <ph name="EXTENSION_NAME" /></translation>
@@ -3542,6 +3544,7 @@
 <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="6676212663108450937">Considere utilizar auscultadores enquanto treina a sua voz</translation>
 <translation id="6678717876183468697">URL de consulta</translation>
 <translation id="6680442031740878064">Disponível: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Classificar</translation>
@@ -4224,6 +4227,7 @@
 <translation id="7788383851298063850">Indique-nos o que está a acontecer</translation>
 <translation id="7788444488075094252">Idiomas e introdução</translation>
 <translation id="7788668840732459509">Posição:</translation>
+<translation id="7789963078219276159">O fundo da página de início foi alterado para <ph name="CATEGORY" />.</translation>
 <translation id="7791543448312431591">Adicionar</translation>
 <translation id="7792012425874949788">Ocorreu um erro ao iniciar sessão</translation>
 <translation id="7792388396321542707">Parar a partilha</translation>
@@ -4856,6 +4860,7 @@
 <translation id="8767621466733104912">Atualizar automaticamente o Chrome para todos os utilizadores</translation>
 <translation id="8770406935328356739">Diretório raiz da extensão</translation>
 <translation id="8770507190024617908">Gerir pessoas</translation>
+<translation id="8771300903067484968">O fundo da página de inicio foi reposto para a predefinição.</translation>
 <translation id="8774934320277480003">Margem superior</translation>
 <translation id="8775144690796719618">URL inválido</translation>
 <translation id="8777628254805677039">palavra-passe de raiz</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 7ba9862d..be471aa7 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1116,7 +1116,7 @@
 <translation id="2770690685823456775">Exportujte heslá do iného priečinka</translation>
 <translation id="2771268254788431918">Mobilné dáta boli aktivované</translation>
 <translation id="2772936498786524345">Rafinovaný</translation>
-<translation id="2773288106548584039">Podpora staršieho prehliadača</translation>
+<translation id="2773288106548584039">Podpora starších prehliadačov</translation>
 <translation id="2773802008104670137">Tento typ súboru môže poškodiť váš počítač.</translation>
 <translation id="2775104091073479743">Upraviť odtlačky prstov</translation>
 <translation id="2776441542064982094">Zdá sa, že v sieti nie sú žiadne zariadenia dostupné na registráciu. Ak je zariadenie zapnuté a pripojené k internetu, skúste ho zaregistrovať podľa pokynov v tejto príručke.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 8dc4091..b9befd1 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">To spletno mesto je samodejno preneslo več datotek</translation>
 <translation id="3046910703532196514">Spletna stran, dokončano</translation>
 <translation id="304747341537320566">Mehanizmi za govor</translation>
+<translation id="3047644958362961983">S temi podatki si pomagamo pri razumevanju vaše težave s Pomočnikom. Shranjeni so do 90 dni in dostop je omogočen samo ustreznim skupinam inženirjev in skupinam za povratne informacije.</translation>
 <translation id="3053013834507634016">Raba ključa potrdila</translation>
 <translation id="3058498974290601450">Sinhronizacijo lahko kadarkoli vklopite v nastavitvah.</translation>
 <translation id="3060379269883947824">Omogoči storitev Izberite in poslušajte</translation>
@@ -1522,6 +1523,7 @@
 <translation id="3440663250074896476">Več dejanj za <ph name="BOOKMARK_NAME" /></translation>
 <translation id="3440761377721825626">Vprašaj, ko želi spletno mesto z vtičnikom dostopati do računalnika</translation>
 <translation id="3441653493275994384">Zaslon</translation>
+<translation id="3442151986393356303">Vključitev nedavne zgodovine Pomočnika prek Sherloga. To morda vključuje vašo identiteto, lokacijo in podatke o odpravljanju napak <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">Naprava USB-C</translation>
 <translation id="344630545793878684">Branje vaših podatkov na več spletnih mestih</translation>
 <translation id="3449839693241009168">Pritisnite <ph name="SEARCH_KEY" />, če želite poslati ukaze v <ph name="EXTENSION_NAME" /></translation>
@@ -3543,6 +3545,7 @@
 <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="6676212663108450937">Pri snemanju svojega glasu lahko uporabite slušalke</translation>
 <translation id="6678717876183468697">URL poizvedbe</translation>
 <translation id="6680442031740878064">Na voljo: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Hitrost</translation>
@@ -4225,6 +4228,7 @@
 <translation id="7788383851298063850">Povejte nam, kaj se dogaja</translation>
 <translation id="7788444488075094252">Jezik in vnos</translation>
 <translation id="7788668840732459509">Položaj:</translation>
+<translation id="7789963078219276159">Ozadje začetne strani je spremenjeno v <ph name="CATEGORY" />.</translation>
 <translation id="7791543448312431591">Dodaj</translation>
 <translation id="7792012425874949788">Nekaj je šlo narobe pri prijavi</translation>
 <translation id="7792388396321542707">Ustavi souporabo</translation>
@@ -4858,6 +4862,7 @@
 <translation id="8767621466733104912">Samodejno posodobi Chrome za vse uporabnike</translation>
 <translation id="8770406935328356739">Korenski imenik razširitve</translation>
 <translation id="8770507190024617908">Upravljanje ljudi</translation>
+<translation id="8771300903067484968">Ozadje začetne strani je ponastavljeno na privzeto ozadje.</translation>
 <translation id="8774934320277480003">Zgornji rob</translation>
 <translation id="8775144690796719618">Neveljaven URL</translation>
 <translation id="8777628254805677039">korensko geslo</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 7122717..40f78006 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1293,6 +1293,7 @@
 <translation id="3045447014237878114">Den här webbplatsen laddade ned flera filer automatiskt</translation>
 <translation id="3046910703532196514">Webbsida, komplett</translation>
 <translation id="304747341537320566">Talmotorer</translation>
+<translation id="3047644958362961983">Med den här informationen blir det lättare för oss att förstå problemet med assistenten. Informationen lagras i upp till 90 dagar och endast behöriga ingenjörs- och feedbackteam har åtkomst till den.</translation>
 <translation id="3053013834507634016">Certifikatnyckelanvändning</translation>
 <translation id="3058498974290601450">Du kan när som helst inaktivera synkroniseringen i inställningarna</translation>
 <translation id="3060379269883947824">Aktivera Textuppläsning</translation>
@@ -1521,6 +1522,7 @@
 <translation id="3440663250074896476">Fler åtgärder för <ph name="BOOKMARK_NAME" /></translation>
 <translation id="3440761377721825626">Fråga om en webbplats försöker använda en plugin för att få åtkomst till datorn</translation>
 <translation id="3441653493275994384">Skärm</translation>
+<translation id="3442151986393356303">Inkludera ny historik för assistenten via Sherlog. Historiken kan innehålla din identitet, plats och felsökningsinformation <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">USB-C-enhet</translation>
 <translation id="344630545793878684">Läsa din data på ett antal webbplatser</translation>
 <translation id="3449839693241009168">Tryck på <ph name="SEARCH_KEY" /> om du vill skicka kommandon till <ph name="EXTENSION_NAME" /></translation>
@@ -3540,6 +3542,7 @@
 <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="6676212663108450937">Vi rekommenderar att du använder hörlurar när du tränar rösten</translation>
 <translation id="6678717876183468697">Frågewebbadress</translation>
 <translation id="6680442031740878064">Tillgängligt: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">Hastighet</translation>
@@ -4222,6 +4225,7 @@
 <translation id="7788383851298063850">Berätta vad som händer</translation>
 <translation id="7788444488075094252">Språk och inmatning</translation>
 <translation id="7788668840732459509">Position:</translation>
+<translation id="7789963078219276159">Startsidans bakgrundsbild har ändrats till <ph name="CATEGORY" />.</translation>
 <translation id="7791543448312431591">Lägg till</translation>
 <translation id="7792012425874949788">Något gick fel med inloggningen</translation>
 <translation id="7792388396321542707">Sluta dela</translation>
@@ -4855,6 +4859,7 @@
 <translation id="8767621466733104912">Uppdatera Chrome automatiskt för alla användare</translation>
 <translation id="8770406935328356739">Tilläggets rotkatalog</translation>
 <translation id="8770507190024617908">Hantera personer</translation>
+<translation id="8771300903067484968">Startsidans bakgrund har återställts till standardbakgrunden.</translation>
 <translation id="8774934320277480003">Övre marginal</translation>
 <translation id="8775144690796719618">Ogiltig webbadress</translation>
 <translation id="8777628254805677039">rotlösenord</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index a74feb44..3b9a3d5 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -141,7 +141,7 @@
 <translation id="1205489148908752564">అనుమతి జాబితాలోని వినియోగదారులను చదవండి మరియు మార్చండి</translation>
 <translation id="1206407435587370571">మీ Chromebookను పరిశీలించండి</translation>
 <translation id="1209796539517632982">స్వయంచాలక పేరు సర్వర్‌లు</translation>
-<translation id="1211364473545090084">అజ్ఞాత విండోలో మీ బ్రౌజింగ్ చరిత్రను సేవ్ చేయకుండానే వెబ్‌ని ఉపయోగించండి</translation>
+<translation id="1211364473545090084">మీ బ్రౌజింగ్ చరిత్రను సేవ్ చేయకుండానే వెబ్‌ను ఉపయోగించడానికి అజ్ఞాత విండోను వాడండి</translation>
 <translation id="1213037489357051291"><ph name="NUM_FINGERPRINTS" /> వేలిముద్రలు సెటప్ చేయబడ్డాయి</translation>
 <translation id="1215411991991485844">కొత్త బ్యాక్‌గ్రౌండ్‌ యాప్ జోడించబడింది</translation>
 <translation id="1216659994753476700">మమ్మల్ని క్షమించండి. మేము మీ ప్రొఫైల్‌ను యాక్సెస్‌ చేయలేకపోయాము. ఈ పరికరంలో నిల్వ చేయబడిన ఫైల్‌లు మరియు డేటా కోల్పోయి ఉండవచ్చు.<ph name="BR" />
@@ -339,7 +339,7 @@
 <translation id="1529891865407786369">పవర్ సోర్స్</translation>
 <translation id="1529899284660134226">షేర్ చేసిన ఫైల్‌లు &amp; ఫోల్డర్‌లను నిర్వహించండి</translation>
 <translation id="1530838837447122178">మౌస్ మరియు టచ్‌ప్యాడ్ పరికర సెట్టింగ్‌లను తెరవండి</translation>
-<translation id="1531004739673299060">అప్లికేషన్ విండో</translation>
+<translation id="1531004739673299060">యాప్ విండో</translation>
 <translation id="1536754031901697553">డిస్‌కనెక్ట్ చేస్తోంది...</translation>
 <translation id="15373452373711364">పెద్ద మౌస్ కర్సర్</translation>
 <translation id="1540605929960647700">డెమో మోడ్‌ని ప్రారంభించండి</translation>
@@ -461,7 +461,7 @@
 <translation id="1719312230114180055">గమనిక: శక్తివంతమైన పాస్‌వర్డ్ లేదా PIN కంటే మీ వేలిముద్ర తక్కువ సురక్షితంగా ఉండవచ్చు.</translation>
 <translation id="1720318856472900922">TLS WWW సర్వర్ ప్రామాణీకరణ</translation>
 <translation id="1721937473331968728">మీరు మీ కంప్యూటర్‌కు కనెక్ట్ చేయబడిన క్లాసిక్ ప్రింటర్‌లను <ph name="CLOUD_PRINT_NAME" />కి జోడించవచ్చు.</translation>
-<translation id="1723824996674794290">&amp;క్రొత్త విండో</translation>
+<translation id="1723824996674794290">&amp;కొత్త విండో</translation>
 <translation id="1725149567830788547">&amp;నియంత్రణలను చూపించు</translation>
 <translation id="1726100011689679555">పేరు సర్వర్‌లు</translation>
 <translation id="1729533290416704613">ఓమ్నిబాక్స్ నుండి వెతికేటప్పుడు చూపబడే పేజీని కూడా ఇది నియంత్రిస్తుంది.</translation>
@@ -490,7 +490,7 @@
 <translation id="1763108912552529023">విశ్లేషణ కొనసాగించండి</translation>
 <translation id="1763808908432309942">కొత్త ట్యాబ్‌లో తెరవబడుతుంది</translation>
 <translation id="1764226536771329714">బీటా</translation>
-<translation id="176587472219019965">&amp;క్రొత్త విండో</translation>
+<translation id="176587472219019965">&amp;కొత్త విండో</translation>
 <translation id="1768278914020124551">అయ్యో!  లాగాన్ సర్వర్‌ను సంప్రదించడంలో సమస్య ఉంది. దయచేసి మీ నెట్‌వర్క్ కనెక్షన్‌ను మరియు డొమైన్ పేరును తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="1769104665586091481">లింక్‌ను కొత్త &amp;విండోలో తెరువు</translation>
 <translation id="1773212559869067373">ప్రామాణీకరణ ప్రమాణపత్రం స్థానికంగా తిరస్కరించబడింది</translation>
@@ -592,7 +592,7 @@
 <translation id="1924559387127953748"><ph name="IDS_SHORT_PRODUCT_NAME" />లో Google సామర్థ్యాలను పొందండి</translation>
 <translation id="192494336144674234">దీనితో తెరువు</translation>
 <translation id="1925021887439448749">అనుకూల వెబ్ చిరునామాను నమోదు చేయండి</translation>
-<translation id="1926339101652878330">ఈ సెట్టింగ్‌లు ఎంటర్‌ప్రైజ్ విధానం ద్వారా నియంత్రించబడతాయి. దయచేసి మరింత సమాచారం కోసం మీ నిర్వాహకుడిని సంప్రదించండి.</translation>
+<translation id="1926339101652878330">ఈ సెట్టింగ్‌లను ఎంటర్‌ప్రైజ్ విధానం నియంత్రిస్తుంది. మరింత సమాచారం కోసం, దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.</translation>
 <translation id="1927632033341042996">వేలు <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="1928202201223835302">పాత PINని నమోదు చేయండి</translation>
 <translation id="1929546189971853037">మీరు సైన్-ఇన్ చేసిన అన్ని పరికరాల్లో మీ బ్రౌజింగ్ చరిత్రను చదవడానికి అనుమతి</translation>
@@ -1050,7 +1050,7 @@
 <translation id="2665394472441560184">కొత్త పదాన్ని జోడించు</translation>
 <translation id="2665717534925640469">ఇప్పుడు ఈ పేజీ పూర్తి స్క్రీన్ మరియు మీ మౌస్ కర్సర్‌ను నిలిపివేసింది.</translation>
 <translation id="2665919335226618153">అయ్యో! ఫార్మాటింగ్ సమయంలో ఎర్రర్ ఏర్పడింది.</translation>
-<translation id="2666990579225592931">అతిథి విండోని తెరువు</translation>
+<translation id="2666990579225592931">అతిథి విండోను తెరువు</translation>
 <translation id="2667463864537187133">స్పెల్ చెక్‌ను నిర్వహించండి</translation>
 <translation id="2670102641511624474"><ph name="APP_NAME" /> ఒక Chrome ట్యాబ్‌ను భాగస్వామ్యం చేస్తోంది.</translation>
 <translation id="2670429602441959756">ఇప్పటికీ VRలో మద్దతు లేని ఫీచర్‌లను ఈ పేజీ కలిగి ఉంది. నిష్క్రమిస్తోంది...</translation>
@@ -1090,7 +1090,7 @@
 <translation id="2727633948226935816">నాకు మళ్లీ గుర్తు చేయవద్దు</translation>
 <translation id="2727712005121231835">అసలు పరిమాణం</translation>
 <translation id="273093730430620027">ఈ పేజీ మీ కెమెరాను ప్రాప్యత చేస్తోంది.</translation>
-<translation id="2731392572903530958">మూ&amp;సిన విండోని మళ్ళీ తెరువు</translation>
+<translation id="2731392572903530958">మూసివేయబడిన విండోను మళ్లీ తె&amp;రవండి</translation>
 <translation id="2731700343119398978">దయచేసి వేచి ఉండండి...</translation>
 <translation id="2731710757838467317">మీ పర్యవేక్షించబడే వినియోగదారును సృష్టిస్తోంది. దీనికి కొంత సమయం పట్టవచ్చు.</translation>
 <translation id="2734760316755174687"><ph name="SITE_GROUP_NAME" />లోని సైట్‌లు కూడా రీసెట్ చేయబడతాయి.</translation>
@@ -1179,7 +1179,7 @@
 <translation id="2861941300086904918">స్థానిక‌ క్లయింట్ భద్రతా మేనేజ‌ర్‌</translation>
 <translation id="2864601841139725659">మీ ప్రొఫైల్ చిత్రాన్ని సెట్ చేయండి</translation>
 <translation id="2867768963760577682">పిన్ చేసిన ట్యాబ్ లాగా తెరువు</translation>
-<translation id="2868746137289129307">ఈ ఎక్స్‌టెన్షన్ చాలా పాతది, వ్యాపార విధానం ప్రకారం నిలిపివేయబడింది. కొత్త వెర్షన్ అందుబాటులోకి వచ్చినప్పుడు ఇది ఆటోమేటిక్‌గా ప్రారంభించబడవచ్చు.</translation>
+<translation id="2868746137289129307">ఈ ఎక్స్‌టెన్షన్ చాలా పాతది, వ్యాపార విధానం కారణంగా నిలిపివేయబడింది. అయితే, కొత్త వెర్షన్ అందుబాటులో ఉన్నప్పుడు ఇది ఆటోమేటిక్‌గా ప్రారంభించబడవచ్చు.</translation>
 <translation id="2870560284913253234">సైట్</translation>
 <translation id="2870909136778269686">అప్‌డేట్ చేస్తోంది...</translation>
 <translation id="2871813825302180988">ఈ ఖాతా ఈ పరికరంలో ఇప్పటికే ఉపయోగించబడుతోంది.</translation>
@@ -1294,6 +1294,7 @@
 <translation id="3045447014237878114">ఈ సైట్ పలు ఫైల్‌లను ఆటోమేటిక్‌గా డౌన్‌లోడ్ చేసింది</translation>
 <translation id="3046910703532196514">వెబ్‌పేజీ, సంపూర్ణం</translation>
 <translation id="304747341537320566">ప్రసంగ ఇంజిన్‌లు</translation>
+<translation id="3047644958362961983">మీ అసిస్టెంట్ సమస్యను మెరుగ్గా అర్థం చేసుకోవడంలో ఈ సమాచారం మాకు సహాయపడుతుంది. ఇది గరిష్టంగా 90 రోజుల పాటు నిల్వ చేయబడుతుంది మరియు ఇంజినీరింగ్ మరియు అభిప్రాయ బృందాలు మాత్రమే దీనిని యాక్సెస్ చేయగలవు.</translation>
 <translation id="3053013834507634016">సర్టిఫికెట్ కీ ఉపయోగం</translation>
 <translation id="3058498974290601450">సెట్టింగ్‌లలో ఎప్పుడైనా మీరు సింక్‌ను ఆన్ చేయవచ్చు</translation>
 <translation id="3060379269883947824">వినడానికి-ఎంచుకోండిని ప్రారంభించు</translation>
@@ -1403,7 +1404,7 @@
 <translation id="3259723213051400722">దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="3264544094376351444">Sans-Serif ఫాంట్</translation>
 <translation id="3264582393905923483">సందర్భం</translation>
-<translation id="3265459715026181080">విండో మూసివెయ్యి</translation>
+<translation id="3265459715026181080">విండో ముసివేయి</translation>
 <translation id="3267726687589094446">బహుళ ఫైల్‌ల స్వయంచాలక డౌన్‌లోడ్‌లకు అనుమతిని కొనసాగించు</translation>
 <translation id="3268451620468152448">ఓపెన్ టాబ్‌లు</translation>
 <translation id="3269069891205016797">మీరు సైన్ అవుట్ చేసినప్పుడు పరికరం నుండి మీ సమాచారం తీసివేయబడుతుంది.</translation>
@@ -1413,7 +1414,7 @@
 <translation id="327147043223061465">మొత్తం కుక్కీలు మరియు సైట్ డేటాను చూడండి</translation>
 <translation id="3271648667212143903"><ph name="ORIGIN" /> దీనికి కనెక్ట్ చేయాలనుకుంటోంది</translation>
 <translation id="3274763671541996799">మీరు పూర్తి స్క్రీన్‌కు వెళ్ళారు.</translation>
-<translation id="3275778913554317645">విండో వలె తెరవండి</translation>
+<translation id="3275778913554317645">విండో లాగా తెరవండి</translation>
 <translation id="3278001907972365362">మీ Google ఖాతా లేదా ఖాతాలను జాగ్రత్తగా గమనించాలి</translation>
 <translation id="3279230909244266691">ఈ ప్రాసెస్‌కు కొన్ని నిమిషాలు పట్టవచ్చు. వర్చ్యువల్ మెషీన్‌ను ప్రారంభిస్తోంది.</translation>
 <translation id="3279741024917655738">ఇందులో పూర్తి స్క్రీన్ వీడియోలను చూపించండి</translation>
@@ -1451,7 +1452,7 @@
 <translation id="3315158641124845231"><ph name="PRODUCT_NAME" />ను దాచిపెట్టు</translation>
 <translation id="3317459757438853210">రెండు-వైపులా ఉండేది</translation>
 <translation id="3317678681329786349">కెమెరా మరియు మైక్రోఫోన్ బ్లాక్ చేయబడ్డాయి</translation>
-<translation id="3319048459796106952">క్రొత్త &amp;అజ్ఞాత విండో</translation>
+<translation id="3319048459796106952">కొత్త &amp;అజ్ఞాత విండో</translation>
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">యాప్‌ సమాచారం</translation>
 <translation id="3334632933872291866"><ph name="WINDOW_TITLE" /> - చిత్రంలో చిత్రం మోడ్‌లో వీడియో ప్లే అవుతోంది</translation>
@@ -1522,6 +1523,7 @@
 <translation id="3440663250074896476"><ph name="BOOKMARK_NAME" /> కోసం మరిన్ని చర్యలు</translation>
 <translation id="3440761377721825626">మీ కంప్యూటర్‌ను యాక్సెస్ చేయడానికి సైట్ ప్లగిన్‌ను ఉపయోగించాలనుకున్నప్పుడు అడగాలి</translation>
 <translation id="3441653493275994384">స్క్రీన్</translation>
+<translation id="3442151986393356303">Sherlog ద్వారా ఇటీవలి అసిస్టెంట్ చరిత్రను కలిగి ఉండాలి. ఇందులో మీ గుర్తింపు, స్థానం, డీబగ్ సమాచారం ఉండవచ్చు <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="3445925074670675829">USB-C పరికరం</translation>
 <translation id="344630545793878684">అనేక వెబ్‌సైట్‌ల్లోని మీ డేటాను చదవండి</translation>
 <translation id="3449839693241009168"><ph name="EXTENSION_NAME" />కు ఆదేశాలను పంపడానికి <ph name="SEARCH_KEY" /> నొక్కండి</translation>
@@ -1544,7 +1546,7 @@
 <translation id="3473479545200714844">స్క్రీన్ మాగ్నిఫైయర్</translation>
 <translation id="3475843873335999118">క్షమించండి, మీ వేలిముద్ర ఇప్పటికీ గుర్తించబడలేదు. దయచేసి మీ పాస్‌వర్డ్‌ను నమోదు చేయండి.</translation>
 <translation id="3476303763173086583">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. సమస్య విశ్లేషణ, పరికరం, యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకి పంపడం ద్వారా మీ చిన్నారి Android అనుభవాన్ని మెరుగుపరచడంలో సహాయపడండి. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ <ph name="BEGIN_LINK1" />సెట్టింగ్‌<ph name="END_LINK1" />ని యజమాని అమలు చేసారు. ఈ పరికరానికి సంబంధించిన విశ్లేషణ, వినియోగ డేటాను Googleకి పంపేలా యజమాని ఎంచుకోవచ్చు. మీ చిన్నారి కోసం అదనపు వెబ్ &amp; యాప్ కార్యకలాపం సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation>
-<translation id="347670947055184738">అయ్యో! మీ పరికరం కోసం విధానాన్ని పొందడంలో సిస్టమ్ విఫలమైంది.</translation>
+<translation id="347670947055184738">అయ్యో! మీ పరికరానికి సంబంధించిన విధానాన్ని పొందడంలో సిస్టమ్ విఫలమైంది.</translation>
 <translation id="347785443197175480">మీ కెమెరా మరియు మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి <ph name="HOST" />ను అనుమతించడాన్ని కొనసాగించండి</translation>
 <translation id="3478685642445675458">వ్యక్తిని తీసివేయబోయే ముందు దయచేసి మీ ప్రొఫైల్‌ను అన్‌లాక్ చేయండి.</translation>
 <translation id="3479552764303398839">ఇప్పుడు కాదు</translation>
@@ -1746,7 +1748,7 @@
 <translation id="3768037234834996183">మీ ప్రాధాన్యతలను సమకాలీకరిస్తోంది...</translation>
 <translation id="3771294271822695279">వీడియో ఫైళ్లు</translation>
 <translation id="3775432569830822555">SSL సర్వర్ సర్టిఫికెట్</translation>
-<translation id="3776796446459804932">ఈ పొడిగింపు Chrome వెబ్ స్టోర్ విధానాన్ని ఉల్లంఘిస్తోంది.</translation>
+<translation id="3776796446459804932">ఈ ఎక్స్‌టెన్షన్ Chrome వెబ్ స్టోర్ విధానాన్ని ఉల్లంఘిస్తోంది.</translation>
 <translation id="3777806571986431400">పొడిగింపు ప్రారంభించబడింది</translation>
 <translation id="3778152852029592020">డౌన్‌లోడ్ చేయడం రద్దు చేయబడింది.</translation>
 <translation id="3778740492972734840">డెవలపర్ ఉపకరణాలు</translation>
@@ -1974,7 +1976,7 @@
 <translation id="4103091233824664032">స్క్రీన్ లాక్ మరియు సైన్ ఇన్‌ను కాన్ఫిగర్ చేయడానికి మీ పాస్‌వర్డ్‌ను నమోదు చేయండి</translation>
 <translation id="4104163789986725820">ఎ&amp;గుమతి...</translation>
 <translation id="4107048419833779140">నిల్వ డివైజ్‌లను గుర్తించి, తొలగించండి</translation>
-<translation id="4109135793348361820">విండోను <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)కి తరలించండి</translation>
+<translation id="4109135793348361820">విండోను <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />)కు తరలించు</translation>
 <translation id="4110490973560452005">డౌన్‌లోడ్ పూర్తయింది: <ph name="FILE_NAME" />. డౌన్‌లోడ్‌ల బార్ ప్రాంతంలోకి వెళ్లడం కోసం Shift+F6 నొక్కండి.</translation>
 <translation id="4110895898888439383">అధిక కాంట్రాస్ట్ మోడ్‌లో వెబ్‌ను బ్రౌజ్ చేయండి</translation>
 <translation id="4112221174576828331">చిత్రంలో ఉపయోగకరమైన వివరణ లేకుంటే, మీ కోసం వివరణను అందించడానికి Chrome ప్రయత్నిస్తుంది. చిత్రాలు Google ద్వారా స్కాన్ చేయబడతాయి.</translation>
@@ -2105,7 +2107,7 @@
 <translation id="4359717112757026264">నగర చిత్రాలు</translation>
 <translation id="4361142739114356624">ఈ క్లయింట్ ప్రమాణపత్రం యొక్క ప్రైవేట్ కీ లేదు లేదా చెల్లదు</translation>
 <translation id="4363771538994847871">Cast గమ్యస్థానాలు ఏవీ కనుగొనబడలేదు. సహాయం కావాలా?</translation>
-<translation id="4364567974334641491"><ph name="APP_NAME" /> ఒక విండోను భాగస్వామ్యం చేస్తోంది.</translation>
+<translation id="4364567974334641491"><ph name="APP_NAME" /> ఒక విండోను షేర్ చేస్తోంది.</translation>
 <translation id="4364830672918311045">నోటిఫికేషన్‌లను ప్రదర్శించడం</translation>
 <translation id="4365673000813822030">అయ్యో, సమకాలీకరణ పని చేయడం ఆగిపోయింది.</translation>
 <translation id="4366956553771076218"><ph name="APP_NAME" />తో <ph name="ACTION_NAME" />.</translation>
@@ -2133,7 +2135,7 @@
 <translation id="4411578466613447185">కోడ్ సైనర్</translation>
 <translation id="4412698727486357573">సహాయ కేంద్రం</translation>
 <translation id="44141919652824029">మీ జోడించబడిన USB పరికరాల జాబితాని పొందడానికి "<ph name="APP_NAME" />"ని అనుమతించాలా?</translation>
-<translation id="4414232939543644979">క్రొత్త &amp;అజ్ఞాత విండో</translation>
+<translation id="4414232939543644979">కొత్త &amp;అజ్ఞాత విండో</translation>
 <translation id="4415245286584082850">పరికరాలు కనుగొనబడలేదు. సహాయ కేంద్రం కథనాన్ని కొత్త ట్యాబ్‌లో తెరవండి.</translation>
 <translation id="4415276339145661267">మీ Google ఖాతాను నిర్వహించండి</translation>
 <translation id="4415748029120993980">SECG దీర్ఘవృత్తాకార వక్రం secp384r1 (NIST P-384గా కూడా పిలువబడుతుంది)</translation>
@@ -2182,7 +2184,7 @@
 <translation id="450099669180426158">ఆశ్చర్యార్థక గుర్తు చిహ్నం</translation>
 <translation id="4501530680793980440">తీసివేతను నిర్ధారించండి</translation>
 <translation id="4504940961672722399">ఈ చిహ్నంపై క్లిక్ చేయడం ద్వారా లేదా <ph name="EXTENSION_SHORTCUT" />ను నొక్కడం ద్వారా ఈ ఎక్స్‌టెన్ష‌న్‌ను ఉపయోగించండి.</translation>
-<translation id="4508051413094283164">అన్ని అజ్ఞాత విండోలో తెరవండి</translation>
+<translation id="4508051413094283164">అన్నింటినీ అజ్ఞాత విండోలో తెరవండి</translation>
 <translation id="4508265954913339219">సక్రియం  చేయడం విఫలమైంది</translation>
 <translation id="4508765956121923607">&amp;మూలాన్ని చూడండి</translation>
 <translation id="451407183922382411"><ph name="COMPANY_NAME" /> అందిస్తోంది</translation>
@@ -2387,7 +2389,7 @@
 <translation id="4849517651082200438">ఇన్‌స్టాల్ చేయ‌వ‌ద్దు</translation>
 <translation id="4850669014075537160">స్క్రోలింగ్</translation>
 <translation id="4850886885716139402">వీక్షణ</translation>
-<translation id="4853020600495124913">&amp;క్రొత్త విండోలో తెరువు</translation>
+<translation id="4853020600495124913">&amp;కొత్త విండోలో తెరువు</translation>
 <translation id="485592688953820832">చర్య వద్దు (పాజ్ చేయి)</translation>
 <translation id="4856478137399998590">మీ మొబైల్ డేటా సేవ యాక్టివేట్ చేయబడింది, ఉపయోగించడానికి సిద్ధంగా ఉంది</translation>
 <translation id="4857506433977877623">{COUNT,plural, =0{అన్నింటినీ &amp;అజ్ఞాత విండోలో తెరవండి}=1{&amp;అజ్ఞాత విండోలో తెరవండి}other{అన్నింటినీ (#) &amp;అజ్ఞాత విండోలో తెరవండి}}</translation>
@@ -2427,7 +2429,7 @@
 <translation id="489985760463306091">హానికరమైన సాఫ్ట్‌వేర్ తొలగింపును పూర్తి చేసేందుకు, మీ కంప్యూటర్‌ను పునఃప్రారంభించాలి</translation>
 <translation id="4900392736118574277">మా ప్రారంభ పేజీ <ph name="URL" />కి మార్చబడింది.</translation>
 <translation id="490074449735753175">అక్షరక్రమ ఎర్రర్‌లను పరిష్కరించడంలో సహాయం కోసం వెబ్ సేవను ఉపయోగించండి</translation>
-<translation id="49027928311173603">సర్వర్ నుండి డౌన్‌లోడ్ చేయబడిన విధానం చెల్లదు: <ph name="VALIDATION_ERROR" />.</translation>
+<translation id="49027928311173603">సర్వర్ నుండి డౌన్‌లోడ్ చేసిన విధానం చెల్లదు: <ph name="VALIDATION_ERROR" />.</translation>
 <translation id="4907161631261076876">ఈ ఫైల్ సాధారణ పద్ధతిలో డౌన్‌లోడ్ కాలేదు, ఇది అపాయకరమైనది కావచ్చు.</translation>
 <translation id="4907306957610201395">అనుమతి వర్గం</translation>
 <translation id="4908811072292128752">ఒకేసారి రెండు సైట్‌లను బ్రౌజ్ చేయడానికి కొత్త ట్యాబ్‌ను తెరవండి</translation>
@@ -2608,7 +2610,7 @@
 <translation id="5227679487546032910">డిఫాల్ట్ నీలం ఆకుపచ్చ రంగు అవతార్</translation>
 <translation id="5228076606934445476">పరికరంలో ఏదో తప్పు ఉంది. ఈ ఎర్రర్‌ను పునరుద్ధరించడానికి మీరు పరికరాన్ని రీబూట్ చేసి, మళ్లీ ప్రయత్నించాలి.</translation>
 <translation id="5229189185761556138">ఇన్‌పుట్ పద్ధతులను నిర్వహించు</translation>
-<translation id="5230516054153933099">కిటికీ</translation>
+<translation id="5230516054153933099">విండో</translation>
 <translation id="5233019165164992427">NaCl డీబగ్ పోర్ట్</translation>
 <translation id="5233231016133573565">ప్రాసెస్ ID</translation>
 <translation id="5233638681132016545">కొత్త‌ టాబ్</translation>
@@ -2708,7 +2710,7 @@
 <translation id="5374359983950678924">చిత్రాన్ని మార్చు</translation>
 <translation id="5376169624176189338">వెనుకకు వెళ్ల‌డానికి క్లిక్ చేయండి. చరిత్రను చూడటానికి నొక్కి ఉంచండి</translation>
 <translation id="5376931455988532197">ఫైల్ చాలా పెద్దదిగా ఉంది</translation>
-<translation id="537813040452600081">మీరు ఈ విండోలో వీక్షించే పేజీలు బ్రౌజర్ చరిత్రలో కనిపించవు. మీరు సైన్ అవుట్ చేసిన తర్వాత కంప్యూటర్‌లో అవి కుక్కీల వంటి ఇతర జాడలను వదిలిపెట్టవు. మీరు డౌన్‌లోడ్ చేసే ఫైల్స్, సృష్టించే బుక్‌మార్క్‌లు భద్రపరచబడవు.</translation>
+<translation id="537813040452600081">మీరు ఈ విండోలో చూసే పేజీలు బ్రౌజర్ చరిత్రలో కనిపించవు, మీరు సైన్ అవుట్ చేసిన తర్వాత కంప్యూటర్‌లో అవి కుక్కీల వంటి ఇతర జాడలను వదలవు. మీరు డౌన్‌లోడ్ చేసే ఫైల్‌లు, సృష్టించే బుక్‌మార్క్‌లు భద్రపరచబడవు.</translation>
 <translation id="5379140238605961210">మైక్రోఫోన్ యాక్సెస్‌ను బ్లాక్ చేయడాన్ని కొనసాగించు</translation>
 <translation id="5382591305415226340">మద్దతు గల లింక్‌లను నిర్వహించండి</translation>
 <translation id="5384883051496921101">ఈ సైట్ అజ్ఞాత మోడ్ వెలుపల ఉన్న ఒక యాప్‌తో సమాచారాన్ని షేర్ చేయబోతోంది.</translation>
@@ -2824,7 +2826,7 @@
 <translation id="5546865291508181392">కనుగొను</translation>
 <translation id="5551573675707792127">కీబోర్డ్ మరియు వచన ఇన్‌పుట్</translation>
 <translation id="5552059560155071882">CUPS IPP పదనిరూపణ</translation>
-<translation id="5553089923092577885">సర్టిఫికెట్ విధాన మాపింగ్‌లు</translation>
+<translation id="5553089923092577885">సర్టిఫికెట్ విధాన మ్యాపింగ్‌లు</translation>
 <translation id="5554489410841842733">ప్రస్తుత పేజీలో ఎక్స్‌టెన్ష‌న్‌ ఉండే వరకు ఈ చిహ్నం కనిపిస్తుంది.</translation>
 <translation id="5554720593229208774">ఇమెయిల్ అధికారి స‌ర్టిఫికేష‌న్ అధికారిక సంస్థ‌</translation>
 <translation id="5556206011531515970">మీ డిఫాల్ట్ బ్రౌజర్‌ను ఎంచుకోవడానికి తదుపరి క్లిక్ చేయండి.</translation>
@@ -3177,7 +3179,7 @@
 <translation id="6077189836672154517"><ph name="DEVICE_TYPE" />కు సంబంధించిన చిట్కాలు మరియు అప్‌డేట్‌లు</translation>
 <translation id="6078323886959318429">షార్ట్‌కట్‌ను జోడించు</translation>
 <translation id="6078752646384677957">దయచేసి మీ మైక్రోఫోన్ మరియు ఆడియో స్థాయిలను తనిఖీ చేయండి.</translation>
-<translation id="6080515710685820702">షేర్ చేయబడిన కంప్యూటర్‌ని ఉపయోగిస్తున్నారా? అజ్ఞాత విండోను తెరిచి ప్రయత్నించండి.</translation>
+<translation id="6080515710685820702">షేర్డ్ కంప్యూటర్‌ను ఉపయోగిస్తున్నారా? అజ్ఞాత విండోలో తెరవండి.</translation>
 <translation id="6080689532560039067">మీ సిస్టమ్ సమయాన్ని తనిఖీ చేయండి</translation>
 <translation id="6082651258230788217">సాధనపట్టీలో చూపండి</translation>
 <translation id="6086846494333236931">మీ నిర్వాహకుడు ఇన్‌స్టాల్ చేశారు</translation>
@@ -3313,7 +3315,7 @@
 <translation id="6295855836753816081">సేవ్ చేస్తోంది...</translation>
 <translation id="6298962879096096191">Android యాప్‌లను ఇన్‌స్టాల్ చేయడానికి Google Play‌ను ఉపయోగిస్తుంది</translation>
 <translation id="630065524203833229">ని&amp;ష్క్రమించు</translation>
-<translation id="6305607932814307878">సార్వజనీన విధానం:</translation>
+<translation id="6305607932814307878">గ్లోబల్ విధానం:</translation>
 <translation id="6307990684951724544">సిస్టమ్ బిజీగా ఉంది</translation>
 <translation id="6308937455967653460">లిం&amp;క్‌ను ఇలా సేవ్ చేయి...</translation>
 <translation id="6311220991371174222">మీ ప్రొఫైల్‌ను తెరుస్తున్నప్పుడు ఏదో తప్పు జరిగినందున Chromeను తెరవడం సాధ్యపడలేదు. Chromeను పునఃప్రారంభించడానికి ప్రయత్నించండి.</translation>
@@ -3323,7 +3325,7 @@
 <translation id="6315493146179903667">అన్నీ ముందుకు తీసుకెళ్లు</translation>
 <translation id="6316806695097060329">మీకు వెబ్‌లో అత్యుత్తమ అనుభవాన్ని అందించేందుకు ఈ <ph name="SHORT_PRODUCT_NAME" /> పరికరం రూపొందించబడింది.</translation>
 <translation id="6317318380444133405">ఇప్పుడు మద్దతు లేదు.</translation>
-<translation id="6317369057005134371">అప్లికేషన్‌ విండో కోసం వేచి ఉంది...</translation>
+<translation id="6317369057005134371">అప్లికేషన్ విండో కోసం వేచి ఉంది...</translation>
 <translation id="6318407754858604988">డౌన్‌లోడ్ ప్రారంభించబడింది</translation>
 <translation id="6322653941595359182">మీ Chromebook నుండి వచన సందేశాలను పంపండి మరియు స్వీకరించండి</translation>
 <translation id="6324916366299863871">షార్ట్‌కట్‌ను సవరించండి</translation>
@@ -3362,7 +3364,7 @@
 <translation id="6385543213911723544">సైట్‌లు కుక్కీ డేటాను సేవ్ చేయగలవు మరియు చదవగలవు</translation>
 <translation id="6386099547750337629">ఇది అనూహ్యమైనదైతే, దయచేసి మద్దతును సంప్రదించండి.</translation>
 <translation id="6388429472088318283">భాషలను వెతకండి</translation>
-<translation id="6390799748543157332">మీరు ఈ విండో‌లో వీక్షించే పేజీలు బ్రౌజర్ చరిత్రలో కనిపించవు. తెరవబడిన అన్ని అతిథి విండోలను మీరు మూసివేసిన తర్వాత అవి కంప్యూటర్‌లో కుక్కీల వంటి ఇతర జాడలను వదిలిపెట్టవు. అయితే, మీరు డౌన్‌లోడ్ చేసే ఫైల్స్ భద్రపరచబడతాయి.</translation>
+<translation id="6390799748543157332">మీరు ఈ విండో‌లో తెరిచే పేజీలు బ్రౌజర్ చరిత్రలో కనిపించవు, తెరిచిన అన్ని అతిథి విండోలను మీరు మూసివేసిన తర్వాత, అవి కంప్యూటర్‌లో కుక్కీల వంటి ఇతర జాడలను వదిలిపెట్టవు. అయితే, మీరు డౌన్‌లోడ్ చేసే ఫైల్‌లు భద్రపరచబడతాయి.</translation>
 <translation id="6390994422085833176">సెటప్ పూర్తయిన తర్వాత సమకాలీకరణ మరియు వ్యక్తిగతీకరణ ఫీచర్‌లను సమీక్షించండి</translation>
 <translation id="6393156038355142111">శక్తివంతమైన పాస్‌వర్డ్‌ని సూచించు</translation>
 <translation id="6397094776139756010">సమకాలీకరణ మరియు వ్యక్తిగతీకరణ ఎంపికలు</translation>
@@ -3411,7 +3413,7 @@
 <translation id="645705751491738698">JavaScriptను నిరోధించడాన్ని కొనసాగించు</translation>
 <translation id="6458701200018867744">అప్‌లోడ్ విఫలమైంది (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation>
 <translation id="6459488832681039634">కనుగొనడానికి ఎంపికను ఉపయోగించండి</translation>
-<translation id="6459799433792303855">యాక్టివ్ విండో మరో డిస్‌ప్లే‌కి తరలించబడింది.</translation>
+<translation id="6459799433792303855">యాక్టివ్ విండో మరో డిస్‌ప్లే‌కు తరలించబడింది.</translation>
 <translation id="6460601847208524483">తరువాతది కనుగొను</translation>
 <translation id="6463795194797719782">సవ&amp;రించు</translation>
 <translation id="6466988389784393586">&amp;అన్ని బుక్‌మార్క్‌లను తెరువు</translation>
@@ -3528,7 +3530,7 @@
 <translation id="6648911618876616409">ఒక ముఖ్యమైన అప్‌డేట్ ఇన్‌స్టాల్ కావడానికి సిద్ధంగా ఉంది. ప్రారంభించడానికి సైన్ ఇన్ చేయండి.</translation>
 <translation id="6649018507441623493">ఒక సెకను వేచి ఉండండి…</translation>
 <translation id="6649563841575838401">ఆర్కైవ్ ఫార్మాట్‌కు మద్దతు లేదు, లేదా ఫైల్ పాడైంది.</translation>
-<translation id="665061930738760572">&amp;క్రొత్త విండోలో తెరువు</translation>
+<translation id="665061930738760572">&amp;కొత్త విండోలో తెరువు</translation>
 <translation id="6651237644330755633">వెబ్‌సైట్‌లను గుర్తించడానికి ఈ ప్రమాణపత్రాన్ని విశ్వసిస్తుంది</translation>
 <translation id="665355505818177700">Chrome <ph name="MS_AD_NAME" /> ఏకీకరణకు కేవలం x86_64 ప్లాట్‌ఫారమ్‌లలో మాత్రమే మద్దతు ఉంది. ఈ కార్య‌శీల‌త‌ ARM లేదా x86 ప్లాట్‌ఫారమ్ కంటే ఉన్నత స్థాయిలో రూపొందించబడిన Chromebookలకు పని చేయదు.</translation>
 <translation id="6655190889273724601">డెవలపర్ మోడ్</translation>
@@ -3541,6 +3543,7 @@
 <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="6676212663108450937">మీ వాయిస్‌ని శిక్షణ ఇచ్చే సమయంలో హెడ్‌ఫోన్స్ ఉపయోగించండి</translation>
 <translation id="6678717876183468697">ప్రశ్న URL</translation>
 <translation id="6680442031740878064">అందుబాటులో ఉంది: <ph name="AVAILABLE_SPACE" /></translation>
 <translation id="6680650203439190394">రేట్</translation>
@@ -3744,12 +3747,12 @@
 <translation id="7004499039102548441">ఇటీవలి ట్యాబ్‌లు</translation>
 <translation id="7005848115657603926">చెల్లుబాటు కాని పేజీ పరిధి, <ph name="EXAMPLE_PAGE_RANGE" />ను ఉపయోగించు</translation>
 <translation id="7006634003215061422">దిగువ అంచు</translation>
-<translation id="7007648447224463482">అన్ని కొత్త విండోలో తెరువు</translation>
+<translation id="7007648447224463482">అన్నీ కొత్త విండోలో తెరువు</translation>
 <translation id="701080569351381435">సోర్స్‌ను చూడండి</translation>
 <translation id="7014174261166285193">వ్యవస్థాపన విఫలమైంది.</translation>
 <translation id="7017004637493394352">మళ్లీ "Ok Google" చెప్పండి</translation>
 <translation id="7017219178341817193">కొత్త పేజీని జోడించండి</translation>
-<translation id="7017354871202642555">విండో సెట్ చెయ్యబడిన తర్వాత మోడ్ సెట్ చెయ్యబడదు.</translation>
+<translation id="7017354871202642555">విండో సెట్ చేయబడిన తర్వాత మోడ్ సెట్ చేయబడదు.</translation>
 <translation id="7017480957358237747">నిర్దిష్ట వెబ్‌సైట్‌లను అనుమతించండి లేదా నిషేధించండి,</translation>
 <translation id="7018275672629230621">మీ బ్రౌజింగ్ చరిత్రని చదవడం మరియు మార్చడం</translation>
 <translation id="7019805045859631636">వేగంగా</translation>
@@ -3770,7 +3773,7 @@
 <translation id="7055152154916055070">మళ్లింపు బ్లాక్ చేయబడింది:</translation>
 <translation id="7056526158851679338">&amp;పరికరాలను పర్యవేక్షించు</translation>
 <translation id="7059858479264779982">స్వీయ-ప్రారంభానికి సెట్ చేయి</translation>
-<translation id="7059893117020417984">ప్రైవేట్‌గా బ్రౌజ్ చేయాలంటే, అజ్ఞాత విండోని తెరవడం కోసం చుక్కల చిహ్నం మెనూని క్లిక్ చేయండి.</translation>
+<translation id="7059893117020417984">ప్రైవేట్‌గా బ్రౌజ్ చేయడానికి, అజ్ఞాత విండోను తెరవడం కోసం చుక్కల చిహ్నం మెనూను క్లిక్ చేయండి.</translation>
 <translation id="7062222374113411376">డేటాను పంపడం మరియు స్వీకరించడం పూర్తి చేయడానికి ఇటీవల మూసివేసిన సైట్‌లను అనుమతించు (సిఫార్సు చేయబడింది)</translation>
 <translation id="7063129466199351735">సత్వరమార్గాలను ప్రాసెస్ చేస్తోంది...</translation>
 <translation id="7063311912041006059">ప్రశ్న యొక్క ప్రదేశంలో <ph name="SPECIAL_SYMBOL" />తో URL</translation>
@@ -3984,9 +3987,9 @@
 <translation id="7385854874724088939">ముద్రించడానికి ప్రయత్నించే సమయంలో ఏదో తప్పు జరిగింది.  దయచేసి కోడ్‌ను తనిఖీ చేసి, మళ్ళీ ప్రయత్నించండి.</translation>
 <translation id="7385896526023870365">ఈ ఎక్స్‌టెన్షన్‌కు అదనపు సైట్ యాక్సెస్ లేదు.</translation>
 <translation id="7388044238629873883">మీరు దాదాపు పూర్తి చేసారు!</translation>
-<translation id="7388222713940428051">అతిథి విండోని తెరువు</translation>
+<translation id="7388222713940428051">అతిథి విండోను తెరువు</translation>
 <translation id="7392118418926456391">వైరస్‌ను స్కాన్ చేయడంలో విఫలమైంది</translation>
-<translation id="7392915005464253525">మూ&amp;సిన విండోని మళ్ళీ తెరువు</translation>
+<translation id="7392915005464253525">మూసివేయబడిన విండోను మ&amp;ళ్లీ తెరువు</translation>
 <translation id="7396845648024431313"><ph name="APP_NAME" /> సిస్టమ్ ప్రారంభంలో ప్రారంభమవ్వడమే కాక, అన్ని ఇతర <ph name="PRODUCT_NAME" /> విండోలను మీరు మూసివేసిన తర్వాత కూడా నేపథ్యంలో అమలవడం కొనసాగుతుంది.</translation>
 <translation id="7400418766976504921">URL</translation>
 <translation id="7400839060291901923">మీ <ph name="PHONE_NAME" />లో కనెక్షన్‌ని సెటప్ చేయండి</translation>
@@ -4222,6 +4225,7 @@
 <translation id="7788383851298063850">ఏమి జరుగుతోందో మాకు చెప్పండి</translation>
 <translation id="7788444488075094252">భాషలు మరియు ఇన్‌పుట్</translation>
 <translation id="7788668840732459509">స్థానం:</translation>
+<translation id="7789963078219276159">ప్రారంభ పేజీ నేపథ్యం <ph name="CATEGORY" />కు మార్చబడింది.</translation>
 <translation id="7791543448312431591">జోడించు</translation>
 <translation id="7792012425874949788">సైన్ ఇన్ చేయడంలో ఏదో తప్పు జరిగింది</translation>
 <translation id="7792388396321542707">భాగస్వామ్యం చేయడాన్ని ఆపివేయి</translation>
@@ -4768,7 +4772,7 @@
 <translation id="8656768832129462377">తనిఖీ చేయవద్దు</translation>
 <translation id="8658645149275195032"><ph name="APP_NAME" /> మీ స్క్రీన్ మరియు ఆడియోను <ph name="TAB_NAME" />తో భాగస్వామ్యం చేస్తోంది.</translation>
 <translation id="8659875081143553823">ఒక క్షణం వేచి ఉండండి</translation>
-<translation id="8661290697478713397">లింక్‌ను అజ్ఞా&amp;త విండోలో తెరువు</translation>
+<translation id="8661290697478713397">అజ్ఞా&amp;త విండోలో లింక్‌ను తెరువు</translation>
 <translation id="8662671328352114214"><ph name="TYPE" /> నెట్‌వర్క్‌లో చేరండి</translation>
 <translation id="8662795692588422978">వ్యక్తులు</translation>
 <translation id="8662811608048051533">చాలా సైట్‌ల నుండి మిమ్మల్ని సైన్ అవుట్ చేస్తుంది.</translation>
@@ -4822,7 +4826,7 @@
 <translation id="8724859055372736596">ఫోల్డర్‌లో &amp;చూపించు</translation>
 <translation id="8725066075913043281">మళ్ళీ ప్రయత్నించండి</translation>
 <translation id="8725178340343806893">ఇష్టమైనవి/బుక్‌మార్క్‌లు</translation>
-<translation id="8726206820263995930">విధాన సెట్టింగ్‌లను సర్వర్ నుండి పొందుతున్నప్పుడు లోపం: <ph name="CLIENT_ERROR" />.</translation>
+<translation id="8726206820263995930">విధాన సెట్టింగ్‌లను సర్వర్ నుండి పొందుతున్నప్పుడు ఎర్రర్: <ph name="CLIENT_ERROR" />.</translation>
 <translation id="8730621377337864115">పూర్తయింది</translation>
 <translation id="8732030010853991079">ఈ చిహ్నంపై క్లిక్ చేయడం ద్వారా ఈ ఎక్సటెన్షన్‌ను ఉపయోగించండి.</translation>
 <translation id="8732212173949624846">మీ సైన్-ఇన్ చేసిన అన్ని పరికరాల్లో మీ బ్రౌజింగ్ చరిత్రను చదవడం మరియు మార్చడం</translation>
@@ -4853,6 +4857,7 @@
 <translation id="8767621466733104912">అందరు వినియోగదారుల కోసం Chromeను ఆటోమేటిక్‌గా అప్‌డేట్ చేయి</translation>
 <translation id="8770406935328356739">ఎక్స్‌టెన్ష‌న్‌ మూలం డైరెక్టరీ</translation>
 <translation id="8770507190024617908">వ్యక్తులను నిర్వహించు</translation>
+<translation id="8771300903067484968">ప్రారంభ పేజీ నేపథ్యం అన్నది డిఫాల్ట్ నేపథ్యానికి రీసెట్ చేయబడింది.</translation>
 <translation id="8774934320277480003">ఎగువ అంచు</translation>
 <translation id="8775144690796719618">URL చెల్లదు</translation>
 <translation id="8777628254805677039">మూల పాస్‌వర్డ్</translation>
@@ -4963,7 +4968,7 @@
 <translation id="8941173171815156065">'<ph name="PERMISSION" />' అనుమతిని ఉపసంహరించు</translation>
 <translation id="894360074127026135">Netscape అంతర్జాతీయ స్టెప్‌-అప్</translation>
 <translation id="8944099748578356325">బ్యాటరీని మరింత వేగంగా ఉపయోగిస్తుంది (ప్రస్తుతం <ph name="BATTERY_PERCENTAGE" />% ఉంది)</translation>
-<translation id="8944964446326379280"><ph name="APP_NAME" /> ఒక విండోను <ph name="TAB_NAME" />తో భాగస్వామ్యం చేస్తోంది.</translation>
+<translation id="8944964446326379280"><ph name="APP_NAME" /> ఒక విండోను <ph name="TAB_NAME" />తో షేర్ చేస్తోంది.</translation>
 <translation id="8946359700442089734">డీబగ్గింగ్ ఫీచ‌ర్‌లు ఈ <ph name="IDS_SHORT_PRODUCT_NAME" /> పరికరంలో పూర్తిగా ప్రారంభించబడలేదు.</translation>
 <translation id="894871326938397531">అజ్ఞాత మోడ్ నుండి నిష్క్రమించాలా?</translation>
 <translation id="8951256747718668828">ఒక ఎర్రర్ కారణంగా పునరుద్ధరించడం పూర్తి కాలేదు</translation>
@@ -5047,7 +5052,7 @@
 <translation id="9074739597929991885">బ్లూటూత్</translation>
 <translation id="9074836595010225693">USB మౌస్ కనెక్ట్ చేయబడింది</translation>
 <translation id="9076523132036239772">క్షమించండి, మీ ఇమెయిల్ లేదా పాస్‌వర్డ్ ధృవీకరించబడలేదు. మొదట నెట్‌వర్క్‌కి కనెక్ట్ చేయడానికి ప్రయత్నించండి.</translation>
-<translation id="9084064520949870008">విండో వలె తెరువు</translation>
+<translation id="9084064520949870008">విండో లాగా తెరువు</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> ఎంటర్‌ప్రైజ్ విధానం వలన బ్లాక్ చేయబడింది</translation>
 <translation id="9088917181875854783">దయచేసి "<ph name="DEVICE_NAME" />"లో ఈ పాస్‌కీ చూపబడిందని నిర్ధారించండి:</translation>
 <translation id="9094033019050270033">పాస్‌వర్డ్‌ను అప్‌డేట్ చేయి</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 4a267466..2fef3a61 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2202,10 +2202,6 @@
      flag_descriptions::kContentSuggestionsDebugLogName,
      flag_descriptions::kContentSuggestionsDebugLogDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(ntp_snippets::kContentSuggestionsDebugLog)},
-    {"enable-ntp-snippets-increased-visibility",
-     flag_descriptions::kEnableNtpSnippetsVisibilityName,
-     flag_descriptions::kEnableNtpSnippetsVisibilityDescription, kOsAndroid,
-     FEATURE_VALUE_TYPE(ntp_snippets::kIncreasedVisibility)},
     {"contextual-suggestions-button",
      flag_descriptions::kContextualSuggestionsButtonName,
      flag_descriptions::kContextualSuggestionsButtonDescription, kOsAndroid,
@@ -2377,6 +2373,10 @@
     {"enable-content-fullscreen", flag_descriptions::kContentFullscreenName,
      flag_descriptions::kContentFullscreenDescription, kOsMac,
      FEATURE_VALUE_TYPE(features::kContentFullscreen)},
+    {"enable-immersive-fullscreen-toolbar",
+     flag_descriptions::kImmersiveFullscreenName,
+     flag_descriptions::kImmersiveFullscreenDescription, kOsMac,
+     FEATURE_VALUE_TYPE(features::kImmersiveFullscreen)},
 #endif  // OS_MACOSX
     {"rewrite-leveldb-on-deletion",
      flag_descriptions::kRewriteLevelDBOnDeletionName,
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
index 8db1743..3c20feb 100644
--- a/chrome/browser/android/chrome_feature_list.cc
+++ b/chrome/browser/android/chrome_feature_list.cc
@@ -181,7 +181,6 @@
     &payments::features::kWebPaymentsSingleAppUiSkip,
     &language::kExplicitLanguageAsk,
     &ntp_snippets::kArticleSuggestionsFeature,
-    &ntp_snippets::kIncreasedVisibility,
     &ntp_snippets::kNotificationsFeature,
     &ntp_tiles::kSiteExplorationUiFeature,
     &offline_pages::kBackgroundLoaderForDownloadsFeature,
diff --git a/chrome/browser/android/usage_stats/usage_stats_database.cc b/chrome/browser/android/usage_stats/usage_stats_database.cc
index 7c267899..3ddb64e 100644
--- a/chrome/browser/android/usage_stats/usage_stats_database.cc
+++ b/chrome/browser/android/usage_stats/usage_stats_database.cc
@@ -11,6 +11,7 @@
 #include "base/strings/safe_sprintf.h"
 #include "base/strings/strcat.h"
 #include "base/task/post_task.h"
+#include "base/time/time.h"
 #include "chrome/browser/android/usage_stats/website_event.pb.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/leveldb_proto/content/proto_database_provider_factory.h"
@@ -60,6 +61,7 @@
       usage_stats_dir.Append(kTokensDbName), db_task_runner);
 
   InitializeDBs();
+  ExpireEvents(base::Time::NowFromSystemTime());
 }
 
 UsageStatsDatabase::UsageStatsDatabase(
@@ -250,6 +252,16 @@
                      weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
 }
 
+void UsageStatsDatabase::ExpireEvents(base::Time now) {
+  long seven_days_ago =
+      (long)(now - base::TimeDelta::FromDays(EXPIRY_THRESHOLD_DAYS))
+          .ToDoubleT();
+  DeleteEventsInRange(
+      1, seven_days_ago,
+      base::BindOnce(&UsageStatsDatabase::OnWebsiteEventExpiryDone,
+                     weak_ptr_factory_.GetWeakPtr()));
+}
+
 void UsageStatsDatabase::GetAllSuspensions(SuspensionsCallback callback) {
   if (!suspension_db_initialized_) {
     // Defer execution if database is uninitialized.
@@ -414,6 +426,8 @@
   }
 }
 
+void UsageStatsDatabase::OnWebsiteEventExpiryDone(Error error) {}
+
 void UsageStatsDatabase::OnUpdateEntries(StatusCallback callback,
                                          bool isSuccess) {
   std::move(callback).Run(ToError(isSuccess));
diff --git a/chrome/browser/android/usage_stats/usage_stats_database.h b/chrome/browser/android/usage_stats/usage_stats_database.h
index 80f81864..2ea2bc6e 100644
--- a/chrome/browser/android/usage_stats/usage_stats_database.h
+++ b/chrome/browser/android/usage_stats/usage_stats_database.h
@@ -45,6 +45,10 @@
 
   using StatusCallback = base::OnceCallback<void(Error)>;
 
+  // Digital Wellbeing doesn't show activity older than a week, so 7 days is the
+  // max age for event retention.
+  constexpr static int EXPIRY_THRESHOLD_DAYS = 7;
+
   // Initializes the database with user |profile|.
   explicit UsageStatsDatabase(Profile* profile);
 
@@ -68,6 +72,9 @@
   void DeleteEventsWithMatchingDomains(base::flat_set<std::string> domains,
                                        StatusCallback callback);
 
+  // Delete events older than EXPIRY_THRESHOLD_DAYS.
+  void ExpireEvents(base::Time now);
+
   void GetAllSuspensions(SuspensionsCallback callback);
 
   // Persists all the suspensions in |domains| and deletes any suspensions *not*
@@ -100,6 +107,8 @@
   void OnTokenMappingInitDone(bool retry,
                               leveldb_proto::Enums::InitStatus status);
 
+  void OnWebsiteEventExpiryDone(Error error);
+
   void OnUpdateEntries(StatusCallback callback, bool isSuccess);
 
   void OnLoadEntriesForGetAllEvents(
diff --git a/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc b/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
index 911de546..50971dd 100644
--- a/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
+++ b/chrome/browser/android/usage_stats/usage_stats_database_unittest.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "base/bind.h"
+#include "base/time/time.h"
 #include "chrome/browser/android/usage_stats/website_event.pb.h"
 #include "components/leveldb_proto/testing/fake_db.h"
 #include "testing/gmock/include/gmock/gmock.h"
@@ -307,6 +308,47 @@
   fake_website_event_db()->LoadCallback(true);
 }
 
+TEST_F(UsageStatsDatabaseTest, ExpiryDeletesOldEvents) {
+  fake_website_event_db()->InitStatusCallback(
+      leveldb_proto::Enums::InitStatus::kOK);
+
+  // Add 3 events.
+  base::Time now = base::Time::NowFromSystemTime();
+  long now_in_seconds = now.ToDoubleT();
+  WebsiteEvent event1 = CreateWebsiteEvent(kFqdn1, now_in_seconds + 1,
+                                           WebsiteEvent::START_BROWSING);
+  WebsiteEvent event2 = CreateWebsiteEvent(kFqdn1, now_in_seconds + 2,
+                                           WebsiteEvent::START_BROWSING);
+  WebsiteEvent event3 = CreateWebsiteEvent(kFqdn1, now_in_seconds + 10,
+                                           WebsiteEvent::START_BROWSING);
+  std::vector<WebsiteEvent> events({event1, event2, event3});
+
+  usage_stats_database()->AddEvents(
+      events, base::BindOnce(&UsageStatsDatabaseTest::OnUpdateDone,
+                             base::Unretained(this)));
+  EXPECT_CALL(*this, OnUpdateDone(UsageStatsDatabase::Error::kNoError));
+
+  fake_website_event_db()->UpdateCallback(true);
+
+  // Advance "now" by 7 days + 9 seconds so that the first two events are > 7
+  // days old.
+  now = now +
+        base::TimeDelta::FromDays(UsageStatsDatabase::EXPIRY_THRESHOLD_DAYS) +
+        base::TimeDelta::FromSeconds(9);
+  usage_stats_database()->ExpireEvents(now);
+
+  fake_website_event_db()->LoadCallback(true);
+  fake_website_event_db()->UpdateCallback(true);
+
+  usage_stats_database()->GetAllEvents(base::BindOnce(
+      &UsageStatsDatabaseTest::OnGetEventsDone, base::Unretained(this)));
+
+  EXPECT_CALL(*this, OnGetEventsDone(UsageStatsDatabase::Error::kNoError,
+                                     ElementsAre(EqualsWebsiteEvent(event3))));
+
+  fake_website_event_db()->LoadCallback(true);
+}
+
 TEST_F(UsageStatsDatabaseTest, AddAndDeleteEventsMatchingDomain) {
   fake_website_event_db()->InitStatusCallback(
       leveldb_proto::Enums::InitStatus::kOK);
diff --git a/chrome/browser/banners/app_banner_manager.cc b/chrome/browser/banners/app_banner_manager.cc
index 84c2bdf19..99911c3 100644
--- a/chrome/browser/banners/app_banner_manager.cc
+++ b/chrome/browser/banners/app_banner_manager.cc
@@ -461,36 +461,17 @@
   return NO_ERROR_DETECTED;
 }
 
-bool AppBannerManager::IsInstallable() const {
-  return installable_ == Installable::INSTALLABLE_YES;
-}
-
 void AppBannerManager::SetInstallable(Installable installable) {
   if (installable_ == installable)
     return;
 
   installable_ = installable;
-
-  if (IsInstallable()) {
-    // TODO(https://crbug.com/943916): Move empty scope handling up into the
-    // ManifestParser.
-    SetLastInstallableScope(manifest_.scope.is_empty() ? manifest_.start_url
-                                                       : manifest_.scope);
-  } else if (installable_ == Installable::INSTALLABLE_NO) {
-    SetLastInstallableScope(GURL());
-  }
+  install_animation_pending_ = IsInstallable();
 
   for (Observer& observer : observer_list_)
     observer.OnInstallabilityUpdated();
 }
 
-void AppBannerManager::SetLastInstallableScope(const GURL& url) {
-  if (last_installable_scope_ == url)
-    return;
-  last_installable_scope_ = url;
-  install_animation_pending_ = last_installable_scope_.is_valid();
-}
-
 void AppBannerManager::MigrateObserverListForTesting(
     content::WebContents* web_contents) {
   AppBannerManager* existing_manager = FromWebContents(web_contents);
@@ -504,8 +485,6 @@
 void AppBannerManager::Stop(InstallableStatusCode code) {
   ReportStatus(code);
 
-  if (installable_ == Installable::UNKNOWN)
-    SetInstallable(Installable::INSTALLABLE_NO);
   weak_factory_.InvalidateWeakPtrs();
   ResetBindings();
   UpdateState(State::COMPLETE);
@@ -664,18 +643,12 @@
   return manager->GetAppName();
 }
 
-bool AppBannerManager::IsProbablyInstallable() const {
-  if (IsInstallable())
-    return true;
-  return installable_ == Installable::UNKNOWN &&
-         last_installable_scope_.is_valid() &&
-         base::StartsWith(web_contents()->GetLastCommittedURL().spec(),
-                          last_installable_scope_.spec(),
-                          base::CompareCase::SENSITIVE);
+bool AppBannerManager::IsInstallable() const {
+  return installable_ == Installable::INSTALLABLE_YES;
 }
 
 bool AppBannerManager::MaybeConsumeInstallAnimation() {
-  DCHECK(IsProbablyInstallable());
+  DCHECK(IsInstallable());
   if (!install_animation_pending_)
     return false;
   install_animation_pending_ = false;
diff --git a/chrome/browser/banners/app_banner_manager.h b/chrome/browser/banners/app_banner_manager.h
index bc65b1b..ec0d45a 100644
--- a/chrome/browser/banners/app_banner_manager.h
+++ b/chrome/browser/banners/app_banner_manager.h
@@ -145,9 +145,8 @@
       content::WebContents* web_contents);
 
   // Returns whether installability checks have passed (e.g. having a service
-  // worker fetch event) or have passed previously within the current manifest
-  // scope.
-  bool IsProbablyInstallable() const;
+  // worker fetch event).
+  bool IsInstallable() const;
 
   // Each successful installability check gets to show one animation prompt,
   // this returns and consumes the animation prompt if it is available.
@@ -369,11 +368,8 @@
   // Returns a status code based on the current state, to log when terminating.
   InstallableStatusCode TerminationCode() const;
 
-  bool IsInstallable() const;
   void SetInstallable(Installable installable);
 
-  void SetLastInstallableScope(const GURL& url);
-
   // Fetches the data required to display a banner for the current page.
   InstallableManager* manager_;
 
@@ -398,10 +394,6 @@
   bool install_animation_pending_;
   Installable installable_;
 
-  // The scope of the most recent installability check if successful otherwise
-  // invalid.
-  GURL last_installable_scope_;
-
   base::ObserverList<Observer, true> observer_list_;
 
   // The concrete subclasses of this class are expected to have their lifetimes
diff --git a/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.cc b/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.cc
index 1280a28..a428f5c 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.cc
+++ b/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.cc
@@ -63,4 +63,9 @@
   launch_with_mic_open_ = launch_with_mic_open;
 }
 
+void FakeVoiceInteractionController::NotifyArcPlayStoreEnabledChanged(
+    bool enabled) {
+  arc_play_store_enabled_ = enabled;
+}
+
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.h b/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.h
index 36a4228..0658fb8 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.h
+++ b/chrome/browser/chromeos/arc/voice_interaction/fake_voice_interaction_controller.h
@@ -31,6 +31,7 @@
   void NotifyNotificationEnabled(bool enabled) override;
   void NotifyLocaleChanged(const std::string& locale) override;
   void NotifyLaunchWithMicOpen(bool launch_with_mic_open) override;
+  void NotifyArcPlayStoreEnabledChanged(bool enabled) override;
   void AddObserver(ash::mojom::VoiceInteractionObserverPtr observer) override {}
 
   ash::mojom::VoiceInteractionState voice_interaction_state() const {
@@ -56,6 +57,7 @@
   }
   const std::string& locale() const { return locale_; }
   bool launch_with_mic_open() const { return launch_with_mic_open_; }
+  bool arc_play_store_enabled() const { return arc_play_store_enabled_; }
 
  private:
   ash::mojom::VoiceInteractionState voice_interaction_state_ =
@@ -71,6 +73,7 @@
   ash::mojom::AssistantAllowedState assistant_allowed_state_ =
       ash::mojom::AssistantAllowedState::DISALLOWED_BY_INCOGNITO;
   bool launch_with_mic_open_ = false;
+  bool arc_play_store_enabled_ = false;
 
   mojo::Binding<ash::mojom::VoiceInteractionController> binding_;
 
diff --git a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
index 8d4b196..396d8d2 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
+++ b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
@@ -11,6 +11,7 @@
 #include "ash/public/interfaces/constants.mojom.h"
 #include "base/bind.h"
 #include "chrome/browser/chrome_notification_types.h"
+#include "chrome/browser/chromeos/arc/arc_util.h"
 #include "chrome/browser/chromeos/assistant/assistant_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
@@ -47,6 +48,7 @@
   notification_registrar_.Add(this, chrome::NOTIFICATION_PROFILE_DESTROYED,
                               content::NotificationService::AllSources());
 
+  arc::ArcSessionManager::Get()->AddObserver(this);
   g_voice_interaction_controller_client_instance = this;
 
   if (chromeos::switches::IsAssistantEnabled()) {
@@ -57,6 +59,7 @@
 VoiceInteractionControllerClient::~VoiceInteractionControllerClient() {
   DCHECK_EQ(g_voice_interaction_controller_client_instance, this);
   g_voice_interaction_controller_client_instance = nullptr;
+  arc::ArcSessionManager::Get()->RemoveObserver(this);
 }
 
 void VoiceInteractionControllerClient::AddObserver(Observer* observer) {
@@ -230,6 +233,7 @@
   NotifyLaunchWithMicOpen();
   NotifyHotwordEnabled();
   NotifyHotwordAlwaysOn();
+  OnArcPlayStoreEnabledChanged(IsArcPlayStoreEnabledForProfile(profile_));
 }
 
 void VoiceInteractionControllerClient::Observe(
@@ -266,4 +270,9 @@
                                               &voice_interaction_controller_);
 }
 
+void VoiceInteractionControllerClient::OnArcPlayStoreEnabledChanged(
+    bool enabled) {
+  voice_interaction_controller_->NotifyArcPlayStoreEnabledChanged(enabled);
+}
+
 }  // namespace arc
diff --git a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.h b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.h
index 7e64737..ac45dcd 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.h
+++ b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.h
@@ -21,7 +21,8 @@
 // state changes that does not have an observer interface.
 class VoiceInteractionControllerClient
     : public content::NotificationObserver,
-      public user_manager::UserManager::UserSessionStateObserver {
+      public user_manager::UserManager::UserSessionStateObserver,
+      public ArcSessionManager::Observer {
  public:
   class Observer {
    public:
@@ -70,6 +71,9 @@
                const content::NotificationSource& source,
                const content::NotificationDetails& details) override;
 
+  // Override ArcSessionManager::Observer
+  void OnArcPlayStoreEnabledChanged(bool enabled) override;
+
   void SetProfile(Profile* profile);
 
   void ConnectToVoiceInteractionController();
diff --git a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client_unittest.cc b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client_unittest.cc
index 5e658eb..5287eec 100644
--- a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client_unittest.cc
+++ b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client_unittest.cc
@@ -60,11 +60,11 @@
   }
 
   void TearDown() override {
-    arc_session_manager_->Shutdown();
-    arc_session_manager_.reset();
     voice_interaction_controller_.reset();
     voice_interaction_controller_client_.reset();
     profile_.reset();
+    arc_session_manager_->Shutdown();
+    arc_session_manager_.reset();
     ChromeAshTestBase::TearDown();
   }
 
diff --git a/chrome/browser/chromeos/child_accounts/screen_time_controller.cc b/chrome/browser/chromeos/child_accounts/screen_time_controller.cc
index 6ea7f2e..b0af16c5 100644
--- a/chrome/browser/chromeos/child_accounts/screen_time_controller.cc
+++ b/chrome/browser/chromeos/child_accounts/screen_time_controller.cc
@@ -22,6 +22,7 @@
 #include "chrome/browser/chromeos/profiles/profile_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/ash/login_screen_client.h"
+#include "chrome/browser/ui/ash/media_client.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -176,7 +177,7 @@
   VLOG(1) << "Screen should be locked is set to " << state.is_locked;
 
   if (state.is_locked) {
-    EnableTimeLimitsMessage(state.active_policy, state.next_unlock_time);
+    OnScreenLockByPolicy(state.active_policy, state.next_unlock_time);
     DCHECK(!state.next_unlock_time.is_null());
     if (!session_manager::SessionManager::Get()->IsScreenLocked()) {
       // This status report are going to be done in EventBasedStatusReporting if
@@ -189,7 +190,7 @@
       ForceScreenLockByPolicy();
     }
   } else {
-    DisableTimeLimitsMessage();
+    OnScreenLockByPolicyEnd();
     base::Optional<TimeLimitNotifier::LimitType> notification_type;
     switch (state.next_state_active_policy) {
       case usage_time_limit::ActivePolicies::kFixedLimit:
@@ -251,12 +252,13 @@
       ->RequestLockScreen();
 }
 
-void ScreenTimeController::EnableTimeLimitsMessage(
+void ScreenTimeController::OnScreenLockByPolicy(
     usage_time_limit::ActivePolicies active_policy,
     base::Time next_unlock_time) {
   if (!session_manager::SessionManager::Get()->IsScreenLocked())
     return;
 
+  // Show lock message.
   AccountId account_id =
       chromeos::ProfileHelper::Get()
           ->GetUserByProfile(Profile::FromBrowserContext(context_))
@@ -268,11 +270,16 @@
       account_id,
       ash::mojom::AuthDisabledData::New(
           disabled_reason.value(), next_unlock_time, GetScreenTimeDuration()));
+
+  // Add parent access code button.
   if (base::FeatureList::IsEnabled(features::kParentAccessCode))
     LoginScreenClient::Get()->login_screen()->SetShowParentAccessButton(true);
+
+  // Prevent media from continuing to play after device is locked.
+  MediaClient::Get()->SuspendMediaSessions();
 }
 
-void ScreenTimeController::DisableTimeLimitsMessage() {
+void ScreenTimeController::OnScreenLockByPolicyEnd() {
   if (!session_manager::SessionManager::Get()->IsScreenLocked())
     return;
 
@@ -488,8 +495,8 @@
     base::Optional<usage_time_limit::State> last_state = GetLastStateFromPref();
     if (session_state == session_manager::SessionState::LOCKED && last_state &&
         last_state->is_locked) {
-      EnableTimeLimitsMessage(last_state->active_policy,
-                              last_state->next_unlock_time);
+      OnScreenLockByPolicy(last_state->active_policy,
+                           last_state->next_unlock_time);
     }
     return;
   }
@@ -497,8 +504,8 @@
   if (session_state == session_manager::SessionState::LOCKED) {
     base::Optional<usage_time_limit::State> last_state = GetLastStateFromPref();
     if (last_state && last_state->is_locked) {
-      EnableTimeLimitsMessage(last_state->active_policy,
-                              last_state->next_unlock_time);
+      OnScreenLockByPolicy(last_state->active_policy,
+                           last_state->next_unlock_time);
     }
     ResetInSessionTimers();
   } else if (session_state == session_manager::SessionState::ACTIVE) {
diff --git a/chrome/browser/chromeos/child_accounts/screen_time_controller.h b/chrome/browser/chromeos/child_accounts/screen_time_controller.h
index dd5a08d6..eb7256f 100644
--- a/chrome/browser/chromeos/child_accounts/screen_time_controller.h
+++ b/chrome/browser/chromeos/child_accounts/screen_time_controller.h
@@ -91,17 +91,17 @@
   // is locked.
   void ForceScreenLockByPolicy();
 
-  // Enables and updates the content of the time limits message in the lock
-  // screen.
+  // Enables the time limits message in the lock screen and performs tasks that
+  // need to run after the screen is locked.
   // |active_policy|: Which policy is locking the device, only valid when
   //                  |visible| is true.
   // |next_unlock_time|: When user will be able to unlock the screen, only valid
   //                     when |visible| is true.
-  void EnableTimeLimitsMessage(usage_time_limit::ActivePolicies active_policy,
-                               base::Time next_unlock_time);
+  void OnScreenLockByPolicy(usage_time_limit::ActivePolicies active_policy,
+                            base::Time next_unlock_time);
 
   // Disables the time limits message in the lock screen.
-  void DisableTimeLimitsMessage();
+  void OnScreenLockByPolicyEnd();
 
   // Converts the active policy to its equivalent on the ash enum.
   base::Optional<ash::mojom::AuthDisabledReason> ConvertLockReason(
diff --git a/chrome/browser/conflicts/incompatible_applications_updater_win.cc b/chrome/browser/conflicts/incompatible_applications_updater_win.cc
index 37bfeb1..5a45328 100644
--- a/chrome/browser/conflicts/incompatible_applications_updater_win.cc
+++ b/chrome/browser/conflicts/incompatible_applications_updater_win.cc
@@ -13,6 +13,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/path_service.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/task/post_task.h"
 #include "base/values.h"
 #include "base/win/registry.h"
 #include "base/win/windows_version.h"
@@ -27,6 +28,7 @@
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/pref_service.h"
 #include "components/prefs/scoped_user_pref_update.h"
+#include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 
 namespace {
@@ -184,6 +186,38 @@
   RemoveStaleApplications(stale_application_names);
 }
 
+// Updates the kIncompatibleApplications pref with those contained in
+// |incompatible_applications|.
+void UpdateIncompatibleApplications(
+    bool should_clear_pref,
+    std::vector<IncompatibleApplicationsUpdater::IncompatibleApplication>
+        incompatible_applications) {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+  // Clear pref if requested.
+  if (should_clear_pref) {
+    g_browser_process->local_state()->ClearPref(
+        prefs::kIncompatibleApplications);
+  }
+
+  // If there is no new incompatible application, there is nothing to do.
+  if (incompatible_applications.empty())
+    return;
+
+  // The conversion of the accumulated applications to a json dictionary takes
+  // care of eliminating duplicates.
+  base::Value new_applications = ConvertToDictionary(incompatible_applications);
+
+  // Update the existing dictionary.
+  DictionaryPrefUpdate update(g_browser_process->local_state(),
+                              prefs::kIncompatibleApplications);
+  base::Value* existing_applications = update.Get();
+  for (auto&& element : new_applications.DictItems()) {
+    existing_applications->SetKey(std::move(element.first),
+                                  std::move(element.second));
+  }
+}
+
 }  // namespace
 
 // -----------------------------------------------------------------------------
@@ -220,11 +254,12 @@
       module_list_filter_(std::move(module_list_filter)),
       installed_applications_(installed_applications),
       module_analysis_disabled_(module_analysis_disabled) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   module_database_event_source_->AddObserver(this);
 }
 
 IncompatibleApplicationsUpdater::~IncompatibleApplicationsUpdater() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
   module_database_event_source_->RemoveObserver(this);
 }
 
@@ -237,6 +272,8 @@
 
 // static
 bool IncompatibleApplicationsUpdater::IsWarningEnabled() {
+  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
   return base::win::GetVersion() >= base::win::VERSION_WIN10 &&
          ModuleDatabase::IsThirdPartyBlockingPolicyEnabled() &&
          base::FeatureList::IsEnabled(
@@ -283,7 +320,7 @@
 void IncompatibleApplicationsUpdater::OnNewModuleFound(
     const ModuleInfoKey& module_key,
     const ModuleInfoData& module_data) {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   // This is meant to create the element in the map if it doesn't exist yet.
   ModuleWarningDecision& warning_decision =
@@ -400,48 +437,38 @@
 void IncompatibleApplicationsUpdater::OnKnownModuleLoaded(
     const ModuleInfoKey& module_key,
     const ModuleInfoData& module_data) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
   // Analyze the module again.
   OnNewModuleFound(module_key, module_data);
 }
 
 void IncompatibleApplicationsUpdater::OnModuleDatabaseIdle() {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  // On the first call to OnModuleDatabaseIdle(), the previous value must always
-  // be overwritten.
-  if (before_first_idle_)
-    g_browser_process->local_state()->ClearPref(
-        prefs::kIncompatibleApplications);
-  before_first_idle_ = false;
-
-  // If there is no new incompatible application, there is nothing to do.
-  if (incompatible_applications_.empty())
-    return;
-
-  // The conversion of the accumulated applications to a json dictionary takes
-  // care of eliminating duplicates.
-  base::Value new_applications =
-      ConvertToDictionary(incompatible_applications_);
+  // Update the list of incompatible applications on the UI thread. On the first
+  // call to UpdateIncompatibleApplications(), the previous value must always be
+  // overwritten.
+  base::PostTaskWithTraits(
+      FROM_HERE, {content::BrowserThread::UI},
+      base::BindOnce(&UpdateIncompatibleApplications, before_first_idle_,
+                     std::move(incompatible_applications_)));
   incompatible_applications_.clear();
-
-  // Update the existing dictionary.
-  DictionaryPrefUpdate update(g_browser_process->local_state(),
-                              prefs::kIncompatibleApplications);
-  base::Value* existing_applications = update.Get();
-  for (auto&& element : new_applications.DictItems()) {
-    existing_applications->SetKey(std::move(element.first),
-                                  std::move(element.second));
-  }
+  before_first_idle_ = false;
 }
 
 IncompatibleApplicationsUpdater::ModuleWarningDecision
 IncompatibleApplicationsUpdater::GetModuleWarningDecision(
     const ModuleInfoKey& module_key) const {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
   auto it = module_warning_decisions_.find(module_key);
   DCHECK(it != module_warning_decisions_.end());
   return it->second;
 }
 
 void IncompatibleApplicationsUpdater::DisableModuleAnalysis() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
   module_analysis_disabled_ = true;
 }
diff --git a/chrome/browser/conflicts/incompatible_applications_updater_win.h b/chrome/browser/conflicts/incompatible_applications_updater_win.h
index 7c01a1f..53033f07 100644
--- a/chrome/browser/conflicts/incompatible_applications_updater_win.h
+++ b/chrome/browser/conflicts/incompatible_applications_updater_win.h
@@ -11,13 +11,14 @@
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
+#include "base/sequence_checker.h"
 #include "chrome/browser/conflicts/installed_applications_win.h"
 #include "chrome/browser/conflicts/module_database_observer_win.h"
 #include "chrome/browser/conflicts/proto/module_list.pb.h"
 
-struct CertificateInfo;
 class ModuleListFilter;
 class PrefRegistrySimple;
+struct CertificateInfo;
 
 // Maintains a list of incompatible applications that are installed on the
 // machine. These applications cause unwanted DLLs to be loaded into Chrome.
@@ -140,6 +141,8 @@
   // workaround for https://crbug.com/892294.
   bool module_analysis_disabled_;
 
+  SEQUENCE_CHECKER(sequence_checker_);
+
   DISALLOW_COPY_AND_ASSIGN(IncompatibleApplicationsUpdater);
 };
 
diff --git a/chrome/browser/conflicts/incompatible_applications_updater_win_unittest.cc b/chrome/browser/conflicts/incompatible_applications_updater_win_unittest.cc
index 388ddb2..6e5b7c26 100644
--- a/chrome/browser/conflicts/incompatible_applications_updater_win_unittest.cc
+++ b/chrome/browser/conflicts/incompatible_applications_updater_win_unittest.cc
@@ -10,6 +10,7 @@
 
 #include "base/logging.h"
 #include "base/optional.h"
+#include "base/run_loop.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/test_reg_util_win.h"
 #include "base/win/registry.h"
@@ -156,6 +157,8 @@
   void AddObserver(ModuleDatabaseObserver* observer) override {}
   void RemoveObserver(ModuleDatabaseObserver* observer) override {}
 
+  void RunLoopUntilIdle() { base::RunLoop().RunUntilIdle(); }
+
   const base::FilePath dll1_;
   const base::FilePath dll2_;
 
@@ -188,6 +191,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       ModuleInfoKey(dll1_, 0, 0), CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   EXPECT_TRUE(IncompatibleApplicationsUpdater::GetCachedApplications().empty());
@@ -202,6 +206,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   EXPECT_TRUE(IncompatibleApplicationsUpdater::GetCachedApplications().empty());
@@ -223,6 +228,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_TRUE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -246,6 +252,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_TRUE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -269,12 +276,14 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key1, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   // Add an additional module.
   ModuleInfoKey module_key2(dll2_, 0, 0);
   incompatible_applications_updater->OnNewModuleFound(
       module_key2, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_TRUE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -304,6 +313,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       ModuleInfoKey(dll1_, 0, 0), CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_TRUE(IncompatibleApplicationsUpdater::HasCachedApplications());
 
@@ -327,6 +337,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       ModuleInfoKey(dll2_, 0, 0), CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_TRUE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -347,6 +358,7 @@
   module_data.inspection_result = base::make_optional<ModuleInspectionResult>();
   incompatible_applications_updater->OnNewModuleFound(module_key, module_data);
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -370,6 +382,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key, CreateSignedLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -406,6 +419,7 @@
   incompatible_applications_updater->OnNewModuleFound(module_key2,
                                                       module_data2);
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -435,6 +449,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       ModuleInfoKey(dll1_, 0, 0), module_data);
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
   auto application_names =
@@ -455,6 +470,7 @@
   incompatible_applications_updater->OnNewModuleFound(
       module_key, CreateLoadedModuleInfoData());
   incompatible_applications_updater->OnModuleDatabaseIdle();
+  RunLoopUntilIdle();
 
   // The module does not cause a warning.
   EXPECT_FALSE(IncompatibleApplicationsUpdater::HasCachedApplications());
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc
index 4578696..be110f6 100644
--- a/chrome/browser/devtools/devtools_window.cc
+++ b/chrome/browser/devtools/devtools_window.cc
@@ -1545,6 +1545,8 @@
 void DevToolsWindow::CreateDevToolsBrowser() {
   PrefService* prefs = profile_->GetPrefs();
   if (!prefs->GetDictionary(prefs::kAppWindowPlacement)->HasKey(kDevToolsApp)) {
+    // Ensure there is always a default size so that
+    // BrowserFrame::InitBrowserFrame can retrieve it later.
     DictionaryPrefUpdate update(prefs, prefs::kAppWindowPlacement);
     base::DictionaryValue* wp_prefs = update.Get();
     auto dev_tools_defaults = std::make_unique<base::DictionaryValue>();
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index e750e240..f2b2dfac 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -383,6 +383,8 @@
     "api/tabs/tabs_constants.h",
     "api/tabs/tabs_event_router.cc",
     "api/tabs/tabs_event_router.h",
+    "api/tabs/tabs_util.h",
+    "api/tabs/tabs_util_chromeos.cc",
     "api/tabs/tabs_windows_api.cc",
     "api/tabs/tabs_windows_api.h",
     "api/tabs/windows_event_router.cc",
@@ -1018,6 +1020,7 @@
       "api/messaging/native_process_launcher.cc",
       "api/messaging/native_process_launcher.h",
       "api/messaging/native_process_launcher_win.cc",
+      "api/tabs/tabs_util.cc",
       "chrome_kiosk_delegate.cc",
       "default_apps.cc",
       "default_apps.h",
diff --git a/chrome/browser/extensions/api/tabs/OWNERS b/chrome/browser/extensions/api/tabs/OWNERS
new file mode 100644
index 0000000..53f28c0
--- /dev/null
+++ b/chrome/browser/extensions/api/tabs/OWNERS
@@ -0,0 +1,2 @@
+# For Locked Fullscreen mode.
+per-file tabs_util*=isandrk@chromium.org
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index 1882be6..22717b0 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -28,6 +28,7 @@
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
+#include "chrome/browser/extensions/api/tabs/tabs_util.h"
 #include "chrome/browser/extensions/api/tabs/windows_util.h"
 #include "chrome/browser/extensions/browser_extension_window_controller.h"
 #include "chrome/browser/extensions/extension_service.h"
@@ -97,20 +98,6 @@
 #include "ui/base/models/list_selection_model.h"
 #include "ui/base/ui_base_types.h"
 
-#if defined(OS_CHROMEOS)
-#include "ash/public/cpp/window_properties.h"
-#include "ash/public/interfaces/window_pin_type.mojom.h"
-#include "chrome/browser/chromeos/arc/arc_session_manager.h"
-#include "chrome/browser/chromeos/arc/arc_util.h"
-#include "chrome/browser/ui/ash/chrome_screenshot_grabber.h"
-#include "chrome/browser/ui/browser_command_controller.h"
-#include "content/public/browser/devtools_agent_host.h"
-#include "ui/aura/window.h"
-#include "ui/base/clipboard/clipboard.h"
-#include "ui/base/clipboard/clipboard_types.h"
-#include "ui/base/ui_base_features.h"
-#endif
-
 using content::BrowserThread;
 using content::NavigationController;
 using content::NavigationEntry;
@@ -290,51 +277,6 @@
       APIPermission::kLockWindowFullscreenPrivate);
 }
 
-#if defined(OS_CHROMEOS)
-// TODO(isandrk, crbug.com/937786): Move platform specific code out of this
-// file.
-void SetLockedFullscreenState(Browser* browser, bool locked) {
-  UMA_HISTOGRAM_BOOLEAN("Extensions.LockedFullscreenStateRequest", locked);
-
-  aura::Window* window = browser->window()->GetNativeWindow();
-  // TRUSTED_PINNED is used here because that one locks the window fullscreen
-  // without allowing the user to exit (as opposed to regular PINNED).
-  window->SetProperty(ash::kWindowPinTypeKey,
-                      locked ? ash::mojom::WindowPinType::TRUSTED_PINNED
-                             : ash::mojom::WindowPinType::NONE);
-
-  // Update the set of available browser commands.
-  browser->command_controller()->LockedFullscreenStateChanged();
-
-  // Disallow screenshots in locked fullscreen mode.
-  // TODO(isandrk, 816900): ChromeScreenshotGrabber isn't implemented in Mash
-  // yet, remove this conditional when it becomes available.
-  if (!features::IsMultiProcessMash())
-    ChromeScreenshotGrabber::Get()->set_screenshots_allowed(!locked);
-
-  // Reset the clipboard and kill dev tools when entering or exiting locked
-  // fullscreen (security concerns).
-  ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
-  content::DevToolsAgentHost::DetachAllClients();
-
-  // Disable ARC while in the locked fullscreen mode.
-  arc::ArcSessionManager* const arc_session_manager =
-      arc::ArcSessionManager::Get();
-  Profile* const profile = browser->profile();
-  if (arc_session_manager && arc::IsArcAllowedForProfile(profile)) {
-    if (locked) {
-      // Disable ARC, preserve data.
-      arc_session_manager->RequestDisable();
-    } else {
-      // Re-enable ARC if needed.
-      if (arc::IsArcPlayStoreEnabledForProfile(profile))
-        arc_session_manager->RequestEnable();
-    }
-  }
-}
-
-#endif  // defined(OS_CHROMEOS)
-
 }  // namespace
 
 void ZoomModeToZoomSettings(ZoomController::ZoomMode zoom_mode,
@@ -697,15 +639,13 @@
   else
     new_window->window()->ShowInactive();
 
-#if defined(OS_CHROMEOS)
   // Lock the window fullscreen only after the new tab has been created
   // (otherwise the tabstrip is empty), and window()->show() has been called
   // (otherwise that resets the locked mode for devices in tablet mode).
   if (create_data &&
       create_data->state == windows::WINDOW_STATE_LOCKED_FULLSCREEN) {
-    SetLockedFullscreenState(new_window, true);
+    tabs_util::SetLockedFullscreenState(new_window, true);
   }
-#endif
 
   std::unique_ptr<base::Value> result;
   if (new_window->profile()->IsOffTheRecord() &&
@@ -739,19 +679,13 @@
   // state (crbug.com/703733).
   ReportRequestedWindowState(params->update_info.state);
 
-  if (params->update_info.state == windows::WINDOW_STATE_LOCKED_FULLSCREEN &&
-      !ExtensionHasLockedFullscreenPermission(extension())) {
-    return RespondNow(
-        Error(tabs_constants::kMissingLockWindowFullscreenPrivatePermission));
-  }
-
-#if defined(OS_CHROMEOS)
-  const bool is_locked_fullscreen =
-      platform_util::IsBrowserLockedFullscreen(browser);
   // Don't allow locked fullscreen operations on a window without the proper
   // permission (also don't allow any operations on a locked window if the
   // extension doesn't have the permission).
-  if (is_locked_fullscreen &&
+  const bool is_locked_fullscreen =
+      platform_util::IsBrowserLockedFullscreen(browser);
+  if ((params->update_info.state == windows::WINDOW_STATE_LOCKED_FULLSCREEN ||
+       is_locked_fullscreen) &&
       !ExtensionHasLockedFullscreenPermission(extension())) {
     return RespondNow(
         Error(tabs_constants::kMissingLockWindowFullscreenPrivatePermission));
@@ -761,13 +695,12 @@
   if (is_locked_fullscreen &&
       params->update_info.state != windows::WINDOW_STATE_LOCKED_FULLSCREEN &&
       params->update_info.state != windows::WINDOW_STATE_NONE) {
-    SetLockedFullscreenState(browser, false);
+    tabs_util::SetLockedFullscreenState(browser, false);
   } else if (!is_locked_fullscreen &&
              params->update_info.state ==
                  windows::WINDOW_STATE_LOCKED_FULLSCREEN) {
-    SetLockedFullscreenState(browser, true);
+    tabs_util::SetLockedFullscreenState(browser, true);
   }
-#endif
 
   ui::WindowShowState show_state =
       ConvertToWindowShowState(params->update_info.state);
diff --git a/chrome/browser/extensions/api/tabs/tabs_util.cc b/chrome/browser/extensions/api/tabs/tabs_util.cc
new file mode 100644
index 0000000..799ee4f
--- /dev/null
+++ b/chrome/browser/extensions/api/tabs/tabs_util.cc
@@ -0,0 +1,13 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/api/tabs/tabs_util.h"
+
+namespace extensions {
+namespace tabs_util {
+
+void SetLockedFullscreenState(Browser* browser, bool locked) {}
+
+}  // namespace tabs_util
+}  // namespace extensions
diff --git a/chrome/browser/extensions/api/tabs/tabs_util.h b/chrome/browser/extensions/api/tabs/tabs_util.h
new file mode 100644
index 0000000..8b6e133
--- /dev/null
+++ b/chrome/browser/extensions/api/tabs/tabs_util.h
@@ -0,0 +1,24 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_UTIL_H_
+#define CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_UTIL_H_
+
+// Use this file for platform specific code.  Declare any functions in here, and
+// then define an empty implementation in tabs_util.cc, and put the actual code
+// in eg. tabs_util_chromeos.cc.
+
+class Browser;
+
+namespace extensions {
+namespace tabs_util {
+
+// Set up the browser in the locked fullscreen state, and do any additional
+// necessary adjustments.
+void SetLockedFullscreenState(Browser* browser, bool locked);
+
+}  // namespace tabs_util
+}  // namespace extensions
+
+#endif  // CHROME_BROWSER_EXTENSIONS_API_TABS_TABS_UTIL_H_
diff --git a/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
new file mode 100644
index 0000000..d09e42c
--- /dev/null
+++ b/chrome/browser/extensions/api/tabs/tabs_util_chromeos.cc
@@ -0,0 +1,66 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/api/tabs/tabs_util.h"
+
+#include "ash/public/cpp/window_properties.h"
+#include "ash/public/interfaces/window_pin_type.mojom.h"
+#include "base/metrics/histogram_macros.h"
+#include "chrome/browser/chromeos/arc/arc_session_manager.h"
+#include "chrome/browser/chromeos/arc/arc_util.h"
+#include "chrome/browser/ui/ash/chrome_screenshot_grabber.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_command_controller.h"
+#include "chrome/browser/ui/browser_window.h"
+#include "content/public/browser/devtools_agent_host.h"
+#include "ui/aura/window.h"
+#include "ui/base/clipboard/clipboard.h"
+#include "ui/base/clipboard/clipboard_types.h"
+#include "ui/base/ui_base_features.h"
+
+namespace extensions {
+namespace tabs_util {
+
+void SetLockedFullscreenState(Browser* browser, bool locked) {
+  UMA_HISTOGRAM_BOOLEAN("Extensions.LockedFullscreenStateRequest", locked);
+
+  aura::Window* window = browser->window()->GetNativeWindow();
+  // TRUSTED_PINNED is used here because that one locks the window fullscreen
+  // without allowing the user to exit (as opposed to regular PINNED).
+  window->SetProperty(ash::kWindowPinTypeKey,
+                      locked ? ash::mojom::WindowPinType::TRUSTED_PINNED
+                             : ash::mojom::WindowPinType::NONE);
+
+  // Update the set of available browser commands.
+  browser->command_controller()->LockedFullscreenStateChanged();
+
+  // Disallow screenshots in locked fullscreen mode.
+  // TODO(isandrk, 816900): ChromeScreenshotGrabber isn't implemented in Mash
+  // yet, remove this conditional when it becomes available.
+  if (!features::IsMultiProcessMash())
+    ChromeScreenshotGrabber::Get()->set_screenshots_allowed(!locked);
+
+  // Reset the clipboard and kill dev tools when entering or exiting locked
+  // fullscreen (security concerns).
+  ui::Clipboard::GetForCurrentThread()->Clear(ui::CLIPBOARD_TYPE_COPY_PASTE);
+  content::DevToolsAgentHost::DetachAllClients();
+
+  // Disable ARC while in the locked fullscreen mode.
+  arc::ArcSessionManager* const arc_session_manager =
+      arc::ArcSessionManager::Get();
+  Profile* const profile = browser->profile();
+  if (arc_session_manager && arc::IsArcAllowedForProfile(profile)) {
+    if (locked) {
+      // Disable ARC, preserve data.
+      arc_session_manager->RequestDisable();
+    } else {
+      // Re-enable ARC if needed.
+      if (arc::IsArcPlayStoreEnabledForProfile(profile))
+        arc_session_manager->RequestEnable();
+    }
+  }
+}
+
+}  // namespace tabs_util
+}  // namespace extensions
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index b8a0e21..576c115 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -378,17 +378,17 @@
   },
   {
     "name": "content-suggestions-category-order",
-    // "owners": [ "your-team" ],
+    "owners": [ "fgorski" ],
     "expiry_milestone": 76
   },
   {
     "name": "content-suggestions-category-ranker",
-    // "owners": [ "your-team" ],
+    "owners": [ "fgorski" ],
     "expiry_milestone": 76
   },
   {
     "name": "content-suggestions-debug-log",
-    // "owners": [ "your-team" ],
+    "owners": [ "fgorski" ],
     "expiry_milestone": 76
   },
   {
@@ -983,6 +983,11 @@
     "expiry_milestone": 76
   },
   {
+    "name": "enable-immersive-fullscreen-toolbar",
+    "owners": [ "sdy", "chrome/browser/ui/cocoa/OWNERS" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "enable-content-suggestions-thumbnail-dominant-color",
     "owners": [ "fgorski" ],
     "expiry_milestone": 76
@@ -1444,11 +1449,6 @@
     "expiry_milestone": 76
   },
   {
-    "name": "enable-ntp-snippets-increased-visibility",
-    "owners": [ "fgorski" ],
-    "expiry_milestone": 76
-  },
-  {
     "name": "enable-ntp-suggestions-notifications",
     "owners": [ "fgorski" ],
     "expiry_milestone": 76
@@ -2210,7 +2210,7 @@
   },
   {
     "name": "keep-prefetched-content-suggestions",
-    // "owners": [ "your-team" ],
+    "owners": [ "fgorski" ],
     "expiry_milestone": 76
   },
   {
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 732c062..d13f97f 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2385,12 +2385,6 @@
     "allows to override the source used to retrieve these server-side "
     "suggestions.";
 
-const char kEnableNtpSnippetsVisibilityName[] =
-    "Make New Tab Page Snippets more visible.";
-const char kEnableNtpSnippetsVisibilityDescription[] =
-    "If enabled, the NTP snippets will become more discoverable with a larger "
-    "portion of the first card above the fold.";
-
 const char kEnableNtpSuggestionsNotificationsName[] =
     "Notify about new content suggestions available at the New Tab page";
 const char kEnableNtpSuggestionsNotificationsDescription[] =
@@ -2947,6 +2941,10 @@
     "Fullscreen content window detaches from main browser window and goes to "
     "a new space without moving or changing the original browser window.";
 
+const char kImmersiveFullscreenName[] = "Immersive Fullscreen Toolbar";
+const char kImmersiveFullscreenDescription[] =
+    "Automatically hide and show the toolbar in fullscreen.";
+
 const char kHostedAppsInWindowsName[] =
     "Allow hosted apps to be opened in windows";
 const char kHostedAppsInWindowsDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index ef7fe77..dd8711f 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1412,9 +1412,6 @@
 extern const char kEnableNtpRemoteSuggestionsName[];
 extern const char kEnableNtpRemoteSuggestionsDescription[];
 
-extern const char kEnableNtpSnippetsVisibilityName[];
-extern const char kEnableNtpSnippetsVisibilityDescription[];
-
 extern const char kEnableNtpSuggestionsNotificationsName[];
 extern const char kEnableNtpSuggestionsNotificationsDescription[];
 
@@ -1741,6 +1738,9 @@
 extern const char kContentFullscreenName[];
 extern const char kContentFullscreenDescription[];
 
+extern const char kImmersiveFullscreenName[];
+extern const char kImmersiveFullscreenDescription[];
+
 extern const char kHostedAppsInWindowsName[];
 extern const char kHostedAppsInWindowsDescription[];
 
diff --git a/chrome/browser/mac/relauncher.h b/chrome/browser/mac/relauncher.h
index 66391b4..2a877f0 100644
--- a/chrome/browser/mac/relauncher.h
+++ b/chrome/browser/mac/relauncher.h
@@ -38,6 +38,14 @@
 
 namespace mac_relauncher {
 
+// |wait_for_staged_update| is a boolean that allows the caller to specify
+// whether to wait for a staged update. If there are no other copies of Chrome
+// running, the caller should specify |true|, and always take the staged update.
+// However, in the case where there is a system ticket and Chrome _could_ be
+// updated, but there are other copies of Chrome running, if the user chooses to
+// not disrupt the other running copies with an update, the caller should pass
+// in |false| to not wait for the update.
+
 // Relaunches the application using the helper application associated with the
 // currently running instance of Chrome in the parent browser process as the
 // executable for the relauncher process. |args| is an argv-style vector of
@@ -49,7 +57,8 @@
 // successfully. Returns true on success, although some failures can occur
 // after this function returns true if, for example, they occur within the
 // relauncher process. Returns false when the relaunch definitely failed.
-bool RelaunchApp(const std::vector<std::string>& args);
+bool RelaunchApp(const std::vector<std::string>& args,
+                 bool wait_for_staged_update = true);
 
 // Identical to RelaunchApp, but uses |helper| as the path to the relauncher
 // process, and allows additional arguments to be supplied to the relauncher
@@ -62,7 +71,8 @@
 // location's helper.
 bool RelaunchAppWithHelper(const std::string& helper,
                            const std::vector<std::string>& relauncher_args,
-                           const std::vector<std::string>& args);
+                           const std::vector<std::string>& args,
+                           bool wait_for_staged_update = true);
 
 namespace internal {
 
diff --git a/chrome/browser/mac/relauncher.mm b/chrome/browser/mac/relauncher.mm
index 32fbc9f..3dabc71 100644
--- a/chrome/browser/mac/relauncher.mm
+++ b/chrome/browser/mac/relauncher.mm
@@ -32,6 +32,7 @@
 #include "base/strings/sys_string_conversions.h"
 #include "chrome/browser/mac/install_from_dmg.h"
 #include "chrome/common/chrome_switches.h"
+#include "chrome/common/mac/staging_watcher.h"
 #include "content/public/common/content_paths.h"
 #include "content/public/common/content_switches.h"
 #include "content/public/common/main_function_params.h"
@@ -58,6 +59,19 @@
 // the relaunched process without bringing it to the foreground.
 const char kRelauncherBackgroundArg[] = "--background";
 
+// When this argument is supplied to the relauncher process, the launcher will
+// wait for a staged update to be applied.
+const char kRelauncherWaitForUpdateArg[] = "--wait-for-update";
+
+// This argument is supplied to the relauncher process whenever the
+// kRelauncherWaitForUpdateArg argument isn't supplied. This flag is not used
+// directly by the relauncher process, but it serves two purposes. First, this
+// flag and the previous flag are used as an indication for the updating process
+// as to whether or not the relauncher will wait for the update, and second, the
+// lack of either flag indicates to the updater that the relauncher process is
+// unaware of the updater process.
+const char kRelauncherDontWaitForUpdateArg[] = "--dont-wait-for-update";
+
 // The beginning of the "process serial number" argument that Launch Services
 // sometimes inserts into command lines. A process serial number is only valid
 // for a single process, so any PSN arguments will be stripped from command
@@ -74,7 +88,8 @@
 
 }  // namespace
 
-bool RelaunchApp(const std::vector<std::string>& args) {
+bool RelaunchApp(const std::vector<std::string>& args,
+                 bool wait_for_staged_update) {
   // Use the currently-running application's helper process. The automatic
   // update feature is careful to leave the currently-running version alone,
   // so this is safe even if the relaunch is the result of an update having
@@ -88,12 +103,14 @@
   }
 
   std::vector<std::string> relauncher_args;
-  return RelaunchAppWithHelper(child_path.value(), relauncher_args, args);
+  return RelaunchAppWithHelper(child_path.value(), relauncher_args, args,
+                               wait_for_staged_update);
 }
 
 bool RelaunchAppWithHelper(const std::string& helper,
                            const std::vector<std::string>& relauncher_args,
-                           const std::vector<std::string>& args) {
+                           const std::vector<std::string>& args,
+                           bool wait_for_staged_update) {
   std::vector<std::string> relaunch_args;
   relaunch_args.push_back(helper);
   relaunch_args.push_back(RelauncherTypeArg());
@@ -104,6 +121,11 @@
     relaunch_args.push_back(kRelauncherBackgroundArg);
   }
 
+  if (wait_for_staged_update)
+    relaunch_args.push_back(kRelauncherWaitForUpdateArg);
+  else
+    relaunch_args.push_back(kRelauncherDontWaitForUpdateArg);
+
   relaunch_args.insert(relaunch_args.end(),
                        relauncher_args.begin(), relauncher_args.end());
 
@@ -288,11 +310,11 @@
   // Figure out what to execute, what arguments to pass it, and whether to
   // start it in the background.
   bool background = false;
+  bool wait_for_staged_update = false;
   bool in_relaunch_args = false;
   std::string dmg_bsd_device_name;
   bool seen_relaunch_executable = false;
   std::string relaunch_executable;
-  const std::string relauncher_arg_separator(kRelauncherArgSeparator);
   const std::string relauncher_dmg_device_arg =
       base::StringPrintf("--%s=", switches::kRelauncherProcessDMGDevice);
   for (int argv_index = 2; argv_index < argc; ++argv_index) {
@@ -304,12 +326,13 @@
     }
 
     if (!in_relaunch_args) {
-      if (arg == relauncher_arg_separator) {
+      if (arg == kRelauncherArgSeparator) {
         in_relaunch_args = true;
       } else if (arg == kRelauncherBackgroundArg) {
         background = true;
-      } else if (arg.compare(0,
-                             relauncher_dmg_device_arg.size(),
+      } else if (arg == kRelauncherWaitForUpdateArg) {
+        wait_for_staged_update = true;
+      } else if (arg.compare(0, relauncher_dmg_device_arg.size(),
                              relauncher_dmg_device_arg) == 0) {
         dmg_bsd_device_name.assign(
             arg.substr(relauncher_dmg_device_arg.size()));
@@ -339,6 +362,13 @@
     return 1;
   }
 
+  // If an update is staged but not yet installed, wait for it to be installed.
+  if (wait_for_staged_update) {
+    base::scoped_nsobject<CrStagingKeyWatcher> watcher(
+        [[CrStagingKeyWatcher alloc] init]);
+    [watcher waitForStagingKey];
+  }
+
   NSString* path = base::SysUTF8ToNSString(relaunch_executable);
   base::scoped_nsobject<NSURL> url([[NSURL alloc] initFileURLWithPath:path]);
   NSDictionary* configuration =
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
index 792e7a6c..6161e1a 100644
--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
@@ -335,7 +335,7 @@
         const url::Origin& origin,
         int tab_id,
         mojom::MediaRouteProvider::CreateRouteCallback callback);
-    DoLaunchSessionParams(DoLaunchSessionParams&& other);
+    DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
     ~DoLaunchSessionParams();
     DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
 
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc
index b7a62dc..be00203 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.cc
@@ -11,6 +11,7 @@
 #include "base/feature_list.h"
 #include "base/logging.h"
 #include "base/strings/string_util.h"
+#include "base/time/default_tick_clock.h"
 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
 #include "components/subresource_filter/core/common/common_features.h"
@@ -93,7 +94,8 @@
 }
 
 AdsPageLoadMetricsObserver::AdsPageLoadMetricsObserver()
-    : subresource_observer_(this) {}
+    : subresource_observer_(this),
+      clock_(base::DefaultTickClock::GetInstance()) {}
 
 AdsPageLoadMetricsObserver::~AdsPageLoadMetricsObserver() = default;
 
@@ -134,6 +136,33 @@
   return CONTINUE_OBSERVING;
 }
 
+void AdsPageLoadMetricsObserver::OnCpuTimingUpdate(
+    content::RenderFrameHost* subframe_rfh,
+    const page_load_metrics::mojom::CpuTiming& timing) {
+  // We should never trigger if the timing is null, no data should be sent.
+  DCHECK(!timing.task_time.is_zero());
+
+  // If the page is backgrounded, don't update CPU times.
+  if (!GetDelegate()->GetVisibilityTracker().currently_in_foreground())
+    return;
+
+  FrameData::InteractiveStatus interactive_status =
+      time_interactive_.is_null()
+          ? FrameData::InteractiveStatus::kPreInteractive
+          : FrameData::InteractiveStatus::kPostInteractive;
+  aggregate_frame_data_->UpdateCpuUsage(timing.task_time, interactive_status);
+
+  const auto& id_and_data =
+      ad_frames_data_.find(subframe_rfh->GetFrameTreeNodeId());
+  if (id_and_data == ad_frames_data_.end())
+    return;
+
+  FrameData* ancestor_data = id_and_data->second;
+  if (ancestor_data) {
+    ancestor_data->UpdateCpuUsage(timing.task_time, interactive_status);
+  }
+}
+
 // Given an ad being triggered for a frame or navigation, get its FrameData
 // and record it into the appropriate data structures.
 void AdsPageLoadMetricsObserver::RecordAdFrameData(
@@ -250,8 +279,10 @@
   if (id_and_data == ad_frames_data_.end())
     return;
   FrameData* ancestor_data = id_and_data->second;
-  if (ancestor_data)
-    ancestor_data->set_received_user_activation();
+  if (ancestor_data) {
+    ancestor_data->SetReceivedUserActivation(
+        GetDelegate()->GetVisibilityTracker().GetForegroundDuration());
+  }
 }
 
 void AdsPageLoadMetricsObserver::OnDidInternalNavigationAbort(
@@ -279,8 +310,10 @@
   // The browser may come back, but there is no guarantee. To be safe, record
   // what we have now and ignore future changes to this navigation.
   if (extra_info.did_commit) {
-    if (timing.response_start)
-      time_commit_ = timing.navigation_start + *timing.response_start;
+    if (timing.response_start) {
+      time_commit_ =
+          GetDelegate()->GetNavigationStart() + *timing.response_start;
+    }
     RecordHistograms(extra_info.source_id);
   }
 
@@ -291,7 +324,7 @@
     const page_load_metrics::mojom::PageLoadTiming& timing,
     const page_load_metrics::PageLoadExtraInfo& info) {
   if (info.did_commit && timing.response_start)
-    time_commit_ = timing.navigation_start + *timing.response_start;
+    time_commit_ = GetDelegate()->GetNavigationStart() + *timing.response_start;
   RecordHistograms(info.source_id);
 }
 
@@ -321,8 +354,10 @@
     const page_load_metrics::mojom::PageLoadTiming& timing,
     const page_load_metrics::PageLoadExtraInfo& info) {
   if (timing.interactive_timing->interactive) {
-    time_interactive_ =
-        timing.navigation_start + *timing.interactive_timing->interactive;
+    time_interactive_ = GetDelegate()->GetNavigationStart() +
+                        *timing.interactive_timing->interactive;
+    pre_interactive_duration_ =
+        GetDelegate()->GetVisibilityTracker().GetForegroundDuration();
     page_ad_bytes_at_interactive_ = aggregate_frame_data_->ad_network_bytes();
   }
 }
@@ -567,7 +602,7 @@
       .SetAdJavascriptBytes(
           aggregate_frame_data_->ad_javascript_network_bytes() >> 10)
       .SetAdVideoBytes(aggregate_frame_data_->ad_video_network_bytes() >> 10);
-  base::Time current_time = base::Time::Now();
+  base::TimeTicks current_time = clock_->NowTicks();
   if (!time_commit_.is_null()) {
     int time_since_commit = (current_time - time_commit_).InMicroseconds();
     if (time_since_commit > 0) {
@@ -601,11 +636,137 @@
     RecordResourceHistograms(kv.second);
 }
 
+// Computes a percentage given the numerator and denominator, bounded to 100%.
+int GetCpuPercentage(base::TimeDelta duration, base::TimeDelta range) {
+  DCHECK(!range.is_zero());
+  int percentage = 100 * duration.InMilliseconds() / range.InMilliseconds();
+  return percentage > 100 ? 100 : percentage;
+}
+
+void AdsPageLoadMetricsObserver::RecordHistogramsForCpuUsage(
+    FrameData::FrameVisibility visibility) {
+  // If the page has an ad with the relevant visibility and non-zero bytes.
+  bool page_has_relevant_ad = false;
+
+  // Get the relevant durations, set pre-interactive if the page never hit it.
+  base::TimeDelta total_duration =
+      GetDelegate()->GetVisibilityTracker().GetForegroundDuration();
+  if (time_interactive_.is_null()) {
+    pre_interactive_duration_ = total_duration;
+  }
+  base::TimeDelta post_interactive_duration =
+      total_duration - pre_interactive_duration_;
+
+  for (const FrameData& ad_frame_data : ad_frames_data_storage_) {
+    if (ad_frame_data.bytes() == 0)
+      continue;
+
+    if (visibility != FrameData::FrameVisibility::kAnyVisibility &&
+        ad_frame_data.visibility() != visibility)
+      continue;
+
+    page_has_relevant_ad = true;
+
+    if (ad_frame_data.user_activation_status() ==
+        FrameData::UserActivationStatus::kNoActivation) {
+      base::TimeDelta task_duration_pre = ad_frame_data.GetInteractiveCpuUsage(
+          FrameData::InteractiveStatus::kPreInteractive);
+      base::TimeDelta task_duration_post = ad_frame_data.GetInteractiveCpuUsage(
+          FrameData::InteractiveStatus::kPostInteractive);
+      if (!total_duration.is_zero()) {
+        ADS_HISTOGRAM("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated",
+                      UMA_HISTOGRAM_PERCENTAGE, visibility,
+                      GetCpuPercentage(task_duration_pre + task_duration_post,
+                                       total_duration));
+      }
+      if (!pre_interactive_duration_.is_zero()) {
+        ADS_HISTOGRAM(
+            "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PreInteractive",
+            UMA_HISTOGRAM_PERCENTAGE, visibility,
+            GetCpuPercentage(task_duration_pre, pre_interactive_duration_));
+      }
+      if (!post_interactive_duration.is_zero()) {
+        ADS_HISTOGRAM(
+            "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PostInteractive",
+            UMA_HISTOGRAM_PERCENTAGE, visibility,
+            GetCpuPercentage(task_duration_post, post_interactive_duration));
+      }
+    } else {
+      base::TimeDelta task_duration_pre = ad_frame_data.GetActivationCpuUsage(
+          FrameData::UserActivationStatus::kNoActivation);
+      base::TimeDelta task_duration_post = ad_frame_data.GetActivationCpuUsage(
+          FrameData::UserActivationStatus::kReceivedActivation);
+      base::TimeDelta pre_activation_duration =
+          ad_frame_data.pre_activation_foreground_duration();
+      base::TimeDelta post_activation_duration =
+          total_duration - pre_activation_duration;
+      if (!total_duration.is_zero()) {
+        ADS_HISTOGRAM("Cpu.AdFrames.PerFrame.PercentUsage.Activated",
+                      UMA_HISTOGRAM_PERCENTAGE, visibility,
+                      GetCpuPercentage(task_duration_pre + task_duration_post,
+                                       total_duration));
+      }
+      if (!pre_activation_duration.is_zero()) {
+        ADS_HISTOGRAM(
+            "Cpu.AdFrames.PerFrame.PercentUsage.Activated.PreActivation",
+            UMA_HISTOGRAM_PERCENTAGE, visibility,
+            GetCpuPercentage(task_duration_pre, pre_activation_duration));
+      }
+      if (!post_activation_duration.is_zero()) {
+        ADS_HISTOGRAM(
+            "Cpu.AdFrames.PerFrame.PercentUsage.Activated.PostActivation",
+            UMA_HISTOGRAM_PERCENTAGE, visibility,
+            GetCpuPercentage(task_duration_post, post_activation_duration));
+      }
+    }
+  }
+
+  // Don't post UMA for pages that don't have ads.
+  if (!page_has_relevant_ad)
+    return;
+
+  // Only record cpu usage aggregate data for the AnyVisibility suffix as these
+  // numbers do not change for different visibility types.
+  if (visibility != FrameData::FrameVisibility::kAnyVisibility)
+    return;
+
+  // Record the aggregate data, which is never considered activated.
+  base::TimeDelta task_duration_pre =
+      aggregate_frame_data_->GetInteractiveCpuUsage(
+          FrameData::InteractiveStatus::kPreInteractive);
+  base::TimeDelta task_duration_post =
+      aggregate_frame_data_->GetInteractiveCpuUsage(
+          FrameData::InteractiveStatus::kPostInteractive);
+  if (!total_duration.is_zero()) {
+    ADS_HISTOGRAM("Cpu.FullPage.PercentUsage", UMA_HISTOGRAM_PERCENTAGE,
+                  visibility,
+                  GetCpuPercentage(task_duration_pre + task_duration_post,
+                                   total_duration));
+  }
+  if (!pre_interactive_duration_.is_zero()) {
+    ADS_HISTOGRAM(
+        "Cpu.FullPage.PercentUsage.PreInteractive", UMA_HISTOGRAM_PERCENTAGE,
+        visibility,
+        GetCpuPercentage(task_duration_pre, pre_interactive_duration_));
+  }
+  if (!post_interactive_duration.is_zero()) {
+    ADS_HISTOGRAM(
+        "Cpu.FullPage.PercentUsage.PostInteractive", UMA_HISTOGRAM_PERCENTAGE,
+        visibility,
+        GetCpuPercentage(task_duration_post, post_interactive_duration));
+  }
+}
+
 void AdsPageLoadMetricsObserver::RecordHistogramsForAdTagging(
     FrameData::FrameVisibility visibility) {
   if (aggregate_frame_data_->bytes() == 0)
     return;
 
+  // TODO(ericrobinson): Should probably split up recording for the information
+  // below.  Though we may want to include the looping in a general reporting
+  // mechanism that each metric type can pass a reporter to.
+  RecordHistogramsForCpuUsage(visibility);
+
   int non_zero_ad_frames = 0;
   size_t total_ad_frame_bytes = 0;
   size_t ad_frame_network_bytes = 0;
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.h
index bbc312c8..cc7dcab 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.h
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer.h
@@ -12,6 +12,7 @@
 
 #include "base/macros.h"
 #include "base/scoped_observer.h"
+#include "base/time/tick_clock.h"
 #include "chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h"
 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
 #include "chrome/common/page_load_metrics/page_load_metrics.mojom.h"
@@ -52,6 +53,9 @@
                         bool started_in_foreground) override;
   ObservePolicy OnCommit(content::NavigationHandle* navigation_handle,
                          ukm::SourceId source_id) override;
+  void OnCpuTimingUpdate(
+      content::RenderFrameHost* subframe_rfh,
+      const page_load_metrics::mojom::CpuTiming& timing) override;
   void RecordAdFrameData(FrameTreeNodeId ad_id,
                          bool is_adframe,
                          content::RenderFrameHost* ad_host,
@@ -129,7 +133,7 @@
   void RecordPageResourceTotalHistograms(ukm::SourceId source_id);
   void RecordHistograms(ukm::SourceId source_id);
   void RecordHistogramsForAdTagging(FrameData::FrameVisibility visibility);
-
+  void RecordHistogramsForCpuUsage(FrameData::FrameVisibility visibility);
   // Checks to see if a resource is waiting for a navigation with the given
   // |frame_tree_node_id| to commit before it can be processed. If so, call
   // OnResourceDataUpdate for the delayed resource.
@@ -178,10 +182,13 @@
   bool process_display_state_updates_ = true;
 
   // Time the page was committed.
-  base::Time time_commit_;
+  base::TimeTicks time_commit_;
 
   // Time the page was observed to be interactive.
-  base::Time time_interactive_;
+  base::TimeTicks time_interactive_;
+
+  // Duration before |time_interactive_| during which the page was foregrounded.
+  base::TimeDelta pre_interactive_duration_;
 
   // Total ad bytes loaded by the page since it was observed to be interactive.
   size_t page_ad_bytes_at_interactive_ = 0u;
@@ -192,6 +199,9 @@
                  subresource_filter::SubresourceFilterObserver>
       subresource_observer_;
 
+  // The tick clock used to get the current time.  Can be replaced by tests.
+  const base::TickClock* clock_;
+
   DISALLOW_COPY_AND_ASSIGN(AdsPageLoadMetricsObserver);
 };
 
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
index 0f4b48d..08c694e 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_unittest.cc
@@ -14,6 +14,7 @@
 #include "base/macros.h"
 #include "base/sequenced_task_runner.h"
 #include "base/strings/stringprintf.h"
+#include "base/strings/utf_string_conversions.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/threading/sequenced_task_runner_handle.h"
 #include "base/time/time.h"
@@ -246,6 +247,35 @@
         ->NotifyAdSubframeDetected(render_frame_host);
   }
 
+  // Set the interactive status of the main frame.
+  void OnMainFrameInteractive(base::TimeDelta frame_interactive_offset) {
+    auto timing = page_load_metrics::mojom::PageLoadTimingPtr(base::in_place);
+    page_load_metrics::InitPageLoadTimingForTest(timing.get());
+    auto extra_info = page_load_metrics::PageLoadExtraInfo::CreateForTesting(
+        web_contents()->GetLastCommittedURL(), true);
+
+    timing->interactive_timing->interactive =
+        base::Optional<base::TimeDelta>(frame_interactive_offset);
+    // Call directly since main frame timing updates may be delayed.
+    ads_observer_->OnPageInteractive(*timing, extra_info);
+  }
+
+  void OnCpuTimingUpdate(RenderFrameHost* render_frame_host,
+                         base::TimeDelta cpu_time_spent) {
+    page_load_metrics::mojom::CpuTiming cpu_timing(cpu_time_spent);
+    tester_->SimulateCpuTimingUpdate(cpu_timing, render_frame_host);
+  }
+
+  void OnHidden() { web_contents()->WasHidden(); }
+
+  void OnShown() { web_contents()->WasShown(); }
+
+  void TriggerFirstUserActivation(RenderFrameHost* render_frame_host) {
+    tester_->SimulateFrameReceivedFirstUserActivation(render_frame_host);
+  }
+
+  void AdvancePageDuration(base::TimeDelta delta) { clock_->Advance(delta); }
+
   // Returns the final RenderFrameHost after navigation commits.
   RenderFrameHost* CreateAndNavigateSubFrame(const std::string& url,
                                              content::RenderFrameHost* parent) {
@@ -288,17 +318,28 @@
 
   base::HistogramTester& histogram_tester() { return histogram_tester_; }
 
-  AdsPageLoadMetricsObserver* ads_observer_ = nullptr;
+  void OverrideVisibilityTrackerWithMockClock() {
+    clock_ = std::make_unique<base::SimpleTestTickClock>();
+  }
 
  private:
   void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) {
     auto observer = std::make_unique<AdsPageLoadMetricsObserver>();
     ads_observer_ = observer.get();
     tracker->AddObserver(std::move(observer));
+    // Swap out the ScopedVisibilityTracker to use the test clock.
+    if (clock_) {
+      ScopedVisibilityTracker visibility_tracker(clock_.get(), true);
+      tracker->SetVisibilityTrackerForTesting(visibility_tracker);
+    }
   }
 
   base::HistogramTester histogram_tester_;
   std::unique_ptr<page_load_metrics::PageLoadMetricsObserverTester> tester_;
+  // The clock used by the ScopedVisibilityTracker, assigned if non-null.
+  std::unique_ptr<base::SimpleTestTickClock> clock_;
+  // A pointer to the AdsPageLoadMetricsObserver used by the tests.
+  AdsPageLoadMetricsObserver* ads_observer_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(AdsPageLoadMetricsObserverTest);
 };
@@ -716,3 +757,271 @@
           ukm::builders::AdPageLoad::kAdBytesPerSecondAfterInteractiveName),
       0);
 }
+
+TEST_F(AdsPageLoadMetricsObserverTest, TestCpuTimingMetrics) {
+  OverrideVisibilityTrackerWithMockClock();
+  RenderFrameHost* main_frame = NavigateMainFrame(kNonAdUrl);
+  RenderFrameHost* non_ad_frame =
+      CreateAndNavigateSubFrame(kNonAdUrl, main_frame);
+  RenderFrameHost* ad_frame = CreateAndNavigateSubFrame(kAdUrl, main_frame);
+
+  // Add some data to the ad frame so it get reported.
+  ResourceDataUpdate(ad_frame, ResourceCached::NOT_CACHED, 10);
+
+  // Perform some updates on ad and non-ad frames.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Set the main frame as interactive after 2 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  OnMainFrameInteractive(base::TimeDelta::FromMilliseconds(2000));
+
+  // Do some more work on the ad frame.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+
+  // Do some more work on the main frame.
+  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Navigate away after 4 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  NavigateFrame(kNonAdUrl, main_frame);
+
+  // Overall usage on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage"),
+      100 * (500 + 500 + 1000 + 500) / 4000 /*=62%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PreInteractive"),
+      100 * (500 + 500) / 2000 /*=50%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PostInteractive"),
+      100 * (1000 + 500) / 2000 /*=75%*/, 1);
+
+  // Make sure there are no activated numbers reported.
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Activated"), 0);
+
+  // Usage for ad frame on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"),
+      100 * (500 + 1000) / 4000 /*=37%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PreInteractive"),
+      100 * (500) / 2000 /*=25%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PostInteractive"),
+      100 * (1000) / 2000 /*=50%*/, 1);
+}
+
+TEST_F(AdsPageLoadMetricsObserverTest,
+       TestCpuTimingMetricsStopWhenBackgrounded) {
+  OverrideVisibilityTrackerWithMockClock();
+  RenderFrameHost* main_frame = NavigateMainFrame(kNonAdUrl);
+  RenderFrameHost* non_ad_frame =
+      CreateAndNavigateSubFrame(kNonAdUrl, main_frame);
+  RenderFrameHost* ad_frame = CreateAndNavigateSubFrame(kAdUrl, main_frame);
+
+  // Add some data to the ad frame so it get reported.
+  ResourceDataUpdate(ad_frame, ResourceCached::NOT_CACHED, 10);
+
+  // Perform some updates on ad and non-ad frames.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Set the main frame as interactive after 2 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  OnMainFrameInteractive(base::TimeDelta::FromMilliseconds(2000));
+
+  // Do some more work on the ad frame.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+
+  // Set the page as hidden after 3.5 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(1500));
+  OnHidden();
+
+  // Do some more work on the main frame, shouldn't count to total.
+  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Navigate away after 4 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(500));
+  NavigateFrame(kNonAdUrl, main_frame);
+
+  // Overall usage on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage"),
+      100 * (500 + 500 + 1000) / 3500 /*=57%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PreInteractive"),
+      100 * (500 + 500) / 2000 /*=50%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PostInteractive"),
+      100 * (1000) / 1500 /*=66%*/, 1);
+
+  // Make sure there are no activated numbers reported.
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Activated"), 0);
+
+  // Usage for ad frame on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"),
+      100 * (500 + 1000) / 3500 /*=42%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PreInteractive"),
+      100 * (500) / 2000 /*=25%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PostInteractive"),
+      100 * (1000) / 1500 /*=66%*/, 1);
+}
+
+TEST_F(AdsPageLoadMetricsObserverTest, TestCpuTimingMetricsOnActivation) {
+  OverrideVisibilityTrackerWithMockClock();
+  RenderFrameHost* main_frame = NavigateMainFrame(kNonAdUrl);
+  RenderFrameHost* non_ad_frame =
+      CreateAndNavigateSubFrame(kNonAdUrl, main_frame);
+  RenderFrameHost* ad_frame = CreateAndNavigateSubFrame(kAdUrl, main_frame);
+
+  // Add some data to the ad frame so it get reported.
+  ResourceDataUpdate(ad_frame, ResourceCached::NOT_CACHED, 10);
+
+  // Perform some updates on ad and non-ad frames.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Set the main frame as interactive after 2 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  OnMainFrameInteractive(base::TimeDelta::FromMilliseconds(2000));
+
+  // Do some more work on the ad frame.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Set the frame as interactive after 2.5 seconds
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(500));
+  TriggerFirstUserActivation(ad_frame);
+
+  // Do some more work on the main frame.
+  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Do some more work on the ad frame.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Navigate away after 4 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(1500));
+  NavigateFrame(kNonAdUrl, main_frame);
+
+  // Overall usage on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage"),
+      100 * (500 + 500 + 1000 + 500) / 4000 /*=62%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PreInteractive"),
+      100 * (500 + 500) / 2000 /*=50%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PostInteractive"),
+      100 * (1000 + 500) / 2000 /*=75%*/, 1);
+
+  // Make sure there are no unactivated numbers reported.
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"), 0);
+
+  // Usage for ad frame on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Activated"),
+      100 * (500 + 500 + 500) / 4000 /*=37%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Activated.PreActivation"),
+      100 * (500 + 500) / 2500 /*=40%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Activated.PostActivation"),
+      100 * (500) / 1500 /*=33%*/, 1);
+}
+
+TEST_F(AdsPageLoadMetricsObserverTest, TestNoReportingWhenAlwaysBackgrounded) {
+  OverrideVisibilityTrackerWithMockClock();
+  RenderFrameHost* main_frame = NavigateMainFrame(kNonAdUrl);
+  RenderFrameHost* non_ad_frame =
+      CreateAndNavigateSubFrame(kNonAdUrl, main_frame);
+  RenderFrameHost* ad_frame = CreateAndNavigateSubFrame(kAdUrl, main_frame);
+
+  // Add some data to the ad frame so it get reported.
+  ResourceDataUpdate(ad_frame, ResourceCached::NOT_CACHED, 10);
+
+  // Set the frame as backgrounded, so all updates below shouldn't report.
+  OnHidden();
+
+  // Perform some updates on ad and non-ad frames.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Set the main frame as interactive after 2 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  OnMainFrameInteractive(base::TimeDelta::FromMilliseconds(2000));
+
+  // Do some more work on the ad frame.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(1000));
+
+  // Do some more work on the main frame.
+  OnCpuTimingUpdate(main_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Navigate away after 4 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  NavigateFrame(kNonAdUrl, main_frame);
+
+  // Ensure that all metrics are zero.
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage"), 0);
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"), 0);
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Activated"), 0);
+}
+
+TEST_F(AdsPageLoadMetricsObserverTest, TestCpuTimingMetricsNoInteractive) {
+  OverrideVisibilityTrackerWithMockClock();
+  RenderFrameHost* main_frame = NavigateMainFrame(kNonAdUrl);
+  RenderFrameHost* non_ad_frame =
+      CreateAndNavigateSubFrame(kNonAdUrl, main_frame);
+  RenderFrameHost* ad_frame = CreateAndNavigateSubFrame(kAdUrl, main_frame);
+
+  // Add some data to the ad frame so it get reported.
+  ResourceDataUpdate(ad_frame, ResourceCached::NOT_CACHED, 10);
+
+  // Perform some updates on ad and non-ad frames.
+  OnCpuTimingUpdate(ad_frame, base::TimeDelta::FromMilliseconds(500));
+  OnCpuTimingUpdate(non_ad_frame, base::TimeDelta::FromMilliseconds(500));
+
+  // Navigate away after 2 seconds.
+  AdvancePageDuration(base::TimeDelta::FromMilliseconds(2000));
+  NavigateFrame(kNonAdUrl, main_frame);
+
+  // Overall usage on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage"),
+      100 * (500 + 500) / 2000 /*=50%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PreInteractive"),
+      100 * (500 + 500) / 2000 /*=50%*/, 1);
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.FullPage.PercentUsage.PostInteractive"), 0);
+
+  // Make sure there are no activated numbers reported.
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Activated"), 0);
+
+  // Usage for ad frame on page for 3 categories:
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram("Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"),
+      100 * (500) / 2000 /*=25%*/, 1);
+  histogram_tester().ExpectUniqueSample(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PreInteractive"),
+      100 * (500) / 2000 /*=25%*/, 1);
+  histogram_tester().ExpectTotalCount(
+      SuffixedHistogram(
+          "Cpu.AdFrames.PerFrame.PercentUsage.Unactivated.PostInteractive"), 0);
+}
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.cc
index b5c7318ef..45c4f5c 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.cc
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.cc
@@ -139,6 +139,28 @@
   UpdateFrameVisibility();
 }
 
+void FrameData::UpdateCpuUsage(base::TimeDelta update,
+                               InteractiveStatus interactive) {
+  cpu_by_interactive_period_[static_cast<size_t>(interactive)] += update;
+  cpu_by_activation_period_[static_cast<size_t>(user_activation_status_)] +=
+      update;
+}
+
+base::TimeDelta FrameData::GetInteractiveCpuUsage(
+    InteractiveStatus status) const {
+  return cpu_by_interactive_period_[static_cast<int>(status)];
+}
+
+base::TimeDelta FrameData::GetActivationCpuUsage(
+    UserActivationStatus status) const {
+  return cpu_by_activation_period_[static_cast<int>(status)];
+}
+
+void FrameData::SetReceivedUserActivation(base::TimeDelta foreground_duration) {
+  user_activation_status_ = UserActivationStatus::kReceivedActivation;
+  pre_activation_foreground_duration_ = foreground_duration;
+}
+
 void FrameData::UpdateFrameVisibility() {
   visibility_ =
       !is_display_none_ && frame_size_.GetArea() >= kMinimumVisibleFrameArea
diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h b/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h
index d06e91d..9cbf448 100644
--- a/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h
+++ b/chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h
@@ -51,6 +51,14 @@
     kMaxValue = kReceivedActivation,
   };
 
+  // The interactive states for the main page, which describe when the page
+  // has reached interactive state, or finished loading.
+  enum class InteractiveStatus {
+    kPreInteractive = 0,
+    kPostInteractive = 1,
+    kMaxValue = kPostInteractive,
+  };
+
   // High level categories of mime types for resources loaded by the frame.
   enum class ResourceMimeType {
     kJavascript = 0,
@@ -105,10 +113,22 @@
   // Sets the display state of the frame and updates its visibility state.
   void SetDisplayState(bool is_display_none);
 
-  // Records that the sticky user activation bit has been set on the frame. This
-  // cannot be unset.
-  void set_received_user_activation() {
-    user_activation_status_ = UserActivationStatus::kReceivedActivation;
+  // Add the cpu |update| appropriately given the page |interactive| status.
+  void UpdateCpuUsage(base::TimeDelta update, InteractiveStatus interactive);
+
+  // Get the cpu usage for the appropriate interactive period.
+  base::TimeDelta GetInteractiveCpuUsage(InteractiveStatus status) const;
+
+  // Get the cpu usage for the appropriate activation period.
+  base::TimeDelta GetActivationCpuUsage(UserActivationStatus status) const;
+
+  // Records that the sticky user activation bit has been set on the frame.
+  // Cannot be unset.  Also records the page foreground duration at that time.
+  void SetReceivedUserActivation(base::TimeDelta foreground_duration);
+
+  // Get the unactivated duration for this frame.
+  base::TimeDelta pre_activation_foreground_duration() const {
+    return pre_activation_foreground_duration_;
   }
 
   FrameTreeNodeId frame_tree_node_id() const { return frame_tree_node_id_; }
@@ -164,6 +184,18 @@
   size_t ad_javascript_network_bytes_ = 0u;
   size_t ad_video_network_bytes_ = 0u;
 
+  // Time spent by the frame in the cpu before and after interactive.
+  base::TimeDelta cpu_by_interactive_period_[static_cast<size_t>(
+                                                 InteractiveStatus::kMaxValue) +
+                                             1] = {base::TimeDelta(),
+                                                   base::TimeDelta()};
+  // Time spent by the frame in the cpu before and after activation.
+  base::TimeDelta cpu_by_activation_period_
+      [static_cast<size_t>(UserActivationStatus::kMaxValue) + 1] = {
+          base::TimeDelta(), base::TimeDelta()};
+  // Duration of time the page spent in the foreground before activation.
+  base::TimeDelta pre_activation_foreground_duration_;
+
   // Tracks the number of bytes that were used to load resources which were
   // detected to be ads inside of this frame. For ad frames, these counts should
   // match |frame_bytes| and |frame_network_bytes|.
diff --git a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.cc b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.cc
index b8a7844..ea76b94b9 100644
--- a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.cc
+++ b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.cc
@@ -79,6 +79,21 @@
       mojom::PageRenderData(), mojom::CpuTiming(), rfh);
 }
 
+void PageLoadMetricsObserverTester::SimulateCpuTimingUpdate(
+    const mojom::CpuTiming& cpu_timing) {
+  SimulateCpuTimingUpdate(cpu_timing, web_contents()->GetMainFrame());
+}
+
+void PageLoadMetricsObserverTester::SimulateCpuTimingUpdate(
+    const mojom::CpuTiming& cpu_timing,
+    content::RenderFrameHost* rfh) {
+  auto timing = page_load_metrics::mojom::PageLoadTimingPtr(base::in_place);
+  page_load_metrics::InitPageLoadTimingForTest(timing.get());
+  SimulatePageLoadTimingUpdate(*timing, mojom::PageLoadMetadata(),
+                               mojom::PageLoadFeatures(),
+                               mojom::PageRenderData(), cpu_timing, rfh);
+}
+
 void PageLoadMetricsObserverTester::SimulateTimingAndMetadataUpdate(
     const mojom::PageLoadTiming& timing,
     const mojom::PageLoadMetadata& metadata) {
@@ -181,6 +196,11 @@
           : nullptr);
 }
 
+void PageLoadMetricsObserverTester::SimulateFrameReceivedFirstUserActivation(
+    content::RenderFrameHost* render_frame_host) {
+  observer_->FrameReceivedFirstUserActivation(render_frame_host);
+}
+
 void PageLoadMetricsObserverTester::SimulateInputEvent(
     const blink::WebInputEvent& event) {
   observer_->OnInputEvent(event);
diff --git a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h
index 7c452999..954336f7 100644
--- a/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h
+++ b/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h
@@ -49,6 +49,9 @@
   void SimulateTimingUpdate(const mojom::PageLoadTiming& timing);
   void SimulateTimingUpdate(const mojom::PageLoadTiming& timing,
                             content::RenderFrameHost* rfh);
+  void SimulateCpuTimingUpdate(const mojom::CpuTiming& cpu_timing);
+  void SimulateCpuTimingUpdate(const mojom::CpuTiming& cpu_timing,
+                               content::RenderFrameHost* rfh);
   void SimulateTimingAndMetadataUpdate(const mojom::PageLoadTiming& timing,
                                        const mojom::PageLoadMetadata& metadata);
   void SimulateFeaturesUpdate(const mojom::PageLoadFeatures& new_features);
@@ -70,6 +73,10 @@
   void SimulateLoadedResource(const ExtraRequestCompleteInfo& info,
                               const content::GlobalRequestID& request_id);
 
+  // Simulate the first user interaction for a frame.
+  void SimulateFrameReceivedFirstUserActivation(
+      content::RenderFrameHost* render_frame_host);
+
   // Simulates a user input.
   void SimulateInputEvent(const blink::WebInputEvent& event);
 
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
index b4f934d9..767e793 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
@@ -194,7 +194,6 @@
 
 void PageLoadMetricsObserver::SetDelegate(
     PageLoadMetricsObserverDelegate* delegate) {
-  DCHECK(!delegate_);
   delegate_ = delegate;
 }
 
diff --git a/chrome/browser/page_load_metrics/page_load_tracker.h b/chrome/browser/page_load_metrics/page_load_tracker.h
index 269847f..025866a 100644
--- a/chrome/browser/page_load_metrics/page_load_tracker.h
+++ b/chrome/browser/page_load_metrics/page_load_tracker.h
@@ -160,7 +160,7 @@
 // MetricsWebContentsObserver manages a set of provisional PageLoadTrackers, as
 // well as a committed PageLoadTracker.
 class PageLoadTracker : public PageLoadMetricsUpdateDispatcher::Client,
-                        PageLoadMetricsObserverDelegate {
+                        public PageLoadMetricsObserverDelegate {
  public:
   // Caller must guarantee that the embedder_interface pointer outlives this
   // class. The PageLoadTracker must not hold on to
@@ -223,6 +223,11 @@
   // notification.
   void FlushMetricsOnAppEnterBackground();
 
+  // Replaces the |visibility_tracker_| for testing, which can mock a clock.
+  void SetVisibilityTrackerForTesting(const ScopedVisibilityTracker& tracker) {
+    visibility_tracker_ = tracker;
+  }
+
   void NotifyClientRedirectTo(const PageLoadTracker& destination);
 
   void OnLoadedResource(
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc
index ca4d8c2..073f009 100644
--- a/chrome/browser/pdf/pdf_extension_test.cc
+++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -1171,40 +1171,8 @@
   EXPECT_FALSE(active_web_contents->GetController().GetPendingEntry());
 }
 
-// For both PDFExtensionTest and PDFIsolatedExtensionTest, MultipleDomains case
-// is flaky.
-// https://crbug.com/825038
-// https://crbug.com/851805
-#define MAYBE_MultipleDomains DISABLED_MultipleDomains
-
-IN_PROC_BROWSER_TEST_F(PDFExtensionTest, MAYBE_MultipleDomains) {
-  for (const auto& url :
-       {embedded_test_server()->GetURL("a.com", "/pdf/test.pdf"),
-        embedded_test_server()->GetURL("b.com", "/pdf/test.pdf"),
-        embedded_test_server()->GetURL("c.com", "/pdf/test.pdf"),
-        embedded_test_server()->GetURL("d.com", "/pdf/test.pdf")}) {
-    ASSERT_TRUE(LoadPdfInNewTab(url));
-  }
-  EXPECT_EQ(1, CountPDFProcesses());
-}
-
-class PDFIsolatedExtensionTest : public PDFExtensionTest {
- public:
-  PDFIsolatedExtensionTest() {}
-  ~PDFIsolatedExtensionTest() override {}
-
-  void SetUp() override {
-    features_.InitAndEnableFeature(features::kPdfIsolation);
-    PDFExtensionTest::SetUp();
-  }
-
- private:
-  base::test::ScopedFeatureList features_;
-};
-
-// See MAYBE_MultipleDomains definition, above.
-// https://crbug.com/825038 and https://crbug.com/851805
-IN_PROC_BROWSER_TEST_F(PDFIsolatedExtensionTest, MAYBE_MultipleDomains) {
+// Flaky: https://crbug.com/851805
+IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_MultipleDomains) {
   for (const auto& url :
        {embedded_test_server()->GetURL("a.com", "/pdf/test.pdf"),
         embedded_test_server()->GetURL("b.com", "/pdf/test.pdf"),
diff --git a/chrome/browser/performance_manager/graph/frame_node_impl.cc b/chrome/browser/performance_manager/graph/frame_node_impl.cc
index 9822d54..16278d39 100644
--- a/chrome/browser/performance_manager/graph/frame_node_impl.cc
+++ b/chrome/browser/performance_manager/graph/frame_node_impl.cc
@@ -11,16 +11,11 @@
 
 namespace performance_manager {
 
-FrameNodeImpl::FrameNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-                             Graph* graph)
-    : CoordinationUnitInterface(id, graph),
+FrameNodeImpl::FrameNodeImpl(Graph* graph)
+    : CoordinationUnitInterface(graph),
       parent_frame_node_(nullptr),
       page_node_(nullptr),
       process_node_(nullptr) {
-  for (size_t i = 0; i < base::size(intervention_policy_); ++i)
-    intervention_policy_[i] =
-        resource_coordinator::mojom::InterventionPolicy::kUnknown;
-
   DETACH_FROM_SEQUENCE(sequence_checker_);
 }
 
@@ -177,9 +172,18 @@
   }
 }
 
-void FrameNodeImpl::BeforeDestroyed() {
+void FrameNodeImpl::JoinGraph() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  NodeBase::BeforeDestroyed();
+  for (size_t i = 0; i < base::size(intervention_policy_); ++i)
+    intervention_policy_[i] =
+        resource_coordinator::mojom::InterventionPolicy::kUnknown;
+
+  NodeBase::JoinGraph();
+}
+
+void FrameNodeImpl::LeaveGraph() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  NodeBase::LeaveGraph();
 
   if (parent_frame_node_)
     parent_frame_node_->RemoveChildFrame(this);
diff --git a/chrome/browser/performance_manager/graph/frame_node_impl.h b/chrome/browser/performance_manager/graph/frame_node_impl.h
index 48182c77..0c148ef4 100644
--- a/chrome/browser/performance_manager/graph/frame_node_impl.h
+++ b/chrome/browser/performance_manager/graph/frame_node_impl.h
@@ -29,8 +29,7 @@
     return resource_coordinator::CoordinationUnitType::kFrame;
   }
 
-  FrameNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-                Graph* graph);
+  explicit FrameNodeImpl(Graph* graph);
   ~FrameNodeImpl() override;
 
   // FrameNode implementation.
@@ -74,7 +73,8 @@
   friend class PageNodeImpl;
   friend class ProcessNodeImpl;
 
-  void BeforeDestroyed() override;
+  void JoinGraph() override;
+  void LeaveGraph() override;
 
   // CoordinationUnitInterface implementation.
   void OnEventReceived(resource_coordinator::mojom::Event event) override;
diff --git a/chrome/browser/performance_manager/graph/graph.cc b/chrome/browser/performance_manager/graph/graph.cc
index 7a9a8879..12538749 100644
--- a/chrome/browser/performance_manager/graph/graph.cc
+++ b/chrome/browser/performance_manager/graph/graph.cc
@@ -63,17 +63,14 @@
 
 void Graph::OnBeforeNodeRemoved(NodeBase* node) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  node->BeforeDestroyed();
+  node->LeaveGraph();
 }
 
 SystemNodeImpl* Graph::FindOrCreateSystemNode() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!system_node_) {
     // Create the singleton SystemCU instance. Ownership is taken by the graph.
-    resource_coordinator::CoordinationUnitID id(
-        resource_coordinator::CoordinationUnitType::kSystem,
-        resource_coordinator::CoordinationUnitID::RANDOM_ID);
-    system_node_ = std::make_unique<SystemNodeImpl>(id, this);
+    system_node_ = std::make_unique<SystemNodeImpl>(this);
     AddNewNode(system_node_.get());
   }
 
@@ -130,6 +127,8 @@
 
 void Graph::AddNewNode(NodeBase* new_node) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  // Allow the node to initialize itself.
+  new_node->JoinGraph();
   auto it = nodes_.emplace(new_node->id(), new_node);
   DCHECK(it.second);  // Inserted successfully
   OnNodeAdded(new_node);
diff --git a/chrome/browser/performance_manager/graph/graph_test_harness.h b/chrome/browser/performance_manager/graph/graph_test_harness.h
index 4e6c721..c3dc152c 100644
--- a/chrome/browser/performance_manager/graph/graph_test_harness.h
+++ b/chrome/browser/performance_manager/graph/graph_test_harness.h
@@ -19,10 +19,6 @@
 #include "chrome/browser/performance_manager/graph/system_node_impl.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-namespace resource_coordinator {
-struct CoordinationUnitID;
-}  // namespace resource_coordinator
-
 namespace performance_manager {
 
 class SystemNodeImpl;
@@ -30,18 +26,11 @@
 template <class NodeClass>
 class TestNodeWrapper {
  public:
-  static TestNodeWrapper<NodeClass> Create(
-      const resource_coordinator::CoordinationUnitID& cu_id,
-      Graph* graph) {
-    std::unique_ptr<NodeClass> node = std::make_unique<NodeClass>(cu_id, graph);
+  static TestNodeWrapper<NodeClass> Create(Graph* graph) {
+    std::unique_ptr<NodeClass> node = std::make_unique<NodeClass>(graph);
     graph->AddNewNode(node.get());
     return TestNodeWrapper<NodeClass>(std::move(node));
   }
-  static TestNodeWrapper<NodeClass> Create(Graph* graph) {
-    resource_coordinator::CoordinationUnitID cu_id(
-        NodeClass::Type(), resource_coordinator::CoordinationUnitID::RANDOM_ID);
-    return Create(cu_id, graph);
-  }
 
   explicit TestNodeWrapper(std::unique_ptr<NodeClass> impl)
       : impl_(std::move(impl)) {
@@ -99,16 +88,8 @@
   ~GraphTestHarness() override;
 
   template <class NodeClass>
-  TestNodeWrapper<NodeClass> CreateNode(
-      resource_coordinator::CoordinationUnitID cu_id) {
-    return TestNodeWrapper<NodeClass>::Create(cu_id, graph());
-  }
-
-  template <class NodeClass>
   TestNodeWrapper<NodeClass> CreateNode() {
-    resource_coordinator::CoordinationUnitID cu_id(
-        NodeClass::Type(), resource_coordinator::CoordinationUnitID::RANDOM_ID);
-    return CreateNode<NodeClass>(cu_id);
+    return TestNodeWrapper<NodeClass>::Create(graph());
   }
 
   TestNodeWrapper<SystemNodeImpl> GetSystemCoordinationUnit() {
diff --git a/chrome/browser/performance_manager/graph/node_attached_data_unittest.cc b/chrome/browser/performance_manager/graph/node_attached_data_unittest.cc
index 5b0b3de..e8d2187 100644
--- a/chrome/browser/performance_manager/graph/node_attached_data_unittest.cc
+++ b/chrome/browser/performance_manager/graph/node_attached_data_unittest.cc
@@ -30,9 +30,7 @@
 class DummyNode : public NodeBase {
  public:
   explicit DummyNode(Graph* graph)
-      : NodeBase(resource_coordinator::CoordinationUnitID(
-                     resource_coordinator::CoordinationUnitType::kInvalidType,
-                     resource_coordinator::CoordinationUnitID::RANDOM_ID),
+      : NodeBase(resource_coordinator::CoordinationUnitType::kInvalidType,
                  graph) {}
 
   ~DummyNode() override = default;
diff --git a/chrome/browser/performance_manager/graph/node_base.cc b/chrome/browser/performance_manager/graph/node_base.cc
index c952e038..a52d17e 100644
--- a/chrome/browser/performance_manager/graph/node_base.cc
+++ b/chrome/browser/performance_manager/graph/node_base.cc
@@ -12,16 +12,18 @@
 
 namespace performance_manager {
 
-NodeBase::NodeBase(const resource_coordinator::CoordinationUnitID& id,
+NodeBase::NodeBase(resource_coordinator::CoordinationUnitType node_type,
                    Graph* graph)
-    : graph_(graph), id_(id.type, id.id) {
-}
+    : graph_(graph),
+      id_(node_type, resource_coordinator::CoordinationUnitID::RANDOM_ID) {}
 
 NodeBase::~NodeBase() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 }
 
-void NodeBase::BeforeDestroyed() {
+void NodeBase::JoinGraph() {}
+
+void NodeBase::LeaveGraph() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   for (auto& observer : observers_)
     observer.OnBeforeNodeRemoved(this);
diff --git a/chrome/browser/performance_manager/graph/node_base.h b/chrome/browser/performance_manager/graph/node_base.h
index df44b0b0..ad3391a 100644
--- a/chrome/browser/performance_manager/graph/node_base.h
+++ b/chrome/browser/performance_manager/graph/node_base.h
@@ -28,14 +28,17 @@
 // NodeBase implements shared functionality among different types of
 // coordination units. A specific type of coordination unit will derive from
 // this class and can override shared funtionality when needed.
+// All node classes allow construction on one sequence and subsequent use from
+// another sequence.
+// All methods not documented otherwise are single-threaded.
 class NodeBase {
  public:
-  NodeBase(const resource_coordinator::CoordinationUnitID& id, Graph* graph);
+  NodeBase(resource_coordinator::CoordinationUnitType type, Graph* graph);
   virtual ~NodeBase();
 
-  virtual void BeforeDestroyed();
   void AddObserver(GraphObserver* observer);
   void RemoveObserver(GraphObserver* observer);
+
   bool GetProperty(
       const resource_coordinator::mojom::PropertyType property_type,
       int64_t* result) const;
@@ -43,8 +46,9 @@
       const resource_coordinator::mojom::PropertyType property_type,
       int64_t default_value) const;
 
-  // May be called on any thread.
+  // May be called on any sequence.
   const resource_coordinator::CoordinationUnitID& id() const { return id_; }
+  // May be called on any sequence.
   Graph* graph() const { return graph_; }
 
   const base::ObserverList<GraphObserver>::Unchecked& observers() const {
@@ -61,6 +65,15 @@
   }
 
  protected:
+  friend class Graph;
+
+  // Called just before joining |graph_|, a good opportunity to initialize
+  // node state.
+  virtual void JoinGraph();
+  // Called just before leaving |graph_|, a good opportunity to uninitialize
+  // node state.
+  virtual void LeaveGraph();
+
   // Returns true if |other_node| is in the same graph.
   bool NodeInGraph(const NodeBase* other_node) const;
 
@@ -104,9 +117,7 @@
 template <class NodeClass>
 class TypedNodeBase : public NodeBase {
  public:
-  TypedNodeBase(const resource_coordinator::CoordinationUnitID& id,
-                Graph* graph)
-      : NodeBase(id, graph) {}
+  explicit TypedNodeBase(Graph* graph) : NodeBase(NodeClass::Type(), graph) {}
 
   static const NodeClass* FromNodeBase(const NodeBase* cu) {
     DCHECK(cu->id().type == NodeClass::Type());
@@ -135,9 +146,8 @@
 class CoordinationUnitInterface : public TypedNodeBase<NodeClass>,
                                   public MojoInterfaceClass {
  public:
-  CoordinationUnitInterface(const resource_coordinator::CoordinationUnitID& id,
-                            Graph* graph)
-      : TypedNodeBase<NodeClass>(id, graph) {}
+  explicit CoordinationUnitInterface(Graph* graph)
+      : TypedNodeBase<NodeClass>(graph) {}
 
   ~CoordinationUnitInterface() override = default;
 
diff --git a/chrome/browser/performance_manager/graph/page_node_impl.cc b/chrome/browser/performance_manager/graph/page_node_impl.cc
index 50230e1..0eff0c1 100644
--- a/chrome/browser/performance_manager/graph/page_node_impl.cc
+++ b/chrome/browser/performance_manager/graph/page_node_impl.cc
@@ -30,12 +30,9 @@
 
 }  // namespace
 
-PageNodeImpl::PageNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-                           Graph* graph)
-    : TypedNodeBase(id, graph),
+PageNodeImpl::PageNodeImpl(Graph* graph)
+    : TypedNodeBase(graph),
       visibility_change_time_(ResourceCoordinatorClock::NowTicks()) {
-  InvalidateAllInterventionPolicies();
-
   DETACH_FROM_SEQUENCE(sequence_checker_);
 }
 
@@ -255,14 +252,21 @@
   return intervention_policy_[kIndex];
 }
 
-void PageNodeImpl::BeforeDestroyed() {
+void PageNodeImpl::JoinGraph() {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  InvalidateAllInterventionPolicies();
+
+  NodeBase::JoinGraph();
+}
+
+void PageNodeImpl::LeaveGraph() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   // TODO(siggi): This fails browser_tests for some reason. Would be nice to
   //     assert this.
   // DCHECK(frame_nodes_.empty());
 
-  NodeBase::BeforeDestroyed();
+  NodeBase::LeaveGraph();
 
   for (auto* child_frame : frame_nodes_)
     child_frame->RemovePageNode(this);
diff --git a/chrome/browser/performance_manager/graph/page_node_impl.h b/chrome/browser/performance_manager/graph/page_node_impl.h
index 89624e6..777ca06 100644
--- a/chrome/browser/performance_manager/graph/page_node_impl.h
+++ b/chrome/browser/performance_manager/graph/page_node_impl.h
@@ -25,8 +25,7 @@
     return resource_coordinator::CoordinationUnitType::kPage;
   }
 
-  PageNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-               Graph* graph);
+  explicit PageNodeImpl(Graph* graph);
   ~PageNodeImpl() override;
 
   void AddFrame(FrameNodeImpl* frame_node);
@@ -125,7 +124,8 @@
  private:
   friend class FrameNodeImpl;
 
-  void BeforeDestroyed() override;
+  void JoinGraph() override;
+  void LeaveGraph() override;
 
   void set_page_almost_idle(bool page_almost_idle);
 
diff --git a/chrome/browser/performance_manager/graph/process_node_impl.cc b/chrome/browser/performance_manager/graph/process_node_impl.cc
index 5c60dc26..c05b5e3b 100644
--- a/chrome/browser/performance_manager/graph/process_node_impl.cc
+++ b/chrome/browser/performance_manager/graph/process_node_impl.cc
@@ -10,10 +10,8 @@
 
 namespace performance_manager {
 
-ProcessNodeImpl::ProcessNodeImpl(
-    const resource_coordinator::CoordinationUnitID& id,
-    Graph* graph)
-    : CoordinationUnitInterface(id, graph) {
+ProcessNodeImpl::ProcessNodeImpl(Graph* graph)
+    : CoordinationUnitInterface(graph) {
   DETACH_FROM_SEQUENCE(sequence_checker_);
 }
 
@@ -121,9 +119,9 @@
     IncrementNumFrozenFrames();
 }
 
-void ProcessNodeImpl::BeforeDestroyed() {
+void ProcessNodeImpl::LeaveGraph() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  NodeBase::BeforeDestroyed();
+  NodeBase::LeaveGraph();
 
   // Make as if we're transitioning to the null PID before we die to clear this
   // instance from the PID map.
diff --git a/chrome/browser/performance_manager/graph/process_node_impl.h b/chrome/browser/performance_manager/graph/process_node_impl.h
index eeb2bae..cbb00b56 100644
--- a/chrome/browser/performance_manager/graph/process_node_impl.h
+++ b/chrome/browser/performance_manager/graph/process_node_impl.h
@@ -37,8 +37,7 @@
     return resource_coordinator::CoordinationUnitType::kProcess;
   }
 
-  ProcessNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-                  Graph* graph);
+  explicit ProcessNodeImpl(Graph* graph);
   ~ProcessNodeImpl() override;
 
   // resource_coordinator::mojom::ProcessCoordinationUnit implementation.
@@ -80,7 +79,7 @@
       resource_coordinator::mojom::LifecycleState old_state);
 
  private:
-  void BeforeDestroyed() override;
+  void LeaveGraph() override;
 
   // CoordinationUnitInterface implementation.
   void OnEventReceived(resource_coordinator::mojom::Event event) override;
diff --git a/chrome/browser/performance_manager/graph/system_node_impl.cc b/chrome/browser/performance_manager/graph/system_node_impl.cc
index 1a6e3e2..6e9544b 100644
--- a/chrome/browser/performance_manager/graph/system_node_impl.cc
+++ b/chrome/browser/performance_manager/graph/system_node_impl.cc
@@ -20,10 +20,7 @@
 ProcessResourceMeasurementBatch::ProcessResourceMeasurementBatch() = default;
 ProcessResourceMeasurementBatch::~ProcessResourceMeasurementBatch() = default;
 
-SystemNodeImpl::SystemNodeImpl(
-    const resource_coordinator::CoordinationUnitID& id,
-    Graph* graph)
-    : TypedNodeBase(id, graph) {}
+SystemNodeImpl::SystemNodeImpl(Graph* graph) : TypedNodeBase(graph) {}
 
 SystemNodeImpl::~SystemNodeImpl() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/performance_manager/graph/system_node_impl.h b/chrome/browser/performance_manager/graph/system_node_impl.h
index 233d763..132db52e 100644
--- a/chrome/browser/performance_manager/graph/system_node_impl.h
+++ b/chrome/browser/performance_manager/graph/system_node_impl.h
@@ -51,8 +51,7 @@
     return resource_coordinator::CoordinationUnitType::kSystem;
   }
 
-  SystemNodeImpl(const resource_coordinator::CoordinationUnitID& id,
-                 Graph* graph);
+  explicit SystemNodeImpl(Graph* graph);
   ~SystemNodeImpl() override;
 
   void OnProcessCPUUsageReady();
diff --git a/chrome/browser/performance_manager/performance_manager.cc b/chrome/browser/performance_manager/performance_manager.cc
index 179f2ef1..1b51417 100644
--- a/chrome/browser/performance_manager/performance_manager.cc
+++ b/chrome/browser/performance_manager/performance_manager.cc
@@ -99,9 +99,7 @@
 
 template <typename NodeType>
 std::unique_ptr<NodeType> PerformanceManager::CreateNodeImpl() {
-  resource_coordinator::CoordinationUnitID id(
-      NodeType::Type(), resource_coordinator::CoordinationUnitID::RANDOM_ID);
-  std::unique_ptr<NodeType> new_node = std::make_unique<NodeType>(id, &graph_);
+  std::unique_ptr<NodeType> new_node = std::make_unique<NodeType>(&graph_);
   task_runner_->PostTask(
       FROM_HERE, base::BindOnce(&Graph::AddNewNode, base::Unretained(&graph_),
                                 base::Unretained(new_node.get())));
diff --git a/chrome/browser/printing/print_browsertest.cc b/chrome/browser/printing/print_browsertest.cc
index a511f72..5f68baf 100644
--- a/chrome/browser/printing/print_browsertest.cc
+++ b/chrome/browser/printing/print_browsertest.cc
@@ -207,7 +207,7 @@
   static PrintMsg_Print_Params GetNupPrintParams() {
     PrintMsg_Print_Params params;
     params.page_size = gfx::Size(612, 792);
-    params.content_size = gfx::Size(612, 792);
+    params.content_size = gfx::Size(540, 720);
     params.printable_area = gfx::Rect(612, 792);
     params.dpi = gfx::Size(72, 72);
     params.document_cookie = kDefaultDocumentCookie;
diff --git a/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js b/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
index 9935844..e3280a9d9 100644
--- a/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
+++ b/chrome/browser/resources/chromeos/chromevox/braille/liblouis.js
@@ -48,14 +48,7 @@
    */
   this.nextMessageId_ = 1;
 
-  this.worker_ = new Worker(this.wasmPath_);
-  this.worker_.addEventListener(
-      'message', goog.bind(this.onInstanceMessage_, this),
-      false /* useCapture */);
-  this.rpc_('load', {}, () => {
-    this.isLoaded_ = true;
-    opt_loadCallback && opt_loadCallback(this);
-  });
+  this.loadOrReload_(opt_loadCallback);
 };
 
 
@@ -148,7 +141,8 @@
  * @private
  */
 cvox.LibLouis.prototype.onInstanceError_ = function(e) {
-  window.console.error('failed to load liblouis Native Client instance');
+  window.console.error('Error in liblouis ' + e.toString());
+  this.loadOrReload_();
 };
 
 
@@ -178,6 +172,24 @@
   }
 };
 
+/**
+ * @param {function(cvox.LibLouis)=} opt_loadCallback
+ * @private
+ */
+cvox.LibLouis.prototype.loadOrReload_ = function(opt_loadCallback) {
+  this.worker_ = new Worker(this.wasmPath_);
+  this.worker_.addEventListener(
+      'message', goog.bind(this.onInstanceMessage_, this),
+      false /* useCapture */);
+  this.worker_.addEventListener(
+      'error', goog.bind(this.onInstanceError_, this),
+      false /* useCapture */);
+  this.rpc_('load', {}, () => {
+    this.isLoaded_ = true;
+    opt_loadCallback && opt_loadCallback(this);
+  });
+};
+
 
 /**
  * Braille translator which uses a Native Client instance of liblouis.
diff --git a/chrome/browser/resources/chromeos/switch_access/navigation_manager.js b/chrome/browser/resources/chromeos/switch_access/navigation_manager.js
index fc98d5e..108f2e6 100644
--- a/chrome/browser/resources/chromeos/switch_access/navigation_manager.js
+++ b/chrome/browser/resources/chromeos/switch_access/navigation_manager.js
@@ -54,6 +54,28 @@
      */
     this.visitingScopeAsActionable_ = false;
 
+    /**
+     * @private {chrome.accessibilityPrivate.FocusRingInfo}
+     */
+    this.primaryFocusRing_ = {
+      id: SAConstants.PRIMARY_FOCUS_ID,
+      rects: [],
+      type: chrome.accessibilityPrivate.FocusType.SOLID,
+      color: SAConstants.PRIMARY_FOCUS_COLOR,
+      secondaryColor: SAConstants.SECONDARY_FOCUS_COLOR
+    };
+
+    /**
+     * @private {chrome.accessibilityPrivate.FocusRingInfo}
+     */
+    this.scopeFocusRing_ = {
+      id: SAConstants.SCOPE_FOCUS_ID,
+      rects: [],
+      type: chrome.accessibilityPrivate.FocusType.DASHED,
+      color: SAConstants.PRIMARY_FOCUS_COLOR,
+      secondaryColor: SAConstants.SECONDARY_FOCUS_COLOR
+    };
+
     this.init_();
   }
 
@@ -201,7 +223,7 @@
         this.scope_ = this.scopeStack_.pop();
       } while (!this.scope_.role && this.scopeStack_.length > 0);
 
-      this.updateFocusRing_();
+      this.updateFocusRings_();
       return;
     }
 
@@ -286,7 +308,7 @@
 
     // In case the node that gained focus is not a subtreeLeaf.
     if (SwitchAccessPredicate.isInteresting(this.node_, this.scope_))
-      this.updateFocusRing_();
+      this.updateFocusRings_();
     else
       this.moveForward();
   }
@@ -313,12 +335,7 @@
     if (!removedByRWA && treeChange.target !== this.node_)
       return;
 
-    chrome.accessibilityPrivate.setFocusRings([{
-      id: SAConstants.PRIMARY_FOCUS,
-      rects: [],
-      type: chrome.accessibilityPrivate.FocusType.GLOW,
-      color: NavigationManager.Color.LEAF
-    }]);
+    this.clearFocusRings_();
 
     // Current node not invalid until after treeChange callback, so move to
     // valid node after callback. Delay added to prevent moving to another
@@ -351,7 +368,7 @@
    */
   setCurrentNode_(node) {
     this.node_ = node;
-    this.updateFocusRing_();
+    this.updateFocusRings_();
   }
 
   /**
@@ -361,7 +378,7 @@
     this.node_ = this.scope_;
     this.visitingScopeAsActionable_ = true;
 
-    this.updateFocusRing_(NavigationManager.Color.LEAF);
+    this.updateFocusRings_();
   }
 
   /**
@@ -392,27 +409,32 @@
   }
 
   /**
-   * Set the focus ring for the current node and determine the color for it.
-   *
-   * @param {NavigationManager.Color=} opt_color
+   * Set the focus rings for the current node and scope.
    * @private
    */
-  updateFocusRing_(opt_color) {
-    let color;
-    if (this.node_ === this.scope_)
-      color = NavigationManager.Color.SCOPE;
-    else if (SwitchAccessPredicate.isGroup(this.node_, this.scope_))
-      color = NavigationManager.Color.GROUP;
-    else
-      color = NavigationManager.Color.LEAF;
+  updateFocusRings_() {
+    const focusRect = this.node_.location;
+    let scopeRect = this.scope_.location;
 
-    color = opt_color || color;
-    chrome.accessibilityPrivate.setFocusRings([{
-      id: SAConstants.PRIMARY_FOCUS,
-      rects: [this.node_.location],
-      type: chrome.accessibilityPrivate.FocusType.GLOW,
-      color: color
-    }]);
+    // TODO(anastasi): Make adjustments to scope rect so it draws entirely
+    // outside the focus rect.
+
+    this.primaryFocusRing_.rects = [focusRect];
+    this.scopeFocusRing_.rects = [scopeRect];
+
+    chrome.accessibilityPrivate.setFocusRings(
+        [this.primaryFocusRing_, this.scopeFocusRing_]);
+  }
+
+  /**
+   * Clears all focus rings.
+   * @private
+   */
+  clearFocusRings_() {
+    this.primaryFocusRing_.rects = [];
+    this.scopeFocusRing_.rects = [];
+    chrome.accessibilityPrivate.setFocusRings(
+        [this.primaryFocusRing_, this.scopeFocusRing_]);
   }
 
   /**
@@ -574,19 +596,6 @@
 }
 
 /**
- * Highlight colors for the focus ring to distinguish between different types
- * of nodes.
- *
- * @enum {string}
- * @const
- */
-NavigationManager.Color = {
-  SCOPE: '#de742f',  // dark orange
-  GROUP: '#ffbb33',  // light orange
-  LEAF: '#78e428'    // light green
-};
-
-/**
  * Display modes for debugging tree.
  *
  * @enum {string}
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_constants.js b/chrome/browser/resources/chromeos/switch_access/switch_access_constants.js
index 00663dc..bab3450 100644
--- a/chrome/browser/resources/chromeos/switch_access/switch_access_constants.js
+++ b/chrome/browser/resources/chromeos/switch_access/switch_access_constants.js
@@ -34,7 +34,7 @@
    * @type {string}
    * @const
    */
-  PRIMARY_FOCUS: 'primary',
+  PRIMARY_FOCUS_ID: 'primary',
 
   /**
    * The ID used for the focus ring around the current scope.
@@ -42,7 +42,30 @@
    * @type {string}
    * @const
    */
-  SCOPE_FOCUS: 'scope',
+  SCOPE_FOCUS_ID: 'scope',
+
+  /**
+   * The inner color of the focus rings.
+   * @type {string}
+   * @const
+   */
+  PRIMARY_FOCUS_COLOR: '#8ab4f8',
+
+  /**
+   * The outer color of the focus rings.
+   * Temporarily does not match spec, as alpha is not yet configurable.
+   * TODO(anastasi): Set alpha as specified in the spec.
+   * @type {string}
+   * @const
+   */
+  SECONDARY_FOCUS_COLOR: '#aaa',
+
+  /**
+   * The amount of space (in px) needed to fit a focus ring around an element.
+   * @type {number}
+   * @const
+   */
+  FOCUS_RING_BUFFER: 4,
 
   /**
    * Actions available in the Switch Access Menu.
diff --git a/chrome/browser/resources/pdf/ink/BUILD.gn b/chrome/browser/resources/pdf/ink/BUILD.gn
index b98fd60..38908ee 100644
--- a/chrome/browser/resources/pdf/ink/BUILD.gn
+++ b/chrome/browser/resources/pdf/ink/BUILD.gn
@@ -4,18 +4,15 @@
 
 import("//third_party/closure_compiler/compile_js.gni")
 
-group("closure_compile") {
+js_type_check("closure_compile") {
   deps = [
     ":ink_api",
   ]
 }
 
 js_library("ink_api") {
-  externs_list = [ "//third_party/ink/build/ink_lib_externs.js" ]
-}
-
-js_type_check("ink") {
-  deps = [
-    ":ink_api",
+  externs_list = [
+    "//third_party/ink/build/ink_lib_externs.js",
+    "$externs_path/pending.js",
   ]
 }
diff --git a/chrome/browser/resources/print_preview/new/BUILD.gn b/chrome/browser/resources/print_preview/new/BUILD.gn
index 56c953d3..404911b 100644
--- a/chrome/browser/resources/print_preview/new/BUILD.gn
+++ b/chrome/browser/resources/print_preview/new/BUILD.gn
@@ -222,6 +222,7 @@
 
 js_library("settings_behavior") {
   deps = [
+    ":model",
     "//ui/webui/resources/js:assert",
     "//ui/webui/resources/js:cr",
   ]
@@ -376,7 +377,6 @@
 
 js_library("model") {
   deps = [
-    ":settings_behavior",
     "../data:destination",
     "../data:document_info",
     "../data:margins",
diff --git a/chrome/browser/resources/print_preview/new/advanced_options_settings.html b/chrome/browser/resources/print_preview/new/advanced_options_settings.html
index b0cc55f..e988382 100644
--- a/chrome/browser/resources/print_preview/new/advanced_options_settings.html
+++ b/chrome/browser/resources/print_preview/new/advanced_options_settings.html
@@ -5,7 +5,6 @@
 <link rel="import" href="../data/destination.html">
 <link rel="import" href="advanced_settings_dialog.html">
 <link rel="import" href="print_preview_shared_css.html">
-<link rel="import" href="settings_behavior.html">
 <link rel="import" href="settings_section.html">
 
 <dom-module id="print-preview-advanced-options-settings">
@@ -32,7 +31,7 @@
     </print-preview-settings-section>
     <template is="dom-if" if="[[showAdvancedDialog_]]" restamp>
       <print-preview-advanced-dialog
-          settings="{{settings}}" destination="[[destination]]"
+          settings="[[settings]]" destination="[[destination]]"
           on-close="onDialogClose_">
       </print-preview-advanced-dialog>
     </template>
diff --git a/chrome/browser/resources/print_preview/new/advanced_options_settings.js b/chrome/browser/resources/print_preview/new/advanced_options_settings.js
index c0a204cb..1760506 100644
--- a/chrome/browser/resources/print_preview/new/advanced_options_settings.js
+++ b/chrome/browser/resources/print_preview/new/advanced_options_settings.js
@@ -5,14 +5,15 @@
 Polymer({
   is: 'print-preview-advanced-options-settings',
 
-  behaviors: [SettingsBehavior],
-
   properties: {
     disabled: Boolean,
 
     /** @type {!print_preview.Destination} */
     destination: Object,
 
+    /** @type {!print_preview_new.Settings} */
+    settings: Object,
+
     /** @private {boolean} */
     showAdvancedDialog_: {
       type: Boolean,
diff --git a/chrome/browser/resources/print_preview/new/app.html b/chrome/browser/resources/print_preview/new/app.html
index 63987328..966d536 100644
--- a/chrome/browser/resources/print_preview/new/app.html
+++ b/chrome/browser/resources/print_preview/new/app.html
@@ -81,40 +81,42 @@
         controls-managed="{{controlsManaged_}}" destination="[[destination_]]"
         document-settings="[[documentSettings_]]"
         margins="[[margins_]]" page-size="[[pageSize_]]"
-        on-save-sticky-settings="onSaveStickySettings_">
+        on-preview-setting-changed="onPreviewSettingChanged_"
+        on-sticky-setting-changed="onStickySettingChanged_"
+        on-setting-valid-changed="onSettingValidChanged_">
     </print-preview-model>
     <print-preview-document-info id="documentInfo"
         document-settings="{{documentSettings_}}" margins="{{margins_}}"
         page-size="{{pageSize_}}">
     </print-preview-document-info>
-    <div id="sidebar" on-setting-valid-changed="onSettingValidChanged_">
-      <print-preview-header destination="[[destination_]]" state="[[state]]"
-          error-message="[[errorMessage_]]" settings="[[settings]]"
+    <div id="sidebar">
+      <print-preview-header id="header" destination="[[destination_]]"
+          state="[[state]]" settings="[[settings]]"
           managed="[[controlsManaged_]]" on-print-requested="onPrintRequested_"
           on-cancel-requested="onCancelRequested_">
       </print-preview-header>
       <div id="container">
         <print-preview-destination-settings id="destinationSettings"
-            destination="{{destination_}}" settings="{{settings}}"
+            destination="{{destination_}}" settings="[[settings]]"
             destination-state="{{destinationState_}}"
             app-kiosk-mode="[[isInAppKioskMode_]]"
             disabled="[[controlsDisabled_]]"
             available class="settings-section">
         </print-preview-destination-settings>
-        <print-preview-pages-settings settings="{{settings}}"
+        <print-preview-pages-settings settings="[[settings]]"
             page-count="[[documentSettings_.pageCount]]"
             disabled="[[controlsDisabled_]]"
             hidden$="[[!settings.pages.available]]" class="settings-section">
         </print-preview-pages-settings>
-        <print-preview-copies-settings settings="{{settings}}"
+        <print-preview-copies-settings settings="[[settings]]"
             disabled="[[controlsDisabled_]]"
             hidden$="[[!settings.copies.available]]" class="settings-section">
         </print-preview-copies-settings>
-        <print-preview-layout-settings settings="{{settings}}"
+        <print-preview-layout-settings settings="[[settings]]"
             disabled="[[controlsDisabled_]]"
             hidden$="[[!settings.layout.available]]" class="settings-section">
         </print-preview-layout-settings>
-        <print-preview-color-settings settings="{{settings}}"
+        <print-preview-color-settings settings="[[settings]]"
             disabled="[[controlsDisabled_]]"
             hidden$="[[!settings.color.available]]" class="settings-section">
         </print-preview-color-settings>
@@ -126,40 +128,40 @@
         <iron-collapse id="moreSettings"
             opened="[[shouldExpandSettings_(
                 settingsExpandedByUser_, shouldShowMoreSettings_)]]">
-          <print-preview-media-size-settings settings="{{settings}}"
+          <print-preview-media-size-settings settings="[[settings]]"
               capability="[[destination_.capabilities.printer.media_size]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.mediaSize.available]]"
               class="settings-section">
           </print-preview-media-size-settings>
-          <print-preview-pages-per-sheet-settings settings="{{settings}}"
+          <print-preview-pages-per-sheet-settings settings="[[settings]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.pagesPerSheet.available]]"
               class="settings-section">
           </print-preview-pages-per-sheet-settings>
-          <print-preview-margins-settings settings="{{settings}}"
+          <print-preview-margins-settings settings="[[settings]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.margins.available]]"
               class="settings-section">
           </print-preview-margins-settings>
-          <print-preview-dpi-settings settings="{{settings}}"
+          <print-preview-dpi-settings settings="[[settings]]"
               capability="[[destination_.capabilities.printer.dpi]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.dpi.available]]" class="settings-section">
           </print-preview-dpi-settings>
-          <print-preview-scaling-settings settings="{{settings}}"
+          <print-preview-scaling-settings settings="[[settings]]"
               fit-to-page-scaling="[[documentSettings_.fitToPageScaling]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.scaling.available]]"
               class="settings-section">
           </print-preview-scaling-settings>
-          <print-preview-other-options-settings settings="{{settings}}"
+          <print-preview-other-options-settings settings="[[settings]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.otherOptions.available]]"
               class="settings-section">
           </print-preview-other-options-settings>
           <print-preview-advanced-options-settings
-              settings="{{settings}}" destination="[[destination_]]"
+              settings="[[settings]]" destination="[[destination_]]"
               disabled="[[controlsDisabled_]]"
               hidden$="[[!settings.vendorItems.available]]"
               class="settings-section">
@@ -178,8 +180,9 @@
       </div>
     </div>
     <div id="preview-area-container">
-      <print-preview-preview-area id="previewArea" settings="{{settings}}"
+      <print-preview-preview-area id="previewArea" settings="[[settings]]"
           destination="[[destination_]]"
+          destination-state="[[destinationState_]]"
           document-modifiable="[[documentSettings_.isModifiable]]"
           margins="[[margins_]]" page-size="[[pageSize_]]" state="[[state]]"
           measurement-system="[[measurementSystem_]]"
diff --git a/chrome/browser/resources/print_preview/new/app.js b/chrome/browser/resources/print_preview/new/app.js
index 3b1aeab..4be09a2 100644
--- a/chrome/browser/resources/print_preview/new/app.js
+++ b/chrome/browser/resources/print_preview/new/app.js
@@ -64,12 +64,6 @@
     /** @private {!print_preview.PrintableArea} */
     printableArea_: Object,
 
-    /** @private {string} */
-    errorMessage_: {
-      type: String,
-      value: '',
-    },
-
     /** @private {boolean} */
     isInAppKioskMode_: {
       type: Boolean,
@@ -127,6 +121,9 @@
   printRequested_: false,
 
   /** @private {boolean} */
+  startPreviewWhenReady_: false,
+
+  /** @private {boolean} */
   showSystemDialogBeforePrint_: false,
 
   /** @private {boolean} */
@@ -327,7 +324,7 @@
   },
 
   /** @private */
-  onDestinationStateChange_: function(e) {
+  onDestinationStateChange_: function() {
     switch (this.destinationState_) {
       case print_preview.DestinationState.SELECTED:
         // If the plugin does not exist do not attempt to load the preview.
@@ -344,6 +341,7 @@
         this.$.model.applyDestinationSpecificPolicies();
         // </if>
 
+        this.startPreviewWhenReady_ = true;
         if (this.state == print_preview_new.State.NOT_READY ||
             this.state == print_preview_new.State.INVALID_PRINTER) {
           this.$.state.transitTo(print_preview_new.State.READY);
@@ -355,36 +353,43 @@
         }
         break;
       case print_preview.DestinationState.INVALID:
-        this.previewState_ =
-            print_preview_new.PreviewAreaState.INVALID_SETTINGS;
-        break;
       case print_preview.DestinationState.UNSUPPORTED:
-        this.previewState_ =
-            print_preview_new.PreviewAreaState.UNSUPPORTED_CLOUD_PRINTER;
-        break;
       // <if expr="chromeos">
       case print_preview.DestinationState.NO_DESTINATIONS:
+        // </if>
         this.$.state.transitTo(print_preview_new.State.INVALID_PRINTER);
-        this.$.previewArea.setNoDestinationsFound();
         break;
-      // </if>
       default:
         break;
     }
   },
 
   /**
-   * @param {!CustomEvent<string>} e Event containing the sticky settings
-   *     string.
+   * @param {!CustomEvent<string>} e Event containing the new sticky settings.
    * @private
    */
-  onSaveStickySettings_: function(e) {
+  onStickySettingChanged_: function(e) {
     this.nativeLayer_.saveAppState(e.detail);
   },
 
   /** @private */
+  onPreviewSettingChanged_: function() {
+    if (this.state === print_preview_new.State.READY) {
+      this.$.previewArea.startPreview();
+      this.startPreviewWhenReady_ = false;
+    } else {
+      this.startPreviewWhenReady_ = true;
+    }
+  },
+
+  /** @private */
   onStateChanged_: function() {
-    if (this.state == print_preview_new.State.CLOSING) {
+    if (this.state == print_preview_new.State.READY) {
+      if (this.startPreviewWhenReady_) {
+        this.$.previewArea.startPreview();
+        this.startPreviewWhenReady_ = false;
+      }
+    } else if (this.state == print_preview_new.State.CLOSING) {
       this.remove();
       this.nativeLayer_.dialogClose(this.cancelled_);
     } else if (this.state == print_preview_new.State.HIDDEN) {
@@ -502,8 +507,8 @@
    */
   onPrintFailed_: function(httpError) {
     console.error('Printing failed with error code ' + httpError);
-    this.errorMessage_ = loadTimeData.getString('couldNotPrint');
     this.$.state.transitTo(print_preview_new.State.FATAL_ERROR);
+    this.$.header.setErrorMessage(loadTimeData.getString('couldNotPrint'));
   },
 
   /** @private */
@@ -514,7 +519,6 @@
         this.$.state.transitTo(print_preview_new.State.FATAL_ERROR);
         break;
       case print_preview_new.PreviewAreaState.INVALID_SETTINGS:
-      case print_preview_new.PreviewAreaState.UNSUPPORTED_CLOUD_PRINTER:
         if (this.state != print_preview_new.State.INVALID_PRINTER) {
           this.$.state.transitTo(print_preview_new.State.INVALID_PRINTER);
         }
@@ -542,8 +546,8 @@
         (event.detail.status == 403 && !this.isInAppKioskMode_)) {
       return;  // No internet connectivity or not signed in.
     }
-    this.errorMessage_ = event.detail.message;
     this.$.state.transitTo(print_preview_new.State.FATAL_ERROR);
+    this.$.header.setErrorMessage(event.detail.message);
     if (event.detail.status == 200) {
       console.error(
           'Google Cloud Print Error: ' +
diff --git a/chrome/browser/resources/print_preview/new/dpi_settings.js b/chrome/browser/resources/print_preview/new/dpi_settings.js
index b30efe4..bad76a8 100644
--- a/chrome/browser/resources/print_preview/new/dpi_settings.js
+++ b/chrome/browser/resources/print_preview/new/dpi_settings.js
@@ -40,7 +40,7 @@
   },
 
   observers: [
-    'onDpiSettingChange_(settings.dpi.value, capabilityWithLabels_.option)',
+    'onDpiSettingChange_(settings.dpi.*, capabilityWithLabels_.option)',
   ],
 
   /**
@@ -72,18 +72,15 @@
     return result;
   },
 
-  /**
-   * @param {!print_preview_new.SelectOption} value The new value of the dpi
-   *     setting.
-   * @private
-   */
-  onDpiSettingChange_: function(value) {
+  /** @private */
+  onDpiSettingChange_: function() {
     if (this.capabilityWithLabels_ === null ||
         this.capabilityWithLabels_ === undefined) {
       return;
     }
 
-    const dpiValue = /** @type {print_preview_new.DpiOption} */ (value);
+    const dpiValue = /** @type {print_preview_new.DpiOption} */ (
+        this.getSettingValue('dpi'));
     for (const option of assert(this.capabilityWithLabels_.option)) {
       const dpiOption =
           /** @type {print_preview_new.LabelledDpiOption} */ (option);
diff --git a/chrome/browser/resources/print_preview/new/header.js b/chrome/browser/resources/print_preview/new/header.js
index 5cd7cb2..b793420 100644
--- a/chrome/browser/resources/print_preview/new/header.js
+++ b/chrome/browser/resources/print_preview/new/header.js
@@ -53,8 +53,6 @@
       notify: true,
       value: null,
     },
-
-    errorMessage: String,
   },
 
   observers: [
@@ -149,11 +147,6 @@
           this.$$('paper-button.action-button').focus();
         }
         break;
-      case (print_preview_new.State.FATAL_ERROR):
-        this.printButtonEnabled_ = false;
-        this.summary_ = this.errorMessage;
-        this.summaryLabel_ = this.errorMessage;
-        break;
       default:
         this.summary_ = null;
         this.summaryLabel_ = null;
@@ -163,6 +156,13 @@
     this.lastState_ = this.state;
   },
 
+  /** @param {string} message The message to display. */
+  setErrorMessage: function(message) {
+    this.printButtonEnabled_ = false;
+    this.summary_ = message;
+    this.summaryLabel_ = message;
+  },
+
   /**
    * @param {!print_preview_new.Header.LabelInfo} labelInfo
    * @return {string}
diff --git a/chrome/browser/resources/print_preview/new/media_size_settings.js b/chrome/browser/resources/print_preview/new/media_size_settings.js
index d4ec0ff..d762f99 100644
--- a/chrome/browser/resources/print_preview/new/media_size_settings.js
+++ b/chrome/browser/resources/print_preview/new/media_size_settings.js
@@ -14,19 +14,14 @@
   },
 
   observers:
-      ['onMediaSizeSettingChange_(settings.mediaSize.value, ' +
-       'capability.option)'],
+      ['onMediaSizeSettingChange_(settings.mediaSize.*, capability.option)'],
 
-  /**
-   * @param {*} value The new value of the media size setting.
-   * @private
-   */
-  onMediaSizeSettingChange_: function(value) {
+  /** @private */
+  onMediaSizeSettingChange_: function() {
     if (!this.capability) {
       return;
     }
-
-    const valueToSet = JSON.stringify(value);
+    const valueToSet = JSON.stringify(this.getSettingValue('mediaSize'));
     for (const option of
          /** @type {!Array<!print_preview_new.SelectOption>} */ (
              this.capability.option)) {
diff --git a/chrome/browser/resources/print_preview/new/model.html b/chrome/browser/resources/print_preview/new/model.html
index 3e3ea63..3092411 100644
--- a/chrome/browser/resources/print_preview/new/model.html
+++ b/chrome/browser/resources/print_preview/new/model.html
@@ -1,7 +1,6 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
 <link rel="import" href="chrome://resources/html/cr.html">
-<link rel="import" href="settings_behavior.html">
 <link rel="import" href="../data/destination.html">
 <link rel="import" href="../data/document_info.html">
 <link rel="import" href="../data/margins.html">
diff --git a/chrome/browser/resources/print_preview/new/model.js b/chrome/browser/resources/print_preview/new/model.js
index 8c762d30..a7f0cec 100644
--- a/chrome/browser/resources/print_preview/new/model.js
+++ b/chrome/browser/resources/print_preview/new/model.js
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 cr.exportPath('print_preview_new');
+
 /**
  * @typedef {{
  *    version: string,
@@ -67,6 +68,16 @@
   SHORT_EDGE: 'SHORT_EDGE'
 };
 
+cr.define('print_preview.Model', () => {
+  return {
+    /** @private {?PrintPreviewModelElement} */
+    instance_: null,
+
+    /** @return {!PrintPreviewModelElement} */
+    getInstance: () => assert(print_preview.Model.instance_),
+  };
+});
+
 (function() {
 'use strict';
 
@@ -107,8 +118,6 @@
 Polymer({
   is: 'print-preview-model',
 
-  behaviors: [SettingsBehavior],
-
   properties: {
     /**
      * Object containing current settings of Print Preview, for use by Polymer
@@ -121,213 +130,6 @@
     settings: {
       type: Object,
       notify: true,
-      value: function() {
-        const value = {
-          pages: {
-            value: [1],
-            unavailableValue: [],
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          copies: {
-            value: '1',
-            unavailableValue: '1',
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          collate: {
-            value: true,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'isCollateEnabled',
-          },
-          layout: {
-            value: false, /* portrait */
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'isLandscapeEnabled',
-          },
-          color: {
-            value: true, /* color */
-            unavailableValue: false,
-            valid: true,
-            available: false,
-            setByPolicy: false,
-            key: 'isColorEnabled',
-          },
-          mediaSize: {
-            value: {},
-            unavailableValue: {
-              width_microns: 215900,
-              height_microns: 279400,
-            },
-            valid: true,
-            available: false,
-            setByPolicy: false,
-            key: 'mediaSize',
-          },
-          margins: {
-            value: print_preview.ticket_items.MarginsTypeValue.DEFAULT,
-            unavailableValue:
-                print_preview.ticket_items.MarginsTypeValue.DEFAULT,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'marginsType',
-          },
-          customMargins: {
-            value: {},
-            unavailableValue: {},
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'customMargins',
-          },
-          dpi: {
-            value: {},
-            unavailableValue: {},
-            valid: true,
-            available: false,
-            setByPolicy: false,
-            key: 'dpi',
-          },
-          fitToPage: {
-            value: false,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'isFitToPageEnabled',
-          },
-          scaling: {
-            value: '100',
-            unavailableValue: '100',
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'scaling',
-          },
-          customScaling: {
-            value: false,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'customScaling',
-          },
-          duplex: {
-            value: true,
-            unavailableValue: false,
-            valid: true,
-            available: false,
-            setByPolicy: false,
-            key: 'isDuplexEnabled',
-          },
-          cssBackground: {
-            value: false,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'isCssBackgroundEnabled',
-          },
-          selectionOnly: {
-            value: false,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          headerFooter: {
-            value: true,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'isHeaderFooterEnabled',
-          },
-          rasterize: {
-            value: false,
-            unavailableValue: false,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          vendorItems: {
-            value: {},
-            unavailableValue: {},
-            valid: true,
-            available: false,
-            setByPolicy: false,
-            key: 'vendorOptions',
-          },
-          pagesPerSheet: {
-            value: 1,
-            unavailableValue: 1,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          // This does not represent a real setting value, and is used only to
-          // expose the availability of the other options settings section.
-          otherOptions: {
-            value: null,
-            unavailableValue: null,
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          // This does not represent a real settings value, but is used to
-          // propagate the correctly formatted ranges for print tickets.
-          ranges: {
-            value: [],
-            unavailableValue: [],
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: '',
-          },
-          recentDestinations: {
-            value: [],
-            unavailableValue: [],
-            valid: true,
-            available: true,
-            setByPolicy: false,
-            key: 'recentDestinations',
-          },
-        };
-        // <if expr="chromeos">
-        value.pin = {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: false,
-          setByPolicy: false,
-          key: 'isPinEnabled',
-        };
-        value.pinValue = {
-          value: '',
-          unavailableValue: '',
-          valid: true,
-          available: false,
-          setByPolicy: false,
-          key: 'pinValue',
-        };
-        // </if>
-        return value;
-      },
     },
 
     controlsManaged: {
@@ -357,15 +159,6 @@
     'updateHeaderFooterAvailable_(' +
         'margins, settings.margins.value, ' +
         'settings.customMargins.value, settings.mediaSize.value)',
-    'stickySettingsChanged_(' +
-        'settings.collate.value, settings.layout.value, settings.color.value,' +
-        'settings.mediaSize.value, settings.margins.value, ' +
-        'settings.customMargins.value, settings.dpi.value, ' +
-        'settings.fitToPage.value, settings.customScaling.value, ' +
-        'settings.scaling.value, settings.duplex.value, ' +
-        'settings.headerFooter.value, settings.cssBackground.value, ' +
-        'settings.vendorItems.value, settings.recentDestinations.value.*)',
-    'stickySettingsChanged_(settings.pin.value, settings.pinValue.value)',
   ],
 
   /** @private {boolean} */
@@ -380,13 +173,356 @@
   /** @private {?print_preview.Cdd} */
   lastDestinationCapabilities_: null,
 
+  /** @private */
+  initializeSettings_: function() {
+    this.settings = {
+      pages: {
+        value: [1],
+        unavailableValue: [],
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: false,
+      },
+      copies: {
+        value: '1',
+        unavailableValue: '1',
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: false,
+      },
+      collate: {
+        value: true,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'isCollateEnabled',
+        updatesPreview: false,
+      },
+      layout: {
+        value: false, /* portrait */
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'isLandscapeEnabled',
+        updatesPreview: true,
+      },
+      color: {
+        value: true, /* color */
+        unavailableValue: false,
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'isColorEnabled',
+        updatesPreview: true,
+      },
+      mediaSize: {
+        value: {},
+        unavailableValue: {
+          width_microns: 215900,
+          height_microns: 279400,
+        },
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'mediaSize',
+        updatesPreview: true,
+      },
+      margins: {
+        value: print_preview.ticket_items.MarginsTypeValue.DEFAULT,
+        unavailableValue: print_preview.ticket_items.MarginsTypeValue.DEFAULT,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'marginsType',
+        updatesPreview: true,
+      },
+      customMargins: {
+        value: {},
+        unavailableValue: {},
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'customMargins',
+        updatesPreview: true,
+      },
+      dpi: {
+        value: {},
+        unavailableValue: {},
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'dpi',
+        updatesPreview: false,
+      },
+      fitToPage: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'isFitToPageEnabled',
+        updatesPreview: true,
+      },
+      scaling: {
+        value: '100',
+        unavailableValue: '100',
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'scaling',
+        updatesPreview: true,
+      },
+      customScaling: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'customScaling',
+        updatesPreview: true,
+      },
+      duplex: {
+        value: true,
+        unavailableValue: false,
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'isDuplexEnabled',
+        updatesPreview: false,
+      },
+      cssBackground: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'isCssBackgroundEnabled',
+        updatesPreview: true,
+      },
+      selectionOnly: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: true,
+      },
+      headerFooter: {
+        value: true,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'isHeaderFooterEnabled',
+        updatesPreview: true,
+      },
+      rasterize: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: true,
+      },
+      vendorItems: {
+        value: {},
+        unavailableValue: {},
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'vendorOptions',
+        updatesPreview: false,
+      },
+      pagesPerSheet: {
+        value: 1,
+        unavailableValue: 1,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: true,
+      },
+      // This does not represent a real setting value, and is used only to
+      // expose the availability of the other options settings section.
+      otherOptions: {
+        value: null,
+        unavailableValue: null,
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: false,
+      },
+      // This does not represent a real settings value, but is used to
+      // propagate the correctly formatted ranges for print tickets.
+      ranges: {
+        value: [],
+        unavailableValue: [],
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: '',
+        updatesPreview: true,
+      },
+      recentDestinations: {
+        value: [],
+        unavailableValue: [],
+        valid: true,
+        available: true,
+        setByPolicy: false,
+        key: 'recentDestinations',
+        updatesPreview: false,
+      },
+      // <if expr="chromeos">
+      pin: {
+        value: false,
+        unavailableValue: false,
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'isPinEnabled',
+        updatesPreview: false,
+      },
+      pinValue: {
+        value: '',
+        unavailableValue: '',
+        valid: true,
+        available: false,
+        setByPolicy: false,
+        key: 'pinValue',
+        updatesPreview: false,
+      },
+      // </if>
+    };
+  },
+
+  /** @override */
+  attached: function() {
+    assert(!print_preview.Model.instance_);
+    print_preview.Model.instance_ = this;
+    this.initializeSettings_();
+  },
+
+  /** @override */
+  detached: function() {
+    print_preview.Model.instance_ = null;
+  },
+
+  /**
+   * @param {string} settingName Name of the setting to get.
+   * @return {print_preview_new.Setting} The setting object.
+   */
+  getSetting: function(settingName) {
+    const setting = /** @type {print_preview_new.Setting} */ (
+        this.get(settingName, this.settings));
+    assert(setting, 'Setting is missing: ' + settingName);
+    return setting;
+  },
+
+  /**
+   * @param {string} settingName Name of the setting to get the value for.
+   * @return {*} The value of the setting, accounting for availability.
+   */
+  getSettingValue: function(settingName) {
+    const setting = this.getSetting(settingName);
+    return setting.available ? setting.value : setting.unavailableValue;
+  },
+
+  /**
+   * Updates settings.settingPath to |value|. Fires a preview-setting-changed
+   * event if the modification results in a change to the value returned by
+   * getSettingValue().
+   * @param {string} settingPath Setting path to set
+   * @param {*} value value to set.
+   * @private
+   */
+  setSettingPath_: function(settingPath, value) {
+    const settingName = settingPath.split('.')[0];
+    const setting = this.getSetting(settingName);
+    const oldValue = this.getSettingValue(settingName);
+    this.set(`settings.${settingPath}`, value);
+    const newValue = this.getSettingValue(settingName);
+    if (newValue !== oldValue && setting.updatesPreview) {
+      this.fire('preview-setting-changed');
+    }
+  },
+
+  /**
+   * Sets settings.settingName.value to |value|, unless updating the setting is
+   * disallowed by enterprise policy. Fires preview-setting-changed and
+   * sticky-setting-changed events if the update impacts the preview or requires
+   * an update to sticky settings.
+   * @param {string} settingName Name of the setting to set
+   * @param {*} value The value to set the setting to.
+   */
+  setSetting: function(settingName, value) {
+    const setting = this.getSetting(settingName);
+    if (setting.setByPolicy) {
+      return;
+    }
+    const fireStickyEvent = setting.value !== value && setting.key;
+    this.setSettingPath_(`${settingName}.value`, value);
+    if (fireStickyEvent && this.initialized_) {
+      this.fire('sticky-setting-changed', this.getStickySettings_());
+    }
+  },
+
+  /**
+   * @param {string} settingName Name of the setting to set
+   * @param {number} start
+   * @param {number} end
+   * @param {*} newValue The value to add (if any).
+   */
+  setSettingSplice: function(settingName, start, end, newValue) {
+    const setting = this.getSetting(settingName);
+    if (setting.setByPolicy) {
+      return;
+    }
+    if (newValue) {
+      this.splice(`settings.${settingName}.value`, start, end, newValue);
+    } else {
+      this.splice(`settings.${settingName}.value`, start, end);
+    }
+    if (setting.key && this.initialized_) {
+      this.fire('sticky-setting-changed', this.getStickySettings_());
+    }
+  },
+
+  /**
+   * Sets the validity of |settingName| to |valid|. If the validity is changed,
+   * fires a setting-valid-changed event.
+   * @param {string} settingName Name of the setting to set
+   * @param {boolean} valid Whether the setting value is currently valid.
+   */
+  setSettingValid: function(settingName, valid) {
+    const setting = this.getSetting(settingName);
+    // Should not set the setting to invalid if it is not available, as there
+    // is no way for the user to change the value in this case.
+    if (!valid) {
+      assert(setting.available, 'Setting is not available: ' + settingName);
+    }
+    const shouldFireEvent = valid != setting.valid;
+    this.set(`settings.${settingName}.valid`, valid);
+    if (shouldFireEvent) {
+      this.fire('setting-valid-changed', valid);
+    }
+  },
+
   /**
    * Updates the availability of the settings sections and values of dpi and
    *     media size settings based on the destination capabilities.
    * @private
    */
   updateSettingsFromDestination_: function() {
-    if (!this.destination) {
+    if (!this.destination || !this.settings) {
       return;
     }
 
@@ -413,25 +549,26 @@
    * @private
    */
   updateSettingsAvailabilityFromDestination_: function(caps) {
-    this.set('settings.copies.available', !!caps && !!caps.copies);
-    this.set('settings.collate.available', !!caps && !!caps.collate);
-    this.set('settings.color.available', this.destination.hasColorCapability);
+    this.setSettingPath_('copies.available', !!caps && !!caps.copies);
+    this.setSettingPath_('collate.available', !!caps && !!caps.collate);
+    this.setSettingPath_(
+        'color.available', this.destination.hasColorCapability);
 
-    this.set(
-        'settings.dpi.available',
+    this.setSettingPath_(
+        'dpi.available',
         !!caps && !!caps.dpi && !!caps.dpi.option &&
             caps.dpi.option.length > 1);
 
-    this.set(
-        'settings.duplex.available',
+    this.setSettingPath_(
+        'duplex.available',
         !!caps && !!caps.duplex && !!caps.duplex.option &&
             caps.duplex.option.some(
                 o => o.type == print_preview_new.DuplexType.LONG_EDGE) &&
             caps.duplex.option.some(
                 o => o.type == print_preview_new.DuplexType.NO_DUPLEX));
 
-    this.set(
-        'settings.vendorItems.available', !!caps && !!caps.vendor_capability);
+    this.setSettingPath_(
+        'vendorItems.available', !!caps && !!caps.vendor_capability);
 
     // <if expr="chromeos">
     const pinSupported = !!caps && !!caps.pin && !!caps.pin.supported &&
@@ -452,20 +589,20 @@
     const knownSizeToSaveAsPdf = isSaveAsPDF &&
         (!this.documentSettings.isModifiable ||
          this.documentSettings.hasCssMediaStyles);
-    this.set('settings.fitToPage.unavailableValue', !isSaveAsPDF);
-    this.set(
-        'settings.fitToPage.available',
+    this.setSettingPath_('fitToPage.unavailableValue', !isSaveAsPDF);
+    this.setSettingPath_(
+        'fitToPage.available',
         !knownSizeToSaveAsPdf && !this.documentSettings.isModifiable);
-    this.set('settings.scaling.available', !knownSizeToSaveAsPdf);
+    this.setSettingPath_('scaling.available', !knownSizeToSaveAsPdf);
     const caps = this.destination && this.destination.capabilities ?
         this.destination.capabilities.printer :
         null;
-    this.set(
-        'settings.mediaSize.available',
+    this.setSettingPath_(
+        'mediaSize.available',
         !!caps && !!caps.media_size && !knownSizeToSaveAsPdf);
-    this.set('settings.layout.available', this.isLayoutAvailable_(caps));
-    this.set(
-        'settings.otherOptions.available',
+    this.setSettingPath_('layout.available', this.isLayoutAvailable_(caps));
+    this.setSettingPath_(
+        'otherOptions.available',
         this.settings.duplex.available ||
             this.settings.cssBackground.available ||
             this.settings.selectionOnly.available ||
@@ -475,19 +612,24 @@
 
   /** @private */
   updateSettingsAvailabilityFromDocumentSettings_: function() {
-    this.set('settings.margins.available', this.documentSettings.isModifiable);
-    this.set(
-        'settings.customMargins.available', this.documentSettings.isModifiable);
-    this.set(
-        'settings.cssBackground.available', this.documentSettings.isModifiable);
-    this.set(
-        'settings.selectionOnly.available',
+    if (!this.settings) {
+      return;
+    }
+
+    this.setSettingPath_(
+        'margins.available', this.documentSettings.isModifiable);
+    this.setSettingPath_(
+        'customMargins.available', this.documentSettings.isModifiable);
+    this.setSettingPath_(
+        'cssBackground.available', this.documentSettings.isModifiable);
+    this.setSettingPath_(
+        'selectionOnly.available',
         this.documentSettings.isModifiable &&
             this.documentSettings.hasSelection);
-    this.set(
-        'settings.headerFooter.available', this.isHeaderFooterAvailable_());
-    this.set(
-        'settings.rasterize.available',
+    this.setSettingPath_(
+        'headerFooter.available', this.isHeaderFooterAvailable_());
+    this.setSettingPath_(
+        'rasterize.available',
         !this.documentSettings.isModifiable && !cr.isWindows && !cr.isMac);
 
     if (this.destination) {
@@ -501,8 +643,8 @@
       return;
     }
 
-    this.set(
-        'settings.headerFooter.available', this.isHeaderFooterAvailable_());
+    this.setSettingPath_(
+        'headerFooter.available', this.isHeaderFooterAvailable_());
   },
 
   /**
@@ -607,7 +749,7 @@
       this.setSetting('dpi', matchingOption || defaultOption);
     } else if (
         caps && caps.dpi && caps.dpi.option && caps.dpi.option.length > 0) {
-      this.set('settings.dpi.unavailableValue', caps.dpi.option[0]);
+      this.setSettingPath_('dpi.unavailableValue', caps.dpi.option[0]);
     }
 
     if (!this.initialized_ && this.settings.color.available) {
@@ -623,17 +765,17 @@
         (this.destination.id ===
              print_preview.Destination.GooglePromotedId.DOCS ||
          this.destination.type === print_preview.DestinationType.MOBILE)) {
-      this.set('settings.color.unavailableValue', true);
+      this.setSettingPath_('color.unavailableValue', true);
     } else if (
         !this.settings.color.available && caps && caps.color &&
         caps.color.option && caps.color.option.length > 0) {
-      this.set(
-          'settings.color.unavailableValue',
+      this.setSettingPath_(
+          'color.unavailableValue',
           !['STANDARD_MONOCHROME', 'CUSTOM_MONOCHROME'].includes(
               caps.color.option[0].type));
     } else if (!this.settings.color.available) {
       // if no color capability is reported, assume black and white.
-      this.set('settings.color.unavailableValue', false);
+      this.setSettingPath_('color.unavailableValue', false);
     }
 
     if (!this.initialized_ && this.settings.duplex.available) {
@@ -650,10 +792,10 @@
             o => o.type != print_preview_new.DuplexType.LONG_EDGE)) {
       // If the only option available is long edge, the value should always be
       // true.
-      this.set('settings.duplex.unavailableValue', true);
+      this.setSettingPath_('duplex.unavailableValue', true);
     } else if (!this.settings.duplex.available) {
       // If no duplex capability is reported, assume false.
-      this.set('settings.duplex.unavailableValue', false);
+      this.setSettingPath_('duplex.unavailableValue', false);
     }
 
     if (this.settings.vendorItems.available) {
@@ -763,7 +905,7 @@
     this.initialized_ = true;
     this.updateManaged_();
     this.stickySettings_ = null;
-    this.stickySettingsChanged_();
+    this.fire('sticky-settings-changed', this.getStickySettings_());
   },
 
   // <if expr="chromeos">
@@ -826,12 +968,11 @@
     return this.initialized_;
   },
 
-  /** @private */
-  stickySettingsChanged_: function() {
-    if (!this.initialized_) {
-      return;
-    }
-
+  /**
+   * @return {string} The current serialized settings.
+   * @private
+   */
+  getStickySettings_: function() {
     const serialization = {
       version: 2,
     };
@@ -840,7 +981,8 @@
       const setting = this.get(settingName, this.settings);
       serialization[assert(setting.key)] = setting.value;
     });
-    this.fire('save-sticky-settings', JSON.stringify(serialization));
+
+    return JSON.stringify(serialization);
   },
 
   /**
diff --git a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html
index 649d89f3..de31288 100644
--- a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html
+++ b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.html
@@ -1,6 +1,7 @@
 <link rel="import" href="chrome://resources/html/polymer.html">
 
 <link rel="import" href="chrome://resources/html/md_select_css.html">
+<link rel="import" href="../data/margins.html">
 <link rel="import" href="print_preview_shared_css.html">
 <link rel="import" href="select_behavior.html">
 <link rel="import" href="settings_behavior.html">
diff --git a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js
index 0e9701e8..e94352a 100644
--- a/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js
+++ b/chrome/browser/resources/print_preview/new/pages_per_sheet_settings.js
@@ -19,6 +19,8 @@
    */
   onPagesPerSheetSettingChange_: function(newValue) {
     this.selectedValue = /** @type {number} */ (newValue).toString();
+    this.setSetting(
+        'margins', print_preview.ticket_items.MarginsTypeValue.DEFAULT);
   },
 
   /** @param {string} value The new select value. */
diff --git a/chrome/browser/resources/print_preview/new/preview_area.html b/chrome/browser/resources/print_preview/new/preview_area.html
index abda42d..82b1cf5 100644
--- a/chrome/browser/resources/print_preview/new/preview_area.html
+++ b/chrome/browser/resources/print_preview/new/preview_area.html
@@ -130,7 +130,7 @@
           data="chrome://print/dummy.pdf"></object>
     </div>
     <print-preview-margin-control-container id="marginControlContainer"
-        page-size="[[pageSize]]" settings="{{settings}}"
+        page-size="[[pageSize]]" settings="[[settings]]"
         document-margins="[[margins]]"
         measurement-system="[[measurementSystem]]" state="[[state]]"
         preview-loaded="[[previewLoaded_]]"
diff --git a/chrome/browser/resources/print_preview/new/preview_area.js b/chrome/browser/resources/print_preview/new/preview_area.js
index bc8cfe4..f4723663 100644
--- a/chrome/browser/resources/print_preview/new/preview_area.js
+++ b/chrome/browser/resources/print_preview/new/preview_area.js
@@ -36,6 +36,12 @@
     /** @type {print_preview.Destination} */
     destination: Object,
 
+    /** @type {print_preview.DestinationState} */
+    destinationState: {
+      type: Number,
+      observer: 'onDestinationStateChange_',
+    },
+
     documentModifiable: Boolean,
 
     /** @type {print_preview.Margins} */
@@ -48,10 +54,7 @@
     pageSize: Object,
 
     /** @type {!print_preview_new.State} */
-    state: {
-      type: Number,
-      observer: 'onStateChanged_',
-    },
+    state: Number,
 
     /** @private {boolean} Whether the plugin is loaded */
     pluginLoaded_: {
@@ -86,38 +89,18 @@
   },
 
   observers: [
-    'onSettingsChanged_(settings.color.value, settings.cssBackground.value, ' +
-        'settings.fitToPage.value, settings.headerFooter.value, ' +
-        'settings.layout.value, settings.ranges.value, ' +
-        'settings.selectionOnly.value, settings.scaling.value, ' +
-        'settings.rasterize.value, destination)',
-    'onMarginsChanged_(settings.margins.value)',
-    'onCustomScalingChanged_(settings.customScaling.value)',
-    'onCustomMarginsChanged_(settings.customMargins.value)',
-    'onMediaSizeChanged_(settings.mediaSize.value)',
-    'onPagesPerSheetChanged_(settings.pagesPerSheet.value)',
     'pluginOrDocumentStatusChanged_(pluginLoaded_, documentReady_)',
   ],
 
   /** @private {?print_preview.NativeLayer} */
   nativeLayer_: null,
 
-  /**
-   * @private {?print_preview.MarginsSetting}
-   */
-  lastCustomMargins_: null,
-
-  /**
-   * @private {?print_preview_new.MediaSizeValue}
-   */
-  lastMediaSize_: null,
+  /** @private {?Object} */
+  lastTicket_: null,
 
   /** @private {number} */
   inFlightRequestId_: -1,
 
-  /** @private {boolean} */
-  requestPreviewWhenReady_: false,
-
   /** @private {?print_preview_new.PluginProxy} */
   pluginProxy_: null,
 
@@ -137,6 +120,26 @@
     }
   },
 
+  /** @private */
+  onDestinationStateChange_: function() {
+    switch (this.destinationState) {
+      case print_preview.DestinationState.INVALID:
+        this.previewState = print_preview_new.PreviewAreaState.INVALID_SETTINGS;
+        break;
+      case print_preview.DestinationState.UNSUPPORTED:
+        this.previewState =
+            print_preview_new.PreviewAreaState.UNSUPPORTED_CLOUD_PRINTER;
+        break;
+      // <if expr="chromeos">
+      case print_preview.DestinationState.NO_DESTINATIONS:
+        this.previewState =
+            print_preview_new.PreviewAreaState.NO_DESTINATIONS_FOUND;
+        break;
+      // </if>
+      default:
+        break;
+    }
+  },
 
   /**
    * @return {boolean} Whether the preview is loaded.
@@ -189,46 +192,6 @@
     marginControlContainer.setInvisible(true);
   },
 
-  /**
-   * @return {boolean} Whether margin settings are valid for the print ticket.
-   * @private
-   */
-  marginsValid_: function() {
-    const type = this.getSettingValue('margins');
-    if (!Object.values(print_preview.ticket_items.MarginsTypeValue)
-             .includes(type)) {
-      // Unrecognized margins type.
-      return false;
-    }
-
-    if (type !== print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
-      return true;
-    }
-
-    const customMargins = this.getSettingValue('customMargins');
-    return customMargins.marginTop !== undefined &&
-        customMargins.marginLeft !== undefined &&
-        customMargins.marginBottom !== undefined &&
-        customMargins.marginRight !== undefined;
-  },
-
-  /** @private */
-  onSettingsChanged_: function() {
-    if (!this.marginsValid_()) {
-      // Log so that we can try to debug how this occurs. See
-      // https://crbug.com/942211
-      console.warn('Trying to request a preview with invalid margins');
-      return;
-    }
-
-    if (this.state !== print_preview_new.State.READY) {
-      this.requestPreviewWhenReady_ = true;
-      return;
-    }
-
-    this.startPreview_();
-  },
-
   /** @private */
   pluginOrDocumentStatusChanged_: function() {
     if (!this.pluginLoaded_ || !this.documentReady_) {
@@ -331,7 +294,14 @@
   },
 
   /** @private */
-  startPreview_: function() {
+  startPreview: function() {
+    if (!this.hasTicketChanged_() &&
+        this.previewState !==
+            print_preview_new.PreviewAreaState.INVALID_SETTINGS &&
+        this.previewState !==
+            print_preview_new.PreviewAreaState.UNSUPPORTED_CLOUD_PRINTER) {
+      return;
+    }
     this.previewState = print_preview_new.PreviewAreaState.LOADING;
     this.documentReady_ = false;
     this.getPreview_().then(
@@ -352,22 +322,6 @@
         });
   },
 
-  /** @private */
-  onStateChanged_: function() {
-    if (this.state == print_preview_new.State.READY &&
-        this.requestPreviewWhenReady_) {
-      this.startPreview_();
-      this.requestPreviewWhenReady_ = false;
-    }
-  },
-
-  // <if expr="chromeos">
-  setNoDestinationsFound: function() {
-    this.previewState =
-        print_preview_new.PreviewAreaState.NO_DESTINATIONS_FOUND;
-  },
-  // </if>
-
   // <if expr="is_macosx">
   /** Set the preview state to display the "opening in preview" message. */
   setOpeningPdfInPreview: function() {
@@ -559,95 +513,168 @@
     this.pluginProxy_.scrollPosition(position.x, position.y);
   },
 
-  /** @private */
-  onMarginsChanged_: function() {
-    const marginsValid = this.marginsValid_();
-    if (marginsValid &&
-        this.getSettingValue('margins') !==
-            print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
-      this.onSettingsChanged_();
-      return;
+  /**
+   * @return {boolean} Whether margin settings are valid for the print ticket.
+   * @private
+   */
+  marginsValid_: function() {
+    const type = this.getSettingValue('margins');
+    if (!Object.values(print_preview.ticket_items.MarginsTypeValue)
+             .includes(type)) {
+      // Unrecognized margins type.
+      return false;
     }
 
-    if (!this.margins) {
-      return;
+    if (type !== print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
+      return true;
     }
 
-    if (!marginsValid) {
+    const customMargins = this.getSettingValue('customMargins');
+    return customMargins.marginTop !== undefined &&
+        customMargins.marginLeft !== undefined &&
+        customMargins.marginBottom !== undefined &&
+        customMargins.marginRight !== undefined;
+  },
+
+  /**
+   * @return {boolean}
+   * @private
+   */
+  hasTicketChanged_: function() {
+    if (!this.marginsValid_()) {
       // Log so that we can try to debug how this occurs. See
       // https://crbug.com/942211
-      console.warn('Margins changed to custom with invalid values');
-      return;
+      console.warn('Requested preview with invalid margins');
+      return false;
     }
 
-    const customMargins =
-        /** @type {!print_preview.MarginsSetting} */ (
-            this.getSettingValue('customMargins'));
-    const marginSides =
-        Object.values(print_preview.ticket_items.CustomMarginsOrientation);
-    const customMarginsChanged = marginSides.some(side => {
-      return this.margins.get(side) !==
-          customMargins[print_preview_new.MARGIN_KEY_MAP.get(side)];
-    });
-    if (customMarginsChanged) {
-      this.onSettingsChanged_();
+    if (!this.lastTicket_) {
+      return true;
     }
-    this.lastCustomMargins_ = customMargins;
-  },
 
-  /** @private */
-  onCustomScalingChanged_: function() {
-    // If the scaling value is 100, changing between default and custom scaling
-    // has no effect on the preview ticket. Only regenerate for scaling != 100.
-    if (this.getSettingValue('scaling') !== '100') {
-      this.onSettingsChanged_();
+    const lastTicket = this.lastTicket_;
+
+    // Margins
+    const newMarginsType = this.getSettingValue('margins');
+    if (newMarginsType !== lastTicket.marginsType &&
+        newMarginsType !== print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
+      return true;
     }
-  },
 
-  /** @private */
-  onCustomMarginsChanged_: function() {
-    const newValue =
-        /** @type {!print_preview.MarginsSetting} */ (
-            this.getSettingValue('customMargins'));
-    if (this.lastCustomMargins_ &&
-        this.lastCustomMargins_.marginTop !== undefined &&
-        this.getSettingValue('margins') ==
-            print_preview.ticket_items.MarginsTypeValue.CUSTOM &&
-        (this.lastCustomMargins_.marginTop != newValue.marginTop ||
-         this.lastCustomMargins_.marginLeft != newValue.marginLeft ||
-         this.lastCustomMargins_.marginRight != newValue.marginRight ||
-         this.lastCustomMargins_.marginBottom != newValue.marginBottom)) {
-      this.onSettingsChanged_();
+    if (newMarginsType === print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
+      const customMargins =
+          /** @type {!print_preview.MarginsSetting} */ (
+              this.getSettingValue('customMargins'));
+
+      // Change in custom margins values.
+      if (!!lastTicket.marginsCustom &&
+          (lastTicket.marginsCustom.marginTop != customMargins.marginTop ||
+           lastTicket.marginsCustom.marginLeft != customMargins.marginLeft ||
+           lastTicket.marginsCustom.marginRight != customMargins.marginRight ||
+           lastTicket.marginsCustom.marginBottom !=
+               customMargins.marginBottom)) {
+        return true;
+      }
+
+      // Changed to custom margins from a different margins type.
+      if (!this.margins) {
+        // Log so that we can try to debug how this occurs. See
+        // https://crbug.com/942211
+        console.warn('Requested preview with undefined document margins');
+        return false;
+      }
+
+      const customMarginsChanged =
+          Object.values(print_preview.ticket_items.CustomMarginsOrientation)
+              .some(side => {
+                return this.margins.get(side) !==
+                    customMargins[print_preview_new.MARGIN_KEY_MAP.get(side)];
+              });
+      if (customMarginsChanged) {
+        return true;
+      }
     }
-    this.lastCustomMargins_ = newValue;
-  },
 
-  /** @private */
-  onMediaSizeChanged_: function() {
+    // Simple settings: ranges, layout, header/footer, pages per sheet, fit to
+    // page, css background, selection only, rasterize, scaling, dpi
+    if (!areRangesEqual(
+            /** @type {!Array<{from: number, to: number}>} */ (
+                this.getSettingValue('ranges')),
+            lastTicket.pageRange) ||
+        this.getSettingValue('layout') !== lastTicket.landscape ||
+        this.getColorForTicket_() !== lastTicket.color ||
+        this.getSettingValue('headerFooter') !==
+            lastTicket.headerFooterEnabled ||
+        this.getSettingValue('fitToPage') !== lastTicket.fitToPageEnabled ||
+        this.getSettingValue('cssBackground') !==
+            lastTicket.shouldPrintBackgrounds ||
+        this.getSettingValue('selectionOnly') !==
+            lastTicket.shouldPrintSelectionOnly ||
+        this.getSettingValue('rasterize') !== lastTicket.rasterizePDF ||
+        this.getScaleFactorForTicket_() !== lastTicket.scaleFactor) {
+      return true;
+    }
+
+    // Pages per sheet. If margins are non-default, wait for the return to
+    // default margins to trigger a request.
+    if (this.getSettingValue('pagesPerSheet') !== lastTicket.pagesPerSheet &&
+        this.getSettingValue('margins') ===
+            print_preview.ticket_items.MarginsTypeValue.DEFAULT) {
+      return true;
+    }
+
+    // Media size
     const newValue =
         /** @type {!print_preview_new.MediaSizeValue} */ (
             this.getSettingValue('mediaSize'));
-    if (this.lastMediaSize_ &&
-        (newValue.height_microns != this.lastMediaSize_.height_microns ||
-         newValue.width_microns != this.lastMediaSize_.width_microns)) {
-      this.onSettingsChanged_();
+    if (newValue.height_microns != lastTicket.mediaSize.height_microns ||
+        newValue.width_microns != lastTicket.mediaSize.width_microns ||
+        (this.destination.id !== lastTicket.deviceName &&
+         this.getSettingValue('margins') ===
+             print_preview.ticket_items.MarginsTypeValue.MINIMUM)) {
+      return true;
     }
-    this.lastMediaSize_ = newValue;
+
+    // Destination
+    if (this.destination.isPrivet !== lastTicket.printWithPrivet ||
+        this.destination.isExtension !== lastTicket.printWithExtension ||
+        !this.destination.isLocal !== lastTicket.printWithCloudPrint ||
+        (lastTicket.printToPDF &&
+         this.destination.id !==
+             print_preview.Destination.GooglePromotedId.SAVE_AS_PDF)) {
+      return true;
+    }
+
+    return false;
   },
 
-  /** @private */
-  onPagesPerSheetChanged_: function() {
-    const pagesPerSheet =
-        /** @type {number} */ (this.getSettingValue('pagesPerSheet'));
+  /** @return {number} Native color model of the destination. */
+  getColorForTicket_: function() {
+    return this.destination.getNativeColorModel(
+        /** @type {boolean} */ (this.getSettingValue('color')));
+  },
 
-    if (pagesPerSheet == 1 ||
-        this.getSettingValue('margins') ==
-            print_preview.ticket_items.MarginsTypeValue.DEFAULT) {
-      this.onSettingsChanged_();
-    } else {
-      this.setSetting(
-          'margins', print_preview.ticket_items.MarginsTypeValue.DEFAULT);
-    }
+  /** @return {number} Scale factor. */
+  getScaleFactorForTicket_: function() {
+    return this.getSettingValue('customScaling') ?
+        parseInt(this.getSettingValue('scaling'), 10) :
+        100;
+  },
+
+  /**
+   * @param {string} dpiField The field in dpi to retrieve.
+   * @return {number} Field value.
+   */
+  getDpiForTicket_: function(dpiField) {
+    const dpi =
+        /**
+           @type {{horizontal_dpi: (number | undefined),
+                    vertical_dpi: (number | undefined),
+                    vendor_id: (number | undefined)}}
+         */
+        (this.getSettingValue('dpi'));
+    const value = (dpi && dpiField in dpi) ? dpi[dpiField] : 0;
+    return value;
   },
 
   /**
@@ -657,16 +684,11 @@
    */
   getPreview_: function() {
     this.inFlightRequestId_++;
-    const dpi = /** @type {{horizontal_dpi: (number | undefined),
-                            vertical_dpi: (number | undefined),
-                            vendor_id: (number | undefined)}} */ (
-        this.getSettingValue('dpi'));
     const ticket = {
       pageRange: this.getSettingValue('ranges'),
       mediaSize: this.getSettingValue('mediaSize'),
       landscape: this.getSettingValue('layout'),
-      color: this.destination.getNativeColorModel(
-          /** @type {boolean} */ (this.getSettingValue('color'))),
+      color: this.getColorForTicket_(),
       headerFooterEnabled: this.getSettingValue('headerFooter'),
       marginsType: this.getSettingValue('margins'),
       pagesPerSheet: this.getSettingValue('pagesPerSheet'),
@@ -674,9 +696,7 @@
       requestID: this.inFlightRequestId_,
       previewModifiable: this.documentModifiable,
       fitToPageEnabled: this.getSettingValue('fitToPage'),
-      scaleFactor: this.getSettingValue('customScaling') ?
-          parseInt(this.getSettingValue('scaling'), 10) :
-          100,
+      scaleFactor: this.getScaleFactorForTicket_(),
       shouldPrintBackgrounds: this.getSettingValue('cssBackground'),
       shouldPrintSelectionOnly: this.getSettingValue('selectionOnly'),
       // NOTE: Even though the remaining fields don't directly relate to the
@@ -685,8 +705,8 @@
       collate: true,
       copies: 1,
       deviceName: this.destination.id,
-      dpiHorizontal: (dpi && 'horizontal_dpi' in dpi) ? dpi.horizontal_dpi : 0,
-      dpiVertical: (dpi && 'vertical_dpi' in dpi) ? dpi.vertical_dpi : 0,
+      dpiHorizontal: this.getDpiForTicket_('horizontal_dpi'),
+      dpiVertical: this.getDpiForTicket_('vertical_dpi'),
       duplex: this.getSettingValue('duplex') ?
           print_preview_new.DuplexMode.LONG_EDGE :
           print_preview_new.DuplexMode.SIMPLEX,
@@ -707,6 +727,7 @@
         print_preview.ticket_items.MarginsTypeValue.CUSTOM) {
       ticket.marginsCustom = this.getSettingValue('customMargins');
     }
+    this.lastTicket_ = ticket;
 
     this.fire('preview-start', this.inFlightRequestId_);
     return this.nativeLayer_.getPreview(JSON.stringify(ticket));
diff --git a/chrome/browser/resources/print_preview/new/settings_behavior.html b/chrome/browser/resources/print_preview/new/settings_behavior.html
index 72cf371..05564e6 100644
--- a/chrome/browser/resources/print_preview/new/settings_behavior.html
+++ b/chrome/browser/resources/print_preview/new/settings_behavior.html
@@ -1,3 +1,5 @@
 <link rel="import" href="chrome://resources/html/assert.html">
 
+<link rel="import" href="model.html">
+
 <script src="settings_behavior.js"></script>
diff --git a/chrome/browser/resources/print_preview/new/settings_behavior.js b/chrome/browser/resources/print_preview/new/settings_behavior.js
index df1b280..25f8268 100644
--- a/chrome/browser/resources/print_preview/new/settings_behavior.js
+++ b/chrome/browser/resources/print_preview/new/settings_behavior.js
@@ -14,6 +14,7 @@
  *   available: boolean,
  *   setByPolicy: boolean,
  *   key: string,
+ *   updatesPreview: boolean,
  * }}
  */
 print_preview_new.Setting;
@@ -49,10 +50,7 @@
 const SettingsBehavior = {
   properties: {
     /** @type {print_preview_new.Settings} */
-    settings: {
-      type: Object,
-      notify: true,
-    },
+    settings: Object,
   },
 
   /**
@@ -60,10 +58,7 @@
    * @return {print_preview_new.Setting} The setting object.
    */
   getSetting: function(settingName) {
-    const setting = /** @type {print_preview_new.Setting} */ (
-        this.get(settingName, this.settings));
-    assert(setting, 'Setting is missing: ' + settingName);
-    return setting;
+    return print_preview.Model.getInstance().getSetting(settingName);
   },
 
   /**
@@ -71,20 +66,19 @@
    * @return {*} The value of the setting, accounting for availability.
    */
   getSettingValue: function(settingName) {
-    const setting = this.getSetting(settingName);
-    return setting.available ? setting.value : setting.unavailableValue;
+    return print_preview.Model.getInstance().getSettingValue(settingName);
   },
 
   /**
+   * Sets settings.settingName.value to |value|, unless updating the setting is
+   * disallowed by enterprise policy. Fires preview-setting-changed and
+   * sticky-setting-changed events if the update impacts the preview or requires
+   * an update to sticky settings.
    * @param {string} settingName Name of the setting to set
    * @param {*} value The value to set the setting to.
    */
   setSetting: function(settingName, value) {
-    const setting = this.getSetting(settingName);
-    if (setting.setByPolicy) {
-      return;
-    }
-    this.set(`settings.${settingName}.value`, value);
+    print_preview.Model.getInstance().setSetting(settingName, value);
   },
 
   /**
@@ -94,32 +88,17 @@
    * @param {*} newValue The value to add (if any).
    */
   setSettingSplice: function(settingName, start, end, newValue) {
-    const setting = this.getSetting(settingName);
-    if (setting.setByPolicy) {
-      return;
-    }
-    if (newValue) {
-      this.splice(`settings.${settingName}.value`, start, end, newValue);
-    } else {
-      this.splice(`settings.${settingName}.value`, start, end);
-    }
+    print_preview.Model.getInstance().setSettingSplice(
+        settingName, start, end, newValue);
   },
 
   /**
+   * Sets the validity of |settingName| to |valid|. If the validity is changed,
+   * fires a setting-valid-changed event.
    * @param {string} settingName Name of the setting to set
    * @param {boolean} valid Whether the setting value is currently valid.
    */
   setSettingValid: function(settingName, valid) {
-    const setting = this.getSetting(settingName);
-    // Should not set the setting to invalid if it is not available, as there
-    // is no way for the user to change the value in this case.
-    if (!valid) {
-      assert(setting.available, 'Setting is not available: ' + settingName);
-    }
-    const shouldFireEvent = valid != setting.valid;
-    this.set(`settings.${settingName}.valid`, valid);
-    if (shouldFireEvent) {
-      this.fire('setting-valid-changed', valid);
-    }
-  }
+    print_preview.Model.getInstance().setSettingValid(settingName, valid);
+  },
 };
diff --git a/chrome/browser/resources/print_preview/print_preview_resources.grd b/chrome/browser/resources/print_preview/print_preview_resources.grd
index ea4d5db..1503fee 100644
--- a/chrome/browser/resources/print_preview/print_preview_resources.grd
+++ b/chrome/browser/resources/print_preview/print_preview_resources.grd
@@ -28,7 +28,8 @@
                  type="chrome_html" />
       <structure name="IDR_PRINT_PREVIEW_NEW_MODEL_JS"
                  file="new/model.js"
-                 type="chrome_html" />
+                 type="chrome_html"
+                 preprocess="true" />
       <structure name="IDR_PRINT_PREVIEW_CLOUD_PRINT_INTERFACE_HTML"
                  file="cloud_print_interface.html"
                  type="chrome_html" />
diff --git a/chrome/browser/resources/settings/people_page/users_page.html b/chrome/browser/resources/settings/people_page/users_page.html
index fbf44a4..597cfba 100644
--- a/chrome/browser/resources/settings/people_page/users_page.html
+++ b/chrome/browser/resources/settings/people_page/users_page.html
@@ -22,6 +22,10 @@
         margin-inline-start: var(--settings-box-row-indent);
       }
 
+      #add-user-button a {
+        outline: none;
+      }
+
       .block {
         display: block;
       }
diff --git a/chrome/browser/scoped_visibility_tracker.h b/chrome/browser/scoped_visibility_tracker.h
index 90badf9a..8065a5b9 100644
--- a/chrome/browser/scoped_visibility_tracker.h
+++ b/chrome/browser/scoped_visibility_tracker.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 
-#include "base/macros.h"
 #include "base/time/time.h"
 
 namespace base {
@@ -37,8 +36,6 @@
   base::TimeTicks last_time_shown_;
   base::TimeDelta foreground_duration_;
   bool currently_in_foreground_ = false;
-
-  DISALLOW_COPY_AND_ASSIGN(ScopedVisibilityTracker);
 };
 
 #endif  // CHROME_BROWSER_SCOPED_VISIBILITY_TRACKER_H_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 063b3f3..db993e16 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -2125,6 +2125,8 @@
       "views/frame/browser_non_client_frame_view_factory_mac.mm",
       "views/frame/browser_non_client_frame_view_mac.h",
       "views/frame/browser_non_client_frame_view_mac.mm",
+      "views/frame/immersive_mode_controller_mac.h",
+      "views/frame/immersive_mode_controller_mac.mm",
       "views/frame/native_browser_frame_factory_mac.mm",
       "views/tab_contents/chrome_web_contents_view_delegate_views_mac.h",
       "views/tab_contents/chrome_web_contents_view_delegate_views_mac.mm",
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index 92b5786..0e32a8c 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -592,8 +592,12 @@
       IdentityManagerFactory::GetForProfile(profile);
   if (!identity_manager)
     return base::string16();
-  AccountInfo account_info = identity_manager->GetPrimaryAccountInfo();
-  return base::UTF8ToUTF16(account_info.full_name);
+  base::Optional<AccountInfo> primary_account_info =
+      identity_manager->FindExtendedAccountInfoForAccount(
+          identity_manager->GetPrimaryAccountInfo());
+  return primary_account_info
+             ? base::UTF8ToUTF16(primary_account_info->full_name)
+             : base::string16();
 }
 
 WEB_CONTENTS_USER_DATA_KEY_IMPL(ChromeAutofillClient)
diff --git a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc
index 947b9c0..ff9e36b 100644
--- a/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc
+++ b/chrome/browser/ui/autofill/save_card_bubble_controller_impl.cc
@@ -526,7 +526,10 @@
   auto* identity_manager = IdentityManagerFactory::GetForProfile(profile);
   if (!identity_manager)
     return;
-  account_info_ = identity_manager->GetPrimaryAccountInfo();
+  base::Optional<AccountInfo> primary_account_info =
+      identity_manager->FindExtendedAccountInfoForAccount(
+          identity_manager->GetPrimaryAccountInfo());
+  account_info_ = primary_account_info.value_or(AccountInfo{});
 }
 
 void SaveCardBubbleControllerImpl::ShowBubble() {
diff --git a/chrome/browser/ui/views/frame/browser_frame.cc b/chrome/browser/ui/views/frame/browser_frame.cc
index dbca6092a..c03e309 100644
--- a/chrome/browser/ui/views/frame/browser_frame.cc
+++ b/chrome/browser/ui/views/frame/browser_frame.cc
@@ -81,9 +81,14 @@
   views::Widget::InitParams params = native_browser_frame_->GetWidgetParams();
   params.name = "BrowserFrame";
   params.delegate = browser_view_;
-  if (browser_view_->browser()->is_type_tabbed()) {
+  if (browser_view_->browser()->is_type_tabbed() ||
+      browser_view_->browser()->is_devtools()) {
     // Typed panel/popup can only return a size once the widget has been
     // created.
+    // DevTools counts as a popup, but DevToolsWindow::CreateDevToolsBrowser
+    // ensures there is always a size available. Without this, the tools
+    // launch on the wrong display and can have sizing issues when
+    // repositioned to the saved bounds in Widget::SetInitialBounds.
     chrome::GetSavedWindowBoundsAndShowState(browser_view_->browser(),
                                              &params.bounds,
                                              &params.show_state);
diff --git a/chrome/browser/ui/views/frame/browser_frame_browsertest.cc b/chrome/browser/ui/views/frame/browser_frame_browsertest.cc
new file mode 100644
index 0000000..70c57f8
--- /dev/null
+++ b/chrome/browser/ui/views/frame/browser_frame_browsertest.cc
@@ -0,0 +1,45 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/views/frame/browser_frame.h"
+
+#include "base/macros.h"
+#include "build/build_config.h"
+#include "chrome/browser/devtools/devtools_window_testing.h"
+#include "chrome/browser/ui/views/chrome_views_delegate.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/invalidate_type.h"
+#include "content/public/test/browser_test_utils.h"
+#include "ui/views/views_delegate.h"
+
+class BrowserFrameBoundsChecker : public ChromeViewsDelegate {
+ public:
+  BrowserFrameBoundsChecker() {}
+
+  void OnBeforeWidgetInit(
+      views::Widget::InitParams* params,
+      views::internal::NativeWidgetDelegate* delegate) override {
+    ChromeViewsDelegate::OnBeforeWidgetInit(params, delegate);
+    if (params->name == "BrowserFrame")
+      EXPECT_FALSE(params->bounds.IsEmpty());
+  }
+};
+
+class BrowserFrameTest : public InProcessBrowserTest {
+ public:
+  BrowserFrameTest()
+      : InProcessBrowserTest(
+            base::BindOnce([]() -> std::unique_ptr<views::ViewsDelegate> {
+              return std::make_unique<BrowserFrameBoundsChecker>();
+            })) {}
+};
+
+// Verifies that the tools are loaded with initial bounds.
+IN_PROC_BROWSER_TEST_F(BrowserFrameTest, DevToolsHasBoundsOnOpen) {
+  // Open undocked tools.
+  DevToolsWindow* devtools_ =
+      DevToolsWindowTesting::OpenDevToolsWindowSync(browser(), false);
+  DevToolsWindowTesting::CloseDevToolsWindowSync(devtools_);
+}
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
index 566eb56..de58767 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.h
@@ -10,7 +10,7 @@
 #include "base/mac/scoped_nsobject.h"
 #include "base/macros.h"
 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
-#include "components/prefs/pref_change_registrar.h"
+#include "components/prefs/pref_member.h"
 
 namespace views {
 class Label;
@@ -72,7 +72,7 @@
   int TopUIFullscreenYOffset() const;
 
   // Used to keep track of the update of kShowFullscreenToolbar preference.
-  PrefChangeRegistrar pref_registrar_;
+  BooleanPrefMember show_fullscreen_toolbar_;
 
   views::Label* window_title_ = nullptr;
 
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
index 570f6ce..8bc61a2 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_mac.mm
@@ -23,6 +23,7 @@
 #include "chrome/browser/ui/views/frame/hosted_app_button_container.h"
 #include "chrome/browser/ui/views/tabs/tab_strip.h"
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
+#include "chrome/common/chrome_features.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
@@ -36,16 +37,6 @@
 constexpr int kFramePaddingLeft = 75;
 constexpr double kTitlePaddingWidthFraction = 0.1;
 
-FullscreenToolbarStyle GetUserPreferredToolbarStyle(
-    const PrefService* pref_service) {
-  // In Kiosk mode, we don't show top Chrome UI.
-  if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode))
-    return FullscreenToolbarStyle::TOOLBAR_NONE;
-  return pref_service->GetBoolean(prefs::kShowFullscreenToolbar)
-             ? FullscreenToolbarStyle::TOOLBAR_PRESENT
-             : FullscreenToolbarStyle::TOOLBAR_HIDDEN;
-}
-
 }  // namespace
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -55,17 +46,19 @@
     BrowserFrame* frame,
     BrowserView* browser_view)
     : BrowserNonClientFrameView(frame, browser_view) {
-  fullscreen_toolbar_controller_.reset([[FullscreenToolbarControllerViews alloc]
-      initWithBrowserView:browser_view]);
-  PrefService* pref_service = browser_view->GetProfile()->GetPrefs();
-  [fullscreen_toolbar_controller_
-      setToolbarStyle:GetUserPreferredToolbarStyle(pref_service)];
-
-  pref_registrar_.Init(pref_service);
-  pref_registrar_.Add(
-      prefs::kShowFullscreenToolbar,
+  show_fullscreen_toolbar_.Init(
+      prefs::kShowFullscreenToolbar, browser_view->GetProfile()->GetPrefs(),
       base::BindRepeating(&BrowserNonClientFrameViewMac::UpdateFullscreenTopUI,
                           base::Unretained(this), true));
+  if (!base::FeatureList::IsEnabled(features::kImmersiveFullscreen)) {
+    fullscreen_toolbar_controller_.reset(
+        [[FullscreenToolbarControllerViews alloc]
+            initWithBrowserView:browser_view]);
+    [fullscreen_toolbar_controller_
+        setToolbarStyle:*show_fullscreen_toolbar_
+                            ? FullscreenToolbarStyle::TOOLBAR_PRESENT
+                            : FullscreenToolbarStyle::TOOLBAR_HIDDEN];
+  }
 
   if (browser_view->IsBrowserTypeHostedApp()) {
     if (browser_view->browser()
@@ -92,6 +85,11 @@
 // BrowserNonClientFrameViewMac, BrowserNonClientFrameView implementation:
 
 void BrowserNonClientFrameViewMac::OnFullscreenStateChanged() {
+  if (base::FeatureList::IsEnabled(features::kImmersiveFullscreen)) {
+    browser_view()->immersive_mode_controller()->SetEnabled(
+        browser_view()->IsFullscreen());
+    return;
+  }
   if (browser_view()->IsFullscreen()) {
     [fullscreen_toolbar_controller_ enterFullscreenMode];
   } else {
@@ -171,6 +169,9 @@
 
 void BrowserNonClientFrameViewMac::UpdateFullscreenTopUI(
     bool needs_check_tab_fullscreen) {
+  if (base::FeatureList::IsEnabled(features::kImmersiveFullscreen))
+    return;
+
   FullscreenToolbarStyle old_style =
       [fullscreen_toolbar_controller_ toolbarStyle];
 
@@ -183,8 +184,9 @@
       needs_check_tab_fullscreen) {
     new_style = FullscreenToolbarStyle::TOOLBAR_NONE;
   } else {
-    new_style =
-        GetUserPreferredToolbarStyle(browser_view()->GetProfile()->GetPrefs());
+    new_style = *show_fullscreen_toolbar_
+                    ? FullscreenToolbarStyle::TOOLBAR_PRESENT
+                    : FullscreenToolbarStyle::TOOLBAR_HIDDEN;
   }
   [fullscreen_toolbar_controller_ setToolbarStyle:new_style];
 
@@ -372,6 +374,8 @@
   CGFloat title_bar_height =
       NSHeight([NSWindow frameRectForContentRect:NSZeroRect
                                        styleMask:NSWindowStyleMaskTitled]);
+  if (base::FeatureList::IsEnabled(features::kImmersiveFullscreen))
+    return menu_bar_height == 0 ? 0 : menu_bar_height + title_bar_height;
   return [[fullscreen_toolbar_controller_ menubarTracker] menubarFraction] *
          (menu_bar_height + title_bar_height);
 }
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller.h b/chrome/browser/ui/views/frame/immersive_mode_controller.h
index c3d77a9..6fdc9af 100644
--- a/chrome/browser/ui/views/frame/immersive_mode_controller.h
+++ b/chrome/browser/ui/views/frame/immersive_mode_controller.h
@@ -48,6 +48,7 @@
   // TODO(sky): remove this, temporary while supporting both ash and mash.
   enum class Type {
     ASH,
+    MAC,
     STUB,
   };
 
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_factory_views.cc b/chrome/browser/ui/views/frame/immersive_mode_controller_factory_views.cc
index 248db75..490e05ae 100644
--- a/chrome/browser/ui/views/frame/immersive_mode_controller_factory_views.cc
+++ b/chrome/browser/ui/views/frame/immersive_mode_controller_factory_views.cc
@@ -4,15 +4,23 @@
 
 #include "chrome/browser/ui/views/frame/immersive_mode_controller_stub.h"
 
+#include "build/build_config.h"
+
 #if defined(OS_CHROMEOS)
 #include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h"
 #endif
 
+#if defined(OS_MACOSX)
+#include "chrome/browser/ui/views/frame/immersive_mode_controller_mac.h"
+#endif
+
 namespace chrome {
 
 std::unique_ptr<ImmersiveModeController> CreateImmersiveModeController() {
 #if defined(OS_CHROMEOS)
   return std::make_unique<ImmersiveModeControllerAsh>();
+#elif defined(OS_MACOSX)
+  return CreateImmersiveModeControllerMac();
 #else
   return std::make_unique<ImmersiveModeControllerStub>();
 #endif  // OS_CHROMEOS
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_mac.h b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.h
new file mode 100644
index 0000000..c787792
--- /dev/null
+++ b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.h
@@ -0,0 +1,14 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_MAC_H_
+#define CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_MAC_H_
+
+#include <memory>
+
+class ImmersiveModeController;
+
+std::unique_ptr<ImmersiveModeController> CreateImmersiveModeControllerMac();
+
+#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_IMMERSIVE_MODE_CONTROLLER_MAC_H_
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm
new file mode 100644
index 0000000..61ae136
--- /dev/null
+++ b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm
@@ -0,0 +1,354 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <AppKit/AppKit.h>
+
+#include "chrome/browser/ui/views/frame/immersive_mode_controller_mac.h"
+
+#include "base/mac/foundation_util.h"
+#include "base/mac/scoped_nsobject.h"
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/ui/cocoa/scoped_menu_bar_lock.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
+#include "chrome/browser/ui/views/frame/top_container_view.h"
+#import "ui/base/cocoa/tracking_area.h"
+#include "ui/views/focus/focus_manager.h"
+#include "ui/views/view_observer.h"
+
+namespace {
+const CGFloat kMenuBarLockPadding = 50;
+}
+
+// MenuRevealMonitor tracks visibility of the menu bar associated with |window|,
+// and calls |handler| when it changes. In fullscreen, when the mouse pointer
+// moves to or away from the top of the screen, |handler| will be called several
+// times with a number between zero and one indicating how much of the menu bar
+// is visible.
+@interface MenuRevealMonitor : NSObject
+- (instancetype)initWithWindow:(NSWindow*)window
+                 changeHandler:(void (^)(double))handler
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+@implementation MenuRevealMonitor {
+  base::mac::ScopedBlock<void (^)(double)> change_handler_;
+  base::scoped_nsobject<NSTitlebarAccessoryViewController> accVC_;
+}
+
+- (instancetype)initWithWindow:(NSWindow*)window
+                 changeHandler:(void (^)(double))handler {
+  if ((self = [super init])) {
+    change_handler_.reset([handler copy]);
+    accVC_.reset([[NSTitlebarAccessoryViewController alloc] init]);
+    auto* accVC = accVC_.get();
+    accVC.view = [[[NSView alloc] initWithFrame:NSZeroRect] autorelease];
+    [accVC addObserver:self
+            forKeyPath:@"revealAmount"
+               options:NSKeyValueObservingOptionNew
+               context:nil];
+    [window addTitlebarAccessoryViewController:accVC];
+  }
+  return self;
+}
+
+- (void)dealloc {
+  [accVC_ removeObserver:self forKeyPath:@"revealAmount"];
+  [accVC_ removeFromParentViewController];
+  [super dealloc];
+}
+
+- (void)observeValueForKeyPath:(NSString*)keyPath
+                      ofObject:(id)object
+                        change:(NSDictionary<NSKeyValueChangeKey, id>*)change
+                       context:(void*)context {
+  double revealAmount =
+      base::mac::ObjCCastStrict<NSNumber>(change[NSKeyValueChangeNewKey])
+          .doubleValue;
+  change_handler_.get()(revealAmount);
+}
+@end
+
+// ImmersiveToolbarOverlayView performs two functions. First, it hitTests to its
+// superview (BridgedContentView) to block mouse events from hitting siblings
+// which the toolbar might overlap, like RenderWidgetHostView. It also sets up a
+// tracking area which locks the menu bar's visibility while the mouse pointer
+// is within its bounds, plus some padding at the bottom.
+@interface ImmersiveToolbarOverlayView : NSView
+@property(nonatomic) BOOL menuBarLockingEnabled;
+@end
+
+@implementation ImmersiveToolbarOverlayView {
+  ui::ScopedCrTrackingArea trackingArea_;
+  std::unique_ptr<ScopedMenuBarLock> menuBarLock_;
+}
+@synthesize menuBarLockingEnabled = menuBarLockingEnabled_;
+
+- (void)setMenuBarLockingEnabled:(BOOL)menuBarLockingEnabled {
+  if (menuBarLockingEnabled == menuBarLockingEnabled_)
+    return;
+  menuBarLockingEnabled_ = menuBarLockingEnabled;
+  [self updateTrackingArea];
+}
+
+- (void)updateTrackingArea {
+  NSRect trackingRect = self.bounds;
+  trackingRect.origin.y -= kMenuBarLockPadding;
+  trackingRect.size.height += kMenuBarLockPadding;
+
+  if (CrTrackingArea* trackingArea = trackingArea_.get()) {
+    if (menuBarLockingEnabled_ && NSEqualRects(trackingRect, trackingArea.rect))
+      return;
+    else
+      [self removeTrackingArea:trackingArea];
+  }
+
+  if (menuBarLockingEnabled_) {
+    trackingArea_.reset([[CrTrackingArea alloc]
+        initWithRect:trackingRect
+             options:NSTrackingMouseEnteredAndExited |
+                     NSTrackingActiveInKeyWindow
+               owner:self
+            userInfo:nil]);
+    [self addTrackingArea:trackingArea_.get()];
+  } else {
+    trackingArea_.reset();
+    menuBarLock_.reset();
+  }
+}
+
+- (void)setFrameSize:(NSSize)newSize {
+  [super setFrameSize:newSize];
+  [self updateTrackingArea];
+}
+
+- (NSView*)hitTest:(NSPoint)point {
+  NSPoint pointInView = [self convertPoint:point fromView:self.superview];
+  if (NSPointInRect(pointInView, self.visibleRect))
+    return self.superview;
+  return [super hitTest:point];
+}
+
+- (void)mouseEntered:(NSEvent*)event {
+  menuBarLock_.reset(new ScopedMenuBarLock());
+}
+
+- (void)mouseExited:(NSEvent*)event {
+  menuBarLock_.reset();
+}
+
+@end
+
+namespace {
+
+class ImmersiveModeControllerMac : public ImmersiveModeController,
+                                   public views::FocusChangeListener,
+                                   public views::ViewObserver,
+                                   public views::WidgetObserver {
+ public:
+  class RevealedLock : public ImmersiveRevealedLock {
+   public:
+    RevealedLock(base::WeakPtr<ImmersiveModeControllerMac> controller,
+                 AnimateReveal animate_reveal);
+    ~RevealedLock() override;
+
+   private:
+    base::WeakPtr<ImmersiveModeControllerMac> controller_;
+    AnimateReveal animate_reveal_;
+    DISALLOW_COPY_AND_ASSIGN(RevealedLock);
+  };
+
+  ImmersiveModeControllerMac();
+  ~ImmersiveModeControllerMac() override;
+
+  // ImmersiveModeController overrides:
+  void Init(BrowserView* browser_view) override;
+  void SetEnabled(bool enabled) override;
+  bool IsEnabled() const override;
+  bool ShouldHideTopViews() const override;
+  bool IsRevealed() const override;
+  int GetTopContainerVerticalOffset(
+      const gfx::Size& top_container_size) const override;
+  ImmersiveRevealedLock* GetRevealedLock(AnimateReveal animate_reveal) override
+      WARN_UNUSED_RESULT;
+  void OnFindBarVisibleBoundsChanged(
+      const gfx::Rect& new_visible_bounds_in_screen) override;
+  bool ShouldStayImmersiveAfterExitingFullscreen() override;
+  void OnWidgetActivationChanged(views::Widget* widget, bool active) override;
+
+  // views::FocusChangeListener implementation.
+  void OnWillChangeFocus(views::View* focused_before,
+                         views::View* focused_now) override;
+  void OnDidChangeFocus(views::View* focused_before,
+                        views::View* focused_now) override;
+
+  // views::ViewObserver implementation
+  void OnViewBoundsChanged(views::View* observed_view) override;
+
+  // views::WidgetObserver implementation
+  void OnWidgetDestroying(views::Widget* widget) override;
+
+ private:
+  friend class RevealedLock;
+
+  // void Layout(AnimateReveal);
+  void LockDestroyed(AnimateReveal);
+  void SetMenuRevealed(bool revealed);
+
+  BrowserView* browser_view_ = nullptr;  // weak
+  std::unique_ptr<ImmersiveRevealedLock> focus_lock_;
+  std::unique_ptr<ImmersiveRevealedLock> menu_lock_;
+  bool enabled_ = false;
+  int revealed_lock_count_ = 0;
+  base::scoped_nsobject<ImmersiveToolbarOverlayView> overlay_view_;
+  base::scoped_nsobject<NSObject> menu_reveal_monitor_;
+
+  base::WeakPtrFactory<ImmersiveModeControllerMac> weak_ptr_factory_;
+
+  DISALLOW_COPY_AND_ASSIGN(ImmersiveModeControllerMac);
+};
+
+}  // namespace
+
+ImmersiveModeControllerMac::RevealedLock::RevealedLock(
+    base::WeakPtr<ImmersiveModeControllerMac> controller,
+    AnimateReveal animate_reveal)
+    : controller_(std::move(controller)), animate_reveal_(animate_reveal) {}
+
+ImmersiveModeControllerMac::RevealedLock::~RevealedLock() {
+  if (auto* controller = controller_.get())
+    controller->LockDestroyed(animate_reveal_);
+}
+
+ImmersiveModeControllerMac::ImmersiveModeControllerMac()
+    : ImmersiveModeController(Type::MAC), weak_ptr_factory_(this) {}
+
+ImmersiveModeControllerMac::~ImmersiveModeControllerMac() = default;
+
+void ImmersiveModeControllerMac::Init(BrowserView* browser_view) {
+  browser_view_ = browser_view;
+}
+
+void ImmersiveModeControllerMac::SetMenuRevealed(bool revealed) {
+  if (revealed) {
+    if (!menu_lock_)
+      menu_lock_.reset(GetRevealedLock(ANIMATE_REVEAL_YES));
+    overlay_view_.get().menuBarLockingEnabled = YES;
+  } else {
+    if (menu_lock_)
+      menu_lock_.reset();
+    overlay_view_.get().menuBarLockingEnabled = NO;
+  }
+  browser_view_->InvalidateLayout();
+}
+
+void ImmersiveModeControllerMac::SetEnabled(bool enabled) {
+  if (enabled_ == enabled)
+    return;
+  enabled_ = enabled;
+  if (enabled) {
+    browser_view_->GetWidget()->GetFocusManager()->AddFocusChangeListener(this);
+    browser_view_->GetWidget()->AddObserver(this);
+    browser_view_->top_container()->AddObserver(this);
+    overlay_view_.reset(
+        [[ImmersiveToolbarOverlayView alloc] initWithFrame:NSZeroRect]);
+    menu_reveal_monitor_.reset([[MenuRevealMonitor alloc]
+        initWithWindow:browser_view_->GetWidget()
+                           ->GetNativeWindow()
+                           .GetNativeNSWindow()
+         changeHandler:^(double reveal_amount) {
+           this->SetMenuRevealed(reveal_amount > 0);
+         }]);
+  } else {
+    browser_view_->GetWidget()->GetFocusManager()->RemoveFocusChangeListener(
+        this);
+    browser_view_->GetWidget()->RemoveObserver(this);
+    browser_view_->top_container()->RemoveObserver(this);
+    [overlay_view_ removeFromSuperview];
+    overlay_view_.reset();
+    menu_reveal_monitor_.reset();
+    menu_lock_.reset();
+    focus_lock_.reset();
+  }
+}
+
+bool ImmersiveModeControllerMac::IsEnabled() const {
+  return enabled_;
+}
+
+bool ImmersiveModeControllerMac::ShouldHideTopViews() const {
+  return enabled_ && !IsRevealed();
+}
+
+bool ImmersiveModeControllerMac::IsRevealed() const {
+  return enabled_ && revealed_lock_count_ > 0;
+}
+
+int ImmersiveModeControllerMac::GetTopContainerVerticalOffset(
+    const gfx::Size& top_container_size) const {
+  return (enabled_ && !IsRevealed()) ? -top_container_size.height() : 0;
+}
+
+ImmersiveRevealedLock* ImmersiveModeControllerMac::GetRevealedLock(
+    AnimateReveal animate_reveal) {
+  revealed_lock_count_++;
+  if (enabled_ && revealed_lock_count_ == 1)
+    browser_view_->OnImmersiveRevealStarted();
+  return new RevealedLock(weak_ptr_factory_.GetWeakPtr(), animate_reveal);
+}
+
+void ImmersiveModeControllerMac::OnFindBarVisibleBoundsChanged(
+    const gfx::Rect& new_visible_bounds_in_screen) {}
+
+bool ImmersiveModeControllerMac::ShouldStayImmersiveAfterExitingFullscreen() {
+  return false;
+}
+
+void ImmersiveModeControllerMac::OnWidgetActivationChanged(
+    views::Widget* widget,
+    bool active) {}
+
+void ImmersiveModeControllerMac::OnWillChangeFocus(views::View* focused_before,
+                                                   views::View* focused_now) {}
+
+void ImmersiveModeControllerMac::OnDidChangeFocus(views::View* focused_before,
+                                                  views::View* focused_now) {
+  if (browser_view_->top_container()->Contains(focused_now)) {
+    if (!focus_lock_)
+      focus_lock_.reset(GetRevealedLock(ANIMATE_REVEAL_YES));
+  } else {
+    focus_lock_.reset();
+  }
+}
+
+void ImmersiveModeControllerMac::OnViewBoundsChanged(
+    views::View* observed_view) {
+  NSView* overlay_view = overlay_view_;
+  if (observed_view->GetVisibleBounds().IsEmpty()) {
+    [overlay_view removeFromSuperview];
+    return;
+  }
+  if (!overlay_view.superview)
+    [browser_view_->GetWidget()->GetNativeView().GetNativeNSView()
+        addSubview:overlay_view];
+  NSRect frame_rect = observed_view->bounds().ToCGRect();
+  frame_rect.origin.y = NSHeight(overlay_view.superview.bounds) -
+                        frame_rect.origin.y - NSHeight(frame_rect);
+  overlay_view.frame = frame_rect;
+}
+
+void ImmersiveModeControllerMac::OnWidgetDestroying(views::Widget* widget) {
+  SetEnabled(false);
+}
+
+void ImmersiveModeControllerMac::LockDestroyed(AnimateReveal animate_reveal) {
+  revealed_lock_count_--;
+  if (revealed_lock_count_ == 0)
+    browser_view_->OnImmersiveRevealEnded();
+}
+
+std::unique_ptr<ImmersiveModeController> CreateImmersiveModeControllerMac() {
+  return std::make_unique<ImmersiveModeControllerMac>();
+}
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.cc b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
index d72d508f..7871b6c 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_view.cc
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
@@ -106,9 +106,8 @@
     case SourceType::kTab:
       return dialog_title_;
     case SourceType::kDesktop:
-      // |dialog_title_| may contain the presentation URL origin which is not
-      // relevant for the desktop source, so we use the default title string.
-      return l10n_util::GetStringUTF16(IDS_MEDIA_ROUTER_CAST_DIALOG_TITLE);
+      return l10n_util::GetStringUTF16(
+          IDS_MEDIA_ROUTER_DESKTOP_MIRROR_CAST_MODE);
     case SourceType::kLocalFile:
       return l10n_util::GetStringFUTF16(IDS_MEDIA_ROUTER_CAST_LOCAL_MEDIA_TITLE,
                                         local_file_name_.value());
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui.cc b/chrome/browser/ui/views/media_router/media_router_views_ui.cc
index f42b9a8..916daa5 100644
--- a/chrome/browser/ui/views/media_router/media_router_views_ui.cc
+++ b/chrome/browser/ui/views/media_router/media_router_views_ui.cc
@@ -204,7 +204,7 @@
   const base::string16 source_name = GetPresentationRequestSourceName();
   const base::string16 header_text =
       source_name.empty()
-          ? l10n_util::GetStringUTF16(IDS_MEDIA_ROUTER_CAST_DIALOG_TITLE)
+          ? l10n_util::GetStringUTF16(IDS_MEDIA_ROUTER_TAB_MIRROR_CAST_MODE)
           : l10n_util::GetStringFUTF16(IDS_MEDIA_ROUTER_PRESENTATION_CAST_MODE,
                                        source_name);
   model_.set_dialog_header(header_text);
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui_unittest.cc b/chrome/browser/ui/views/media_router/media_router_views_ui_unittest.cc
index 7867268..d17f7c3 100644
--- a/chrome/browser/ui/views/media_router/media_router_views_ui_unittest.cc
+++ b/chrome/browser/ui/views/media_router/media_router_views_ui_unittest.cc
@@ -154,8 +154,9 @@
   // Initially, the dialog header should simply say "Cast".
   EXPECT_CALL(observer, OnModelUpdated(_))
       .WillOnce([&](const CastDialogModel& model) {
-        EXPECT_EQ(l10n_util::GetStringUTF16(IDS_MEDIA_ROUTER_CAST_DIALOG_TITLE),
-                  model.dialog_header());
+        EXPECT_EQ(
+            l10n_util::GetStringUTF16(IDS_MEDIA_ROUTER_TAB_MIRROR_CAST_MODE),
+            model.dialog_header());
       });
   ui_->AddObserver(&observer);
   // We temporarily remove the observer here because the implementation calls
diff --git a/chrome/browser/ui/views/page_action/pwa_install_view.cc b/chrome/browser/ui/views/page_action/pwa_install_view.cc
index 1bedff7..eb430378 100644
--- a/chrome/browser/ui/views/page_action/pwa_install_view.cc
+++ b/chrome/browser/ui/views/page_action/pwa_install_view.cc
@@ -31,7 +31,7 @@
       banners::AppBannerManager::FromWebContents(web_contents);
   DCHECK(manager);
 
-  bool is_installable = manager->IsProbablyInstallable();
+  bool is_installable = manager->IsInstallable();
   bool is_installed =
       web_app::WebAppTabHelperBase::FromWebContents(web_contents)
           ->HasAssociatedApp();
diff --git a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
index 884f7aa3..58bef1e6 100644
--- a/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
+++ b/chrome/browser/ui/views/page_action/pwa_install_view_browsertest.cc
@@ -51,20 +51,6 @@
         GetInstallableAppURL().GetOrigin().spec());
   }
 
-  void SetUpOnMainThread() override {
-    pwa_install_view_ =
-        BrowserView::GetBrowserViewForBrowser(browser())
-            ->toolbar_button_provider()
-            ->GetPageActionIconContainerView()
-            ->GetPageActionIconView(PageActionIconType::kPwaInstall);
-    EXPECT_FALSE(pwa_install_view_->visible());
-
-    web_contents_ = GetCurrentTab();
-    app_banner_manager_ =
-        banners::TestAppBannerManagerDesktop::CreateForWebContents(
-            web_contents_);
-  }
-
   content::WebContents* GetCurrentTab() {
     return browser()->tab_strip_model()->GetActiveWebContents();
   }
@@ -93,14 +79,17 @@
     return https_server_.GetURL("app.com", "/simple.html");
   }
 
- protected:
+  PageActionIconView* GetPwaInstallView() {
+    return BrowserView::GetBrowserViewForBrowser(browser())
+        ->toolbar_button_provider()
+        ->GetPageActionIconContainerView()
+        ->GetPageActionIconView(PageActionIconType::kPwaInstall);
+  }
+
+ private:
   base::test::ScopedFeatureList scoped_feature_list_;
   net::EmbeddedTestServer https_server_;
 
-  PageActionIconView* pwa_install_view_ = nullptr;
-  content::WebContents* web_contents_ = nullptr;
-  banners::TestAppBannerManagerDesktop* app_banner_manager_ = nullptr;
-
   DISALLOW_COPY_AND_ASSIGN(PwaInstallViewBrowserTest);
 };
 
@@ -108,6 +97,9 @@
 // installable/non-installable tabs.
 IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest,
                        IconVisibilityAfterTabSwitching) {
+  PageActionIconView* pwa_install_view = GetPwaInstallView();
+  EXPECT_FALSE(pwa_install_view->visible());
+
   content::WebContents* installable_web_contents =
       OpenNewTab(GetInstallableAppURL(), true);
   content::WebContents* non_installable_web_contents =
@@ -115,114 +107,55 @@
 
   chrome::SelectPreviousTab(browser());
   ASSERT_EQ(installable_web_contents, GetCurrentTab());
-  EXPECT_TRUE(pwa_install_view_->visible());
+  EXPECT_TRUE(pwa_install_view->visible());
 
   chrome::SelectNextTab(browser());
   ASSERT_EQ(non_installable_web_contents, GetCurrentTab());
-  EXPECT_FALSE(pwa_install_view_->visible());
+  EXPECT_FALSE(pwa_install_view->visible());
 }
 
 // Tests that the plus icon updates its visibiliy once the installability check
 // completes.
 IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest,
                        IconVisibilityAfterInstallabilityCheck) {
+  PageActionIconView* pwa_install_view = GetPwaInstallView();
+  EXPECT_FALSE(pwa_install_view->visible());
+
+  content::WebContents* web_contents = GetCurrentTab();
+  auto* app_banner_manager =
+      banners::TestAppBannerManagerDesktop::CreateForWebContents(web_contents);
+
   ui_test_utils::NavigateToURL(browser(), GetInstallableAppURL());
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
+  EXPECT_FALSE(pwa_install_view->visible());
+  ASSERT_TRUE(app_banner_manager->WaitForInstallableCheck());
+  EXPECT_TRUE(pwa_install_view->visible());
 
   ui_test_utils::NavigateToURL(browser(), GetNonInstallableAppURL());
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_FALSE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_FALSE(pwa_install_view_->visible());
+  EXPECT_FALSE(pwa_install_view->visible());
+  ASSERT_FALSE(app_banner_manager->WaitForInstallableCheck());
+  EXPECT_FALSE(pwa_install_view->visible());
 }
 
 // Tests that the plus icon animates its label when the installability check
 // passes but doesn't animate more than once for the same installability check.
 IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, LabelAnimation) {
+  PageActionIconView* pwa_install_view = GetPwaInstallView();
+  EXPECT_FALSE(pwa_install_view->visible());
+
+  content::WebContents* web_contents = GetCurrentTab();
+  auto* app_banner_manager =
+      banners::TestAppBannerManagerDesktop::CreateForWebContents(web_contents);
+
   ui_test_utils::NavigateToURL(browser(), GetInstallableAppURL());
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
+  EXPECT_FALSE(pwa_install_view->visible());
+  ASSERT_TRUE(app_banner_manager->WaitForInstallableCheck());
+  EXPECT_TRUE(pwa_install_view->visible());
+  EXPECT_TRUE(pwa_install_view->is_animating_label());
 
   chrome::NewTab(browser());
-  EXPECT_FALSE(pwa_install_view_->visible());
+  EXPECT_FALSE(pwa_install_view->visible());
 
   chrome::SelectPreviousTab(browser());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_FALSE(pwa_install_view_->is_animating_label());
-}
-
-// Tests that the icon persists while loading the same scope and omits running
-// the label animation again.
-IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, NavigateToSameScope) {
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/page_1.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
-
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/page_2.html"));
-  EXPECT_TRUE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_FALSE(pwa_install_view_->is_animating_label());
-}
-
-// Tests that the icon persists while loading the same scope but goes away when
-// the installability check fails.
-IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest,
-                       NavigateToSameScopeNonInstallable) {
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/page_1.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
-
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/bad_manifest.html"));
-  EXPECT_TRUE(pwa_install_view_->visible());
-  ASSERT_FALSE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_FALSE(pwa_install_view_->visible());
-  EXPECT_FALSE(pwa_install_view_->is_animating_label());
-}
-
-// Tests that the icon and animation resets while loading a different scope.
-IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest, NavigateToDifferentScope) {
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/page_1.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
-
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_b/scope_b.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
-}
-
-// Tests that the icon and animation resets while loading a different empty
-// scope.
-IN_PROC_BROWSER_TEST_F(PwaInstallViewBrowserTest,
-                       NavigateToDifferentEmptyScope) {
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/scope_a/page_1.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
-
-  ui_test_utils::NavigateToURL(
-      browser(), https_server_.GetURL("/banners/manifest_test_page.html"));
-  EXPECT_FALSE(pwa_install_view_->visible());
-  ASSERT_TRUE(app_banner_manager_->WaitForInstallableCheck());
-  EXPECT_TRUE(pwa_install_view_->visible());
-  EXPECT_TRUE(pwa_install_view_->is_animating_label());
+  EXPECT_TRUE(pwa_install_view->visible());
+  EXPECT_FALSE(pwa_install_view->is_animating_label());
 }
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
index 76ff0738..eaa3962 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.cc
@@ -70,6 +70,10 @@
   size->SetSize(kMobileSetupDialogWidth, kMobileSetupDialogHeight);
 }
 
+bool MobileSetupDialog::CanResizeDialog() const {
+  return true;
+}
+
 std::string MobileSetupDialog::GetDialogArgs() const {
   return std::string();
 }
diff --git a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.h b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.h
index e15ad870..8243bf7 100644
--- a/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.h
+++ b/chrome/browser/ui/webui/chromeos/mobile_setup_dialog.h
@@ -22,6 +22,7 @@
 
   // ui::WebDialogDelegate
   void GetDialogSize(gfx::Size* size) const override;
+  bool CanResizeDialog() const override;
   std::string GetDialogArgs() const override;
   void OnCloseContents(content::WebContents* source,
                        bool* out_close_dialog) override;
diff --git a/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.cc b/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.cc
index 1c5c87bf..cb9f0cb2 100644
--- a/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.cc
+++ b/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.cc
@@ -94,6 +94,10 @@
   size->SetSize(kDialogWidth, kDialogHeight);
 }
 
+bool SystemWebDialogDelegate::CanResizeDialog() const {
+  return false;
+}
+
 std::string SystemWebDialogDelegate::GetDialogArgs() const {
   return std::string();
 }
diff --git a/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h b/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
index d28c8253..a4b9a5e 100644
--- a/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
+++ b/chrome/browser/ui/webui/chromeos/system_web_dialog_delegate.h
@@ -49,6 +49,7 @@
   void GetWebUIMessageHandlers(
       std::vector<content::WebUIMessageHandler*>* handlers) const override;
   void GetDialogSize(gfx::Size* size) const override;
+  bool CanResizeDialog() const override;
   std::string GetDialogArgs() const override;
   void OnDialogShown(content::WebUI* webui,
                      content::RenderViewHost* render_view_host) override;
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
index 87ef928..a127c86 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -149,6 +149,8 @@
     "mac/launchd.mm",
     "mac/service_management.h",
     "mac/service_management.mm",
+    "mac/staging_watcher.h",
+    "mac/staging_watcher.mm",
     "media/media_resource_provider.cc",
     "media/media_resource_provider.h",
     "media/webrtc_logging_message_data.cc",
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
index 370728b..04aec29 100644
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -175,6 +175,8 @@
 #if defined(OS_MACOSX)
 const base::Feature kContentFullscreen{"ContentFullscreen",
                                        base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kImmersiveFullscreen{"ImmersiveFullscreen",
+                                         base::FEATURE_DISABLED_BY_DEFAULT};
 #endif
 
 // Enables a site-wide permission in the UI which controls access to the
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h
index 39c60442..af45cf7ca 100644
--- a/chrome/common/chrome_features.h
+++ b/chrome/common/chrome_features.h
@@ -112,6 +112,8 @@
 
 #if defined(OS_MACOSX)
 COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kContentFullscreen;
+COMPONENT_EXPORT(CHROME_FEATURES)
+extern const base::Feature kImmersiveFullscreen;
 #endif
 
 #if defined(OS_CHROMEOS)
diff --git a/chrome/common/mac/staging_watcher.h b/chrome/common/mac/staging_watcher.h
new file mode 100644
index 0000000..a3bdb84
--- /dev/null
+++ b/chrome/common/mac/staging_watcher.h
@@ -0,0 +1,37 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_COMMON_MAC_STAGING_WATCHER_H_
+#define CHROME_COMMON_MAC_STAGING_WATCHER_H_
+
+#import <Foundation/Foundation.h>
+
+// Chrome update works by staging a copy of Chrome near to the current bundle,
+// and then applying it when Chrome restarts to apply the update. Currently,
+// this state of "update pending" is indicated outside of Keystone by a key in
+// the CFPreferences.
+
+@interface CrStagingKeyWatcher : NSObject
+
+- (instancetype)init;
+
+// Sleeps until the staging key is clear. If there is no staging key set,
+// returns immediately.
+- (void)waitForStagingKey;
+
+@end
+
+@interface CrStagingKeyWatcher (TestingInterface)
+
+- (instancetype)initWithUserDefaults:(NSUserDefaults*)defaults;
+
+- (void)disableKVOForTesting;
+
+- (BOOL)lastWaitWasBlockedForTesting;
+
++ (NSString*)stagingKeyForTesting;
+
+@end
+
+#endif  // CHROME_COMMON_MAC_STAGING_WATCHER_H_
diff --git a/chrome/common/mac/staging_watcher.mm b/chrome/common/mac/staging_watcher.mm
new file mode 100644
index 0000000..e8e72ce8
--- /dev/null
+++ b/chrome/common/mac/staging_watcher.mm
@@ -0,0 +1,125 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/common/mac/staging_watcher.h"
+
+#include "base/mac/bundle_locations.h"
+#include "base/mac/mac_util.h"
+#include "base/mac/scoped_nsobject.h"
+
+// Best documentation / Is unofficial documentation
+//
+// Required reading for CFPreferences/NSUserDefaults is at
+// <http://dscoder.com/defaults.html>, a post by David "Catfish Man" Smith, who
+// re-wrote NSUserDefaults for 10.12 and iPad Classroom support. It is important
+// to note that KVO only notifies for changes made by other programs starting
+// with that rewrite in 10.12. In macOS 10.11 and earlier, polling is the only
+// option. Note that NSUserDefaultsDidChangeNotification never notifies about
+// changes made by other programs, not even in 10.12 and later.
+
+namespace {
+
+NSString* const kStagingKey = @"UpdatePending";
+
+}  // namespace
+
+@interface CrStagingKeyWatcher () {
+  base::scoped_nsobject<NSUserDefaults> defaults_;
+  BOOL observing_;
+  base::scoped_nsobject<NSPort> wakePort_;
+
+  BOOL kvoDisabledForTesting_;
+  BOOL lastWaitWasBlockedForTesting_;
+}
+
+@end
+
+@implementation CrStagingKeyWatcher
+
+- (instancetype)init {
+  return [self initWithUserDefaults:[NSUserDefaults standardUserDefaults]];
+}
+
+- (instancetype)initWithUserDefaults:(NSUserDefaults*)defaults {
+  if ((self = [super init])) {
+    defaults_.reset(defaults, base::scoped_policy::RETAIN);
+    if (base::mac::IsAtLeastOS10_12() && !kvoDisabledForTesting_) {
+      [defaults_ addObserver:self
+                  forKeyPath:kStagingKey
+                     options:0
+                     context:nullptr];
+      observing_ = YES;
+    }
+  }
+  return self;
+}
+
+- (BOOL)shouldWait {
+  NSArray<NSString*>* paths = [defaults_ stringArrayForKey:kStagingKey];
+  if (!paths)
+    return NO;
+
+  NSString* appPath = [base::mac::OuterBundle() bundlePath];
+
+  return [paths containsObject:appPath];
+}
+
+- (void)waitForStagingKey {
+  if (![self shouldWait]) {
+    lastWaitWasBlockedForTesting_ = NO;
+    return;
+  }
+
+  NSRunLoop* runloop = [NSRunLoop currentRunLoop];
+  if (observing_) {
+    wakePort_.reset([NSPort port], base::scoped_policy::RETAIN);
+    [runloop addPort:wakePort_ forMode:NSDefaultRunLoopMode];
+
+    while ([self shouldWait] && [runloop runMode:NSDefaultRunLoopMode
+                                      beforeDate:[NSDate distantFuture]]) {
+      /* run! */
+    }
+  } else {
+    const NSTimeInterval kPollingTime = 0.5;
+
+    while ([self shouldWait] &&
+           [runloop
+                  runMode:NSDefaultRunLoopMode
+               beforeDate:[NSDate dateWithTimeIntervalSinceNow:kPollingTime]]) {
+      /* run! */
+    }
+  }
+
+  lastWaitWasBlockedForTesting_ = YES;
+}
+
+- (void)dealloc {
+  if (observing_)
+    [defaults_ removeObserver:self forKeyPath:kStagingKey context:nullptr];
+  if (wakePort_)
+    [wakePort_ invalidate];
+
+  [super dealloc];
+}
+
+- (void)disableKVOForTesting {
+  kvoDisabledForTesting_ = YES;
+}
+
+- (BOOL)lastWaitWasBlockedForTesting {
+  return lastWaitWasBlockedForTesting_;
+}
+
++ (NSString*)stagingKeyForTesting {
+  return kStagingKey;
+}
+
+- (void)observeValueForKeyPath:(NSString*)keyPath
+                      ofObject:(id)object
+                        change:(NSDictionary*)change
+                       context:(void*)context {
+  [wakePort_ sendBeforeDate:[NSDate date] components:nil from:nil reserved:0];
+}
+
+@end
diff --git a/chrome/common/mac/staging_watcher_unittest.mm b/chrome/common/mac/staging_watcher_unittest.mm
new file mode 100644
index 0000000..62f552a
--- /dev/null
+++ b/chrome/common/mac/staging_watcher_unittest.mm
@@ -0,0 +1,117 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/common/mac/staging_watcher.h"
+
+#include <dispatch/dispatch.h>
+
+#include "base/mac/bundle_locations.h"
+#include "base/mac/mac_util.h"
+#include "base/mac/scoped_nsobject.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+enum class KVOOrNot { kUseKVO, kDontUseKVO };
+
+class StagingKeyWatcherTest : public testing::TestWithParam<KVOOrNot> {
+ public:
+  StagingKeyWatcherTest() = default;
+  ~StagingKeyWatcherTest() = default;
+
+ protected:
+  void SetUp() override {
+    testingBundleID_.reset([[NSString alloc]
+        initWithFormat:@"org.chromium.StagingKeyWatcherTest.%d", getpid()]);
+    defaults_.reset(
+        [[NSUserDefaults alloc] initWithSuiteName:testingBundleID_]);
+
+    [defaults_ removeObjectForKey:[CrStagingKeyWatcher stagingKeyForTesting]];
+  }
+
+  void TearDown() override {
+    [defaults_ removeObjectForKey:[CrStagingKeyWatcher stagingKeyForTesting]];
+  }
+
+  CrStagingKeyWatcher* CreateKeyWatcher() {
+    keyWatcher_.reset(
+        [[CrStagingKeyWatcher alloc] initWithUserDefaults:defaults_]);
+    if (GetParam() == KVOOrNot::kDontUseKVO)
+      [keyWatcher_ disableKVOForTesting];
+
+    return keyWatcher_;
+  }
+
+  void SetDefaultsValue(id value) {
+    [defaults_ setObject:value
+                  forKey:[CrStagingKeyWatcher stagingKeyForTesting]];
+  }
+
+  void ClearDefaultsValueInSeparateProcess() {
+    [NSTask launchedTaskWithLaunchPath:@"/usr/bin/defaults"
+                             arguments:@[
+                               @"delete", testingBundleID_.get(),
+                               [CrStagingKeyWatcher stagingKeyForTesting]
+                             ]];
+  }
+
+ private:
+  base::scoped_nsobject<CrStagingKeyWatcher> keyWatcher_;
+  base::scoped_nsobject<NSString> testingBundleID_;
+  base::scoped_nsobject<NSUserDefaults> defaults_;
+};
+
+INSTANTIATE_TEST_SUITE_P(KVOandNot,
+                         StagingKeyWatcherTest,
+                         testing::Values(KVOOrNot::kUseKVO,
+                                         KVOOrNot::kDontUseKVO));
+
+}  // namespace
+
+TEST_P(StagingKeyWatcherTest, NoBlockingWhenNoKey) {
+  CrStagingKeyWatcher* watcher = CreateKeyWatcher();
+  [watcher waitForStagingKey];
+  ASSERT_FALSE([watcher lastWaitWasBlockedForTesting]);
+}
+
+TEST_P(StagingKeyWatcherTest, NoBlockingWhenWrongKeyType) {
+  SetDefaultsValue(@"this is not an string array");
+
+  CrStagingKeyWatcher* watcher = CreateKeyWatcher();
+  [watcher waitForStagingKey];
+  ASSERT_FALSE([watcher lastWaitWasBlockedForTesting]);
+}
+
+TEST_P(StagingKeyWatcherTest, NoBlockingWhenWrongArrayType) {
+  SetDefaultsValue(@[ @3, @1, @4, @1, @5 ]);
+
+  CrStagingKeyWatcher* watcher = CreateKeyWatcher();
+  [watcher waitForStagingKey];
+  ASSERT_FALSE([watcher lastWaitWasBlockedForTesting]);
+}
+
+TEST_P(StagingKeyWatcherTest, NoBlockingWhenEmptyArray) {
+  SetDefaultsValue(@[]);
+
+  CrStagingKeyWatcher* watcher = CreateKeyWatcher();
+  [watcher waitForStagingKey];
+  ASSERT_FALSE([watcher lastWaitWasBlockedForTesting]);
+}
+
+TEST_P(StagingKeyWatcherTest, BlockFunctionality) {
+  NSString* appPath = [base::mac::OuterBundle() bundlePath];
+  SetDefaultsValue(@[ appPath ]);
+
+  NSRunLoop* runloop = [NSRunLoop currentRunLoop];
+  ASSERT_EQ(nil, [runloop currentMode]);
+
+  dispatch_async(dispatch_get_main_queue(), ^{
+    ASSERT_NE(nil, [runloop currentMode]);
+    ClearDefaultsValueInSeparateProcess();
+  });
+
+  CrStagingKeyWatcher* watcher = CreateKeyWatcher();
+  [watcher waitForStagingKey];
+  ASSERT_TRUE([watcher lastWaitWasBlockedForTesting]);
+}
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
index 607faf40..57c7d8c 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_bn.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="bn">
 <translation id="1383286653814676580">Google ক্রেডেনশিয়াল প্রোভাইডার সাইন-ইন পৃষ্ঠা চালানোর জন্য ব্যবহার করা হয়।</translation>
+<translation id="1894475569413661128">আপনার কাজের অ্যাকাউন্ট ব্যবহার করে সাইন-ইন করুন।</translation>
+<translation id="2469311484561825731">আপনার কাজের অ্যাকাউন্টে সাইন-ইন করা যায়নি। কম্পিউটারে ইন্টারনেট কানেকশন আছে কিনা তা দেখে নিয়ে আবার চেষ্টা করুন।</translation>
 <translation id="2595469428674600431">আপনার Windows-এর পাসওয়ার্ড যাচাই করা যায়নি। আবার চেষ্টা করুন।</translation>
+<translation id="3306357053520292004">এই অ্যাকাউন্ট ব্যবহার করে আগেই এই কম্পিউটারের একজন ব্যবহারকারী যোগ করা হয়েছে। অন্য একটি অ্যাকাউন্ট দিয়ে সাইন-ইন করুন।</translation>
 <translation id="4057329986137569701">একটি অভ্যন্তরীণ সমস্যা হয়েছে।</translation>
+<translation id="4300229033992784001">আপনার অ্যাকাউন্টের পাসওয়ার্ড পরিবর্তন হয়েছে। আপনার Windows অ্যাকাউন্টের সাথে কাজের অ্যাকাউন্ট সিঙ্ক করতে আপনার বর্তমান Windows পাসওয়ার্ডটি লিখুন।</translation>
+<translation id="4706454071748629324">নতুন ব্যবহারকারী যোগ করা যায়নি। এই কম্পিউটার কাজের অ্যাকাউন্ট ব্যবহার করে শুধুমাত্র একজন ব্যবহারকারী তৈরি করতে দেয়।</translation>
+<translation id="6292766200512304540">কাজের অ্যাকাউন্ট থেকে ব্যবহারকারী তৈরি করা হয়েছে</translation>
+<translation id="6312494990035843744">এই ডোমেনে কাজের অ্যাকাউন্ট দিয়ে সাইন-ইন করা যাবে না। অন্য অ্যাকাউন্ট ব্যবহার করে দেখুন।</translation>
+<translation id="6463752215771576050">এন্টারপ্রাইজ ম্যানেজমেন্টের জন্য এই কম্পিউটারটিকে নথিভুক্ত করা যায়নি।  অন্য একটি কাজের অ্যাকাউন্ট দিয়ে সাইন-ইন করুন।</translation>
+<translation id="7135123390294776473">যে ব্যবহারকারী এই কম্পিউটার লক করেছেন এখন শুধুমাত্র তিনিই সাইন-ইন করতে পারেন।</translation>
 <translation id="7357241217513796177">নেটওয়ার্ক কানেকশন আছে কিনা দেখে নিয়ে আবার চেষ্টা করুন।</translation>
 <translation id="7463006580194749499">একজন ব্যক্তিকে যোগ করুন</translation>
 <translation id="8440458902131551808">আপনার অ্যাকাউন্ট লক হয়ে গেছে। সিস্টেম অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।</translation>
 <translation id="8474372283141585908">Google ক্রেডেনশিয়াল প্রোভাইডার</translation>
 <translation id="866458870819756755">ব্যবহারকারী তৈরি করা যায়নি।</translation>
 <translation id="8860262547644202689">Google ক্রেডেনশিয়াল প্রোভাইডার হেল্পার</translation>
+<translation id="9135619837062629367">এই অ্যাকাউন্ট দিয়ে সাইন-ইন করা যাবে না। অন্য অ্যাকাউন্ট ব্যবহার করে দেখুন।</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
index 7a3009e..4d3e41fb 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_fil.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fil">
 <translation id="1383286653814676580">Ginagamit para paganahin ang page sa pag-sign in ng Google Credential Provider.</translation>
+<translation id="1894475569413661128">Mag-sign in gamit ang iyong account sa trabaho.</translation>
+<translation id="2469311484561825731">Hindi nakapag-sign in sa iyong account sa trabaho. Tiyaking may koneksyon sa internet ang computer, pagkatapos ay subukang muli.</translation>
 <translation id="2595469428674600431">Paumanhin, hindi na-verify ang iyong password sa Winows. Pakisubukang muli.</translation>
+<translation id="3306357053520292004">May naidagdag nang user sa computer na ito gamit ang account na ito. Mag-sign in gamit ang ibang account.</translation>
 <translation id="4057329986137569701">Nagkaroon ng internal na error.</translation>
+<translation id="4300229033992784001">Nagbago ang password ng iyong account. Pakilagay ang iyong kasalukuyang password sa Windows para i-sync ang Windows account mo sa iyong account sa trabaho.</translation>
+<translation id="4706454071748629324">Hindi nakapagdagdag ng bagong user. Isang user lang ang pinapahintulutang magawa ng computer na ito gamit ang isang account sa trabaho.</translation>
+<translation id="6292766200512304540">User na nagawa mula sa isang account sa trabaho</translation>
+<translation id="6312494990035843744">Hindi pinapayagan ang pag-sign in gamit ang account sa trabaho sa domain na ito. Sumubok ng ibang account.</translation>
+<translation id="6463752215771576050">Hindi ma-enroll ang computer na ito para sa pamamahala ng enterprise.  Mag-sign in gamit ang ibang account sa trabaho.</translation>
+<translation id="7135123390294776473">Tanging ang user lang na nag-lock ng computer na ito ang kasalukuyang pinapayagang mag-sign in.</translation>
 <translation id="7357241217513796177">Tiyaking mayroon kang koneksyon sa network at subukang muli.</translation>
 <translation id="7463006580194749499">Magdagdag ng tao</translation>
 <translation id="8440458902131551808">Na-lock ang iyong account. Makipag-ugnayan sa isang administrator ng system.</translation>
 <translation id="8474372283141585908">Google Credential Provider</translation>
 <translation id="866458870819756755">Hindi makagawa ng user.</translation>
 <translation id="8860262547644202689">Helper ng Google Credential Provider</translation>
+<translation id="9135619837062629367">Hindi pinapayagan ang pag-sign in gamit ang account na ito. Sumubok ng ibang account.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
index 6d0f0f3..60d3a3c0 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_id.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
 <translation id="1383286653814676580">Digunakan untuk menjalankan halaman login Penyedia Kredensial Google.</translation>
+<translation id="1894475569413661128">Login menggunakan akun kerja Anda.</translation>
+<translation id="2469311484561825731">Gagal login ke akun kerja Anda. Pastikan komputer tersambung ke internet, lalu coba lagi.</translation>
 <translation id="2595469428674600431">Maaf, sandi Windows Anda tidak dapat diverifikasi. Harap coba lagi.</translation>
+<translation id="3306357053520292004">Pengguna di komputer ini telah ditambahkan menggunakan akun ini. Harap login menggunakan akun lain.</translation>
 <translation id="4057329986137569701">Terjadi error internal.</translation>
+<translation id="4300229033992784001">Sandi akun Anda telah diubah. Harap masukkan sandi Windows saat ini untuk menyinkronkan akun Windows dengan akun kerja Anda.</translation>
+<translation id="4706454071748629324">Gagal menambahkan pengguna baru. Komputer ini hanya mengizinkan pembuatan satu pengguna yang menggunakan akun kerja.</translation>
+<translation id="6292766200512304540">Pengguna dibuat dari akun kerja</translation>
+<translation id="6312494990035843744">Login dengan akun kerja di domain ini tidak diizinkan. Cobalah akun yang lain.</translation>
+<translation id="6463752215771576050">Tidak dapat mendaftarkan komputer ini untuk pengelolaan perusahaan.  Harap login menggunakan akun kerja lain.</translation>
+<translation id="7135123390294776473">Hanya pengguna yang mengunci komputer ini yang saat ini diizinkan login.</translation>
 <translation id="7357241217513796177">Pastikan Anda memiliki sambungan jaringan, lalu coba lagi.</translation>
 <translation id="7463006580194749499">Tambahkan pengguna</translation>
 <translation id="8440458902131551808">Akun Anda telah dikunci. Harap hubungi administrator sistem.</translation>
 <translation id="8474372283141585908">Penyedia Kredensial Google</translation>
 <translation id="866458870819756755">Tidak dapat membuat pengguna.</translation>
 <translation id="8860262547644202689">Bantuan Penyedia Kredensial Google</translation>
+<translation id="9135619837062629367">Login dengan akun ini tidak diizinkan. Cobalah akun lain.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
index 0deb47a3..2876b71 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_kn.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="kn">
 <translation id="1383286653814676580">Google ರುಜುವಾತು ಪೂರೈಕೆದಾರರ ಸೈನ್ ಇನ್ ಪುಟವನ್ನು ಚಲಾಯಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.</translation>
+<translation id="1894475569413661128">ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
+<translation id="2469311484561825731">ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ. ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿದೆಯೇ ಎಂದು ನೋಡಿ, ಆಮೇಲೆ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2595469428674600431">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="3306357053520292004">ಈ ಖಾತೆಯನ್ನು ಬಳಸಿ, ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಒಬ್ಬ ಬಳಕೆದಾರರನ್ನು ಈಗಾಗಲೇ ಸೇರಿಸಲಾಗಿದೆ ಬೇರೊಂದು ಖಾತೆಯನ್ನು ಬಳಸಿ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="4057329986137569701">ಆಂತರಿಕ ದೋಷ ಸಂಭವಿಸಿದೆ.</translation>
+<translation id="4300229033992784001">ನಿಮ್ಮ ಖಾತೆಯ ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಗಿದೆ. ನಿಮ್ಮ Windows ಖಾತೆಯನ್ನು ನಿಮ್ಮ ಕೆಲಸದ ಖಾತೆಯೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡುವುದಕ್ಕಾಗಿ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ Windows ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ.</translation>
+<translation id="4706454071748629324">ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಲು ವಿಫಲವಾಗಿದೆ. ಕೆಲಸದ ಖಾತೆಯನ್ನು ಬಳಸಿ, ಒಬ್ಬ ಬಳಕೆದಾರನನ್ನು ಮಾತ್ರ ರಚಿಸಲು ಈ ಕಂಪ್ಯೂಟರ್ ಅನುಮತಿ ನೀಡುತ್ತದೆ.</translation>
+<translation id="6292766200512304540">ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಬಳಕೆದಾರನನ್ನು ರಚಿಸಲಾಗಿದೆ</translation>
+<translation id="6312494990035843744">ಈ ಡೊಮೇನ್‌ನಲ್ಲಿ ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅನುಮತಿಯಿಲ್ಲ. ಬೇರೊಂದು ಖಾತೆಯನ್ನು ಬಳಸಿ ನೋಡಿ.</translation>
+<translation id="6463752215771576050">ಎಂಟರ್‌ಪ್ರೈಸ್ ನಿರ್ವಹಣೆಗಾಗಿ ಈ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ನೋಂದಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.  ಬೇರೊಂದು ಕೆಲಸದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
+<translation id="7135123390294776473">ಪ್ರಸ್ತುತ, ಈ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಿದ ಬಳಕೆದಾರರು ಮಾತ್ರ ಇದಕ್ಕೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅನುಮತಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="7357241217513796177">ನೀವು ನೆಟ್‌‌ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರುವಿರಾ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="7463006580194749499">ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸು</translation>
 <translation id="8440458902131551808">ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಲಾಕ್ ಮಾಡಲಾಗಿದೆ. ಸಿಸ್ಟಂ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="8474372283141585908">Google ರುಜುವಾತು ಪೂರೈಕೆದಾರ</translation>
 <translation id="866458870819756755">ಬಳಕೆದಾರರೊಬ್ಬರನ್ನು ರಚಿಸಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="8860262547644202689">Google ರುಜುವಾತು ಪೂರೈಕೆದಾರ ಸಹಾಯಕ</translation>
+<translation id="9135619837062629367">ಈ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅನುಮತಿಯಿಲ್ಲ. ಬೇರೊಂದು ಖಾತೆಯನ್ನು ಬಳಸಿ ನೋಡಿ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
index 61265864..f1254b47 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_pt-PT.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-PT">
 <translation id="1383286653814676580">Utilizado para executar a página de início de sessão do Google Credential Provider.</translation>
+<translation id="1894475569413661128">Inicie sessão com a sua conta profissional.</translation>
+<translation id="2469311484561825731">Falha ao iniciar sessão na sua conta profissional. Certifique-se de que o computador possui uma ligação à Internet e, em seguida, tente novamente.</translation>
 <translation id="2595469428674600431">Lamentamos, mas não foi possível validar a sua palavra-passe do Windows. Tente novamente.</translation>
+<translation id="3306357053520292004">Já foi adicionado um utilizador neste computador com esta conta. Inicie sessão com uma conta diferente.</translation>
 <translation id="4057329986137569701">Ocorreu um erro interno.</translation>
+<translation id="4300229033992784001">A palavra-passe da sua conta foi alterada. Introduza a sua palavra-passe do Windows atual para sincronizar a conta do Windows com a sua conta profissional.</translation>
+<translation id="4706454071748629324">Falha ao adicionar um novo utilizador. Este computador apenas permite a criação de um utilizador através de uma conta profissional.</translation>
+<translation id="6292766200512304540">O utilizador foi criado a partir de uma conta profissional.</translation>
+<translation id="6312494990035843744">Não é permitido iniciar sessão com uma conta profissional neste domínio. Experimente com outra conta.</translation>
+<translation id="6463752215771576050">Não é possível inscrever este computador para gestão empresarial.  Inicie sessão com uma conta profissional diferente.</translation>
+<translation id="7135123390294776473">Apenas o utilizador que bloqueou este computador tem atualmente autorização para iniciar sessão.</translation>
 <translation id="7357241217513796177">Certifique-se de que tem uma ligação de rede e tente novamente.</translation>
 <translation id="7463006580194749499">Adicionar pessoa</translation>
 <translation id="8440458902131551808">A sua conta foi bloqueada. Contacte um administrador do sistema.</translation>
 <translation id="8474372283141585908">Google Credential Provider</translation>
 <translation id="866458870819756755">Não foi possível criar um utilizador.</translation>
 <translation id="8860262547644202689">Assistente do Google Credential Provider</translation>
+<translation id="9135619837062629367">Não é permitido iniciar sessão com esta conta. Experimente uma conta diferente.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
index a76d3ce..5ff93d8 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sl.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sl">
 <translation id="1383286653814676580">Uporabljeno za izvajanje strani za prijavo z Googlovim ponudnikom poverilnic.</translation>
+<translation id="1894475569413661128">Prijavite se s službenim računom.</translation>
+<translation id="2469311484561825731">Prijava v službeni račun ni uspela. Preverite, ali je v računalniku vzpostavljena internetna povezava, in poskusite znova.</translation>
 <translation id="2595469428674600431">Gesla za Windows ni bilo mogoče preveriti. Poskusite znova.</translation>
+<translation id="3306357053520292004">V tem računalniku je že bil dodan uporabnik s tem računom. Prijavite se z drugim računom.</translation>
 <translation id="4057329986137569701">Prišlo je do notranje napake.</translation>
+<translation id="4300229033992784001">Geslo računa je spremenjeno. Vnesite trenutno geslo za Windows, če želite sinhronizirati račun za Windows s službenim računom.</translation>
+<translation id="4706454071748629324">Ni bilo mogoče dodati novega uporabnika. V tem računalniku je s službenim računom dovoljeno ustvariti samo enega uporabnika.</translation>
+<translation id="6292766200512304540">Uporabnik ustvarjen s službenim računom</translation>
+<translation id="6312494990035843744">Prijava s službenim računom v tej domeni ni dovoljena. Poskusite z drugim računom.</translation>
+<translation id="6463752215771576050">Tega računalnika ni mogoče včlaniti za upravljanje v poslovnem okolju.  Prijavite se z drugim službenim računom.</translation>
+<translation id="7135123390294776473">Samo uporabnik, ki je zaklenil ta računalnik, se trenutno lahko prijavi.</translation>
 <translation id="7357241217513796177">Prepričajte se, da imate omrežno povezavo, in poskusite znova.</translation>
 <translation id="7463006580194749499">Dodaj osebo</translation>
 <translation id="8440458902131551808">Vaš račun je zaklenjen. Obrnite se na skrbnika sistema.</translation>
 <translation id="8474372283141585908">Googlov ponudnik poverilnic</translation>
 <translation id="866458870819756755">Uporabnika ni bilo mogoče ustvariti.</translation>
 <translation id="8860262547644202689">Orodje za pomoč za Googlov ponudnik poverilnic</translation>
+<translation id="9135619837062629367">Prijava s tem računom ni dovoljena. Poskusite z drugim računom.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
index 3cd01b854..e555909 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_sv.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
 <translation id="1383286653814676580">Används för att köra inloggningssidan för Google Credential Provider.</translation>
+<translation id="1894475569413661128">Logga in med ditt jobbkonto.</translation>
+<translation id="2469311484561825731">Det gick inte att logga in på jobbkontot. Kontrollera att datorn är ansluten till internet och försök sedan igen.</translation>
 <translation id="2595469428674600431">Det gick inte att verifiera Windows-lösenordet. Försök igen.</translation>
+<translation id="3306357053520292004">En användare på den här datorn har redan lagts till med det här kontot. Logga in med ett annat konto.</translation>
 <translation id="4057329986137569701">Ett internt fel uppstod.</translation>
+<translation id="4300229033992784001">Kontots lösenord har ändrats Ange ditt nuvarande lösenord för Windows för att synkronisera Windows-kontot med jobbkontot.</translation>
+<translation id="4706454071748629324">Det gick inte att lägga till en ny användare. Datorn tillåter bara att en användare skapas med ett jobbkonto.</translation>
+<translation id="6292766200512304540">Användare skapad från ett jobbkonto</translation>
+<translation id="6312494990035843744">Det är inte tillåtet att logga in med ett jobbkonto på den här domänen. Testa att logga in med ett annat konto.</translation>
+<translation id="6463752215771576050">Det går inte att registrera datorn för företagshantering.  Logga in med ett annat jobbkonto.</translation>
+<translation id="7135123390294776473">Bara den användare som låste datorn kan logga in.</translation>
 <translation id="7357241217513796177">Kontrollera nätverksanslutningen och försök igen.</translation>
 <translation id="7463006580194749499">Lägg till person</translation>
 <translation id="8440458902131551808">Ditt konto har låsts. Kontakta systemadministratören.</translation>
 <translation id="8474372283141585908">Google Credential Provider</translation>
 <translation id="866458870819756755">Det gick inte att skapa en användare.</translation>
 <translation id="8860262547644202689">Google Credential Provider Helper</translation>
+<translation id="9135619837062629367">Det är inte tillåtet att logga in med det här kontot. Testa med ett annat konto.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
index 982b0699..b73cfdf 100644
--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
+++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_te.xtb
@@ -2,12 +2,22 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="te">
 <translation id="1383286653814676580">Google ఆధారాల ప్రదాత సైన్ ఇన్ పేజీని అమలు చేయడానికి ఉపయోగించబడుతుంది.</translation>
+<translation id="1894475569413661128">మీ కార్యాలయ ఖాతాని ఉపయోగించి సైన్ ఇన్ చేయండి.</translation>
+<translation id="2469311484561825731">మీ కార్యాలయ ఖాతాకు సైన్ ఇన్ చేయడం విఫలమైంది. కంప్యూటర్‌లో ఇంటర్నెట్ కనెక్షన్ ఉన్నట్లు నిర్ధారించుకుని, మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="2595469428674600431">క్షమించండి, మీ Windows పాస్‌వర్డ్‌ను ధృవీకరించడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="3306357053520292004">ఈ ఖాతాని ఉపయోగించి ఇప్పటికే ఈ కంప్యూటర్‌లో ఒక వినియోగదారు జోడించబడ్డారు. వేరే ఖాతాతో సైన్ ఇన్ చేయండి.</translation>
 <translation id="4057329986137569701">అంతర్గత ఎర్రర్ ఏర్పడింది.</translation>
+<translation id="4300229033992784001">మీ ఖాతా పాస్‌వర్డ్ మార్చబడింది. మీ Windows ఖాతాని మీ కార్యాలయ ఖాతాతో సమకాలీకరించడం కోసం మీ ప్రస్తుత Windows పాస్‌వర్డ్‌ని నమోదు చేయండి.</translation>
+<translation id="4706454071748629324">కొత్త వినియోగదారుని జోడించడం విఫలమైంది. కార్యాలయ ఖాతాని ఉపయోగించి ఒక వినియోగదారుని సృష్టించడానికి మాత్రమే ఈ కంప్యూటర్ అనుమతిస్తుంది.</translation>
+<translation id="6292766200512304540">కార్యాలయ ఖాతా నుండి వినియోగదారు సృష్టించబడ్డారు</translation>
+<translation id="6312494990035843744">కార్యాలయ ఖాతాతో సైన్ ఇన్ చేయడానికి ఈ డొమైన్‌లో అనుమతి లేదు. వేరే ఖాతాతో ప్రయత్నించండి.</translation>
+<translation id="6463752215771576050">ఈ కంప్యూటర్‌ను ఎంటర్‌ప్రైజ్ నిర్వహణ కోసం నమోదు చేయడం సాధ్యపడలేదు.  వేరే కార్యాలయ ఖాతాతో సైన్ ఇన్ చేయండి.</translation>
+<translation id="7135123390294776473">ప్రస్తుతం ఈ కంప్యూటర్‌ని లాక్ చేసిన వినియోగదారు మాత్రమే సైన్ ఇన్ చేయగలరు.</translation>
 <translation id="7357241217513796177">మీకు నెట్‌వర్క్ కనెక్షన్ ఉందని నిర్ధారించుకుని, ఆపై మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="7463006580194749499">వ్యక్తిని జోడించు</translation>
 <translation id="8440458902131551808">మీ ఖాతా లాక్ చేయబడింది. దయచేసి సిస్టమ్ నిర్వాహకుడిని సంప్రదించండి.</translation>
 <translation id="8474372283141585908">Google ఆధారాల ప్రదాత</translation>
 <translation id="866458870819756755">వినియోగదారుని సృష్టించడం సాధ్యం కాలేదు.</translation>
 <translation id="8860262547644202689">Google ఆధారాల ప్రదాత హెల్పర్</translation>
+<translation id="9135619837062629367">ఈ ఖాతాతో సైన్ ఇన్ చేయడానికి అనుమతి లేదు. వేరే ఖాతాతో ప్రయత్నించండి.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/chrome/renderer/resources/extensions/automation_custom_bindings.js b/chrome/renderer/resources/extensions/automation_custom_bindings.js
index e2d41e6..170381d 100644
--- a/chrome/renderer/resources/extensions/automation_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/automation_custom_bindings.js
@@ -22,12 +22,6 @@
     nativeAutomationInternal.RemoveTreeChangeObserver;
 var GetFocusNative = nativeAutomationInternal.GetFocus;
 
-var jsLastError = bindingUtil ? undefined : require('lastError');
-function hasLastError() {
-  return bindingUtil ?
-      bindingUtil.hasLastError() : jsLastError.hasError(chrome);
-}
-
 /**
  * A namespace to export utility functions to other files in automation.
  */
@@ -121,7 +115,7 @@
     var params = { tabID: tabID };
     automationInternal.enableTab(params,
         function onEnable(id) {
-          if (hasLastError()) {
+          if (bindingUtil.hasLastError()) {
             callback();
             return;
           }
@@ -136,7 +130,7 @@
       desktopTree = AutomationRootNode.get(desktopId);
     if (!desktopTree) {
       automationInternal.enableDesktop(function(treeId) {
-        if (hasLastError()) {
+        if (bindingUtil.hasLastError()) {
           AutomationRootNode.destroy(treeId);
           desktopId = undefined;
           callback();
diff --git a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
index 70a96c8..91fae5a 100644
--- a/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/browser_action_custom_bindings.js
@@ -6,25 +6,14 @@
 
 var setIcon = require('setIcon').setIcon;
 var getExtensionViews = requireNative('runtime').GetExtensionViews;
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
-
-var jsLastError = bindingUtil ? undefined : require('lastError');
-function hasLastError() {
-  return bindingUtil ?
-      bindingUtil.hasLastError() : jsLastError.hasError(chrome);
-}
 
 apiBridge.registerCustomHook(function(bindingsAPI) {
   var apiFunctions = bindingsAPI.apiFunctions;
 
   apiFunctions.setHandleRequest('setIcon', function(details, callback) {
     setIcon(details, function(args) {
-      sendRequest('browserAction.setIcon',
-                  [args, callback],
-                  apiBridge ? undefined : this.definition.parameters,
-                  undefined);
+      bindingUtil.sendRequest(
+          'browserAction.setIcon', [args, callback], undefined, undefined);
     }.bind(this));
   });
 
@@ -33,7 +22,7 @@
     if (!callback)
       return;
 
-    if (hasLastError()) {
+    if (bindingUtil.hasLastError()) {
       callback();
     } else {
       var views = getExtensionViews(-1, -1, 'POPUP');
diff --git a/chrome/renderer/resources/extensions/certificate_provider_custom_bindings.js b/chrome/renderer/resources/extensions/certificate_provider_custom_bindings.js
index 33d94f75..52825e2d 100644
--- a/chrome/renderer/resources/extensions/certificate_provider_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/certificate_provider_custom_bindings.js
@@ -7,23 +7,10 @@
         getInternalApi('certificateProviderInternal') :
         require('binding').Binding.create(
             'certificateProviderInternal').generate();
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
 
 var certificateProviderSchema =
     requireNative('schema_registry').GetSchema('certificateProvider')
 var utils = require('utils');
-var validate = bindingUtil ? undefined : require('schemaUtils').validate;
-
-// Validates that the result passed by the extension to the event callback
-// matches the callback schema. Throws an exception in case of an error.
-function validateListenerResponse(eventName, expectedSchema, listenerResponse) {
-  if (bindingUtil)
-    bindingUtil.validateCustomSignature(eventName, listenerResponse);
-  else
-    validate(listenerResponse, expectedSchema);
-}
 
 // Custom bindings for chrome.certificateProvider API.
 // The bindings are used to implement callbacks for the API events. Internally
@@ -52,10 +39,10 @@
       utils.lookup(eventSchema.parameters, 'type', 'function').parameters;
   var fullEventName = 'certificateProvider.' + eventName;
 
-  if (bindingUtil)
-    bindingUtil.addCustomSignature(fullEventName, callbackSchema);
+  bindingUtil.addCustomSignature(fullEventName, callbackSchema);
 
-  registerArgumentMassager(fullEventName, function(args, dispatch) {
+  bindingUtil.registerEventArgumentMassager(fullEventName,
+                                            function(args, dispatch) {
     var responded = false;
 
     // Function provided to the extension as the event callback argument.
@@ -74,7 +61,7 @@
         // Validates that the results reported by the extension matche the
         // callback schema of the event. Throws an exception in case of an
         // error.
-        validateListenerResponse(fullEventName, callbackSchema, reportArgs);
+        bindingUtil.validateCustomSignature(fullEventName, reportArgs);
         finalArgs = reportArgs;
       } finally {
         responded = true;
diff --git a/chrome/renderer/resources/extensions/desktop_capture_custom_bindings.js b/chrome/renderer/resources/extensions/desktop_capture_custom_bindings.js
index 3e5d04c6..f7e4c286 100644
--- a/chrome/renderer/resources/extensions/desktop_capture_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/desktop_capture_custom_bindings.js
@@ -4,9 +4,6 @@
 
 // Custom binding for the desktopCapture API.
 
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 var idGenerator = requireNative('id_generator');
 
 apiBridge.registerCustomHook(function(bindingsAPI) {
@@ -31,20 +28,20 @@
     }
     var id = idGenerator.GetNextId();
     pendingRequests[id] = callback;
-    sendRequest('desktopCapture.chooseDesktopMedia',
-                [id, sources, target_tab,
-                 $Function.bind(onRequestResult, null, id)],
-                apiBridge ? undefined : this.definition.parameters,
-                undefined);
+    bindingUtil.sendRequest('desktopCapture.chooseDesktopMedia',
+                            [id, sources, target_tab,
+                            $Function.bind(onRequestResult, null, id)],
+                            undefined, undefined);
     return id;
   });
 
   apiFunctions.setHandleRequest('cancelChooseDesktopMedia', function(id) {
     if (id in pendingRequests) {
       delete pendingRequests[id];
-      sendRequest('desktopCapture.cancelChooseDesktopMedia',
-                  [id], apiBridge ? undefined : this.definition.parameters,
-                  undefined);
+      bindingUtil.sendRequest(
+          'desktopCapture.cancelChooseDesktopMedia',
+          [id], undefined, undefined);
     }
   });
 });
+
diff --git a/chrome/renderer/resources/extensions/downloads_custom_bindings.js b/chrome/renderer/resources/extensions/downloads_custom_bindings.js
index 5609194..0e9c78fa 100644
--- a/chrome/renderer/resources/extensions/downloads_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/downloads_custom_bindings.js
@@ -8,12 +8,9 @@
     getInternalApi ?
         getInternalApi('downloadsInternal') :
         require('binding').Binding.create('downloadsInternal').generate();
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
 
-registerArgumentMassager('downloads.onDeterminingFilename',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('downloads.onDeterminingFilename',
+                                          function(args, dispatch) {
   var downloadItem = args[0];
   // Copy the id so that extensions can't change it.
   var downloadId = downloadItem.id;
diff --git a/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js b/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js
index 7b24b7e..3969919 100644
--- a/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/file_browser_handler_custom_bindings.js
@@ -4,9 +4,6 @@
 
 // Custom binding for the fileBrowserHandler API.
 
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
 var fileBrowserNatives = requireNative('file_browser_handler');
 var GetExternalFileEntry = fileBrowserNatives.GetExternalFileEntry;
 var fileBrowserHandlerInternal =
@@ -15,8 +12,8 @@
         require('binding').Binding.create('fileBrowserHandlerInternal')
             .generate();
 
-registerArgumentMassager('fileBrowserHandler.onExecute',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('fileBrowserHandler.onExecute',
+                                          function(args, dispatch) {
   if (args.length < 2) {
     dispatch(args);
     return;
diff --git a/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js b/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
index 52c7b095..7c36e5a 100644
--- a/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/file_manager_private_custom_bindings.js
@@ -4,11 +4,6 @@
 
 // Custom binding for the fileManagerPrivate API.
 
-// Bindings
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
-
 // Natives
 var fileManagerPrivateNatives = requireNative('file_manager_private');
 
@@ -271,15 +266,15 @@
   });
 });
 
-registerArgumentMassager('fileManagerPrivate.onDirectoryChanged',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager(
+    'fileManagerPrivate.onDirectoryChanged', function(args, dispatch) {
   // Convert the entry arguments into a real Entry object.
   args[0].entry = GetExternalFileEntry(args[0].entry);
   dispatch(args);
 });
 
-registerArgumentMassager('fileManagerPrivate.onCrostiniChanged',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager(
+    'fileManagerPrivate.onCrostiniChanged', function(args, dispatch) {
   // Convert entries arguments into real Entry objects.
   const entries = args[0].entries;
   for (let i = 0; i < entries.length; i++) {
diff --git a/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
index 953d2a0..567e64e 100644
--- a/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/file_system_provider_custom_bindings.js
@@ -9,9 +9,6 @@
         getInternalApi('fileSystemProviderInternal') :
         require('binding').Binding.create('fileSystemProviderInternal')
             .generate();
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
 
 /**
  * Maximum size of the thumbnail in bytes.
@@ -183,11 +180,11 @@
   dispatch([options, onSuccessCallback, onErrorCallback]);
 }
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onUnmountRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onGetMetadataRequested',
     function(args, dispatch) {
       var executionStart = Date.now();
@@ -218,7 +215,7 @@
       dispatch([options, onSuccessCallback, onErrorCallback]);
     });
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onGetActionsRequested',
     function(args, dispatch) {
       var executionStart = Date.now();
@@ -242,7 +239,7 @@
       dispatch([options, onSuccessCallback, onErrorCallback]);
     });
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onReadDirectoryRequested',
     function(args, dispatch) {
       var executionStart = Date.now();
@@ -279,15 +276,15 @@
       dispatch([options, onSuccessCallback, onErrorCallback]);
     });
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onOpenFileRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onCloseFileRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onReadFileRequested',
     function(args, dispatch) {
       var executionStart = Date.now();
@@ -307,63 +304,63 @@
       dispatch([options, onSuccessCallback, onErrorCallback]);
     });
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onCreateDirectoryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onDeleteEntryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onCreateFileRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onCopyEntryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onMoveEntryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onTruncateRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onWriteFileRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onAbortRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onObserveDirectoryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onUnobserveEntryRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onAddWatcherRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onRemoveWatcherRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onConfigureRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onExecuteActionRequested',
     massageArgumentsDefault);
 
-registerArgumentMassager(
+bindingUtil.registerEventArgumentMassager(
     'fileSystemProvider.onMountRequested',
     function(args, dispatch) {
       var onSuccessCallback = function() {
diff --git a/chrome/renderer/resources/extensions/input.ime_custom_bindings.js b/chrome/renderer/resources/extensions/input.ime_custom_bindings.js
index 3a75ed5..5b239c6 100644
--- a/chrome/renderer/resources/extensions/input.ime_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/input.ime_custom_bindings.js
@@ -6,13 +6,10 @@
 // v8 contexts for extensions which have permission for the API.
 
 var appWindowNatives = requireNative('app_window_natives');
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
 
 var keyEventHandled;
-registerArgumentMassager('input.ime.onKeyEvent',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('input.ime.onKeyEvent',
+                                          function(args, dispatch) {
   var keyData = args[1];
   var result = undefined;
   try {
diff --git a/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js b/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
index ca92ca2c..1ac87af7 100644
--- a/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/media_galleries_custom_bindings.js
@@ -6,9 +6,6 @@
 
 var blobNatives = requireNative('blob_natives');
 var mediaGalleriesNatives = requireNative('mediaGalleries');
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 
 var blobsAwaitingMetadata = {};
 var mediaGalleriesMetadata = {};
@@ -102,7 +99,8 @@
       customCallback: $Function.bind(getMetadataCallback, null, blobUuid),
     };
 
-    sendRequest('mediaGalleries.getMetadata', [blobUuid, options, callback],
-                bindingUtil ? undefined : this.definition.parameters, optArgs);
+    bindingUtil.sendRequest(
+        'mediaGalleries.getMetadata', [blobUuid, options, callback],
+        undefined, optArgs);
   });
 });
diff --git a/chrome/renderer/resources/extensions/notifications_custom_bindings.js b/chrome/renderer/resources/extensions/notifications_custom_bindings.js
index 94d773a7..39768a7 100644
--- a/chrome/renderer/resources/extensions/notifications_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/notifications_custom_bindings.js
@@ -4,24 +4,10 @@
 
 // Custom bindings for the notifications API.
 //
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 var exceptionHandler = require('uncaught_exception_handler');
 var imageUtil = require('imageUtil');
 var notificationsPrivate = requireNative('notifications_private');
 
-var jsLastError = bindingUtil ? undefined : require('lastError');
-function runCallbackWithLastError(name, message, stack, callback, args) {
-  if (bindingUtil) {
-    bindingUtil.runCallbackWithLastError(message, function() {
-      $Function.apply(callback, null, args);
-    });
-  } else {
-    jsLastError.run(name, message, stack, callback, args);
-  }
-}
-
 function imageDataSetter(context, key) {
   var f = function(val) {
     this[key] = val;
@@ -128,15 +114,14 @@
     var stack = exceptionHandler.getExtensionStackTrace();
     replaceNotificationOptionURLs(notification_details, function(success) {
       if (success) {
-        sendRequest(
-            name, [id, notification_details, callback],
-            bindingUtil ? undefined : that.definition.parameters,
-            bindingUtil ? undefined : {__proto__: null, stack: stack});
+        bindingUtil.sendRequest(
+            name, [id, notification_details, callback], undefined, undefined);
         return;
       }
-      runCallbackWithLastError(
-          name, 'Unable to download all specified images.',
-          stack, failure_function, [callback || function() {}, id]);
+      bindingUtil.runCallbackWithLastError(
+          'Unable to download all specified images.',
+          $Function.bind(failure_function, null,
+                         callback || function() {}, id));
     });
   };
 }
diff --git a/chrome/renderer/resources/extensions/omnibox_custom_bindings.js b/chrome/renderer/resources/extensions/omnibox_custom_bindings.js
index 6e1815a..4b7f302 100644
--- a/chrome/renderer/resources/extensions/omnibox_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/omnibox_custom_bindings.js
@@ -5,14 +5,6 @@
 // Custom binding for the omnibox API. Only injected into the v8 contexts
 // for extensions which have permission for the omnibox API.
 
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
-
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
-
 // Remove invalid characters from |text| so that it is suitable to use
 // for |AutocompleteMatch::contents|.
 function sanitizeString(text, shouldTrim) {
@@ -98,9 +90,8 @@
 
   apiFunctions.setHandleRequest('setDefaultSuggestion', function(details) {
     var parseResult = parseOmniboxDescription(details.description);
-    sendRequest('omnibox.setDefaultSuggestion', [parseResult],
-                bindingUtil ? undefined : this.definition.parameters,
-                undefined);
+    bindingUtil.sendRequest('omnibox.setDefaultSuggestion', [parseResult],
+                            undefined, undefined);
   });
 
   apiFunctions.setUpdateArgumentsPostValidate(
@@ -117,7 +108,8 @@
   });
 });
 
-registerArgumentMassager('omnibox.onInputChanged', function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('omnibox.onInputChanged',
+                                          function(args, dispatch) {
   var text = args[0];
   var requestId = args[1];
   var suggestCallback = function(suggestions) {
diff --git a/chrome/renderer/resources/extensions/page_action_custom_bindings.js b/chrome/renderer/resources/extensions/page_action_custom_bindings.js
index 05d2fc303..562241c 100644
--- a/chrome/renderer/resources/extensions/page_action_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/page_action_custom_bindings.js
@@ -5,18 +5,14 @@
 // Custom binding for the pageAction API.
 
 var setIcon = require('setIcon').setIcon;
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 
 apiBridge.registerCustomHook(function(bindingsAPI) {
   var apiFunctions = bindingsAPI.apiFunctions;
 
   apiFunctions.setHandleRequest('setIcon', function(details, callback) {
     setIcon(details, $Function.bind(function(args) {
-      sendRequest('pageAction.setIcon', [args, callback],
-                  bindingUtil ? undefined : this.definition.parameters,
-                  undefined);
+      bindingUtil.sendRequest('pageAction.setIcon', [args, callback],
+                              undefined, undefined);
     }, this));
   });
 });
diff --git a/chrome/renderer/resources/extensions/platform_keys/subtle_crypto.js b/chrome/renderer/resources/extensions/platform_keys/subtle_crypto.js
index 7dce044..91bf3a3 100644
--- a/chrome/renderer/resources/extensions/platform_keys/subtle_crypto.js
+++ b/chrome/renderer/resources/extensions/platform_keys/subtle_crypto.js
@@ -11,17 +11,6 @@
 var normalizeAlgorithm =
     requireNative('platform_keys_natives').NormalizeAlgorithm;
 
-var hasLastError;
-var clearLastError;
-if (bindingUtil) {
-  hasLastError = $Function.bind(bindingUtil.hasLastError, bindingUtil);
-  clearLastError = $Function.bind(bindingUtil.clearLastError, bindingUtil);
-} else {
-  var lastError = require('lastError');
-  hasLastError = function() { return lastError.hasError(chrome); };
-  clearLastError = function() { return lastError.clear(chrome); };
-}
-
 // This error is thrown by the internal and public API's token functions and
 // must be rethrown by this custom binding. Keep this in sync with the C++ part
 // of this API.
@@ -52,10 +41,10 @@
 // Catches an |internalErrorInvalidToken|. If so, forwards it to |reject| and
 // returns true.
 function catchInvalidTokenError(reject) {
-  if (hasLastError() &&
+  if (bindingUtil.hasLastError() &&
       chrome.runtime.lastError.message == errorInvalidToken) {
     var error = chrome.runtime.lastError;
-    clearLastError();
+    bindingUtil.clearLastError();
     reject(error);
     return true;
   }
@@ -98,8 +87,8 @@
                      function(signature) {
       if (catchInvalidTokenError(reject))
         return;
-      if (hasLastError()) {
-        clearLastError();
+      if (bindingUtil.hasLastError()) {
+        bindingUtil.clearLastError();
         reject(CreateOperationError());
         return;
       }
diff --git a/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js b/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
index 586cd573..56dfe96 100644
--- a/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/sync_file_system_custom_bindings.js
@@ -4,10 +4,6 @@
 
 // Custom binding for the syncFileSystem API.
 
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
-
 var fileSystemNatives = requireNative('file_system_natives');
 var syncFileSystemNatives = requireNative('sync_file_system');
 
@@ -84,8 +80,8 @@
   });
 });
 
-registerArgumentMassager('syncFileSystem.onFileStatusChanged',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('syncFileSystem.onFileStatusChanged',
+                                          function(args, dispatch) {
   // Make FileEntry object using all the base string fields.
   var fileEntry = fileSystemNatives.GetFileEntry(
       args[0].fileSystemType,
diff --git a/chrome/renderer/resources/extensions/system_indicator_custom_bindings.js b/chrome/renderer/resources/extensions/system_indicator_custom_bindings.js
index d051a57..e13f991 100644
--- a/chrome/renderer/resources/extensions/system_indicator_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/system_indicator_custom_bindings.js
@@ -7,18 +7,14 @@
 // extension action APIs.
 
 var setIcon = require('setIcon').setIcon;
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 
 apiBridge.registerCustomHook(function(bindingsAPI) {
   var apiFunctions = bindingsAPI.apiFunctions;
 
   apiFunctions.setHandleRequest('setIcon', function(details, callback) {
     setIcon(details, $Function.bind(function(args) {
-      sendRequest('systemIndicator.setIcon', [args, callback],
-                  bindingUtil ? undefined : this.definition.parameters,
-                  undefined);
+      bindingUtil.sendRequest('systemIndicator.setIcon', [args, callback],
+                              undefined, undefined);
     }, this));
   });
 });
diff --git a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
index dd44544..e3e9344 100644
--- a/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/tab_capture_custom_bindings.js
@@ -4,17 +4,6 @@
 
 // Custom binding for the Tab Capture API.
 
-var jsLastError = bindingUtil ? undefined : require('lastError');
-function runCallbackWithLastError(name, message, stack, callback, args) {
-  if (bindingUtil) {
-    bindingUtil.runCallbackWithLastError(message, function() {
-      $Function.apply(callback, null, args);
-    });
-  } else {
-    jsLastError.run(name, message, stack, callback, args);
-  }
-}
-
 apiBridge.registerCustomHook(function(bindingsAPI, extensionId) {
   var apiFunctions = bindingsAPI.apiFunctions;
 
@@ -50,16 +39,14 @@
             callback(media_stream);
           },
           function onError(error) {
-            runCallbackWithLastError(
-                name,
+            bindingUtil.runCallbackWithLastError(
                 getErrorMessage(error, "Failed to start MediaStream."),
-                request.stack,
-                function() { callback(null); });
+                $Function.bind(callback, null, null));
           });
     } catch (error) {
-      runCallbackWithLastError(
-          name, getErrorMessage(error, "Invalid argument(s)."), request.stack,
-          function() { callback(null); });
+      bindingUtil.runCallbackWithLastError(
+          getErrorMessage(error, "Invalid argument(s)."),
+          $Function.bind(callback, null, null));
     }
   }
 
diff --git a/chrome/renderer/resources/extensions/terminal_private_custom_bindings.js b/chrome/renderer/resources/extensions/terminal_private_custom_bindings.js
index dc592eb..49957cc 100644
--- a/chrome/renderer/resources/extensions/terminal_private_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/terminal_private_custom_bindings.js
@@ -2,13 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
-
 // Custom bindings for chrome.terminalPrivate API.
-registerArgumentMassager('terminalPrivate.onProcessOutput',
-                         function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('terminalPrivate.onProcessOutput',
+                                          function(args, dispatch) {
   var tabId = args[0];
   var terminalId = args[1];
   try {
diff --git a/chrome/renderer/resources/extensions/tts_custom_bindings.js b/chrome/renderer/resources/extensions/tts_custom_bindings.js
index a0f4a3d..0a0d6f89 100644
--- a/chrome/renderer/resources/extensions/tts_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/tts_custom_bindings.js
@@ -5,9 +5,6 @@
 // Custom binding for the tts API.
 
 var idGenerator = requireNative('id_generator');
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 var lazyBG = requireNative('lazy_background_page');
 
 apiBridge.registerCustomHook(function(api) {
@@ -58,9 +55,7 @@
             'in Chrome 71.');
       }
     }
-    sendRequest('tts.speak', args,
-                bindingUtil ? undefined : this.definition.parameters,
-                undefined);
+    bindingUtil.sendRequest('tts.speak', args, undefined, undefined);
     return id;
   });
 });
diff --git a/chrome/renderer/resources/extensions/tts_engine_custom_bindings.js b/chrome/renderer/resources/extensions/tts_engine_custom_bindings.js
index 3713092..0a314b769 100644
--- a/chrome/renderer/resources/extensions/tts_engine_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/tts_engine_custom_bindings.js
@@ -4,14 +4,8 @@
 
 // Custom binding for the ttsEngine API.
 
-var registerArgumentMassager = bindingUtil ?
-    $Function.bind(bindingUtil.registerEventArgumentMassager, bindingUtil) :
-    require('event_bindings').registerArgumentMassager;
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
-
-registerArgumentMassager('ttsEngine.onSpeak', function(args, dispatch) {
+bindingUtil.registerEventArgumentMassager('ttsEngine.onSpeak',
+                                          function(args, dispatch) {
   var text = args[0];
   var options = args[1];
   var requestId = args[2];
@@ -33,8 +27,7 @@
         break;
       }
     }
-    sendRequest(
-        'ttsEngine.updateVoices', [voices],
-        bindingUtil ? undefined : this.definition.parameters, undefined);
+    bindingUtil.sendRequest(
+        'ttsEngine.updateVoices', [voices], undefined, undefined);
   });
 }.bind(this));
diff --git a/chrome/renderer/resources/extensions/web_view/chrome_web_view.js b/chrome/renderer/resources/extensions/web_view/chrome_web_view.js
index c32c649..ccdb7db 100644
--- a/chrome/renderer/resources/extensions/web_view/chrome_web_view.js
+++ b/chrome/renderer/resources/extensions/web_view/chrome_web_view.js
@@ -32,15 +32,6 @@
 var ContextMenusHandlerEvent =
     CreateEvent('chromeWebViewInternal.onContextMenuShow');
 
-var jsEvent;
-function createCustomEvent(name, schema, options, webviewId) {
-  if (bindingUtil)
-    return bindingUtil.createCustomEvent(name, undefined, false, false);
-  if (!jsEvent)
-    jsEvent = require('event_bindings').Event;
-  return new jsEvent(name, schema, options, webviewId);
-}
-
 function GetUniqueSubEventName(eventName) {
   return eventName + '/' + idGeneratorNatives.GetNextId();
 }
@@ -51,8 +42,8 @@
                                           opt_argSchemas,
                                           opt_eventOptions) {
   var subEventName = GetUniqueSubEventName(opt_eventName);
-  var newEvent = createCustomEvent(subEventName, opt_argSchemas,
-                                   opt_eventOptions, webViewInstanceId);
+  var newEvent =
+      bindingUtil.createCustomEvent(subEventName, undefined, false, false);
 
   var view = GuestViewInternalNatives.GetViewFromID(webViewInstanceId);
   if (view) {
@@ -73,8 +64,8 @@
                                               opt_argSchemas,
                                               opt_eventOptions) {
   var subEventName = GetUniqueSubEventName(opt_eventName);
-  var newEvent = createCustomEvent(subEventName, opt_argSchemas,
-                                   opt_eventOptions, webViewInstanceId);
+  var newEvent =
+      bindingUtil.createCustomEvent(subEventName, undefined, false, false);
 
   var view = GuestViewInternalNatives.GetViewFromID(webViewInstanceId);
   if (view) {
diff --git a/chrome/renderer/resources/extensions/webrtc_desktop_capture_private_custom_bindings.js b/chrome/renderer/resources/extensions/webrtc_desktop_capture_private_custom_bindings.js
index 846cf8a8..920ff07 100644
--- a/chrome/renderer/resources/extensions/webrtc_desktop_capture_private_custom_bindings.js
+++ b/chrome/renderer/resources/extensions/webrtc_desktop_capture_private_custom_bindings.js
@@ -4,9 +4,6 @@
 
 // Custom binding for the webrtcDesktopCapturePrivate API.
 
-var sendRequest = bindingUtil ?
-    $Function.bind(bindingUtil.sendRequest, bindingUtil) :
-    require('sendRequest').sendRequest;
 var idGenerator = requireNative('id_generator');
 
 apiBridge.registerCustomHook(function(bindingsAPI) {
@@ -26,20 +23,19 @@
                                 function(sources, request, callback) {
     var id = idGenerator.GetNextId();
     pendingRequests[id] = callback;
-    sendRequest('webrtcDesktopCapturePrivate.chooseDesktopMedia',
-                [id, sources, request,
-                 $Function.bind(onRequestResult, null, id)],
-                bindingUtil ? undefined : this.definition.parameters,
-                undefined);
+    bindingUtil.sendRequest(
+        'webrtcDesktopCapturePrivate.chooseDesktopMedia',
+        [id, sources, request, $Function.bind(onRequestResult, null, id)],
+        undefined, undefined);
     return id;
   });
 
   apiFunctions.setHandleRequest('cancelChooseDesktopMedia', function(id) {
     if (id in pendingRequests) {
       delete pendingRequests[id];
-      sendRequest('webrtcDesktopCapturePrivate.cancelChooseDesktopMedia', [id],
-                  bindingUtil ? undefined : this.definition.parameters,
-                  undefined);
+      bindingUtil.sendRequest(
+          'webrtcDesktopCapturePrivate.cancelChooseDesktopMedia', [id],
+          undefined, undefined);
     }
   });
 });
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index fd0d4d8..ab9fbfe 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -571,6 +571,8 @@
       "//components/module_installer/android:module_installer_stub_java",
       "//v8:v8_external_startup_data_assets",
     ]
+
+    enable_multidex = true
   } else {  # Not Android.
     sources += [
       # The list of sources which is only used by chrome browser tests on
@@ -1621,6 +1623,7 @@
         "../browser/ui/views/extensions/pwa_confirmation_view_browsertest.cc",
         "../browser/ui/views/external_protocol_dialog_browsertest.cc",
         "../browser/ui/views/folder_upload_confirmation_view_browsertest.cc",
+        "../browser/ui/views/frame/browser_frame_browsertest.cc",
         "../browser/ui/views/frame/browser_non_client_frame_view_browsertest.cc",
         "../browser/ui/views/frame/browser_root_view_browsertest.cc",
         "../browser/ui/views/frame/browser_view_browsertest.cc",
@@ -2959,6 +2962,7 @@
     "../common/mac/cfbundle_blocker_unittest.mm",
     "../common/mac/mock_launchd.h",
     "../common/mac/mock_launchd.mm",
+    "../common/mac/staging_watcher_unittest.mm",
     "../common/media_router/issue_unittest.cc",
     "../common/media_router/media_route_unittest.cc",
     "../common/media_router/media_sink_unittest.cc",
@@ -3249,6 +3253,8 @@
     } else {
       deps += [ "//v8:v8_external_startup_data_assets" ]
     }
+
+    enable_multidex = true
   } else {
     # !is_android
     sources += [
diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_process_browser_test.cc
index 418d801..372a2ca 100644
--- a/chrome/test/base/in_process_browser_test.cc
+++ b/chrome/test/base/in_process_browser_test.cc
@@ -116,6 +116,7 @@
 
 #if defined(TOOLKIT_VIEWS)
 #include "chrome/test/views/accessibility_checker.h"
+#include "ui/views/views_delegate.h"
 #endif
 
 namespace {
@@ -158,6 +159,16 @@
     InProcessBrowserTest::global_browser_set_up_function_ = nullptr;
 
 InProcessBrowserTest::InProcessBrowserTest()
+#if defined(TOOLKIT_VIEWS)
+    : InProcessBrowserTest(
+          base::BindOnce([]() -> std::unique_ptr<views::ViewsDelegate> {
+            return std::make_unique<AccessibilityChecker>();
+          })) {
+}
+
+InProcessBrowserTest::InProcessBrowserTest(
+    DelegateCallback viewsDelegateCallback)
+#endif  // defined(TOOLKIT_VIEWS)
     : browser_(NULL),
       exit_when_last_browser_closes_(true),
       open_about_blank_on_browser_launch_(true)
@@ -204,7 +215,7 @@
 #endif
 
 #if defined(TOOLKIT_VIEWS)
-  accessibility_checker_ = std::make_unique<AccessibilityChecker>();
+  views_delegate_ = std::move(viewsDelegateCallback).Run();
 #endif
 }
 
diff --git a/chrome/test/base/in_process_browser_test.h b/chrome/test/base/in_process_browser_test.h
index da5f677..c54eb21 100644
--- a/chrome/test/base/in_process_browser_test.h
+++ b/chrome/test/base/in_process_browser_test.h
@@ -42,8 +42,10 @@
 }  // namespace base
 
 #if defined(TOOLKIT_VIEWS)
-class AccessibilityChecker;
-#endif
+namespace views {
+class ViewsDelegate;
+}
+#endif  // defined(TOOLKIT_VIEWS)
 
 class Browser;
 class Profile;
@@ -113,6 +115,14 @@
 class InProcessBrowserTest : public content::BrowserTestBase {
  public:
   InProcessBrowserTest();
+#if defined(TOOLKIT_VIEWS)
+  using DelegateCallback =
+      base::OnceCallback<std::unique_ptr<views::ViewsDelegate>()>;
+  // |viewsDelegateCallback| is used for tests that want to use a derived class
+  // of ViewsDelegate to observe or modify things like window placement and
+  // Widget params.
+  explicit InProcessBrowserTest(DelegateCallback viewsDelegateCallback);
+#endif  // defined(TOOLKIT_VIEWS)
   ~InProcessBrowserTest() override;
 
   // Configures everything for an in process browser test, then invokes
@@ -290,7 +300,7 @@
 #endif
 
 #if defined(TOOLKIT_VIEWS)
-  std::unique_ptr<AccessibilityChecker> accessibility_checker_;
+  std::unique_ptr<views::ViewsDelegate> views_delegate_;
 #endif
 };
 
diff --git a/chrome/test/data/android/feed/events_single_large.gcl.bin b/chrome/test/data/android/feed/events_single_large.gcl.bin
index 8a7fdcb..38a4ac5 100644
--- a/chrome/test/data/android/feed/events_single_large.gcl.bin
+++ b/chrome/test/data/android/feed/events_single_large.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_large.gcl.bin b/chrome/test/data/android/feed/feed_large.gcl.bin
index dcc70e9..a237e75 100644
--- a/chrome/test/data/android/feed/feed_large.gcl.bin
+++ b/chrome/test/data/android/feed/feed_large.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_large_M72.gcl.bin b/chrome/test/data/android/feed/feed_large_M72.gcl.bin
index 0cc1df7b..20ee857a 100644
--- a/chrome/test/data/android/feed/feed_large_M72.gcl.bin
+++ b/chrome/test/data/android/feed/feed_large_M72.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_paging.gcl.bin b/chrome/test/data/android/feed/feed_paging.gcl.bin
index e31c7bc..d1461a3c 100644
--- a/chrome/test/data/android/feed/feed_paging.gcl.bin
+++ b/chrome/test/data/android/feed/feed_paging.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_paging_M72.gcl.bin b/chrome/test/data/android/feed/feed_paging_M72.gcl.bin
index 40b6ec6f..6905c20 100644
--- a/chrome/test/data/android/feed/feed_paging_M72.gcl.bin
+++ b/chrome/test/data/android/feed/feed_paging_M72.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_with_hero.gcl.bin b/chrome/test/data/android/feed/feed_with_hero.gcl.bin
index 694baa8f..5579113 100644
--- a/chrome/test/data/android/feed/feed_with_hero.gcl.bin
+++ b/chrome/test/data/android/feed/feed_with_hero.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_with_hero_M72.gcl.bin b/chrome/test/data/android/feed/feed_with_hero_M72.gcl.bin
index d7841f0..08f85617 100644
--- a/chrome/test/data/android/feed/feed_with_hero_M72.gcl.bin
+++ b/chrome/test/data/android/feed/feed_with_hero_M72.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_with_overlay.gcl.bin b/chrome/test/data/android/feed/feed_with_overlay.gcl.bin
index 05af921..99485965 100644
--- a/chrome/test/data/android/feed/feed_with_overlay.gcl.bin
+++ b/chrome/test/data/android/feed/feed_with_overlay.gcl.bin
Binary files differ
diff --git a/chrome/test/data/android/feed/feed_with_overlay_M72.gcl.bin b/chrome/test/data/android/feed/feed_with_overlay_M72.gcl.bin
index 5d50ffad..a050b92 100644
--- a/chrome/test/data/android/feed/feed_with_overlay_M72.gcl.bin
+++ b/chrome/test/data/android/feed/feed_with_overlay_M72.gcl.bin
Binary files differ
diff --git a/chrome/test/data/banners/scope_a/bad_manifest.html b/chrome/test/data/banners/scope_a/bad_manifest.html
deleted file mode 100644
index 14724acc..0000000
--- a/chrome/test/data/banners/scope_a/bad_manifest.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<head>
-  <title>Web app scope_a bad manifest test page</title>
-  <link rel="manifest" href="bad_manifest.webmanifest">
-  <script>navigator.serviceWorker.register('/banners/service_worker.js');</script>
-</head>
diff --git a/chrome/test/data/banners/scope_a/bad_manifest.webmanifest b/chrome/test/data/banners/scope_a/bad_manifest.webmanifest
deleted file mode 100644
index 72c50e01..0000000
--- a/chrome/test/data/banners/scope_a/bad_manifest.webmanifest
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "name": "Bad manifest test app in scope_a",
-}
diff --git a/chrome/test/data/banners/scope_a/manifest.webmanifest b/chrome/test/data/banners/scope_a/manifest.webmanifest
deleted file mode 100644
index 06d9f21..0000000
--- a/chrome/test/data/banners/scope_a/manifest.webmanifest
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "name": "Manifest test app in scope_a",
-  "icons": [
-    {
-      "src": "/banners/image-512px.png",
-      "sizes": "512x512",
-      "type": "image/png"
-    }
-  ],
-  "scope": "/banners/scope_a",
-  "start_url": "page_1.html",
-  "display": "standalone"
-}
diff --git a/chrome/test/data/banners/scope_a/page_1.html b/chrome/test/data/banners/scope_a/page_1.html
deleted file mode 100644
index 5eae3e8..0000000
--- a/chrome/test/data/banners/scope_a/page_1.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<head>
-  <title>Web app scope_a test page 1</title>
-  <link rel="manifest" href="manifest.webmanifest">
-  <script>navigator.serviceWorker.register('/banners/service_worker.js');</script>
-</head>
diff --git a/chrome/test/data/banners/scope_a/page_2.html b/chrome/test/data/banners/scope_a/page_2.html
deleted file mode 100644
index 4625765..0000000
--- a/chrome/test/data/banners/scope_a/page_2.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<head>
-  <title>Web app scope_a test page 2</title>
-  <link rel="manifest" href="manifest.webmanifest">
-  <script>navigator.serviceWorker.register('/banners/service_worker.js');</script>
-</head>
diff --git a/chrome/test/data/banners/scope_b/manifest.webmanifest b/chrome/test/data/banners/scope_b/manifest.webmanifest
deleted file mode 100644
index 9230500..0000000
--- a/chrome/test/data/banners/scope_b/manifest.webmanifest
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "name": "Manifest test app in scope_b",
-  "icons": [
-    {
-      "src": "/banners/image-512px.png",
-      "sizes": "512x512",
-      "type": "image/png"
-    }
-  ],
-  "scope": "/banners/scope_b",
-  "start_url": "scope_b.html",
-  "display": "standalone"
-}
diff --git a/chrome/test/data/banners/scope_b/scope_b.html b/chrome/test/data/banners/scope_b/scope_b.html
deleted file mode 100644
index b007aec..0000000
--- a/chrome/test/data/banners/scope_b/scope_b.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<head>
-  <title>Web app scope_b test page</title>
-  <link rel="manifest" href="manifest.webmanifest">
-  <script>navigator.serviceWorker.register('/banners/service_worker.js');</script>
-</head>
diff --git a/chrome/test/data/extensions/api_test/service_worker/worker_based_background/tabs_basic/service_worker_background.js b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/tabs_basic/service_worker_background.js
index e5de93cf5..d2a4f047 100644
--- a/chrome/test/data/extensions/api_test/service_worker/worker_based_background/tabs_basic/service_worker_background.js
+++ b/chrome/test/data/extensions/api_test/service_worker/worker_based_background/tabs_basic/service_worker_background.js
@@ -36,14 +36,14 @@
   // Get the info for the tab that was automatically created.
   function testTabQueryInitial() {
     queryTabUtil({currentWindow: true}, function(tabs) {
-        chrome.test.assertEq(1, tabs.length);
-        tabProps.push({id: tabs[0].id, url: tabs[0].url});
-        chrome.test.succeed();
+      chrome.test.assertEq(1, tabs.length);
+      tabProps.push({id: tabs[0].id, url: tabs[0].url});
+      chrome.test.succeed();
     });
   },
   // Create a new tab.
   function testTabCreate1() {
-    var expectedUrl = 'chrome://newtab/';
+    var expectedUrl = 'chrome://version/';
     createTabUtil(expectedUrl, function(tabData) {
       chrome.test.assertEq(expectedUrl, tabData.url);
       tabProps.push(tabData);
diff --git a/chrome/test/data/webui/history/history_focus_test.js b/chrome/test/data/webui/history/history_focus_test.js
index 5877d98..a2ea91ed 100644
--- a/chrome/test/data/webui/history/history_focus_test.js
+++ b/chrome/test/data/webui/history/history_focus_test.js
@@ -41,8 +41,6 @@
   suite('<history-toolbar>', function() {
     let app;
     let toolbar;
-    const TEST_HISTORY_RESULTS =
-        [createHistoryEntry('2016-03-15', 'https://google.com')];
 
     setup(function() {
       window.resultsRendered = false;
diff --git a/chrome/test/data/webui/print_preview/advanced_dialog_test.js b/chrome/test/data/webui/print_preview/advanced_dialog_test.js
index 4cc49a8..fcaea77 100644
--- a/chrome/test/data/webui/print_preview/advanced_dialog_test.js
+++ b/chrome/test/data/webui/print_preview/advanced_dialog_test.js
@@ -34,18 +34,15 @@
           print_preview.DestinationOrigin.COOKIES, printerName,
           print_preview.DestinationConnectionStatus.ONLINE);
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+      model.set('settings.vendorItems.available', true);
+
       dialog = document.createElement('print-preview-advanced-dialog');
 
       // Set up settings. Only need the vendor items.
-      dialog.settings = {
-        vendorItems: {
-          value: {},
-          unavailableValue: {},
-          valid: true,
-          available: true,
-          key: 'vendorOptions',
-        },
-      };
+      dialog.settings = model.settings;
+      test_util.fakeDataBind(model, dialog, 'settings');
     });
 
     /**
diff --git a/chrome/test/data/webui/print_preview/advanced_item_test.js b/chrome/test/data/webui/print_preview/advanced_item_test.js
index b27b900..37a1ab7b 100644
--- a/chrome/test/data/webui/print_preview/advanced_item_test.js
+++ b/chrome/test/data/webui/print_preview/advanced_item_test.js
@@ -21,23 +21,18 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       item = document.createElement('print-preview-advanced-settings-item');
 
       // Create capability.
       item.capability = print_preview_test_utils
                             .getCddTemplateWithAdvancedSettings(2, 'FooDevice')
                             .capabilities.printer.vendor_capability[1];
-
-      // Settings - only need vendor items
-      item.settings = {
-        vendorItems: {
-          value: {},
-          unavailableValue: {},
-          valid: true,
-          available: true,
-          key: 'vendorOptions',
-        },
-      };
+      item.settings = model.settings;
+      test_util.fakeDataBind(model, item, 'settings');
+      model.set('settings.vendorItems.available', true);
 
       document.body.appendChild(item);
       Polymer.dom.flush();
diff --git a/chrome/test/data/webui/print_preview/color_settings_test.js b/chrome/test/data/webui/print_preview/color_settings_test.js
index c0259f02..993cc4d 100644
--- a/chrome/test/data/webui/print_preview/color_settings_test.js
+++ b/chrome/test/data/webui/print_preview/color_settings_test.js
@@ -4,23 +4,23 @@
 
 cr.define('color_settings_test', function() {
   suite('ColorSettingsTest', function() {
+    /** @type {?PrintPreviewColorSettingsElement} */
     let colorSection = null;
 
+    /** @type {?PrintPreviewModelElement} */
+    let model = null;
+
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       colorSection = document.createElement('print-preview-color-settings');
-      colorSection.settings = {
-        color: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isColorEnabled',
-        },
-      };
+      colorSection.settings = model.settings;
       colorSection.disabled = false;
+      test_util.fakeDataBind(model, colorSection, 'settings');
+      model.set('settings.color.available', true);
       document.body.appendChild(colorSection);
     });
 
@@ -29,7 +29,7 @@
       const select = colorSection.$$('select');
       assertEquals('color', select.value);
 
-      colorSection.set('settings.color.value', false);
+      colorSection.setSetting('color', false);
       await test_util.eventToPromise('process-select-change', colorSection);
       assertEquals('bw', select.value);
     });
@@ -55,7 +55,7 @@
         const select = colorSection.$$('select');
         assertFalse(select.disabled);
 
-        colorSection.set('settings.color.setByPolicy', true);
+        model.set('settings.color.setByPolicy', true);
         assertTrue(select.disabled);
       });
     }
diff --git a/chrome/test/data/webui/print_preview/copies_settings_test.js b/chrome/test/data/webui/print_preview/copies_settings_test.js
index e85fb475..565cd44 100644
--- a/chrome/test/data/webui/print_preview/copies_settings_test.js
+++ b/chrome/test/data/webui/print_preview/copies_settings_test.js
@@ -10,26 +10,13 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       copiesSection = document.createElement('print-preview-copies-settings');
-      copiesSection.settings = {
-        copies: {
-          value: '1',
-          unavailableValue: '1',
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-        collate: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
+      copiesSection.settings = model.settings;
       copiesSection.disabled = false;
+      test_util.fakeDataBind(model, copiesSection, 'settings');
       document.body.appendChild(copiesSection);
     });
 
diff --git a/chrome/test/data/webui/print_preview/custom_margins_test.js b/chrome/test/data/webui/print_preview/custom_margins_test.js
index 16083049..0834bda 100644
--- a/chrome/test/data/webui/print_preview/custom_margins_test.js
+++ b/chrome/test/data/webui/print_preview/custom_margins_test.js
@@ -23,44 +23,12 @@
     /** @type {?PrintPreviewMarginControlContainerElement} */
     let container = null;
 
+    /** @type {?PrintPreviewModelElement} */
+    let model = null;
+
     /** @type {!Array<!print_preview.ticket_items.CustomMarginsOrientation>} */
     let sides = [];
 
-    // Only care about marginType, customMargins, mediaSize, and layout
-    let settings = {
-      margins: {
-        value: 0,  // print_preview.ticket_items.MarginsTypeValue.DEFAULT,
-        unavailableValue: 0,
-        valid: true,
-        available: true,
-        key: 'marginsType',
-      },
-      customMargins: {
-        value: {},
-        unavailableValue: {},
-        valid: true,
-        available: true,
-        key: 'customMargins',
-      },
-      layout: {
-        value: false,
-        unavailableValue: false,
-        valid: true,
-        available: true,
-        key: 'isLandscapeEnabled',
-      },
-      mediaSize: {
-        value: {
-          width_microns: 215900,
-          height_microns: 279400,
-        },
-        unavailableValue: {},
-        valid: true,
-        available: true,
-        key: 'mediaSize',
-      },
-    };
-
     /** @type {number} */
     const pixelsPerInch = 100;
 
@@ -76,6 +44,10 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+      model.set('settings.mediaSize.available', true);
+
       sides = [
         print_preview.ticket_items.CustomMarginsOrientation.TOP,
         print_preview.ticket_items.CustomMarginsOrientation.RIGHT,
@@ -109,16 +81,17 @@
      *     added and initialization is complete.
      */
     function finishSetup() {
-      document.body.appendChild(container);
-
       // Wait for the control elements to be created before updating the state.
+      document.body.appendChild(container);
       container.$$('template').notifyDomChange = true;
       let controlsAdded = test_util.eventToPromise('dom-change', container);
       return controlsAdded.then(() => {
         // 8.5 x 11, in pixels
         const controls = getControls();
         assertEquals(4, controls.length);
-        container.settings = settings;
+        container.settings = model.settings;
+        test_util.fakeDataBind(model, container, 'settings');
+
         container.state = print_preview_new.State.READY;
         container.updateClippingMask(new print_preview.Size(850, 1100));
         container.updateScaleTransform(pixelsPerInch / pointsPerInch);
@@ -223,7 +196,7 @@
         [orientationEnum.TOP, 72], [orientationEnum.RIGHT, 36],
         [orientationEnum.BOTTOM, 108], [orientationEnum.LEFT, 18]
       ]);
-      settings.customMargins.value = {
+      model.settings.customMargins.value = {
         marginTop: marginValues.get(orientationEnum.TOP),
         marginRight: marginValues.get(orientationEnum.RIGHT),
         marginBottom: marginValues.get(orientationEnum.BOTTOM),
@@ -243,7 +216,7 @@
       const marginValues = setupCustomMargins();
       return finishSetup().then(() => {
         // Simulate setting custom margins.
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
 
@@ -291,7 +264,7 @@
 
             let onTransitionEnd = getAllTransitions(controls);
             // Controls become visible when margin type CUSTOM is selected.
-            container.set(
+            model.set(
                 'settings.margins.value',
                 print_preview.ticket_items.MarginsTypeValue.CUSTOM);
 
@@ -347,11 +320,11 @@
         const controls = getControls();
 
         // Simulate setting custom margins from sticky settings.
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
         const marginValues = setupCustomMargins();
-        container.notifyPath('settings.customMargins.value');
+        model.notifyPath('settings.customMargins.value');
         Polymer.dom.flush();
 
         // Validate control positions have been updated.
@@ -394,7 +367,7 @@
 
       return finishSetup().then(() => {
         const controls = getControls();
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
         Polymer.dom.flush();
@@ -419,7 +392,7 @@
     test(assert(TestNames.SetControlsWithTextbox), function() {
       return finishSetup().then(() => {
         const controls = getControls();
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
         Polymer.dom.flush();
@@ -463,7 +436,7 @@
       return finishSetup().then(() => {
         // Simulate setting custom margins.
         const controls = getControls();
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
 
@@ -475,7 +448,7 @@
         });
 
         // Simulate setting minimum margins.
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.MINIMUM);
 
@@ -494,7 +467,7 @@
                  'mediaSize', {height_microns: 200000, width_microns: 200000})
           .then(() => {
             // Simulate setting custom margins again.
-            container.set(
+            model.set(
                 'settings.margins.value',
                 print_preview.ticket_items.MarginsTypeValue.CUSTOM);
 
@@ -513,7 +486,7 @@
     test(assert(TestNames.LayoutClearsCustomMargins), function() {
       return validateMarginsClearedForSetting('layout', true).then(() => {
         // Simulate setting custom margins again
-        container.set(
+        model.set(
             'settings.margins.value',
             print_preview.ticket_items.MarginsTypeValue.CUSTOM);
 
@@ -532,7 +505,7 @@
     // not updated based on the document margins - i.e. PDFs do not change the
     // custom margins state.
     test(assert(TestNames.IgnoreDocumentMarginsFromPDF), function() {
-      settings.margins.available = false;
+      model.set('settings.margins.available', false);
       return finishSetup().then(() => {
         assertEquals(
             '{}', JSON.stringify(container.getSettingValue('customMargins')));
@@ -542,7 +515,7 @@
     // Test that if margins are not available but the user changes the media
     // size, the custom margins are cleared.
     test(assert(TestNames.MediaSizeClearsCustomMarginsPDF), function() {
-      settings.margins.available = false;
+      model.set('settings.margins.available', false);
       return validateMarginsClearedForSetting(
           'mediaSize', {height_microns: 200000, width_microns: 200000});
     });
@@ -564,7 +537,7 @@
             const onTransitionEnd = getAllTransitions(getControls());
 
             // Controls become visible when margin type CUSTOM is selected.
-            container.set(
+            model.set(
                 'settings.margins.value',
                 print_preview.ticket_items.MarginsTypeValue.CUSTOM);
             container.notifyPath('settings.customMargins.value');
diff --git a/chrome/test/data/webui/print_preview/destination_select_test.js b/chrome/test/data/webui/print_preview/destination_select_test.js
index 7575ac6..499a9e2 100644
--- a/chrome/test/data/webui/print_preview/destination_select_test.js
+++ b/chrome/test/data/webui/print_preview/destination_select_test.js
@@ -67,9 +67,14 @@
         cloudPrintInterface.setPrinter(cloudDestination);
       });
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       destinationSettings =
           document.createElement('print-preview-destination-settings');
       destinationSettings.destination = null;
+      destinationSettings.settings = model.settings;
+      test_util.fakeDataBind(model, destinationSettings, 'settings');
       document.body.appendChild(destinationSettings);
       const whenCapabilitiesReady = test_util.eventToPromise(
           print_preview.DestinationStore.EventType
@@ -85,16 +90,7 @@
       const recentDestinations = initialSettings.serializedAppStateStr ?
           JSON.parse(initialSettings.serializedAppStateStr).recentDestinations :
           [];
-      destinationSettings.settings = {
-        recentDestinations: {
-          value: recentDestinations,
-          unavailableValue: [],
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'recentDestinations',
-        },
-      };
+      destinationSettings.setSetting('recentDestinations', recentDestinations);
       destinationSettings.initDestinationStore(
           initialSettings.printerName,
           initialSettings.serializedDefaultDestinationSelectionRulesStr);
diff --git a/chrome/test/data/webui/print_preview/destination_settings_test.js b/chrome/test/data/webui/print_preview/destination_settings_test.js
index 19191d8..3d1e1ef 100644
--- a/chrome/test/data/webui/print_preview/destination_settings_test.js
+++ b/chrome/test/data/webui/print_preview/destination_settings_test.js
@@ -56,19 +56,14 @@
       nativeLayer.setLocalDestinations(localDestinations);
       cloudPrintInterface = new print_preview.CloudPrintInterfaceStub();
 
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       destinationSettings =
           document.createElement('print-preview-destination-settings');
-      destinationSettings.settings = {
-        recentDestinations: {
-          value: [],
-          unavailableValue: [],
-          available: true,
-          valid: true,
-          setByPolicy: false,
-          key: 'recentDestinations',
-        },
-      };
+      destinationSettings.settings = model.settings;
       destinationSettings.disabled = true;
+      test_util.fakeDataBind(model, destinationSettings, 'settings');
       document.body.appendChild(destinationSettings);
     });
 
diff --git a/chrome/test/data/webui/print_preview/dpi_settings_test.js b/chrome/test/data/webui/print_preview/dpi_settings_test.js
index 52866de..c93c0d0 100644
--- a/chrome/test/data/webui/print_preview/dpi_settings_test.js
+++ b/chrome/test/data/webui/print_preview/dpi_settings_test.js
@@ -20,19 +20,15 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       dpiSection = document.createElement('print-preview-dpi-settings');
-      dpiSection.settings = {
-        dpi: {
-          value: {},
-          unavailableValue: {},
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'dpi',
-        },
-      };
+      dpiSection.settings = model.settings;
       dpiSection.capability = dpiCapability;
       dpiSection.disabled = false;
+      model.set('settings.dpi.available', true);
+      test_util.fakeDataBind(model, dpiSection, 'settings');
       document.body.appendChild(dpiSection);
     });
 
@@ -51,7 +47,7 @@
       const lowQualityWithLabel = expectedCapabilityWithLabels.option[1];
 
       // Set the setting to the printer default.
-      dpiSection.set('settings.dpi.value', highQualityOption);
+      dpiSection.setSetting('dpi', highQualityOption);
 
       // Default is 200 dpi.
       const settingsSelect = dpiSection.$$('print-preview-settings-select');
diff --git a/chrome/test/data/webui/print_preview/header_test.js b/chrome/test/data/webui/print_preview/header_test.js
index b5560a4..c471940 100644
--- a/chrome/test/data/webui/print_preview/header_test.js
+++ b/chrome/test/data/webui/print_preview/header_test.js
@@ -21,39 +21,15 @@
 
     /** @override */
     setup(function() {
-      // The header cares about color, duplex, and header/footer to determine
-      // whether to show the enterprise managed icon, and pages, copies, and
-      // duplex to compute the number of sheets of paper.
-      const settings = {
-        copies: {
-          value: '1',
-          unavailableValue: '1',
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-        duplex: {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isDuplexEnabled',
-        },
-        pages: {
-          value: [1],
-          unavailableValue: [],
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
-
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       header = document.createElement('print-preview-header');
-      header.settings = settings;
+      header.settings = model.settings;
+      model.set('settings.duplex.available', true);
+      model.set('settings.duplex.value', false);
+
       header.destination = new print_preview.Destination(
           'FooDevice', print_preview.DestinationType.GOOGLE,
           print_preview.DestinationOrigin.COOKIES, 'FooName',
@@ -61,6 +37,7 @@
       header.errorMessage = '';
       header.state = print_preview_new.State.READY;
       header.managed = false;
+      test_util.fakeDataBind(model, header, 'settings');
       document.body.appendChild(header);
     });
 
@@ -141,8 +118,8 @@
       assertTrue(printButton.disabled);
 
       const testError = 'Error printing to cloud print';
-      header.set('errorMessage', testError);
       header.set('state', print_preview_new.State.FATAL_ERROR);
+      header.setErrorMessage(testError);
       assertEquals(testError, summary.textContent);
       assertTrue(printButton.disabled);
     });
diff --git a/chrome/test/data/webui/print_preview/layout_settings_test.js b/chrome/test/data/webui/print_preview/layout_settings_test.js
index 90e84df7..6f28f836 100644
--- a/chrome/test/data/webui/print_preview/layout_settings_test.js
+++ b/chrome/test/data/webui/print_preview/layout_settings_test.js
@@ -9,18 +9,13 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       layoutSection = document.createElement('print-preview-layout-settings');
-      layoutSection.settings = {
-        layout: {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isLandscapeEnabled',
-        },
-      };
+      layoutSection.settings = model.settings;
       layoutSection.disabled = false;
+      test_util.fakeDataBind(model, layoutSection, 'settings');
       document.body.appendChild(layoutSection);
     });
 
@@ -29,7 +24,7 @@
       const select = layoutSection.$$('select');
       assertEquals('portrait', select.value);
 
-      layoutSection.set('settings.layout.value', true);
+      layoutSection.setSetting('layout', true);
       await test_util.eventToPromise('process-select-change', layoutSection);
       assertEquals('landscape', select.value);
     });
diff --git a/chrome/test/data/webui/print_preview/margins_settings_test.js b/chrome/test/data/webui/print_preview/margins_settings_test.js
index 8276058..2c83f31 100644
--- a/chrome/test/data/webui/print_preview/margins_settings_test.js
+++ b/chrome/test/data/webui/print_preview/margins_settings_test.js
@@ -11,29 +11,15 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       marginsSection = document.createElement('print-preview-margins-settings');
       document.body.appendChild(marginsSection);
-      Polymer.dom.flush();
-      marginsTypeEnum = print_preview.ticket_items.MarginsTypeValue;
-      marginsSection.settings = {
-        margins: {
-          value: marginsTypeEnum.DEFAULT,
-          unavailableValue: marginsTypeEnum.DEFAULT,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'marginsType',
-        },
-        pagesPerSheet: {
-          value: 1,
-          unavailableValue: 1,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
+      marginsSection.settings = model.settings;
       marginsSection.disabled = false;
+      test_util.fakeDataBind(model, marginsSection, 'settings');
+      marginsTypeEnum = print_preview.ticket_items.MarginsTypeValue;
     });
 
     // Tests that setting the setting updates the UI.
@@ -41,7 +27,7 @@
       const select = marginsSection.$$('select');
       assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
 
-      marginsSection.set('settings.margins.value', marginsTypeEnum.MINIMUM);
+      marginsSection.setSetting('margins', marginsTypeEnum.MINIMUM);
       await test_util.eventToPromise('process-select-change', marginsSection);
       assertEquals(marginsTypeEnum.MINIMUM.toString(), select.value);
     });
@@ -68,10 +54,10 @@
       const select = marginsSection.$$('select');
       assertFalse(select.disabled);
 
-      marginsSection.set('settings.pagesPerSheet.value', 2);
+      marginsSection.setSetting('pagesPerSheet', 2);
       assertTrue(select.disabled);
 
-      marginsSection.set('settings.pagesPerSheet.value', 1);
+      marginsSection.setSetting('pagesPerSheet', 1);
       assertFalse(select.disabled);
     });
   });
diff --git a/chrome/test/data/webui/print_preview/media_size_settings_test.js b/chrome/test/data/webui/print_preview/media_size_settings_test.js
index ac0fc49f..adfe9ef 100644
--- a/chrome/test/data/webui/print_preview/media_size_settings_test.js
+++ b/chrome/test/data/webui/print_preview/media_size_settings_test.js
@@ -13,23 +13,16 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       mediaSizeSection =
           document.createElement('print-preview-media-size-settings');
-      mediaSizeSection.settings = {
-        mediaSize: {
-          value: {
-            width_microns: 215900,
-            height_microns: 279400,
-          },
-          unavailableValue: {},
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'mediaSize',
-        },
-      };
+      mediaSizeSection.settings = model.settings;
       mediaSizeSection.capability = mediaSizeCapability;
       mediaSizeSection.disabled = false;
+      model.set('settings.mediaSize.available', true);
+      test_util.fakeDataBind(model, mediaSizeSection, 'settings');
       document.body.appendChild(mediaSizeSection);
     });
 
diff --git a/chrome/test/data/webui/print_preview/model_test.js b/chrome/test/data/webui/print_preview/model_test.js
index 55b6f2d3..a2cb80a 100644
--- a/chrome/test/data/webui/print_preview/model_test.js
+++ b/chrome/test/data/webui/print_preview/model_test.js
@@ -86,8 +86,8 @@
        *     reset to its default value.
        */
       const testStickySetting = function(setting, field) {
-        let promise = test_util.eventToPromise('save-sticky-settings', model);
-        model.set(`settings.${setting}.value`, stickySettingsChange[field]);
+        let promise = test_util.eventToPromise('sticky-setting-changed', model);
+        model.setSetting(setting, stickySettingsChange[field]);
         return promise.then(
             /**
              * @param {!CustomEvent} e Event containing the serialized settings
@@ -101,9 +101,8 @@
                 assertDeepEquals(toCompare[settingName], settings[settingName]);
               });
               let restorePromise =
-                  test_util.eventToPromise('save-sticky-settings', model);
-              model.set(
-                  `settings.${setting}.value`, stickySettingsDefault[field]);
+                  test_util.eventToPromise('sticky-setting-changed', model);
+              model.setSetting(setting, stickySettingsDefault[field]);
               return restorePromise;
             });
       };
diff --git a/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js b/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
index 21ffd94..43289e1 100644
--- a/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
+++ b/chrome/test/data/webui/print_preview/new_print_preview_ui_browsertest.js
@@ -889,6 +889,7 @@
   /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
+      '../settings/test_util.js',
       'header_test.js',
     ]);
   }
@@ -973,6 +974,7 @@
   /** @override */
   get extraLibraries() {
     return super.extraLibraries.concat([
+      '../settings/test_util.js',
       'print_preview_test_utils.js',
       'advanced_item_test.js',
     ]);
diff --git a/chrome/test/data/webui/print_preview/other_options_settings_test.js b/chrome/test/data/webui/print_preview/other_options_settings_test.js
index 04f0590..060ae0b 100644
--- a/chrome/test/data/webui/print_preview/other_options_settings_test.js
+++ b/chrome/test/data/webui/print_preview/other_options_settings_test.js
@@ -7,54 +7,30 @@
     /** @type {?PrintPreviewOtherOptionsSettingsElement} */
     let otherOptionsSection = null;
 
+    /** @type {?PrintPreviewModelElement} */
+    let model = null;
+
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+      model.set('settings.duplex.available', true);
+      model.set('settings.duplex.value', true);
+      model.set('settings.headerFooter.available', true);
+      model.set('settings.headerFotoer.value', true);
+      model.set('settings.cssBackground.available', true);
+      model.set('settings.cssBackground.value', true);
+      model.set('settings.selectionOnly.available', true);
+      model.set('settings.selectionOnly.value', true);
+      model.set('settings.rasterize.available', true);
+      model.set('settings.rasterize.value', true);
+
       otherOptionsSection =
           document.createElement('print-preview-other-options-settings');
-      otherOptionsSection.settings = {
-        duplex: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isDuplexEnabled',
-        },
-        cssBackground: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isCssBackgroundEnabled',
-        },
-        selectionOnly: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-        headerFooter: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isHeaderFooterEnabled',
-        },
-        rasterize: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
+      otherOptionsSection.settings = model.settings;
       otherOptionsSection.disabled = false;
+      test_util.fakeDataBind(model, otherOptionsSection, 'settings');
       document.body.appendChild(otherOptionsSection);
       Polymer.dom.flush();
     });
@@ -75,7 +51,7 @@
             const checkbox = otherOptionsSection.$$(`#${setting}`);
             // Show, hide and reset.
             [true, false, true].forEach(value => {
-              otherOptionsSection.set(`settings.${setting}.available`, value);
+              model.set(`settings.${setting}.available`, value);
               // Element expected to be visible when available.
               assertEquals(!value, isSectionHidden(checkbox));
             });
@@ -128,7 +104,7 @@
         const checkbox = otherOptionsSection.$$(`#${setting}`);
         // Set true and then false.
         [true, false].forEach(value => {
-          otherOptionsSection.set(`settings.${setting}.setByPolicy`, value);
+          model.set(`settings.${setting}.setByPolicy`, value);
           // Element expected to be disabled when policy is set.
           assertEquals(value, checkbox.disabled);
         });
diff --git a/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.js b/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.js
index cafb455..905fbb7b 100644
--- a/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.js
+++ b/chrome/test/data/webui/print_preview/pages_per_sheet_settings_test.js
@@ -9,19 +9,14 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       pagesPerSheetSection =
           document.createElement('print-preview-pages-per-sheet-settings');
-      pagesPerSheetSection.settings = {
-        pagesPerSheet: {
-          value: 1,
-          unavailableValue: 1,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
+      pagesPerSheetSection.settings = model.settings;
       pagesPerSheetSection.disabled = false;
+      test_util.fakeDataBind(model, pagesPerSheetSection, 'settings');
       document.body.appendChild(pagesPerSheetSection);
     });
 
@@ -30,12 +25,26 @@
       const select = pagesPerSheetSection.$$('select');
       assertEquals('1', select.value);
 
-      pagesPerSheetSection.set('settings.pagesPerSheet.value', 4);
+      pagesPerSheetSection.setSetting('pagesPerSheet', 4);
       await test_util.eventToPromise(
           'process-select-change', pagesPerSheetSection);
       assertEquals('4', select.value);
     });
 
+    // Tests that setting the pages per sheet setting resets margins to DEFAULT.
+    test('resets margins setting', async () => {
+      pagesPerSheetSection.setSetting(
+          'margins', print_preview.ticket_items.MarginsTypeValue.NO_MARGINS);
+      assertEquals(1, pagesPerSheetSection.getSettingValue('pagesPerSheet'));
+      pagesPerSheetSection.setSetting('pagesPerSheet', 4);
+      await test_util.eventToPromise(
+          'process-select-change', pagesPerSheetSection);
+      assertEquals(4, pagesPerSheetSection.getSettingValue('pagesPerSheet'));
+      assertEquals(
+          print_preview.ticket_items.MarginsTypeValue.DEFAULT,
+          pagesPerSheetSection.getSettingValue('margins'));
+    });
+
     // Tests that selecting a new option in the dropdown updates the setting.
     test('select option', async () => {
       // Verify that the selected option and names are as expected.
diff --git a/chrome/test/data/webui/print_preview/pages_settings_test.js b/chrome/test/data/webui/print_preview/pages_settings_test.js
index 8911872..de86239 100644
--- a/chrome/test/data/webui/print_preview/pages_settings_test.js
+++ b/chrome/test/data/webui/print_preview/pages_settings_test.js
@@ -28,31 +28,13 @@
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       pagesSection = document.createElement('print-preview-pages-settings');
-      pagesSection.settings = {
-        pages: {
-          value: [1],
-          unavailableValue: [],
-          valid: true,
-          available: true,
-          key: '',
-        },
-        ranges: {
-          value: [],
-          unavailableValue: [],
-          valid: true,
-          available: true,
-          key: '',
-        },
-        pagesPerSheet: {
-          value: 1,
-          unavailableValue: 1,
-          valid: true,
-          available: true,
-          key: '',
-        },
-      };
+      pagesSection.settings = model.settings;
       pagesSection.disabled = false;
+      test_util.fakeDataBind(model, pagesSection, 'settings');
       document.body.appendChild(pagesSection);
     });
 
diff --git a/chrome/test/data/webui/print_preview/preview_generation_test.js b/chrome/test/data/webui/print_preview/preview_generation_test.js
index ce64267..e0a0821 100644
--- a/chrome/test/data/webui/print_preview/preview_generation_test.js
+++ b/chrome/test/data/webui/print_preview/preview_generation_test.js
@@ -420,7 +420,10 @@
           'rasterize', false, true, 'rasterizePDF', false, true);
     });
 
-    /** Validate changing the destination updates the preview. */
+    /**
+     * Validate changing the destination updates the preview, if it results
+     * in a settings change.
+     */
     test(assert(TestNames.Destination), function() {
       return initialize()
           .then(function(args) {
@@ -431,12 +434,23 @@
                 'BarDevice', print_preview.DestinationType.LOCAL,
                 print_preview.DestinationOrigin.LOCAL, 'BarName',
                 print_preview.DestinationConnectionStatus.ONLINE);
-            barDestination.capabilities =
+            const capabilities =
                 print_preview_test_utils.getCddTemplate(barDestination.id)
                     .capabilities;
+            capabilities.printer.media_size = {
+              option: [
+                {
+                  name: 'ISO_A4',
+                  width_microns: 210000,
+                  height_microns: 297000,
+                  custom_display_name: 'A4',
+                },
+              ],
+            };
+            barDestination.capabilities = capabilities;
             nativeLayer.resetResolver('getPreview');
-            page.set('destination_', barDestination);
             page.destinationState_ = print_preview.DestinationState.SELECTED;
+            page.set('destination_', barDestination);
             page.destinationState_ = print_preview.DestinationState.UPDATED;
             return nativeLayer.whenCalled('getPreview');
           })
diff --git a/chrome/test/data/webui/print_preview/print_header_interactive_test.js b/chrome/test/data/webui/print_preview/print_header_interactive_test.js
index 68f59e1..1ce729ed 100644
--- a/chrome/test/data/webui/print_preview/print_header_interactive_test.js
+++ b/chrome/test/data/webui/print_preview/print_header_interactive_test.js
@@ -16,61 +16,19 @@
 
     /** @override */
     setup(function() {
-      // The header cares about color, duplex, and header/footer to determine
-      // whether to show the enterprise managed icon, and pages, copies, and
-      // duplex to compute the number of sheets of paper.
-      const settings = {
-        color: {
-          value: true, /* color */
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isColorEnabled',
-        },
-        copies: {
-          value: '1',
-          unavailableValue: '1',
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-        duplex: {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isDuplexEnabled',
-        },
-        headerFooter: {
-          value: true,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: 'isHeaderFooterEnabled',
-        },
-        pages: {
-          value: [1],
-          unavailableValue: [],
-          valid: true,
-          available: true,
-          setByPolicy: false,
-          key: '',
-        },
-      };
-
       PolymerTest.clearBody();
+      const model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       header = document.createElement('print-preview-header');
-      header.settings = settings;
+      header.settings = model.settings;
       header.destination = new print_preview.Destination(
           'FooDevice', print_preview.DestinationType.GOOGLE,
           print_preview.DestinationOrigin.COOKIES, 'FooName',
           print_preview.DestinationConnectionStatus.ONLINE);
       header.errorMessage = '';
       header.state = print_preview_new.State.NOT_READY;
+      test_util.fakeDataBind(model, header, 'settings');
       document.body.appendChild(header);
     });
 
diff --git a/chrome/test/data/webui/print_preview/restore_state_test.js b/chrome/test/data/webui/print_preview/restore_state_test.js
index 9eb9861..be9c3d42 100644
--- a/chrome/test/data/webui/print_preview/restore_state_test.js
+++ b/chrome/test/data/webui/print_preview/restore_state_test.js
@@ -249,7 +249,9 @@
           value: true,
         },
         {
-          section: 'print-preview-advanced-options-settings',
+          // Use the model to set vendor items, because the advanced settings
+          // section doesn't actually set this value in production.
+          section: 'print-preview-model',
           settingName: 'vendorItems',
           key: 'vendorOptions',
           value: {
diff --git a/chrome/test/data/webui/print_preview/scaling_settings_test.js b/chrome/test/data/webui/print_preview/scaling_settings_test.js
index b7ec8b7..ca301a0 100644
--- a/chrome/test/data/webui/print_preview/scaling_settings_test.js
+++ b/chrome/test/data/webui/print_preview/scaling_settings_test.js
@@ -15,34 +15,20 @@
     /** @type {?PrintPreviewScalingSettingsElement} */
     let scalingSection = null;
 
+    /** @type {?PrintPreviewModelElement} */
+    let model = null;
+
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+      model.set('settings.fitToPage.available', false);
+
       scalingSection = document.createElement('print-preview-scaling-settings');
-      scalingSection.settings = {
-        scaling: {
-          value: '100',
-          unavailableValue: '100',
-          valid: true,
-          available: true,
-          key: 'scaleFactor',
-        },
-        customScaling: {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: true,
-          key: 'customScaling',
-        },
-        fitToPage: {
-          value: false,
-          unavailableValue: false,
-          valid: true,
-          available: false,
-          key: 'isFitToPageEnabled',
-        },
-      };
+      scalingSection.settings = model.settings;
       scalingSection.disabled = false;
+      test_util.fakeDataBind(model, scalingSection, 'settings');
       document.body.appendChild(scalingSection);
     });
 
@@ -59,7 +45,7 @@
       assertFalse(customOption.hidden);
 
       // Fit to page available -> All 3 options.
-      scalingSection.set('settings.fitToPage.available', true);
+      model.set('settings.fitToPage.available', true);
       assertFalse(fitToPageOption.hidden);
       assertFalse(defaultOption.hidden);
       assertFalse(customOption.hidden);
@@ -100,7 +86,7 @@
       const scalingDropdown = scalingSection.$$('.md-select');
 
       // Make fit to page available.
-      scalingSection.set('settings.fitToPage.available', true);
+      model.set('settings.fitToPage.available', true);
 
       // Default is 100
       validateState('100', true, false, false, '100');
@@ -177,7 +163,7 @@
       // false is detected. Imitate this here. Since we are only interacting
       // with the scaling input, at no point should the input be disabled, as it
       // will lose focus.
-      scalingSection.addEventListener('setting-valid-changed', function(e) {
+      model.addEventListener('setting-valid-changed', function(e) {
         assertFalse(input.disabled);
       });
 
diff --git a/chrome/test/data/webui/print_preview/settings_select_test.js b/chrome/test/data/webui/print_preview/settings_select_test.js
index 9094629..567a041 100644
--- a/chrome/test/data/webui/print_preview/settings_select_test.js
+++ b/chrome/test/data/webui/print_preview/settings_select_test.js
@@ -4,18 +4,29 @@
 
 cr.define('settings_select_test', function() {
   suite('SettingsSelectTest', function() {
+    /** @type {?PrintPreviewSettingsSelectElement} */
     let settingsSelect = null;
 
+    /** @type {?PrintPreviewModelElement} */
+    let model = null;
+
     /** @override */
     setup(function() {
       PolymerTest.clearBody();
+      model = document.createElement('print-preview-model');
+      document.body.appendChild(model);
+
       settingsSelect = document.createElement('print-preview-settings-select');
+      test_util.fakeDataBind(model, settingsSelect, 'settings');
+      settingsSelect.settings = model.settings;
       settingsSelect.disabled = false;
       document.body.appendChild(settingsSelect);
     });
 
     // Test that destinations are correctly displayed in the lists.
     test('custom media names', function() {
+      model.set('settings.mediaSize.available', true);
+
       // Set a capability with custom paper sizes.
       settingsSelect.settingName = 'mediaSize';
       settingsSelect.capability =
@@ -38,7 +49,7 @@
 
     test('set setting', async () => {
       // Fake setting.
-      settingsSelect.settings = {
+      model.set('settings', {
         fruit: {
           value: {},
           unavailableValue: {},
@@ -47,7 +58,7 @@
           setByPolicy: false,
           key: 'fruit',
         },
-      };
+      });
       settingsSelect.settingName = 'fruit';
       settingsSelect.capability = {
         option: [
diff --git a/chromecast/browser/url_request_context_factory.h b/chromecast/browser/url_request_context_factory.h
index 8576f8b..9864eb8 100644
--- a/chromecast/browser/url_request_context_factory.h
+++ b/chromecast/browser/url_request_context_factory.h
@@ -18,6 +18,7 @@
 }
 
 namespace net {
+class ChannelIDService;
 class CookieStore;
 class HttpTransactionFactory;
 class HttpUserAgentSettings;
diff --git a/chromecast/media/cma/backend/volume_map.cc b/chromecast/media/cma/backend/volume_map.cc
index 47b220c..9991ecb 100644
--- a/chromecast/media/cma/backend/volume_map.cc
+++ b/chromecast/media/cma/backend/volume_map.cc
@@ -69,9 +69,6 @@
     double db;
     CHECK(volume_map_entry->GetDouble(kKeyDb, &db));
     CHECK_LE(db, 0.0);
-    if (level == 1.0) {
-      CHECK_EQ(db, 0.0);
-    }
 
     new_map.push_back({level, db});
   }
diff --git a/chromeos/dbus/README.md b/chromeos/dbus/README.md
index 486689b..e664e10f 100644
--- a/chromeos/dbus/README.md
+++ b/chromeos/dbus/README.md
@@ -1,16 +1,58 @@
+# src/chromeos/dbus
+
 This directory contains client libraries for communication with Chrome OS
 system service daemons over D-Bus.
 
 For more information, see [Chrome OS D-Bus Usage in Chrome].
 
-Older clients that have been removed:
+## DBusThreadManager
 
-  * Amplifier (`amplifier_client.cc`)
-  * Audio DSP (`audio_dsp_client.cc`)
-  * Introspection (`introspectable_client.cc`)
-  * NFC (`nfc_manager_client.cc`)
-  * peerd (`peer_daemon_manager_client.cc`)
-  * privetd (`privet_daemon_manager_client.cc`)
-  * Wi-Fi AP manager (`ap_manager_client.cc`)
+The DBusThreadManager class was originally created to both own the D-Bus
+base::Thread, the system dbus::Bus instance, and all of the D-Bus clients.
+
+With the significantly increased number of clients and upcoming [Mash] effort
+splitting Chrome and Ash into separate processes, this model no longer makes
+sense.
+
+New clients should not be added to DBusThreadManager but instead should follow
+the pattern described below. DBusThreadManager will eventually be deprecated.
+
+## D-Bus Client Best Practices
+
+An example of a relatively simple client using existing patterns can be found
+in [src/chromeos/dbus/kerberos].
+
+*   Create a subdirectory under `src/chromeos/dbus` for new clients or use an
+    existing directory. Do not add new clients to this directory.
+
+*   D-Bus clients should only be accessed by a single process, e.g. Chrome or
+    Ash (preferably Ash), not both. Use a mojo interface to communicate between
+    Chrome and Ash where necessary.
+
+*   D-Bus clients are explicitly initialized and shut down. They provide a
+    static getter for the single global instance. In Chrome, initialization
+    occurs in [dbus_helper.cc]. In Ash it occurs in [ash_service.cc].
+
+*   For new clients, if test methods are required, create a `TestInterface` in
+    the base class with a virtual `GetTestInterface()` method and implement it
+    only in the fake (return null in the real implementation). See
+    [src/chromeos/dbus/kerberos] for an example.
+
+    (Many existing clients provide additional test functionality in the fake
+    implementation, however this complicates tests and the fake implementation).
+
+## Older clients that have been removed:
+
+*   Amplifier (`amplifier_client.cc`)
+*   Audio DSP (`audio_dsp_client.cc`)
+*   Introspection (`introspectable_client.cc`)
+*   NFC (`nfc_manager_client.cc`)
+*   peerd (`peer_daemon_manager_client.cc`)
+*   privetd (`privet_daemon_manager_client.cc`)
+*   Wi-Fi AP manager (`ap_manager_client.cc`)
 
 [Chrome OS D-Bus Usage in Chrome]: https://chromium.googlesource.com/chromiumos/docs/+/master/dbus_in_chrome.md
+[Mash]: https://chromium.googlesource.com/chromium/src/+/HEAD/ash/README.md
+[src/chromeos/dbus/kerberos]: https://chromium.googlesource.com/chromium/src/+/HEAD/chromeos/dbus/kerberos
+[dbus_helper.cc]: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/browser/chromeos/dbus/dbus_helper.cc
+[ash_service.cc]: https://chromium.googlesource.com/chromium/src/+/HEAD/ash/ash_service.cc
diff --git a/chromeos/dbus/biod/biod_client.cc b/chromeos/dbus/biod/biod_client.cc
index 5590149..afd394e 100644
--- a/chromeos/dbus/biod/biod_client.cc
+++ b/chromeos/dbus/biod/biod_client.cc
@@ -36,10 +36,7 @@
 // The BiodClient implementation used in production.
 class BiodClientImpl : public BiodClient {
  public:
-  BiodClientImpl(dbus::Bus* bus) : bus_(bus), weak_ptr_factory_(this) {
-    Init();
-  }
-
+  BiodClientImpl() = default;
   ~BiodClientImpl() override = default;
 
   // BiodClient overrides:
@@ -210,7 +207,8 @@
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
-  void Init() {
+  void Init(dbus::Bus* bus) {
+    bus_ = bus;
     dbus::ObjectPath fpc_bio_path = dbus::ObjectPath(base::StringPrintf(
         "%s/%s", biod::kBiodServicePath, biod::kCrosFpBiometricsManagerName));
     biod_proxy_ = bus_->GetObjectProxy(biod::kBiodServiceName, fpc_bio_path);
@@ -406,7 +404,7 @@
 
   // Note: This should remain the last member so it'll be destroyed and
   // invalidate its weak pointers before any other members are destroyed.
-  base::WeakPtrFactory<BiodClientImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<BiodClientImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BiodClientImpl);
 };
@@ -424,7 +422,7 @@
 // static
 void BiodClient::Initialize(dbus::Bus* bus) {
   DCHECK(bus);
-  new BiodClientImpl(bus);
+  (new BiodClientImpl())->Init(bus);
 }
 
 // static
diff --git a/chromeos/dbus/dbus_thread_manager.h b/chromeos/dbus/dbus_thread_manager.h
index 2ae60e4..1dfbbcdc 100644
--- a/chromeos/dbus/dbus_thread_manager.h
+++ b/chromeos/dbus/dbus_thread_manager.h
@@ -64,24 +64,15 @@
 class UpdateEngineClient;
 class VirtualFileProviderClient;
 
+// THIS CLASS IS BEING DEPRECATED. See README.md for guidelines and
+// https://crbug.com/647367 for details.
+//
 // DBusThreadManager manages the D-Bus thread, the thread dedicated to
 // handling asynchronous D-Bus operations.
 //
 // This class also manages D-Bus connections and D-Bus clients, which
 // depend on the D-Bus thread to ensure the right order of shutdowns for
 // the D-Bus thread, the D-Bus connections, and the D-Bus clients.
-//
-// CALLBACKS IN D-BUS CLIENTS:
-//
-// D-Bus clients managed by DBusThreadManager are guaranteed to be deleted
-// after the D-Bus thread so the clients don't need to worry if new
-// incoming messages arrive from the D-Bus thread during shutdown of the
-// clients. The UI message loop is not running during the shutdown hence
-// the UI message loop won't post tasks to D-BUS clients during the
-// shutdown. However, to be extra cautious, clients should use
-// WeakPtrFactory when creating callbacks that run on UI thread. See
-// session_manager_client.cc for examples.
-//
 class COMPONENT_EXPORT(CHROMEOS_DBUS) DBusThreadManager {
  public:
   // Processes for which to create and initialize the D-Bus clients.
diff --git a/chromeos/dbus/hammerd/hammerd_client.cc b/chromeos/dbus/hammerd/hammerd_client.cc
index 02d2187..07f01f49 100644
--- a/chromeos/dbus/hammerd/hammerd_client.cc
+++ b/chromeos/dbus/hammerd/hammerd_client.cc
@@ -26,8 +26,7 @@
 
 class HammerdClientImpl : public HammerdClient {
  public:
-  explicit HammerdClientImpl(dbus::Bus* bus) { Init(bus); }
-
+  HammerdClientImpl() = default;
   ~HammerdClientImpl() override = default;
 
   // HammerdClient:
@@ -173,7 +172,7 @@
 // static
 void HammerdClient::Initialize(dbus::Bus* bus) {
   CHECK(bus);
-  new HammerdClientImpl(bus);
+  (new HammerdClientImpl())->Init(bus);
 }
 
 // static
diff --git a/chromeos/dbus/kerberos/kerberos_client.cc b/chromeos/dbus/kerberos/kerberos_client.cc
index 1cf12ca..fee9bd2a 100644
--- a/chromeos/dbus/kerberos/kerberos_client.cc
+++ b/chromeos/dbus/kerberos/kerberos_client.cc
@@ -43,11 +43,7 @@
 // Chrome OS side.
 class KerberosClientImpl : public KerberosClient {
  public:
-  explicit KerberosClientImpl(dbus::Bus* bus) {
-    CHECK(bus);
-    InitDBus(bus);
-  }
-
+  KerberosClientImpl() = default;
   ~KerberosClientImpl() override = default;
 
   // KerberosClient overrides:
@@ -125,13 +121,13 @@
 
   TestInterface* GetTestInterface() override { return nullptr; }
 
- private:
-  void InitDBus(dbus::Bus* bus) {
+  void Init(dbus::Bus* bus) {
     proxy_ =
         bus->GetObjectProxy(kerberos::kKerberosServiceName,
                             dbus::ObjectPath(kerberos::kKerberosServicePath));
   }
 
+ private:
   // Calls kerberosd's |method_name| method, passing in |request| as input. Once
   // the (asynchronous) call finishes, |callback| is called with the response
   // proto (on the same thread as this call).
@@ -204,7 +200,7 @@
 // static
 void KerberosClient::Initialize(dbus::Bus* bus) {
   CHECK(bus);
-  new KerberosClientImpl(bus);
+  (new KerberosClientImpl())->Init(bus);
 }
 
 // static
diff --git a/chromeos/services/assistant/assistant_manager_service.h b/chromeos/services/assistant/assistant_manager_service.h
index ca58a792..64b08c2 100644
--- a/chromeos/services/assistant/assistant_manager_service.h
+++ b/chromeos/services/assistant/assistant_manager_service.h
@@ -54,6 +54,8 @@
   // Turn on / off hotword listening.
   virtual void EnableHotword(bool enable) = 0;
 
+  virtual void SetArcPlayStoreEnabled(bool enabled) = 0;
+
   // Returns a pointer of AssistantSettingsManager.
   virtual AssistantSettingsManager* GetAssistantSettingsManager() = 0;
 };
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index ecfee773..1b2665f2 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -236,6 +236,12 @@
   }
 }
 
+void AssistantManagerServiceImpl::SetArcPlayStoreEnabled(bool enable) {
+  // Both LibAssistant and Chrome threads may access |display_connection_|.
+  // |display_connection_| is thread safe.
+  display_connection_->SetArcPlayStoreEnabled(enable);
+}
+
 AssistantSettingsManager*
 AssistantManagerServiceImpl::GetAssistantSettingsManager() {
   return assistant_settings_manager_.get();
@@ -911,6 +917,11 @@
       FROM_HERE,
       base::BindOnce(&AssistantManagerServiceImpl::RegisterFallbackMediaHandler,
                      weak_factory_.GetWeakPtr()));
+
+  if (service_->assistant_state()->arc_play_store_enabled().has_value()) {
+    SetArcPlayStoreEnabled(
+        service_->assistant_state()->arc_play_store_enabled().value());
+  }
 }
 
 void AssistantManagerServiceImpl::OnTimerSoundingStarted() {
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.h b/chromeos/services/assistant/assistant_manager_service_impl.h
index 3576fcc..6591d2ef 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/assistant_manager_service_impl.h
@@ -105,6 +105,7 @@
   void SetAccessToken(const std::string& access_token) override;
   void EnableListening(bool enable) override;
   void EnableHotword(bool enable) override;
+  void SetArcPlayStoreEnabled(bool enable) override;
   AssistantSettingsManager* GetAssistantSettingsManager() override;
 
   // mojom::Assistant overrides:
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
index 780bad0..0e41d26 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
@@ -34,6 +34,8 @@
 
 void FakeAssistantManagerServiceImpl::EnableHotword(bool enable) {}
 
+void FakeAssistantManagerServiceImpl::SetArcPlayStoreEnabled(bool enabled) {}
+
 AssistantManagerService::State FakeAssistantManagerServiceImpl::GetState()
     const {
   return state_;
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.h b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
index a452eef..5732897 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
@@ -34,6 +34,7 @@
   void SetAccessToken(const std::string& access_token) override;
   void EnableListening(bool enable) override;
   void EnableHotword(bool enable) override;
+  void SetArcPlayStoreEnabled(bool enabled) override;
   State GetState() const override;
   AssistantSettingsManager* GetAssistantSettingsManager() override;
 
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc
index 0a5fade0..5270a3c 100644
--- a/chromeos/services/assistant/service.cc
+++ b/chromeos/services/assistant/service.cc
@@ -182,6 +182,10 @@
   UpdateAssistantManagerState();
 }
 
+void Service::OnArcPlayStoreEnabledChanged(bool enabled) {
+  UpdateAssistantManagerState();
+}
+
 void Service::OnVoiceInteractionHotwordAlwaysOn(bool always_on) {
   // No need to update hotword status if power source is connected.
   if (power_source_connected_)
@@ -195,7 +199,8 @@
       !assistant_state_.settings_enabled().has_value() ||
       !assistant_state_.hotword_always_on().has_value() ||
       !assistant_state_.locale().has_value() ||
-      (!access_token_.has_value() && !is_signed_out_mode_)) {
+      (!access_token_.has_value() && !is_signed_out_mode_) ||
+      !assistant_state_.arc_play_store_enabled().has_value()) {
     // Assistant state has not finished initialization, let's wait.
     return;
   }
@@ -226,6 +231,8 @@
         if (!is_signed_out_mode_)
           assistant_manager_service_->SetAccessToken(access_token_.value());
         assistant_manager_service_->EnableHotword(ShouldEnableHotword());
+        assistant_manager_service_->SetArcPlayStoreEnabled(
+            assistant_state_.arc_play_store_enabled().value());
       } else {
         StopAssistantManagerService();
       }
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h
index 57784d9..ca69ce5d5 100644
--- a/chromeos/services/assistant/service.h
+++ b/chromeos/services/assistant/service.h
@@ -130,6 +130,7 @@
   void OnVoiceInteractionHotwordEnabled(bool enabled) override;
   void OnVoiceInteractionHotwordAlwaysOn(bool always_on) override;
   void OnLocaleChanged(const std::string& locale) override;
+  void OnArcPlayStoreEnabledChanged(bool enabled) override;
 
   void UpdateAssistantManagerState();
   void BindAssistantSettingsManager(
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 486d546..948478e 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -56,6 +56,8 @@
   }
 
   if (is_android) {
+    enable_multidex = true
+
     # The tracing unittests require this for testing unwinding. See
     # stack_unwinder_android_unittest.cc.
     if (can_unwind_with_cfi_table && is_official_build) {
@@ -539,6 +541,7 @@
     }
 
     if (is_android) {
+      enable_multidex = true
       sources += [
         "autofill_assistant/browser/web_controller_browsertest.cc",
         "test/android/browsertests_apk/components_browser_tests_jni_onload.cc",
@@ -622,6 +625,7 @@
     ]
 
     if (is_android) {
+      enable_multidex = true
       deps += [ "//ui/android:ui_java" ]
       if (use_v8_context_snapshot) {
         deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
index be83667..03121ad 100644
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -76,10 +76,6 @@
 const base::Feature kAutofillEnableCompanyName{
     "AutofillEnableCompanyName", base::FEATURE_ENABLED_BY_DEFAULT};
 
-// Controls whether the iframe messaging is enabled for autofill on iOS.
-const base::Feature kAutofillEnableIFrameSupportOniOS{
-    "AutofillEnableIFrameSupportOniOS", base::FEATURE_ENABLED_BY_DEFAULT};
-
 // When enabled, autofill server will override field types with rater
 // consensus data before returning to client.
 const base::Feature kAutofillOverrideWithRaterConsensus{
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h
index 2d3bb30..4e7fecf 100644
--- a/components/autofill/core/common/autofill_features.h
+++ b/components/autofill/core/common/autofill_features.h
@@ -34,7 +34,6 @@
 extern const base::Feature kAutofillEnableAccountWalletStorage;
 extern const base::Feature kAutofillEnableAccountWalletStorageUpload;
 extern const base::Feature kAutofillEnableCompanyName;
-extern const base::Feature kAutofillEnableIFrameSupportOniOS;
 extern const base::Feature kAutofillEnforceMinRequiredFieldsForHeuristics;
 extern const base::Feature kAutofillEnforceMinRequiredFieldsForQuery;
 extern const base::Feature kAutofillEnforceMinRequiredFieldsForUpload;
diff --git a/components/autofill/ios/browser/BUILD.gn b/components/autofill/ios/browser/BUILD.gn
index 3a5e25be..58fe3dab 100644
--- a/components/autofill/ios/browser/BUILD.gn
+++ b/components/autofill/ios/browser/BUILD.gn
@@ -15,8 +15,6 @@
     "autofill_driver_ios_bridge.h",
     "autofill_driver_ios_webframe.h",
     "autofill_driver_ios_webframe.mm",
-    "autofill_driver_ios_webstate.h",
-    "autofill_driver_ios_webstate.mm",
     "autofill_switches.cc",
     "autofill_switches.h",
     "autofill_util.h",
diff --git a/components/autofill/ios/browser/autofill_agent.mm b/components/autofill/ios/browser/autofill_agent.mm
index d6de84b..c749c55b 100644
--- a/components/autofill/ios/browser/autofill_agent.mm
+++ b/components/autofill/ios/browser/autofill_agent.mm
@@ -36,7 +36,6 @@
 #include "components/autofill/core/common/form_field_data.h"
 #include "components/autofill/ios/browser/autofill_driver_ios.h"
 #include "components/autofill/ios/browser/autofill_driver_ios_webframe.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #include "components/autofill/ios/browser/autofill_util.h"
 #import "components/autofill/ios/browser/form_suggestion.h"
 #import "components/autofill/ios/browser/form_suggestion_provider.h"
@@ -342,7 +341,7 @@
 
   web::WebFrame* frame =
       web::GetWebFrameWithId(webState_, base::SysNSStringToUTF8(frameID));
-  if (!frame && autofill::switches::IsAutofillIFrameMessagingEnabled()) {
+  if (!frame) {
     completion(NO);
     return;
   }
@@ -566,9 +565,8 @@
 - (void)webStateWasShown:(web::WebState*)webState {
   DCHECK_EQ(webState_, webState);
   if (pendingFormData_.second) {
-    // If IsAutofillIFrameMessagingEnabled, the frameID cannot be empty.
-    DCHECK(!autofill::switches::IsAutofillIFrameMessagingEnabled() ||
-           !pendingFormData_.first.empty());
+    // The frameID cannot be empty.
+    DCHECK(!pendingFormData_.first.empty());
     web::WebFrame* frame = nullptr;
     if (!pendingFormData_.first.empty()) {
       frame = web::GetWebFrameWithId(webState_, pendingFormData_.first);
@@ -589,10 +587,6 @@
     [self processPage:webState];
     return;
   }
-  if (!autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    // iFrame support is disabled.
-    return;
-  }
   // Check that the main frame has already been processed.
   if (!web::GetMainWebFrame(webState)) {
     return;
@@ -605,24 +599,6 @@
   [self processFrame:web_frame inWebState:webState];
 }
 
-- (void)webState:(web::WebState*)webState
-    didStartNavigation:(web::NavigationContext*)navigation {
-  DCHECK_EQ(webState_, webState);
-  // Ignore navigations within the same document, e.g., history.pushState().
-  if (navigation->IsSameDocument())
-    return;
-  if (!autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    // Reset AutofillManager before processing the new page.
-    web::WebFrame* frame = web::GetMainWebFrame(webState);
-    autofill::AutofillManager* autofillManager =
-        [self autofillManagerFromWebState:webState webFrame:frame];
-    DCHECK(autofillManager);
-    autofillManager->Reset();
-    autofill::AutofillDriverIOS::FromWebStateAndWebFrame(webState, nullptr)
-        ->set_processed(false);
-  }
-}
-
 - (void)webState:(web::WebState*)webState didLoadPageWithSuccess:(BOOL)success {
   DCHECK_EQ(webState_, webState);
   if (![self isAutofillEnabled])
@@ -654,14 +630,11 @@
     return;
   }
   [self processFrame:framesManager->GetMainWebFrame() inWebState:webState];
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    [self processFrame:framesManager->GetMainWebFrame() inWebState:webState];
-    for (auto* frame : framesManager->GetAllWebFrames()) {
-      if (frame->IsMainFrame()) {
-        continue;
-      }
-      [self processFrame:frame inWebState:webState];
+  for (auto* frame : framesManager->GetAllWebFrames()) {
+    if (frame->IsMainFrame()) {
+      continue;
     }
+    [self processFrame:frame inWebState:webState];
   }
 }
 
@@ -806,20 +779,18 @@
       [self autofillManagerFromWebState:webState webFrame:frame];
   if (!autofillManager || !success || forms.empty())
     return;
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    // AutofillDriverIOSWebFrame will keep a refcountable AutofillDriverIOS.
-    // This is a workaround crbug.com/892612. On submission,
-    // AutofillDownloadManager and CreditCardSaveManager expect AutofillManager
-    // and AutofillDriver to live after web frame deletion so AutofillAgent will
-    // keep the latest submitted AutofillDriver alive.
-    // TODO(crbug.com/892612): remove this workaround once life cycle of
-    // AutofillManager is fixed.
-    DCHECK(frame);
-    last_submitted_autofill_driver_ =
-        autofill::AutofillDriverIOSWebFrame::FromWebFrame(frame)
-            ->GetRetainableDriver();
-    DCHECK(last_submitted_autofill_driver_);
-  }
+  // AutofillDriverIOSWebFrame will keep a refcountable AutofillDriverIOS.
+  // This is a workaround crbug.com/892612. On submission,
+  // AutofillDownloadManager and CreditCardSaveManager expect AutofillManager
+  // and AutofillDriver to live after web frame deletion so AutofillAgent will
+  // keep the latest submitted AutofillDriver alive.
+  // TODO(crbug.com/892612): remove this workaround once life cycle of
+  // AutofillManager is fixed.
+  DCHECK(frame);
+  last_submitted_autofill_driver_ =
+      autofill::AutofillDriverIOSWebFrame::FromWebFrame(frame)
+          ->GetRetainableDriver();
+  DCHECK(last_submitted_autofill_driver_);
   DCHECK(forms.size() <= 1) << "Only one form should be extracted.";
   [self notifyAutofillManager:autofillManager
              ofFormsSubmitted:forms
diff --git a/components/autofill/ios/browser/autofill_agent_unittests.mm b/components/autofill/ios/browser/autofill_agent_unittests.mm
index 72283a3..aa919a3 100644
--- a/components/autofill/ios/browser/autofill_agent_unittests.mm
+++ b/components/autofill/ios/browser/autofill_agent_unittests.mm
@@ -17,7 +17,6 @@
 #include "components/autofill/ios/browser/autofill_driver_ios.h"
 #import "components/autofill/ios/browser/js_autofill_manager.h"
 #include "components/prefs/pref_service.h"
-#include "ios/web/public/features.h"
 #include "ios/web/public/test/fakes/fake_web_frame.h"
 #include "ios/web/public/test/fakes/test_browser_state.h"
 #import "ios/web/public/test/fakes/test_web_state.h"
@@ -105,88 +104,7 @@
 // Tests that form's name and fields' identifiers, values, and whether they are
 // autofilled are sent to the JS. Fields with empty values and those that are
 // not autofilled are skipped.
-// Test with "IsAutofillIFrameMessagingEnabled" disabled.
-TEST_F(AutofillAgentTests, OnFormDataFilledTest) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
-  std::string locale("en");
-  autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
-      &test_web_state_, &client_, nil, locale,
-      autofill::AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER);
-
-  autofill::FormData form;
-  form.origin = GURL("https://myform.com");
-  form.action = GURL("https://myform.com/submit");
-  form.name = base::ASCIIToUTF16("CC form");
-
-  autofill::FormFieldData field;
-  field.form_control_type = "text";
-  field.label = base::ASCIIToUTF16("Card number");
-  field.name = base::ASCIIToUTF16("number");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("number");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("number_value");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  field.label = base::ASCIIToUTF16("Name on Card");
-  field.name = base::ASCIIToUTF16("name");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("name");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("name_value");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  field.label = base::ASCIIToUTF16("Expiry Month");
-  field.name = base::ASCIIToUTF16("expiry_month");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("expiry_month");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("01");
-  field.is_autofilled = false;
-  form.fields.push_back(field);
-  field.label = base::ASCIIToUTF16("Unknown field");
-  field.name = base::ASCIIToUTF16("unknown");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("unknown");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  // Fields are in alphabetical order.
-  [[mock_js_injection_receiver_ expect]
-      executeJavaScript:
-          @"__gCrWeb.autofill.fillForm({\"fields\":{\"name\":{\"section\":\"\","
-          @"\"value\":\"name_value\"},"
-          @"\"number\":{\"section\":\"\",\"value\":\"number_value\"}},"
-          @"\"formName\":\"CC form\"}, \"\");"
-      completionHandler:[OCMArg any]];
-  [autofill_agent_ fillFormData:form
-                        inFrame:web::GetMainWebFrame(&test_web_state_)];
-  test_web_state_.WasShown();
-
-  EXPECT_OCMOCK_VERIFY(mock_js_injection_receiver_);
-}
-
-// Tests that form's name and fields' identifiers, values, and whether they are
-// autofilled are sent to the JS. Fields with empty values and those that are
-// not autofilled are skipped.
-// Test with "IsAutofillIFrameMessagingEnabled" enabled.
 TEST_F(AutofillAgentTests, OnFormDataFilledTestWithFrameMessaging) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  enabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  enabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
   std::string locale("en");
   autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
       &test_web_state_, &client_, nil, locale,
@@ -244,79 +162,8 @@
 
 // Tests that in the case of conflict in fields' identifiers, the last seen
 // value of a given field is used.
-// Test with "IsAutofillIFrameMessagingEnabled" disabled.
-TEST_F(AutofillAgentTests, OnFormDataFilledWithNameCollisionTest) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
-  std::string locale("en");
-  autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
-      &test_web_state_, &client_, nil, locale,
-      autofill::AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER);
-
-  autofill::FormData form;
-  form.origin = GURL("https://myform.com");
-  form.action = GURL("https://myform.com/submit");
-
-  autofill::FormFieldData field;
-  field.form_control_type = "text";
-  field.label = base::ASCIIToUTF16("State");
-  field.name = base::ASCIIToUTF16("region");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("region");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("California");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  field.label = base::ASCIIToUTF16("Other field");
-  field.name = base::ASCIIToUTF16("field1");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("field1");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("value 1");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  field.label = base::ASCIIToUTF16("Other field");
-  field.name = base::ASCIIToUTF16("field1");
-  field.name_attribute = field.name;
-  field.id_attribute = base::ASCIIToUTF16("field1");
-  field.unique_id = field.id_attribute;
-  field.value = base::ASCIIToUTF16("value 2");
-  field.is_autofilled = true;
-  form.fields.push_back(field);
-  // Fields are in alphabetical order.
-  [[mock_js_injection_receiver_ expect]
-      executeJavaScript:
-          @"__gCrWeb.autofill.fillForm({\"fields\":{\"field1\":{\"section\":"
-          @"\"\",\"value\":\"value "
-          @"2\"},\"region\":{\"section\":\"\",\"value\":\"California\"}},"
-          @"\"formName\":\"\"}, \"\");"
-      completionHandler:[OCMArg any]];
-  [autofill_agent_ fillFormData:form
-                        inFrame:web::GetMainWebFrame(&test_web_state_)];
-  test_web_state_.WasShown();
-
-  EXPECT_OCMOCK_VERIFY(mock_js_injection_receiver_);
-}
-
-// Tests that in the case of conflict in fields' identifiers, the last seen
-// value of a given field is used.
-// Test with "IsAutofillIFrameMessagingEnabled" enabled.
 TEST_F(AutofillAgentTests,
        OnFormDataFilledWithNameCollisionTestFrameMessaging) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  enabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  enabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
   std::string locale("en");
   autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
       &test_web_state_, &client_, nil, locale,
@@ -366,48 +213,12 @@
 
 // Tests that when a user initiated form activity is registered the script to
 // extract forms is executed.
-// Test with "IsAutofillIFrameMessagingEnabled" disabled.
-TEST_F(AutofillAgentTests, CheckIfSuggestionsAvailable_UserInitiatedActivity1) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  enabled_features.push_back(
-      autofill::features::kAutofillRestrictUnownedFieldsToFormlessCheckout);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-  // TODO(crbug.com/881364): Fix for WebFrameMessaging.
-  [[mock_js_injection_receiver_ expect]
-      executeJavaScript:@"__gCrWeb.autofill.extractForms(1, true);"
-      completionHandler:[OCMArg any]];
-  [autofill_agent_ checkIfSuggestionsAvailableForForm:@"form"
-                                      fieldIdentifier:@"address"
-                                            fieldType:@"text"
-                                                 type:@"focus"
-                                           typedValue:@""
-                                              frameID:@"frameID"
-                                          isMainFrame:YES
-                                       hasUserGesture:YES
-                                             webState:&test_web_state_
-                                    completionHandler:nil];
-  test_web_state_.WasShown();
-
-  EXPECT_OCMOCK_VERIFY(mock_js_injection_receiver_);
-}
-
-// Tests that when a user initiated form activity is registered the script to
-// extract forms is executed.
-// Test with "IsAutofillIFrameMessagingEnabled" enabled.
 TEST_F(AutofillAgentTests,
        CheckIfSuggestionsAvailable_UserInitiatedActivity1FrameMessaging) {
   base::test::ScopedFeatureList scoped_feature_list;
   std::vector<base::Feature> enabled_features;
   std::vector<base::Feature> disabled_features;
   enabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  enabled_features.push_back(web::features::kWebFrameMessaging);
-  enabled_features.push_back(
       autofill::features::kAutofillRestrictUnownedFieldsToFormlessCheckout);
   scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
   [autofill_agent_ checkIfSuggestionsAvailableForForm:@"form"
@@ -425,73 +236,6 @@
             fake_main_frame_->last_javascript_call());
 }
 
-// Tests that when a user initiated form activity is registered the script to
-// extract forms is executed.
-// Test with "IsAutofillIFrameMessagingEnabled" disabled.
-TEST_F(AutofillAgentTests, CheckIfSuggestionsAvailable_UserInitiatedActivity2) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  disabled_features.push_back(
-      autofill::features::kAutofillRestrictUnownedFieldsToFormlessCheckout);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
-  // TODO(crbug.com/881364): Fix for WebFrameMessaging.
-  [[mock_js_injection_receiver_ expect]
-      executeJavaScript:@"__gCrWeb.autofill.extractForms(1, false);"
-      completionHandler:[OCMArg any]];
-  [autofill_agent_ checkIfSuggestionsAvailableForForm:@"form"
-                                      fieldIdentifier:@"address"
-                                            fieldType:@"text"
-                                                 type:@"focus"
-                                           typedValue:@""
-                                              frameID:@"frameID"
-                                          isMainFrame:YES
-                                       hasUserGesture:YES
-                                             webState:&test_web_state_
-                                    completionHandler:nil];
-  test_web_state_.WasShown();
-
-  EXPECT_OCMOCK_VERIFY(mock_js_injection_receiver_);
-}
-
-// Tests that when a user initiated form activity is registered the script to
-// extract forms is executed.
-// Test with "IsAutofillIFrameMessagingEnabled" disabled.
-TEST_F(AutofillAgentTests,
-       CheckIfSuggestionsAvailable_UserInitiatedActivity2FrameMessaging) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  disabled_features.push_back(
-      autofill::features::kAutofillRestrictUnownedFieldsToFormlessCheckout);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
-  // TODO(crbug.com/881364): Fix for WebFrameMessaging.
-  [[mock_js_injection_receiver_ expect]
-      executeJavaScript:@"__gCrWeb.autofill.extractForms(1, false);"
-      completionHandler:[OCMArg any]];
-  [autofill_agent_ checkIfSuggestionsAvailableForForm:@"form"
-                                      fieldIdentifier:@"address"
-                                            fieldType:@"text"
-                                                 type:@"focus"
-                                           typedValue:@""
-                                              frameID:@"frameID"
-                                          isMainFrame:YES
-                                       hasUserGesture:YES
-                                             webState:&test_web_state_
-                                    completionHandler:nil];
-  test_web_state_.WasShown();
-
-  EXPECT_OCMOCK_VERIFY(mock_js_injection_receiver_);
-}
-
 // Tests that when a non user initiated form activity is registered the
 // completion callback passed to the call to check if suggestions are available
 // is invoked with no suggestions.
@@ -619,91 +363,9 @@
   EXPECT_EQ(321, completion_handler_suggestions[3].identifier);
 }
 
-// Test that main frame is processed whatever is the order of pageloading
-// callbacks.
-TEST_F(AutofillAgentTests, FrameInitializationOrder) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  disabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  disabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
-  std::string locale("en");
-  autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
-      &test_web_state_, &client_, nil, locale,
-      autofill::AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER);
-
-  // Remove the current main frame.
-  test_web_state_.RemoveWebFrame(fake_main_frame_->GetFrameId());
-
-  // Add frame when page is loading.
-  auto main_frame_unique =
-      std::make_unique<web::FakeWebFrame>("main", true, GURL());
-  web::FakeWebFrame* main_frame = main_frame_unique.get();
-  autofill::AutofillDriverIOS* main_frame_driver =
-      autofill::AutofillDriverIOS::FromWebStateAndWebFrame(&test_web_state_,
-                                                           main_frame);
-  // autofill::AutofillDriver is created with a null web::WebFrame instance when
-  // frame messaging is disabled. IsInMainFrame() is expected to return true.
-  EXPECT_TRUE(main_frame_driver->IsInMainFrame());
-  test_web_state_.SetLoading(true);
-  test_web_state_.AddWebFrame(std::move(main_frame_unique));
-  EXPECT_FALSE(main_frame_driver->is_processed());
-  test_web_state_.SetLoading(false);
-  // Toggle mutations.
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-  // Toggle user edited field.
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-  // Extract Forms
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-
-  test_web_state_.OnPageLoaded(web::PageLoadCompletionStatus::SUCCESS);
-  EXPECT_TRUE(main_frame_driver->is_processed());
-  test_web_state_.RemoveWebFrame(main_frame->GetFrameId());
-  // Driver is in the WebState, so reset it manually.
-  main_frame_driver->set_processed(false);
-
-  // Add frame when page is loaded.
-  main_frame_unique = std::make_unique<web::FakeWebFrame>("main", true, GURL());
-  main_frame = main_frame_unique.get();
-  main_frame_driver = autofill::AutofillDriverIOS::FromWebStateAndWebFrame(
-      &test_web_state_, main_frame);
-  // autofill::AutofillDriver is created with a null web::WebFrame instance when
-  // frame messaging is disabled. IsInMainFrame() is expected to return true.
-  EXPECT_TRUE(main_frame_driver->IsInMainFrame());
-  test_web_state_.SetLoading(false);
-  test_web_state_.OnPageLoaded(web::PageLoadCompletionStatus::SUCCESS);
-  EXPECT_FALSE(main_frame_driver->is_processed());
-  // Toggle mutations.
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-  // Toggle user edited field.
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-  // Extract Forms
-  [[mock_js_injection_receiver_ expect] executeJavaScript:[OCMArg any]
-                                        completionHandler:[OCMArg any]];
-  test_web_state_.AddWebFrame(std::move(main_frame_unique));
-  EXPECT_TRUE(main_frame_driver->is_processed());
-  test_web_state_.RemoveWebFrame(main_frame->GetFrameId());
-}
-
 // Test that every frames are processed whatever is the order of pageloading
 // callbacks. The main frame should always be processed first.
 TEST_F(AutofillAgentTests, FrameInitializationOrderFrames) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  std::vector<base::Feature> enabled_features;
-  std::vector<base::Feature> disabled_features;
-  enabled_features.push_back(
-      autofill::features::kAutofillEnableIFrameSupportOniOS);
-  enabled_features.push_back(web::features::kWebFrameMessaging);
-  scoped_feature_list.InitWithFeatures(enabled_features, disabled_features);
-
   std::string locale("en");
   autofill::AutofillDriverIOS::PrepareForWebStateWebFrameAndDelegate(
       &test_web_state_, &client_, nil, locale,
diff --git a/components/autofill/ios/browser/autofill_driver_ios.mm b/components/autofill/ios/browser/autofill_driver_ios.mm
index 214164a0..87c2734 100644
--- a/components/autofill/ios/browser/autofill_driver_ios.mm
+++ b/components/autofill/ios/browser/autofill_driver_ios.mm
@@ -8,8 +8,6 @@
 #include "components/autofill/core/browser/form_structure.h"
 #include "components/autofill/ios/browser/autofill_driver_ios_bridge.h"
 #include "components/autofill/ios/browser/autofill_driver_ios_webframe.h"
-#include "components/autofill/ios/browser/autofill_driver_ios_webstate.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #include "ios/web/public/browser_state.h"
 #import "ios/web/public/origin_util.h"
 #import "ios/web/public/web_state/web_frame_util.h"
@@ -31,29 +29,20 @@
     id<AutofillDriverIOSBridge> bridge,
     const std::string& app_locale,
     AutofillManager::AutofillDownloadManagerState enable_download_manager) {
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    AutofillDriverIOSWebFrameFactory::CreateForWebStateAndDelegate(
-        web_state, client, bridge, app_locale, enable_download_manager);
-    // By the time this method is called, no web_frame is available. This method
-    // only prepare the factory and the AutofillDriverIOS will be created in the
-    // first call to FromWebStateAndWebFrame.
-  } else {
-    AutofillDriverIOSWebState::CreateForWebStateAndDelegate(
-        web_state, client, bridge, app_locale, enable_download_manager);
-  }
+  // By the time this method is called, no web_frame is available. This method
+  // only prepares the factory and the AutofillDriverIOS will be created in the
+  // first call to FromWebStateAndWebFrame.
+  AutofillDriverIOSWebFrameFactory::CreateForWebStateAndDelegate(
+      web_state, client, bridge, app_locale, enable_download_manager);
 }
 
 // static
 AutofillDriverIOS* AutofillDriverIOS::FromWebStateAndWebFrame(
     web::WebState* web_state,
     web::WebFrame* web_frame) {
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
     return AutofillDriverIOSWebFrameFactory::FromWebState(web_state)
         ->AutofillDriverIOSFromWebFrame(web_frame)
         ->driver();
-  } else {
-    return AutofillDriverIOSWebState::FromWebState(web_state);
-  }
 }
 
 AutofillDriverIOS::AutofillDriverIOS(
diff --git a/components/autofill/ios/browser/autofill_driver_ios_webstate.h b/components/autofill/ios/browser/autofill_driver_ios_webstate.h
deleted file mode 100644
index 0da71bf..0000000
--- a/components/autofill/ios/browser/autofill_driver_ios_webstate.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_AUTOFILL_IOS_BROWSER_AUTOFILL_DRIVER_IOS_WEBSTATE_H_
-#define COMPONENTS_AUTOFILL_IOS_BROWSER_AUTOFILL_DRIVER_IOS_WEBSTATE_H_
-
-#include "components/autofill/ios/browser/autofill_driver_ios.h"
-#include "ios/web/public/web_state/web_state_user_data.h"
-
-namespace web {
-class WebState;
-}  // namespace web
-
-namespace autofill {
-
-// TODO(crbug.com/883203): remove class once WebFrame is released.
-class AutofillDriverIOSWebState
-    : public AutofillDriverIOS,
-      public web::WebStateUserData<AutofillDriverIOSWebState> {
- public:
-  static void CreateForWebStateAndDelegate(
-      web::WebState* web_state,
-      AutofillClient* client,
-      id<AutofillDriverIOSBridge> bridge,
-      const std::string& app_locale,
-      AutofillManager::AutofillDownloadManagerState enable_download_manager);
-
-  ~AutofillDriverIOSWebState() override;
-
-  AutofillDriverIOSWebState(
-      web::WebState* web_state,
-      AutofillClient* client,
-      id<AutofillDriverIOSBridge> bridge,
-      const std::string& app_locale,
-      AutofillManager::AutofillDownloadManagerState enable_download_manager);
-  WEB_STATE_USER_DATA_KEY_DECL();
-};
-}  // namespace autofill
-
-#endif  // COMPONENTS_AUTOFILL_CONTENT_BROWSER_AUTOFILL_DRIVER_IOS_WEBSTATE_H_
diff --git a/components/autofill/ios/browser/autofill_driver_ios_webstate.mm b/components/autofill/ios/browser/autofill_driver_ios_webstate.mm
deleted file mode 100644
index 723b4b9..0000000
--- a/components/autofill/ios/browser/autofill_driver_ios_webstate.mm
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/autofill/ios/browser/autofill_driver_ios_webstate.h"
-
-#import "ios/web/public/web_state/web_state.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-namespace autofill {
-
-// static
-void AutofillDriverIOSWebState::CreateForWebStateAndDelegate(
-    web::WebState* web_state,
-    AutofillClient* client,
-    id<AutofillDriverIOSBridge> bridge,
-    const std::string& app_locale,
-    AutofillManager::AutofillDownloadManagerState enable_download_manager) {
-  if (FromWebState(web_state))
-    return;
-
-  web_state->SetUserData(
-      UserDataKey(),
-      std::make_unique<AutofillDriverIOSWebState>(
-          web_state, client, bridge, app_locale, enable_download_manager));
-}
-
-AutofillDriverIOSWebState::AutofillDriverIOSWebState(
-    web::WebState* web_state,
-    AutofillClient* client,
-    id<AutofillDriverIOSBridge> bridge,
-    const std::string& app_locale,
-    AutofillManager::AutofillDownloadManagerState enable_download_manager)
-    : AutofillDriverIOS(web_state,
-                        /*web_frame=*/nullptr,
-                        client,
-                        bridge,
-                        app_locale,
-                        enable_download_manager) {}
-
-AutofillDriverIOSWebState::~AutofillDriverIOSWebState() {}
-
-WEB_STATE_USER_DATA_KEY_IMPL(AutofillDriverIOSWebState)
-
-}  //  namespace autofill
diff --git a/components/autofill/ios/browser/autofill_switches.cc b/components/autofill/ios/browser/autofill_switches.cc
index cc853678..2dfd9aed 100644
--- a/components/autofill/ios/browser/autofill_switches.cc
+++ b/components/autofill/ios/browser/autofill_switches.cc
@@ -3,9 +3,6 @@
 // found in the LICENSE file.
 
 #include "components/autofill/ios/browser/autofill_switches.h"
-#include "build/build_config.h"
-#include "components/autofill/core/common/autofill_features.h"
-#include "ios/web/public/features.h"
 
 namespace autofill {
 namespace switches {
@@ -14,11 +11,5 @@
 const char kAutofillIOSDelayBetweenFields[] =
     "autofill-ios-delay-between-fields";
 
-bool IsAutofillIFrameMessagingEnabled() {
-  return base::FeatureList::IsEnabled(
-             features::kAutofillEnableIFrameSupportOniOS) &&
-         base::FeatureList::IsEnabled(web::features::kWebFrameMessaging);
-}
-
 }  // namespace switches
 }  // namespace autofill
diff --git a/components/autofill/ios/browser/autofill_switches.h b/components/autofill/ios/browser/autofill_switches.h
index 9ee06d8c..c48dea0 100644
--- a/components/autofill/ios/browser/autofill_switches.h
+++ b/components/autofill/ios/browser/autofill_switches.h
@@ -12,7 +12,6 @@
 
 extern const char kAutofillIOSDelayBetweenFields[];
 
-bool IsAutofillIFrameMessagingEnabled();
 }  // namespace switches
 }  // namespace autofill
 
diff --git a/components/autofill/ios/browser/autofill_util.h b/components/autofill/ios/browser/autofill_util.h
index 59a2601..260aa73 100644
--- a/components/autofill/ios/browser/autofill_util.h
+++ b/components/autofill/ios/browser/autofill_util.h
@@ -55,28 +55,14 @@
 bool ExtractFormFieldData(const base::DictionaryValue& field,
                           FormFieldData* field_data);
 
-// Executes the JavaScript function using WebState of WebFrame functions
-// depending on the value of IsAutofillIFrameMessagingEnabled.
+// Executes the JavaScript function with the given name and argument.
 // If |callback| is not null, it will be called when the result of the
 // command is received, or immediately if the command cannot be executed.
-// It will call the either |ExecuteJavaScriptFunctionInWebFrame:...| or
-// |ExecuteJavaScriptFunctionInWebState:...| depending on the
-// IsAutofillIFrameMessagingEnabled value.
 void ExecuteJavaScriptFunction(const std::string& name,
                                const std::vector<base::Value>& parameters,
                                web::WebFrame* frame,
                                CRWJSInjectionReceiver* js_injection_receiver,
                                base::OnceCallback<void(NSString*)> callback);
-void ExecuteJavaScriptFunctionInWebFrame(
-    const std::string& name,
-    const std::vector<base::Value>& parameters,
-    web::WebFrame* frame,
-    base::OnceCallback<void(NSString*)> callback);
-void ExecuteJavaScriptFunctionInWebState(
-    const std::string& name,
-    const std::vector<base::Value>& parameters,
-    CRWJSInjectionReceiver* js_injection_receiver,
-    base::OnceCallback<void(NSString*)> callback);
 
 }  // namespace autofill
 
diff --git a/components/autofill/ios/browser/autofill_util.mm b/components/autofill/ios/browser/autofill_util.mm
index 208e29c..be69702 100644
--- a/components/autofill/ios/browser/autofill_util.mm
+++ b/components/autofill/ios/browser/autofill_util.mm
@@ -18,7 +18,6 @@
 #include "components/autofill/core/common/autofill_util.h"
 #include "components/autofill/core/common/form_data.h"
 #include "components/autofill/core/common/form_field_data.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #import "ios/web/public/navigation_item.h"
 #import "ios/web/public/navigation_manager.h"
 #include "ios/web/public/ssl_status.h"
@@ -28,7 +27,6 @@
 
 namespace {
 // The timeout for any JavaScript call in this file.
-// It is only used if IsAutofillIFrameMessagingEnabled is enabled.
 const int64_t kJavaScriptExecutionTimeoutInSeconds = 5;
 }
 
@@ -218,73 +216,31 @@
                                web::WebFrame* frame,
                                CRWJSInjectionReceiver* js_injection_receiver,
                                base::OnceCallback<void(NSString*)> callback) {
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    ExecuteJavaScriptFunctionInWebFrame(name, parameters, frame,
-                                        std::move(callback));
-  } else {
-    ExecuteJavaScriptFunctionInWebState(name, parameters, js_injection_receiver,
-                                        std::move(callback));
-  }
-}
-
-void ExecuteJavaScriptFunctionInWebFrame(
-    const std::string& name,
-    const std::vector<base::Value>& parameters,
-    web::WebFrame* frame,
-    base::OnceCallback<void(NSString*)> cb) {
-  __block base::OnceCallback<void(NSString*)> callback = std::move(cb);
+  __block base::OnceCallback<void(NSString*)> cb = std::move(callback);
 
   if (!frame) {
-    if (!callback.is_null()) {
-      std::move(callback).Run(nil);
+    if (!cb.is_null()) {
+      std::move(cb).Run(nil);
     }
     return;
   }
   DCHECK(frame->CanCallJavaScriptFunction());
-  if (!callback.is_null()) {
+  if (!cb.is_null()) {
     bool called = frame->CallJavaScriptFunction(
         name, parameters, base::BindOnce(^(const base::Value* res) {
           NSString* result = nil;
           if (res && res->is_string()) {
             result = base::SysUTF8ToNSString(res->GetString());
           }
-          std::move(callback).Run(result);
+          std::move(cb).Run(result);
         }),
         base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
     if (!called) {
-      std::move(callback).Run(nil);
+      std::move(cb).Run(nil);
     }
   } else {
     frame->CallJavaScriptFunction(name, parameters);
   }
 }
 
-void ExecuteJavaScriptFunctionInWebState(
-    const std::string& name,
-    const std::vector<base::Value>& parameters,
-    CRWJSInjectionReceiver* js_injection_receiver,
-    base::OnceCallback<void(NSString*)> cb) {
-  __block base::OnceCallback<void(NSString*)> callback = std::move(cb);
-
-  std::string function_name = "__gCrWeb." + name;
-  NSMutableArray* json_parameters = [[NSMutableArray alloc] init];
-  for (auto& value : parameters) {
-    std::string dataString;
-    base::JSONWriter::Write(value, &dataString);
-    [json_parameters addObject:base::SysUTF8ToNSString(dataString)];
-  }
-  NSString* command = [NSString
-      stringWithFormat:@"%s(%@);", function_name.c_str(),
-                       [json_parameters componentsJoinedByString:@", "]];
-  if (!callback.is_null()) {
-    [js_injection_receiver
-        executeJavaScript:command
-        completionHandler:^(id result, NSError* error) {
-          std::move(callback).Run(base::mac::ObjCCastStrict<NSString>(result));
-        }];
-  } else {
-    [js_injection_receiver executeJavaScript:command completionHandler:nil];
-  }
-}
-
 }  // namespace autofill
diff --git a/components/autofill/ios/browser/js_suggestion_manager.mm b/components/autofill/ios/browser/js_suggestion_manager.mm
index 39f77b5c0..b1af40d 100644
--- a/components/autofill/ios/browser/js_suggestion_manager.mm
+++ b/components/autofill/ios/browser/js_suggestion_manager.mm
@@ -13,7 +13,6 @@
 #include "base/logging.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/values.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #import "components/autofill/ios/browser/autofill_util.h"
 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
 #include "ios/web/public/web_state/web_frame.h"
@@ -133,11 +132,8 @@
 }
 
 - (web::WebFrame*)frameWithFrameID:(NSString*)frameID {
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    DCHECK(_webFramesManager);
-    return _webFramesManager->GetFrameWithId(base::SysNSStringToUTF8(frameID));
-  }
-  return nil;
+  DCHECK(_webFramesManager);
+  return _webFramesManager->GetFrameWithId(base::SysNSStringToUTF8(frameID));
 }
 
 @end
diff --git a/components/autofill/ios/form_util/form_activity_tab_helper.mm b/components/autofill/ios/form_util/form_activity_tab_helper.mm
index ba38e373..bf8bc033 100644
--- a/components/autofill/ios/form_util/form_activity_tab_helper.mm
+++ b/components/autofill/ios/form_util/form_activity_tab_helper.mm
@@ -10,7 +10,6 @@
 #include "base/values.h"
 #include "components/autofill/ios/form_util/form_activity_observer.h"
 #include "components/autofill/ios/form_util/form_activity_params.h"
-#include "ios/web/public/features.h"
 #include "ios/web/public/web_state/web_frame.h"
 
 #if !defined(__has_feature) || !__has_feature(objc_arc)
@@ -99,13 +98,10 @@
   }
 
   params.is_main_frame = form_in_main_frame;
-  if (!sender_frame &&
-      base::FeatureList::IsEnabled(web::features::kWebFrameMessaging)) {
+  if (!sender_frame) {
     return false;
   }
-  if (sender_frame) {
-    params.frame_id = sender_frame->GetFrameId();
-  }
+  params.frame_id = sender_frame->GetFrameId();
   for (auto& observer : observers_)
     observer.FormActivityRegistered(web_state_, sender_frame, params);
   return true;
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
index a8bd7d1..40b24ca 100644
--- a/components/ntp_snippets/features.cc
+++ b/components/ntp_snippets/features.cc
@@ -28,7 +28,6 @@
     &kCategoryOrder,
     &kCategoryRanker,
     &kContentSuggestionsDebugLog,
-    &kIncreasedVisibility,
     &kKeepPrefetchedContentSuggestions,
     &kNotificationsFeature,
     &kRemoteSuggestionsBackendFeature};
@@ -39,9 +38,6 @@
 const base::Feature kBookmarkSuggestionsFeature{
     "NTPBookmarkSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
 
-const base::Feature kIncreasedVisibility{"NTPSnippetsIncreasedVisibility",
-                                         base::FEATURE_ENABLED_BY_DEFAULT};
-
 const base::Feature kBreakingNewsPushFeature{"BreakingNewsPush",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/components/ntp_snippets/features.h b/components/ntp_snippets/features.h
index 2399980..04824c25 100644
--- a/components/ntp_snippets/features.h
+++ b/components/ntp_snippets/features.h
@@ -39,9 +39,6 @@
 
 extern const base::Feature kArticleSuggestionsFeature;
 
-// Feature to allow UI as specified here: https://crbug.com/660837.
-extern const base::Feature kIncreasedVisibility;
-
 // Feature to listen for GCM push updates from the server.
 extern const base::Feature kBreakingNewsPushFeature;
 
diff --git a/components/offline_pages/core/prefetch/prefetch_dispatcher_impl.cc b/components/offline_pages/core/prefetch/prefetch_dispatcher_impl.cc
index 7e50bfec..a35836e 100644
--- a/components/offline_pages/core/prefetch/prefetch_dispatcher_impl.cc
+++ b/components/offline_pages/core/prefetch/prefetch_dispatcher_impl.cc
@@ -59,10 +59,11 @@
 }
 
 PrefetchURL SuggestionToPrefetchURL(PrefetchSuggestion suggestion) {
-  PrefetchURL result(suggestion.article_url.spec(), suggestion.article_url,
-                     base::UTF8ToUTF16(suggestion.article_title));
-  result.thumbnail_url = suggestion.thumbnail_url;
-  return result;
+  return PrefetchURL(suggestion.article_url.spec(), suggestion.article_url,
+                     base::UTF8ToUTF16(suggestion.article_title),
+                     suggestion.thumbnail_url, suggestion.favicon_url,
+                     suggestion.article_snippet,
+                     suggestion.article_attribution);
 }
 
 }  // namespace
diff --git a/components/offline_pages/core/prefetch/prefetch_types.cc b/components/offline_pages/core/prefetch/prefetch_types.cc
index 5fc940c3..c1d6264 100644
--- a/components/offline_pages/core/prefetch/prefetch_types.cc
+++ b/components/offline_pages/core/prefetch/prefetch_types.cc
@@ -138,7 +138,28 @@
 PrefetchURL::PrefetchURL(const std::string& id,
                          const GURL& url,
                          const base::string16& title)
-    : id(id), url(url), title(title) {}
+    : id(id),
+      url(url),
+      title(title),
+      thumbnail_url(GURL()),
+      favicon_url(GURL()),
+      snippet(std::string()),
+      attribution(std::string()) {}
+
+PrefetchURL::PrefetchURL(const std::string& id,
+                         const GURL& url,
+                         const base::string16& title,
+                         const GURL& thumbnail_url,
+                         const GURL& favicon_url,
+                         const std::string& snippet,
+                         const std::string& attribution)
+    : id(id),
+      url(url),
+      title(title),
+      thumbnail_url(thumbnail_url),
+      favicon_url(favicon_url),
+      snippet(snippet),
+      attribution(attribution) {}
 
 PrefetchURL::~PrefetchURL() = default;
 
diff --git a/components/offline_pages/core/prefetch/prefetch_types.h b/components/offline_pages/core/prefetch/prefetch_types.h
index 1147d7b..9b93b2b 100644
--- a/components/offline_pages/core/prefetch/prefetch_types.h
+++ b/components/offline_pages/core/prefetch/prefetch_types.h
@@ -214,6 +214,13 @@
   PrefetchURL(const std::string& id,
               const GURL& url,
               const base::string16& title);
+  PrefetchURL(const std::string& id,
+              const GURL& url,
+              const base::string16& title,
+              const GURL& thumbnail_url,
+              const GURL& favicon_url,
+              const std::string& snippet,
+              const std::string& attribution);
   ~PrefetchURL();
   PrefetchURL(const PrefetchURL& other);
 
@@ -232,6 +239,15 @@
   // URL for a thumbnail that represents the page. May be empty if no thumbnail
   // is available.
   GURL thumbnail_url;
+
+  // URL for page's favicon.
+  GURL favicon_url;
+
+  // Article snippet.
+  std::string snippet;
+
+  // Identifies the page's publisher.
+  std::string attribution;
 };
 
 // Result of a completed download.
diff --git a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
index dc4a84d..6f97bb7 100644
--- a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
+++ b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task.cc
@@ -54,9 +54,10 @@
   static const char kSql[] =
       "INSERT INTO prefetch_items"
       " (offline_id, requested_url, client_namespace, client_id, creation_time,"
-      " freshness_time, title, thumbnail_url)"
+      " freshness_time, title, thumbnail_url, favicon_url, snippet,"
+      " attribution)"
       " VALUES"
-      " (?, ?, ?, ?, ?, ?, ?, ?)";
+      " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
 
   sql::Statement statement(db->GetCachedStatement(SQL_FROM_HERE, kSql));
   statement.BindInt64(0, store_utils::GenerateOfflineId());
@@ -67,6 +68,9 @@
   statement.BindInt64(5, now_db_time);
   statement.BindString16(6, prefetch_url.title);
   statement.BindString(7, prefetch_url.thumbnail_url.spec());
+  statement.BindString(8, prefetch_url.favicon_url.spec());
+  statement.BindString(9, prefetch_url.snippet);
+  statement.BindString(10, prefetch_url.attribution);
 
   return statement.Run();
 }
diff --git a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
index 6df8ed8..28c4169 100644
--- a/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
+++ b/components/offline_pages/core/prefetch/tasks/add_unique_urls_task_unittest.cc
@@ -31,16 +31,31 @@
 const char kClientId3[] = "ID-3";
 const char kTestThumbnailURL[] = "http://thumbnail.com/";
 PrefetchURL PrefetchURL1() {
-  return {kClientId1, GURL("https://www.url1.com/"),
-          base::ASCIIToUTF16("Title 1")};
+  return {kClientId1,
+          GURL("https://www.url1.com/"),
+          base::ASCIIToUTF16("Title 1"),
+          GURL("https://www.url1.com/thumbnail.png"),
+          GURL("https://www.url1.com/favicon.png"),
+          "snippet 1",
+          "url1.com"};
 }
 PrefetchURL PrefetchURL2() {
-  return {kClientId2, GURL("http://www.url2.com/"),
-          base::ASCIIToUTF16("Title 2")};
+  return {kClientId2,
+          GURL("https://www.url2.com/"),
+          base::ASCIIToUTF16("Title 2"),
+          GURL("https://www.url2.com/thumbnail.png"),
+          GURL("https://www.url2.com/favicon.png"),
+          "snippet 2",
+          "url2.com"};
 }
 PrefetchURL PrefetchURL3() {
-  return {kClientId3, GURL("http://www.url3.com/"),
-          base::ASCIIToUTF16("Title 3")};
+  return {kClientId3,
+          GURL("https://www.url3.com/"),
+          base::ASCIIToUTF16("Title 3"),
+          GURL("https://www.url3.com/thumbnail.png"),
+          GURL("https://www.url3.com/favicon.png"),
+          "snippet 3",
+          "url3.com"};
 }
 }  // namespace
 
@@ -91,6 +106,9 @@
   EXPECT_EQ(kTestNamespace, items[kClientId1].client_id.name_space);
   EXPECT_EQ(PrefetchURL1().title, items[kClientId1].title);
   EXPECT_EQ(kTestThumbnailURL, items[kClientId1].thumbnail_url);
+  EXPECT_EQ(PrefetchURL1().favicon_url, items[kClientId1].favicon_url);
+  EXPECT_EQ(PrefetchURL1().snippet, items[kClientId1].snippet);
+  EXPECT_EQ(PrefetchURL1().attribution, items[kClientId1].attribution);
 
   // Check that the second item exists.
   ASSERT_GT(items.count(kClientId2), 0UL);
diff --git a/components/password_manager/ios/password_form_helper.mm b/components/password_manager/ios/password_form_helper.mm
index 82dcf3f..92cca5d 100644
--- a/components/password_manager/ios/password_form_helper.mm
+++ b/components/password_manager/ios/password_form_helper.mm
@@ -12,7 +12,6 @@
 #include "components/autofill/core/common/form_data.h"
 #include "components/autofill/core/common/password_form.h"
 #include "components/autofill/core/common/password_form_fill_data.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #include "components/autofill/ios/browser/autofill_util.h"
 #include "components/password_manager/core/browser/form_parsing/ios_form_parser.h"
 #include "components/password_manager/ios/account_select_fill_data.h"
@@ -175,8 +174,7 @@
                            inFrame:(web::WebFrame*)frame {
   DCHECK_EQ(_webState, webState);
   GURL pageURL = webState->GetLastCommittedURL();
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled() &&
-      pageURL.GetOrigin() != frame->GetSecurityOrigin()) {
+  if (pageURL.GetOrigin() != frame->GetSecurityOrigin()) {
     // Passwords is only supported on main frame and iframes with the same
     // origin.
     return;
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb
index 14083280..ca7eeebe 100644
--- a/components/policy/resources/policy_templates_bn.xtb
+++ b/components/policy/resources/policy_templates_bn.xtb
@@ -85,6 +85,14 @@
       এই নীতি সেট করা না থাকলে, ক্যাশে থাকা GPO ২৫ ঘণ্টা পর্যন্ত ব্যবহার করা যেতে পারে।
 
       এই নীতি '০' হিসেবে সেট করা থাকলে, GPO ক্যাশ করা বন্ধ থাকে। মনে রাখবেন যে প্রত্যেকবার নীতি ফেচ করার সময় ভার্সন পরিবর্তন না হলেও GPO ডাউনলোড করা হয় বলে এটি সার্ভারের উপর লোড বৃদ্ধি করে।</translation>
+<translation id="1117462881884985156"><ph name="PRODUCT_NAME" /> এখানে দেওয়া হোস্টের তালিকার জন্য যেকোনও প্রক্সি বাইপাস করবে।
+
+          আপনি যদি 'কীভাবে প্রক্সি সার্ভারের সেটিংস নির্দিষ্ট করবেন বেছে নিন'-এ ম্যানুয়াল প্রক্সি সেটিংস বেছে নেন এবং যদি <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি নির্দিষ্ট না করা থাকে তাহলেই এই নীতি কার্যকর হবে।
+
+          প্রক্সি নীতি সেট করার জন্য আপনি যদি অন্য কোনও মোড বেছে নিয়ে থাকেন তাহলে আপনার এই নীতিটিকে সেট না করা অবস্থায় রেখে দেওয়াY উচিত।
+
+          আরও বিস্তারিত উদাহরণের জন্য, এই লিঙ্কে যান:
+          <ph name="PROXY_HELP_URL" /></translation>
 <translation id="1117535567637097036">এই নীতির মারফত সেট করা প্রোটোকল হ্যান্ডলারগুলি Android ইন্টেন্ট পরিচালনার সময় ব্যবহার করা হয় না।</translation>
 <translation id="1118093128235245168">সাইটগুলিকে ব্যবহারকারীর থেকে একটি কানেক্ট করা ইউএসবি ডিভাইস অ্যাক্সেস করার অনুমতি নিতে  বিকল্পটি চালু করুন</translation>
 <translation id="1128903365609589950">ডিস্কে ক্যাশ ফাইলগুলি স্টোর করার জন্য <ph name="PRODUCT_NAME" /> যে ডিরেক্টরি ব্যবহার করবে তা কনফিগার করে।
@@ -337,6 +345,13 @@
 <translation id="1599424828227887013">Android ডিভাইসে নির্দিষ্ট উৎসের জন্য সাইট আইসোলেশন চালু করুন</translation>
 <translation id="1608755754295374538">এই URLগুলিকে বিজ্ঞপ্তি ছাড়াই অডিও ক্যাপচার ডিভাইসগুলিতে অ্যাক্সেসের অধিকার দেওয়া হবে</translation>
 <translation id="1615221548356595305">ক্লায়েন্ট সার্টিফিকেট ব্যবহার করার সময়ও এই হোস্টর জন্য HTTP/2 কানেকশন একত্রিত হওয়ার অনুমতি দিন</translation>
+<translation id="1615855314789673708">উইলকো DTC (ডায়গনস্টিক্স এবং টেলিমেট্রি কন্ট্রোলার) কনফিগারেশন দেয়।
+
+      এই নীতি উইলকো DTC কনফিগারেশন দিতে দেয় যা তখনই প্রয়োগ করা যায় যদি সেই ডিভাইসে উইলকো DTC থাকে এবং নীতির দ্বারা অনুমোদিত হয়। কনফিগারেশনের সাইজ ১MB (১০০০০০০ বাইট) এর বেশি হওয়া যাবে না এবং অবশ্যই JSON-এ এনকোড করা হতে হবে। উইলকো DTC এটি পরিচালনা করে। ডাউনলোডের ইন্টিগ্রিটি যাচাই করতে ক্রিপ্টোগ্রাফিক হ্যাশ ব্যবহার করা হয়।
+
+      কনফিগারেশন ডাউললোড করে ক্যাশে রাখা হয়েছে। ইউআরএল বা হ্যাশ পরিবর্তন হলেই এটি আবার ডাউনলোড হবে।
+
+      আপনি যদি এই নীতি সেট করে রাখেন তাহলে ব্যবহারকারী এটি পরিবর্তন বা ওভাররাইড করতে পারবেন না।</translation>
 <translation id="1617235075406854669">ব্রাউজার এবং ডাউনলোড ইতিহাস মুছে ফেলা সক্ষম করুন</translation>
 <translation id="163200210584085447">এই তালিকার প্যাটার্নগুলি অনুরোধ পাঠানো URL এর নিরাপত্তার
       উৎসের সাথে মেলানো হবে। যদি কোনো মিল খুঁজে পাওয়া যায়, তাহলে
@@ -1034,6 +1049,17 @@
      যদি এই নীতিটি সেট করা না থাকে তাহলে <ph name="PRINTERS_ALLOW_ALL" /> নীতি মেনে চলা হয়।
       </translation>
 <translation id="2908277604670530363">প্রক্সি সার্ভারের জন্য সংঘটনশীল সংযোগের সর্বধিক সংখ্যা</translation>
+<translation id="2948463916588961959">ভাষাতে বানান পরীক্ষা বাধ্যতামূলকভাবে চালু করে। তালিকার যে ভাষাগুলি শনাক্ত করা যাবে না সেগুলি অগ্রাহ্য করা হবে।
+
+      এই নীতিটি চালু করলে ব্যবহারকারী আগে যে ভাষাগুলি বেছে নিয়েছেন সেগুলি ছাড়াও এখানে নির্দিষ্ট করে দেওয়া ভাষাগুলিতে বানান পরীক্ষা চালু করা হবে।
+
+      আপনি যদি এই নীতি সেট না করেন বা বন্ধ করে রাখেন তাহলে ব্যবহারকারীর বানান পরীক্ষার পছন্দে কোনও পরিবর্তন হবে না।
+
+      যদি SpellcheckEnabled নীতি বন্ধ করা থাকে তাহলে এই নীতি কাজ করে না।
+
+      কোনও ভাষা যদি এই নীতি এবং SpellcheckLanguageBlacklist নীতি উভয়তেই অন্তর্ভুক্ত থাকে তাহলে এই নীতি অগ্রাধিকার পাবে এবং ভাষায় বানান পরীক্ষা চালু করা হবে।
+
+      বর্তমানে এই ভাষাগুলি কাজ করে: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi</translation>
 <translation id="2952347049958405264">সীমাবদ্ধতা:</translation>
 <translation id="2956777931324644324">এই নীতিটি <ph name="PRODUCT_NAME" /> সংস্করণ 36-এর হিসেবে সরানো করা হয়েছে।
 
@@ -1067,6 +1093,14 @@
 <translation id="3021562480854470924">মাইলস্টোনে কতবার ফিরে যাওয়া যাবে তার সংখ্যা</translation>
 <translation id="3023572080620427845">একটি বিকল্প ব্রাউজারে লোড করতে হবে এমন ইউআরএলগুলি সহ একটি XML ফাইলের ইউআরএল।</translation>
 <translation id="3030000825273123558">ছন্দোবিজ্ঞান প্রতিবেদন সক্ষম করুন</translation>
+<translation id="3033660238345063904">আপনি এখানে প্রক্সি সার্ভারের ইউআরএল নির্দিষ্ট করতে পারেন।
+
+          আপনি যদি 'কীভাবে প্রক্সি সার্ভারের সেটিংস নির্দিষ্ট করবেন বেছে নিন'-এ ম্যানুয়াল প্রক্সি সেটিংস বেছে নেন এবং যদি <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি নির্দিষ্ট না করা থাকে তাহলেই এই নীতি কার্যকর হবে।
+
+          প্রক্সি নীতি সেট করার জন্য আপনি যদি অন্য কোনও মোড বেছে নিয়ে থাকেন তাহলে আপনার এই নীতিটিকে সেট না করা অবস্থায় রেখে দেওয়াY উচিত।
+
+          আরও বিকল্প এবং বিস্তারিত উদাহরণের জন্য, এই লিঙ্কে যান:
+          <ph name="PROXY_HELP_URL" /></translation>
 <translation id="3034580675120919256">JavaScript চালনা করার অনুমতি দেওয়া হবে কিনা তা সেট করতে দেয়৷ JavaScript চালনা হয় সমস্ত ওয়েবসাইটের জন্য অনুমোদিত বা সমস্ত ওয়েবসাইটের জন্য অস্বীকৃত৷
 
 যদি নীতি সেট না করে ছেড়ে যাওয়া হয়, তাহলে 'JavaScript মঞ্জুর করুন' ব্যবহার করা যাবে এবং ব্যবহারকারীরা এটিকে পরিবর্তন করতে পারবে৷</translation>
@@ -1420,6 +1454,7 @@
           একটি কালোতালিকার মান * হওয়ার মানে হল সমস্ত নেটিভ বার্তাপ্রেরণ হোস্টগুলি কালোতালিকাভুক্ত রয়েছে এবং শুধুমাত্র পরিচ্ছন্ন তলিকাভুক্ত নেটিভ বার্তাপ্রেরণ হোস্টগুলি লোড হবে৷
 
           ডিফল্ট হিসাবে, সমস্ত নেটিভ বার্তাপ্রেরণ হোস্টগুলি পরিচ্ছন্ন তলিকাভুক্ত থাকে, কিন্তু যদি নীতিটির দ্বারা সমস্ত নেটিভ বার্তাপ্রেরণ হোস্ট কালোতালিকাভুক্ত করা থাকে, তবে সেই নীতিটি ওভাররাইড করতে পরিচ্ছন্ন তলিকা ব্যবহার করা যেতে পারে৷</translation>
+<translation id="3835692988507803626">ভাষাতে বানান পরীক্ষা বাধ্যতামূলকভাবে বন্ধ করে</translation>
 <translation id="3837424079837455272">নতুন ব্যবহারকারীদেরকে <ph name="PRODUCT_OS_NAME" /> এ যোগ করা যাবে কিনা তা এই নীতি নিয়ন্ত্রণ করে। এটি Android এর মাধ্যমে ব্যবহারকারীদেরকে অতিরিক্ত Google অ্যাকাউন্টে সাইন-ইন করা থেকে আটকায় না। আপনি এটি আটকাতে চাইলে, <ph name="ARC_POLICY_POLICY_NAME" /> এর অংশ হিসেবে Android-নির্দিষ্ট <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> নীতি কনফিগার করুন।</translation>
 <translation id="384743459174066962">আপনাকে একটি এমন url প্রকারের তালিকা সেট করতে দেয় যা এমন সাইটগুলিকে নির্দিষ্ট করে যেগুলি পপআপ খোলার জন্য মঞ্জুরিপ্রাপ্ত নয়৷
 
@@ -1603,6 +1638,10 @@
           এছাড়া RemoteAccessHostDomainList দেখুন।</translation>
 <translation id="4183229833636799228"><ph name="FLASH_PLUGIN_NAME" /> এর ডিফল্ট সেটিং</translation>
 <translation id="4192388905594723944">দূরবর্তী অ্যাক্সেস ক্লায়েন্ট প্রমাণীকরণ টোকেনের বৈধতা যাচাই করার URL</translation>
+<translation id="4197038214024763371">এই নীতি যদি সেট বা চালু না করা থাকে তাহলে ব্যবহারকারী বানান পরীক্ষা ব্যবহার করতে পারেন।
+
+      এই নীতি বন্ধ করা থাকলে ব্যবহারকারী বানান পরীক্ষা ব্যবহার করতে পারেন না। এই নীতি বন্ধ করা থাকলে SpellcheckLanguage এবং SpellcheckLanguageBlacklist নীতিও অগ্রাহ্য করা হবে।
+      </translation>
 <translation id="4203389617541558220">স্বয়ংক্রিয় রিবুটগুলির সময় নির্ধারণের দ্বারা ডিভাইসটির আপটাইম সীমাবদ্ধ করে৷
 
       যখন এই নীতিটি সেট করা থাকে, তখন এটি ডিভাইসটির আপটাইমের দৈর্ঘ্য নির্দিষ্ট করে যার পরে একটি স্বয়ংক্রিয় রিবুটের সময় নির্ধারিত থাকে৷
@@ -1915,12 +1954,45 @@
 <translation id="4986560318567565414">বিকল্প ব্রাউজার থেকে Chrome-এ সুইচ করার জন্য পাথ।</translation>
 <translation id="4988291787868618635">নিষ্ক্রিয়তা বিলম্বের শেষ সীমাতে পৌঁছে গেলে কি করা হবে</translation>
 <translation id="4995548127349206948">NTLMv2 প্রমাণীকরণ বিকল্প সক্রিয় আছে কিনা।</translation>
+<translation id="5030889661505907084">
+      যদি এই নীতি 'ট্রু' হিসেবে সেট করা থাকে তাহলে ক্লাউড নীতির সাথে প্ল্যাটফর্ম নীতির বিরোধ সৃষ্টি হলে ক্লাউড নীতি অগ্রাধিকার পায়।
+      যদি এই নীতি 'ফলস' হিসেবে সেট করা থাকে বা কনফিগার করা না থাকে তাহলে প্ল্যাটফর্ম নীতির সাথে ক্লাউড নীতির বিরোধ সৃষ্টি হলে ক্লাউড নীতি অগ্রাধিকার পায়।
+
+      এই নীতি শুধুমাত্র প্ল্যাটফর্ম হিসেবে উপলভ্য।
+      </translation>
 <translation id="5047604665028708335">সামগ্রী প্যাকগুলির বাইরের সাইটগুলিতে অ্যাক্সেসের অনুমতি দিন</translation>
 <translation id="5052081091120171147">সাম্প্রতিক ডিফল্ট ব্রাউজার যদি সক্ষম করা হয়ে থাকে সেটি থেকে এই নীতি শক্তি আমদানি করা যেতে পারে৷ যদি সক্ষম করা হয়ে থাকে, এই নীতিটি আমদানি কথোপকথনের মধ্যেও প্রভাব ফেলে৷  
 
 যদি অক্ষম করা হয়, কোনো ব্রাউজিং ইতিহাস আমদানি করা যায় না৷ 
 
 যদি সেট না করা হয়, ব্যবহারকারীকে আমদানি করার কথা বলা হতে পারে, অথবা স্বয়ংক্রিয়ভাবে আমদানি করা হতে পারে৷</translation>
+<translation id="5055312535952606505"><ph name="PRODUCT_NAME" />-এর জন্য প্রক্সি সেটিংস কনফিগার করে। এই প্রক্সি সেটিংস ARC-অ্যাপের জন্য পাওয়া যাবে।
+
+          আপনি যদি এই সেটিংস চালু করেন তাহলে <ph name="PRODUCT_NAME" /> and ARC-অ্যাপ কমান্ড লাইন থেকে নির্দিষ্ট করা প্রক্সি সম্পর্কিত সকল বিকল্প অগ্রাহ্য করবে।
+
+          এই নীতি সেট না করা অবস্থায় রেখে দিলে ব্যবহারকারী নিজের মতো প্রক্সি সেটিং বেছে নিতে পারবেন।
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি যদি সেট করা হয় তাহলে এটি <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> এবং <ph name="PROXY_SERVER_MODE_POLICY_NAME" />-এর যেকোনও স্বতন্ত্র নীতিকে ওভাইরাইড করবে।.
+
+          <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> ফিল্ড আপনাকে <ph name="PRODUCT_NAME" />-এর ব্যবহার করা প্রক্সি সার্ভার নির্দিষ্ট করতে দেয় এবং ব্যবহারকারীকে প্রক্সি সেটিংস পরিবর্তন করতে দেয় না।
+
+          <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> ফিল্ড হল প্রক্সি .pac ফাইলের ইউআরএল।
+
+          <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> ফিল্ড হল প্রক্সি সার্ভারের ইউআরএল।
+
+          <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> ফিল্ড হল প্রক্সি হোস্টের একটি তালিকা যা <ph name="PRODUCT_NAME" /> বাইপাস করবে।
+
+          ফিল্ড 'ProxyMode'-এর জন্য <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> ফিল্ড বন্ধ করা হয়েছে। এটি আপনাকে <ph name="PRODUCT_NAME" />-এর ব্যবহার করা প্রক্সি সার্ভার নির্দিষ্ট করতে দেয় এবং ব্যবহারকারীদের প্রক্সি সেটিংস পরিবর্তন করতে দেয় না।
+
+          আপনি যদি 'ProxyMode' হিসেবে 'সরাসরি' মান বেছে নেন তাহলে কখনও প্রক্সি ব্যবহার করা হবে না এবং অন্য সমস্ত ফিল্ড অগ্রাহ্য করা হবে।
+
+          আপনি যদি 'ProxyMode' হিসেবে 'সিস্টেম' মান বেছে নেন তাহলে সিস্টেমের প্রক্সি ব্যবহার করা হবে এবং অন্য সমস্ত ফিল্ড অগ্রাহ্য করা হবে।
+
+          আপনি যদি 'ProxyMode' হিসেবে 'নিজে থেকে শনাক্ত করা' মান বেছে নেন তাহলে অন্য সমস্ত ফিল্ড অগ্রাহ্য করা হবে।
+
+          আপনি যদি 'ProxyMode' হিসেবে 'ফিক্সড_সার্ভার' মান বেছে নেন তাহলে 'ProxyServer' এবং 'ProxyBypassList' ফিল্ড ব্যবহার করা হবে।
+
+          আপনি যদি 'ProxyMode' হিসেবে 'pac_স্ক্রিপ্ট' মান বেছে নেন তাহলে 'ProxyPacUrl' এবং 'ProxyBypassList' ফিল্ড ব্যবহার করা হবে।</translation>
 <translation id="5056708224511062314">স্ক্রিন ম্যাগনিফায়ার অক্ষম রয়েছে</translation>
 <translation id="5058573563327660283">নিজে থেকে ক্লিন-আপের সময় ডিস্কের জায়গা খালি করার জন্য ব্যবহৃত পদ্ধতি বেছে নিন (শীঘ্রই বন্ধ করা হবে)</translation>
 <translation id="5067143124345820993">লগইন ব্যবহারকারী শ্বেত তালিকা</translation>
@@ -1982,6 +2054,24 @@
       ব্যবধান ৩০ সেকেন্ড এবং সর্বোচ্চ ব্যবধান ২৪ ঘণ্টা - এর থেকে
       কম বা বেশি মানগুলিকে এই সীমার মধ্যে বেঁধে রাখা হবে।</translation>
 <translation id="5163002264923337812">পুরনো ওয়েব-ভিত্তিক সাইন-ইন প্রবাহ চালু করুন</translation>
+<translation id="5168529971295111207">এই নীতি বন্ধ করা হয়েছে, এর পরিবর্তে ProxyMode ব্যবহার করুন।
+
+          আপনাকে <ph name="PRODUCT_NAME" />-এর ব্যবহার করা প্রক্সি সার্ভার নির্দিষ্ট করতে দেয় এবং ব্যবহারকারীদের প্রক্সি সেটিংস পরিবর্তন করতে দেয় না।
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি যদি নির্দিষ্ট করা না থাকে তাহলে এই নীতি কার্যকর হয়।
+
+          আপনি যদি 'কখনও প্রক্সি সার্ভার ব্যবহার করবেন না এবং সবসময় সরাসরি কানেক্ট করুন' বেছে নেন তাহলে অন্য সকল বিকল্প অগ্রাহ্য করা হয়।
+
+          আপনি যদি সিস্টেম প্রক্সি সেটিংস বা প্রক্সি সার্ভার নিজে থেকে শনাক্ত করার বিকল্প বেছে নেন তাহলে অন্য সকল বিকল্প অগ্রাহ্য করা হয়।
+
+          আপনি যদি ম্যানুয়াল প্রক্সি সেটিংস বেছে নেন তাহলে আপনি প্রক্সি সার্ভারের ঠিকানা বা ইউআরএল-এ, কোনও প্রক্সি .pac ফাইলের ইউআরএল-এ এবং 'প্রক্সি বাইপাস বিধির কমা-বিভাজিত তালিকা'-তে আরও বিকল্প নির্দিষ্ট করে দিতে পারেন। ARC-অ্যাপের জন্য সর্বোচ্চ অগ্রাধিকার সহ HTTP প্রক্সি সার্ভার উপলভ্য।
+
+          বিস্তারিত উদাহরণের জন্য, এই লিঙ্কে যান:
+          <ph name="PROXY_HELP_URL" />
+
+          আপনি যদি এই সেটিংস চালু করেন তাহলে <ph name="PRODUCT_NAME" /> এবং ARC-অ্যাপ কমান্ড লাইন থেকে নির্দিষ্ট করা প্রক্সি সম্পর্কিত সকল বিকল্প অগ্রাহ্য করবে।
+
+          এই নীতি সেট না করা অবস্থায় রেখে দিলে ব্যবহারকারী নিজের মতো প্রক্সি সেটিং বেছে নিতে পারবেন।</translation>
 <translation id="5182055907976889880">Google ড্রাইভ <ph name="PRODUCT_OS_NAME" /> এ কনফিগার করুন৷</translation>
 <translation id="5183383917553127163">কোন এক্সটেনশনগুলি কালোতালিকার বিবেচনাধীন নয় তা নিদিষ্ট করার অনুমতি দেয়৷
 
@@ -2092,6 +2182,7 @@
 
       অন্যথায় এগুলির মধ্যে যেকোনও একটি মানে এটিকে সেট করা যেতে পারে: "tls1.2" বা "tls1.3"। সেট করা থাকলে, <ph name="PRODUCT_NAME" /> উল্লিখিত ভার্সনের পরের কোনও SSL/TLS ভার্সন ব্যবহার করবে না। অপরিচিত মানকে উপেক্ষা করা হবে।</translation>
 <translation id="5330684698007383292">নিম্নোক্ত সামগ্রী প্রকার পরিচালনা করতে <ph name="PRODUCT_FRAME_NAME" /> কে মঞ্জুরি দিন৷</translation>
+<translation id="5331746669335642668"><ph name="PRODUCT_NAME" />-এর ক্লাউড নীতি প্ল্যাটফর্ম নীতিকে ওভাররাইড করে।</translation>
 <translation id="5365476955714838841">বিকল্প ব্রাউজারের জন্য কমান্ড-লাইন প্যারামিটার।</translation>
 <translation id="5365946944967967336">টুলবারে হোম বোতাম দেখুন</translation>
 <translation id="5366745336748853475">কোনও সাইটে যদি সার্টিফিকেট প্রয়োজন হয় তাহলে এই নীতির মাধ্যমে আপনি URL প্যাটার্নের একটি তালিকা নির্দিষ্ট করতে পারেন যেখানে এমন সাইট উল্লেখ করা থাকবে যেগুলির ক্ষেত্রে SAML ফ্লো হোস্ট করা ফ্রেমের সাইন-ইন স্ক্রিনে ক্লায়েন্ট সার্টিফিকেট নিজে থেকেই বেছে নেওয়া হয়। ডিভাইসের সমস্ত কাজে প্রযোজ্য যে সার্টিফিকেট SAML IdP তে জমা দিতে হয়, সেটি কনফিগার করার ক্ষেত্রে এটি ব্যবহার করা হয়।
@@ -2566,6 +2657,14 @@
 <translation id="6155936611791017817">লগইন স্ক্রীনে বড় কার্সারের ডিফল্ট স্থিতি সেট করুন</translation>
 <translation id="6157537876488211233">প্রক্সি বাইপাস বিধিগুলির জন্য কমা দ্বারা পৃথকীকৃত তালিকা</translation>
 <translation id="6158324314836466367">এন্টারপ্রাইজ ওয়েব স্টোরের নাম (থামানো হয়েছে)</translation>
+<translation id="6158817306788002298">আপনি এখানে প্রক্সি .pac ফাইলের ইউআরএল নির্দিষ্ট করতে পারেন।
+
+          আপনি যদি 'কীভাবে প্রক্সি সার্ভারের সেটিংস নির্দিষ্ট করবেন বেছে নিন'-এ ম্যানুয়াল প্রক্সি সেটিংস বেছে নেন এবং যদি <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি নির্দিষ্ট না করা থাকে তাহলেই এই নীতি কার্যকর হবে।
+
+          প্রক্সি নীতি সেট করার জন্য আপনি যদি অন্য কোনও মোড বেছে নিয়ে থাকেন তাহলে আপনার এই নীতিটিকে সেট না করা অবস্থায় রেখে দেওয়াY উচিত।
+
+          বিস্তারিত উদাহরণের জন্য, এই লিঙ্কে যান:
+          <ph name="PROXY_HELP_URL" /></translation>
 <translation id="6178075938488052838"><ph name="PRODUCT_OS_NAME" /> সেশন কে শুরু করতে পারবে তা এই নীতি নিয়ন্ত্রণ করে। এটি ব্যবহারকারীদেরকে Android এর ভেতর অতিরিক্ত Google অ্যাকাউন্টে সাইন-ইন করতে বাধা দেয় না। আপনি যদি বাধা দিতে চান, তাহলে <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> এর অংশ হিসেবে Android নির্দিষ্ট <ph name="ARC_POLICY_POLICY_NAME" /> নীতি কনফিগার করুন।</translation>
 <translation id="6181608880636987460">যে সমস্ত সাইটকে <ph name="FLASH_PLUGIN_NAME" /> প্লাগ ইন চালানোর অনুমতি দিতে চান না, সেগুলির URL এর একটি তালিকা সেট করতে দেয়।
 
@@ -2601,6 +2700,17 @@
 <translation id="6281043242780654992">নেটিভ বার্তাপ্রেরণের জন্য নীতিগুলি কনফিগার করুন৷ কালোতালিকাভুক্ত নেটিভ বার্তাপ্রেরণ হোস্টগুলিকে পরিচ্ছন্ন তলিকাভুক্ত না করা পর্যন্ত অনুমোদিত হবে না৷</translation>
 <translation id="6282799760374509080">অডিও ক্যাপচারের অনুমতি দিন বা প্রত্যখ্যান করুন</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">ভাষাতে বানান পরীক্ষা বাধ্যতামূলকভাবে বন্ধ করে। তালিকার যে ভাষাগুলি শনাক্ত করা যাবে না সেগুলি অগ্রাহ্য করা হবে।
+
+      এই নীতিটি চালু করলে নির্দিষ্ট করে দেওয়া ভাষাগুলির জন্য বানান পরীক্ষা বন্ধ হবে। ব্যবহারকারী তাও তালিকায় না থাকা ভাষাগুলির জন্য বানান পরীক্ষা চালু বা বন্ধ করতে পারেন।
+
+      আপনি যদি এই নীতি সেট না করেন বা বন্ধ করে রাখেন তাহলে ব্যবহারকারীর বানান পরীক্ষার পছন্দে কোনও পরিবর্তন হবে না।
+
+      যদি SpellcheckEnabled নীতি বন্ধ করা থাকে তাহলে এই নীতি কাজ করে না।
+
+      কোনও ভাষা যদি এই নীতি এবং SpellcheckLanguage নীতি উভয়তেই অন্তর্ভুক্ত থাকে তাহলে SpellcheckLanguage নীতি অগ্রাধিকার পাবে এবং ভাষার বানান পরীক্ষা চালু করা হবে।
+
+      বর্তমানে এই ভাষাগুলি কাজ করে: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi</translation>
 <translation id="6310223829319187614">ব্যবহারকারীর সাইন-ইনের সময় ডোমেন নাম অটোফিল করা চালু করে</translation>
 <translation id="6315673513957120120">ব্যবহারকারীরা যখন SSL ত্রুটি আছে এমন সাইটে নেভিগেট করে যায় তখন Chrome একটি সতর্কীকরণ পৃষ্ঠা দেখায়। ডিফল্ট ভাবে বা এই নীতিটি সত্যতে সেট করা হলে, ব্যবহারকারীরা এই সতর্কীকরণ পৃষ্ঠাগুলি ক্লিক করে এগিয়ে যাওয়ার মঞ্জুরি পায়।
       এই নীতি মিথ্যাতে সেট করা হলে, ব্যবহারকারীরা কোনো সতর্কীকরণ পৃষ্ঠা ক্লিক করে এগিয়ে যেতে পারে না।</translation>
@@ -3750,6 +3860,7 @@
           একাধিক সার্ভারের নামগুলি কমা দিয়ে আলাদা করে৷ ওয়াইল্ডকার্ডগুলি (*) মঞ্জুরিপ্রাপ্ত৷
 
           যদি আপনি এই নীতিটি সেট না করে ছেড়ে রাখেন তাহলে ইন্ট্রানেটে কোনো সার্ভার রয়েছে কিনা <ph name="PRODUCT_NAME" /> তা শনাক্ত করার চেষ্টা করবে এবং শুধুমাত্র তখনই এটি IWA অনুরোধগুলির প্রতিক্রিয়া জানাবে৷ যদি একটি সার্ভার ইন্টারনেট হিসাবে শনাক্ত হয় তখন এর থেকে IWA অনুরোধগুলি <ph name="PRODUCT_NAME" /> এর দ্বারা উপেক্ষিত হবে৷</translation>
+<translation id="8661297125441579970">ডেটা মাইগ্রেশন এবং ARC এর অনুমতি দেবেন না।</translation>
 <translation id="8672321184841719703">লক্ষ্য স্বয়ংক্রিয়ভাবে আপডেট করা ভার্সন</translation>
 <translation id="867410340948518937">U2F (সর্বজনীন দ্বিতীয় পদক্ষেপ)</translation>
 <translation id="8682611302223077049">এই সেটিংয়ে আপনি মিলিসেকেন্ডের হিসেবে এমন একটি সময়সীমা সেট করতে পারেন, যতক্ষণ ধরে ব্যবহারকারীকে জানানো হবে যে <ph name="PRODUCT_NAME" /> রিলঞ্চ করতে হবে অথবা বাকি থাকা আপডেট প্রয়োগ করার জন্য <ph name="PRODUCT_OS_NAME" /> ডিভাইস রিস্টার্ট করতে হবে।
@@ -3788,6 +3899,7 @@
 যদি এই সেটিং চালু থাকে বা সেট না করা থাকে, তাহলে ব্রাউজিং ও ডাউনলোড ইতিহাস মুছে ফেলতে পারে৷
 
 যদি এই সেটিং বন্ধ থাকে, তাহলে ব্রাউজিং ও ডাউনলোডের ইতিহাস মুছে ফেলা যাবে না।</translation>
+<translation id="8757552286070680084">উইলকো DTC কনফিগারেশন</translation>
 <translation id="8758831693895931466">আবশ্যক ক্লাউড ম্যানেজমেন্টে নথিভুক্তকরণ বিকল্পটি চালু করুন</translation>
 <translation id="8759829385824155666">Kerberos এনক্রিপশনের ধরনের অনুমতি দিন</translation>
 <translation id="8764119899999036911">জেনারেট হওয়া Kerberos SPN প্রামাণ্য DNS নাম না প্রবেশ করা প্রকৃত নামের ভিত্তিতে কিনা তা নির্দিষ্ট করে৷
@@ -3817,6 +3929,26 @@
 <translation id="8833109046074170275">ডিফল্ট GAIA প্রবাহের মাধ্যমে প্রমাণীকরণ</translation>
 <translation id="8838303810937202360">একটি ডিভাইসে একাধিক ব্যবহারকারীদের জন্য <ph name="PRODUCT_OS_NAME" /> অ্যাপ ও এক্সটেনশনগুলিকে ইনস্টলেশনের জন্য ক্যাশে করে রাখে যেন প্রত্যেক ব্যবহারকারীর জন্য সেগুলি আবার ডাউনলোড না করতে হয়।
       নীতিটি যদি কনফিগার করা না থাকে অথবা মান যদি ১ MB এর নিচে হয়, তাহলে <ph name="PRODUCT_OS_NAME" /> ডিফল্ট ক্যাশে সাইজ ব্যবহার করবে।</translation>
+<translation id="8851325571441692315">আপনাকে <ph name="PRODUCT_NAME" />-এর ব্যবহার করা প্রক্সি সার্ভার নির্দিষ্ট করতে দেয় এবং ব্যবহারকারীদের প্রক্সি সেটিংস পরিবর্তন করতে দেয় না।
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> নীতি যদি নির্দিষ্ট করা না থাকে তাহলে এই নীতি কার্যকর হয়।
+
+          আপনি যদি 'কখনও প্রক্সি সার্ভার ব্যবহার করবেন না এবং সবসময় সরাসরি কানেক্ট করুন' বেছে নেন তাহলে অন্য সকল বিকল্প অগ্রাহ্য করা হয়।
+
+          আপনি যদি সিস্টেম প্রক্সি ব্যবহার করা বেছে নেন তাহলে অন্য সকল বিকল্প অগ্রাহ্য করা হয়।
+
+          আপনি যদি প্রক্সি সার্ভার নিজে থেকে শনাক্ত করা বেছে নেন তাহলে অন্য সকল বিকল্প অগ্রাহ্য করা হয়।
+
+          আপনি যদি ফিক্সড সার্ভার প্রক্সি মোড বেছে নেন তাহলে আপনি 'প্রক্সি সার্ভারের ঠিকানা বা ইউআরএল-এ এবং 'প্রক্সি বাইপাস বিধির কমা-বিভাজিত তালিকা'-তে আরও বিকল্প নির্দিষ্ট করতে পারেন। ARC-অ্যাপের জন্য সর্বোচ্চ অগ্রাধিকার সহ HTTP প্রক্সি সার্ভার উপলভ্য।
+
+          আপনি যদি প্যাক প্রক্সি স্ক্রিপ্ট ব্যবহার করা বেছে নেন তাহলে 'প্রক্সি প্যাক ফাইলের ইউআরএল'-এ আপনাকে স্ক্রিপ্টের ইউআরএল নির্দিষ্ট করতে হবে।
+
+          বিস্তারিত উদাহরণের জন্য, এই লিঙ্কে যান:
+          <ph name="PROXY_HELP_URL" />
+
+          আপনি যদি এই সেটিংস চালু করেন তাহলে <ph name="PRODUCT_NAME" /> এবং ARC-অ্যাপ কমান্ড লাইন থেকে নির্দিষ্ট করা প্রক্সি সম্পর্কিত সকল বিকল্প অগ্রাহ্য করবে।
+
+          এই নীতি সেট না করা অবস্থায় রেখে দিলে ব্যবহারকারী নিজের মতো প্রক্সি সেটিং বেছে নিতে পারবেন।</translation>
 <translation id="8858642179038618439">YouTube নিরাপত্তা মোড বলবৎ করে</translation>
 <translation id="8860342862142842017">subjectPublicKeyInfo হ্যাশের জন্য সার্টিফিকেটের স্বচ্ছতার প্রয়োগ বন্ধ করুন</translation>
 <translation id="8864975621965365890">যখন একটি সাইট <ph name="PRODUCT_FRAME_NAME" /> এর দ্বারা রেন্ডার করা হয় তখন এতে প্রদর্শিত প্রত্যাখ্যানের বিজ্ঞপ্তিটিকে গোপন করে৷</translation>
@@ -4070,6 +4202,15 @@
 <translation id="9217154963008402249">নেটওয়ার্ক প্যাকেট পর্যবেক্ষণ সংঘটনের হার</translation>
 <translation id="922540222991413931">এক্সটেনশন, অ্যাপ এবং ব্যবহারকারী স্ক্রিপ্ট ইনস্টল করার উৎস কনফিগার করুন</translation>
 <translation id="924557436754151212">প্রথমবার চালনার সাথে সাথে ডিফল্ট ব্রাউজার থেকে সংরক্ষিত পাসওয়ার্ডগুলি আমদানি করুন</translation>
+<translation id="926146562923985266">Internet Explorer থেকে সুইচ করার সময় <ph name="PRODUCT_NAME" />-এ ইউআরএল খোলার জন্য এই নীতি কমান্ড নিয়ন্ত্রণ করে।
+
+      Internet Explorer-এর 'পুরনো ব্রাউজার সাপোর্ট' অ্যাড-ইন ইনস্টল করা না থাকলে, এই নীতি কাজ করে না।
+
+      এই নীতি সেট না করা অবস্থায় থাকলে, Internet Explorer থেকে <ph name="PRODUCT_NAME" /> লঞ্চ করার সময় Internet Explorer নিজে থেকে <ph name="PRODUCT_NAME" />-এর নিজস্ব এক্সিকিউটেবল পাথ শনাক্ত করবে।
+
+      এই নীতি সেট করা থাকলে, Internet Explorer থেকে <ph name="PRODUCT_NAME" /> লঞ্চ করার সময় <ph name="PRODUCT_NAME" /> লঞ্চ করার জন্য এটি ব্যবহার করা হবে।
+
+      Chrome ইনস্টল হওয়ার লোকেশন নিজে থেকে শনাক্ত করতে এই নীতিটিকে একটি এক্সিকিউটেবল পাথে বা ${chrome}-এ সেট করা যেতে পারে।</translation>
 <translation id="930930237275114205"><ph name="PRODUCT_FRAME_NAME" /> ব্যবহারকারী ডেটা ডিরেক্টরি সেট করুন</translation>
 <translation id="943865157632139008"><ph name="PRODUCT_FRAME_NAME" /> ইনস্টল থাকলে আপনাকে ডিফল্ট HTML উপস্থাপনকারী কনফিগার করতে মঞ্জুরি দেয়।
           ডিফল্ট সেটিং আয়োজক ব্রাউজারকে উপস্থাপন করার মঞ্জুরি দেওয়ার জন্য, কিন্তু আপনি এটিকে বিকল্পরূপে ওভাররাইড করতে ও <ph name="PRODUCT_FRAME_NAME" /> আয়োজক HTML পৃষ্ঠাগুলিকে ডিফল্টভাবে পেতে পারেন।</translation>
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb
index f7553ae9..4434a71 100644
--- a/components/policy/resources/policy_templates_fil.xtb
+++ b/components/policy/resources/policy_templates_fil.xtb
@@ -54,6 +54,7 @@
 <translation id="1062011392452772310">I-enable ang malayuang pagpapatotoo para sa device</translation>
 <translation id="1062407476771304334">Palitan</translation>
 <translation id="1079801999187584280">Huwag payagan ang paggamit ng Mga Tool ng Developer</translation>
+<translation id="1087437665304381368">Kinokontrol lang ng patakarang ito ang developer mode ng <ph name="PRODUCT_OS_NAME" />. Kung gusto mong pigilan ang access sa Mga Opsyon ng Developer sa Android, kailangan mong itakda ang patarakan ng <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1093082332347834239">Kung naka-enable ang setting na ito, ang host ng remote na tulong ay patatakbuhin sa isang prosesong may mga pahintulot ng <ph name="UIACCESS_PERMISSION_NAME" />.  Bibigyang-daan nito ang mga remote na user upang makipag-ugnayan sa mga elevated window sa desktop ng lokal na user.
 
           Kung naka-disable o hindi naka-configure ang setting na ito, ang host ng remote na tulong ay patatakbuhin sa konteksto ng user at hindi magagawa ng mga remote na user na makipag-ugnayan sa mga elevated window sa desktop.</translation>
@@ -86,6 +87,14 @@
       Kung hindi nakatakda ang patakaran, maaaring gamiting muli ang mga naka-cache na GPO nang hanggang 25 oras.
 
       Kung nakatakda sa 0 ang patakaran, naka-off ang pag-cache ng GPO. Tandaang madaragdagan nito ang load ng server dahil muling magda-download ng mga GPO sa bawat pagkuha ng patakaran, kahit hindi nagbago ang mga ito.</translation>
+<translation id="1117462881884985156">Iba-bypass ng <ph name="PRODUCT_NAME" /> ang anumang proxy para sa listahan ng mga host na ibinigay dito.
+
+          Magkakaroon lang ng bisa ang patakarang ito kung pinili mo ang mga manual na setting ng proxy sa 'Piliin kung paano magsaad ng mga setting ng proxy server' at kung hindi naisaad ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Dapat mong hayaang hindi nakatakda ang patakarang ito kung pumili ka ng anupamang mode para sa pagtatakda ng mga patakaran sa proxy.
+
+          Para sa mga mas detalyadong halimbawa, bisitahin ang:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Ang mga tagapangasiwa ng protocol na itinakda sa pamamagitan ng patakarang ito ay hindi ginagamit kapag nangangasiwa ng mga intent sa Android.</translation>
 <translation id="1118093128235245168">Payagan ang mga site na hilingin sa user na magbigay ng access sa isang nakakonektang USB device</translation>
 <translation id="1128903365609589950">Kino-configure ang direktoryong gagamitin ng <ph name="PRODUCT_NAME" /> para sa pag-iimbak ng mga naka-cache na file sa disk.
@@ -130,6 +139,10 @@
           Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang pangkalahatang default na value para sa lahat ng site mula sa patakarang 'DefaultImagesSetting' kung nakatakda ito, o kung hindi, sa personal na pag-configure ng user.
 
           Tandaang na-enable dati ang patakarang ito sa Android nang hindi sinasadya, ngunit hindi kailanman ganap na sinuportahan ang functionality na ito sa Android.</translation>
+<translation id="1194005076170619046">Kung naka-enable, magpapakita ng malaki at pulang button sa pag-log out sa system tray habang aktibo ang isang session at hindi naka-lock ang screen.
+
+      Kung naka-disable o hindi nakasaad, walang ipapakitang malaki at pulang button sa pag-log out sa system tray.</translation>
+<translation id="1197437816436565375">Hindi mo puwedeng puwersahin ang mga Android app na gumamit ng proxy. May subset ng mga setting ng proxy na ginawang available sa mga Android app, na puwedeng boluntaryong piliing kilalanin ng mga ito. Tingnan ang patakaran sa <ph name="PROXY_MODE_POLICY_NAME" /> para sa higit pang detalye.</translation>
 <translation id="1198465924256827162">Kung gaano kadalas ipinapadala ang mga pag-upload ng status ng device, sa mga millisecond.
 
       Kung hindi itatakda ang patakarang ito, ang default na dalas ay 3 oras. Ang minimum
@@ -171,6 +184,13 @@
 <translation id="1327466551276625742">I-enable ang prompt ng configuration ng network kapag offline</translation>
 <translation id="1330145147221172764">I-enable ang on-screen na keyboard</translation>
 <translation id="13356285923490863">Pangalan ng Patakaran</translation>
+<translation id="1347198119056266798">Hindi na ginagamit ang patakarang ito, pakigamit na lang ang <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> at <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Babalewalain ang patakarang ito kung itatakda ang patakarang <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, o (hindi na ginagamit na) <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" />.
+
+      Ipinipilit na gawin ang mga query sa Paghahanap sa Web ng Google nang nakatakda ang SafeSearch sa aktibo at pinipigilan ang mga user na baguhin ang setting na ito. Ipinipilit din ng setting na ito ang Katamtamang Restricted Mode sa YouTube.
+
+      Kung ie-enable mo ang setting na ito, palaging magiging aktibo ang SafeSearch sa Google Search at ang Katamtamang Restricted Mode sa YouTube.
+
+      Kung idi-disable mo ang setting na ito o kung hindi ka magtatakda ng value, hindi ipapatupad ang SafeSearch sa Google Search at ang Restricted Mode sa YouTube.</translation>
 <translation id="1352174694615491349">Pinapayagan ng patakarang ito na pag-isahin ang HTTP/2 na koneksyon kapag gumagamit ng mga client certificate. Para pag-isahin, ang hostname ng posibleng bagong koneksyon at ang hostname ng kasalukuyang koneksyon ay dapat may magkatugmang isa o higit pang pattern na nakasaad sa patakarang ito. Ang patakaran ay isang listahan ng mga host gamit ang format ng filter ng URLBlacklist: Tumutugma ang "example.com" sa "example.com" at sa lahat ng subdomain (hal. "sub.example.com"), habang eksaktong tumutugma ang ".example.net" sa "example.net".
 
       Ang mga kahilingan sa pag-iisa sa iba't ibang host sa pamamagitan ng mga koneksyong gumagamit ng mga client certificate ay maaaring makagawa ng mga isyu sa seguridad at privacy, dahil maipaparating ang ambient na awtoridad sa lahat ng kahilingan, kahit na hindi ito tahasang pinahintulutan ng user. Ang patakarang ito ay pansamantala at maaalis sa release sa hinaharap. Tingnan sa https://crbug.com/855690.
@@ -178,6 +198,11 @@
       Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang default na kagawian na hindi payagan ang anumang pag-iisa ng HTTP/2 na koneksyon sa mga koneksyong gumagamit ng mga client certificate.</translation>
 <translation id="1353966721814789986">Mga page sa startup</translation>
 <translation id="1354424209129232709">(Maximum )</translation>
+<translation id="1354452738176731363">Kapag nakatakda ang patakarang ito sa false, hindi magiging available sa device ang audio output habang naka-log in ang user.
+
+      Naaapektuhan ng patakarang ito ang lahat ng uri ng audio output at hindi lang ang mga built-in na speaker. Hinahadlangan din ng patakarang ito ang mga feature sa pagiging naa-access ng audio. Huwag i-enable ang patakarang ito kung kinakailangan ng screen reader para sa user.
+
+      Kung itatakda ang setting na ito sa true o kung hindi ito iko-configure, puwedeng gamitin ng mga user ang lahat ng sinusuportahang audio output sa kanilang device.</translation>
 <translation id="1359553908012294236">Kung itatakda ang patakarang ito sa true o kung hindi ito iko-configure, ie-enable ng <ph name="PRODUCT_NAME" /> ang mga pag-log in ng bisita. Ang mga pag-log in ng bisita ay mga profile sa <ph name="PRODUCT_NAME" /> kung saan nasa incognito mode ang lahat ng window.
 
       Kung itatakda ang patakarang ito sa false, hindi papayagan ng <ph name="PRODUCT_NAME" /> na magsimula ang mga profile ng bisita.</translation>
@@ -222,12 +247,37 @@
       Tingnan ang https://developers.google.com/safe-browsing para sa higit pang impormasyon tungkol sa Ligtas na Pag-browse.
 
       Available lang ang patakarang ito sa mga instance ng Windows na kasama sa domain ng<ph name="MS_AD_NAME" />. O kaya, sa mga instance ng Windows 10 Pro o Enterprise na naka-enroll para sa pamamahala sa device.</translation>
+<translation id="1432194160771348078">
+      Nagsasaad ng listahan ng mga app na naka-install nang silent sa screen sa pag-log in,
+      nang walang pakikipag-ugnayan sa user, at hindi puwedeng i-uninstall.
+      Ang lahat ng pahintulot na hinihiling ng mga app ay ibinibigay
+      nang hindi hayagan at walang pakikipag-ugnayan sa user, kabilang ang anumang karagdagang
+      pahintulot na hihilingin ng mga bersyon ng app sa hinaharap.
+
+      Tandaan, para sa seguridad at privacy, hindi pinapahintulutang mag-install ng mga extension gamit ang patakarang ito. Bukod pa rito, ii-install lang ng mga device sa Stable na channel ang mga apps na kabilang sa whitelist na naka-bundle sa <ph name="PRODUCT_NAME" />. Babalewalain ang anumang item na hindi umaayon sa mga kundisyong ito.
+
+      Kung inalis sa listahang ito ang isang app na dati nang sapilitang na-install, awtomatiko itong ia-uninstall ng <ph name="PRODUCT_NAME" />.
+
+      Ang bawat item sa listahan ng patakaran ay isang string na naglalaman ng extension ID at URL ng "update" na pinaghihiwalay ng semicolon (<ph name="SEMICOLON" />). Ang extension ID ay ang string na may 32 titik na makikita halimbawa sa <ph name="CHROME_EXTENSIONS_LINK" /> kapag nasa developer mode. Dapat humantong ang URL ng "update" sa isang Update Manifest XML document gaya ng nakasaad sa <ph name="LINK_TO_EXTENSION_DOC1" />. Tandaang ginagamit lang ang URL ng "update" na itinakda sa patakarang ito para sa unang pag-install; ine-employ ng mga kasunod na update ng extension ang URL ng update na nakalagay sa manifest ng extension.
+
+      Halimbawa, ini-install ng <ph name="EXTENSION_POLICY_EXAMPLE" /> ang <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> app mula sa karaniwang URL ng "update" sa Chrome Web Store. Para sa higit pang impormasyon tungkol sa pag-host ng mga extension, tingnan ang: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">Configuration ng network sa antas ng device</translation>
 <translation id="1438739959477268107">Default na setting sa pagbuo ng key</translation>
 <translation id="1454846751303307294">Binibigyang-daan kang magtakda ng isang listahan ng mga pattern ng url na tumutukoy ng mga site na hindi pinapayagang magpatakbo ng JavaScript.
 
           Kung hinayaang hindi nakatakda ang patakarang ito gagamitin ang global na default na halaga para sa lahat ng site mula sa patakaran ng 'DefaultJavaScriptSetting' kung nakatakda ito, o kung hindi man ay sa personal na configuration ng user.</translation>
 <translation id="1456822151187621582">Windows (mga <ph name="PRODUCT_OS_NAME" /> client):</translation>
+<translation id="1458547592473993238">Hindi na ginagamit ang patakarang ito. Pakigamit ang <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para kontrolin ang availability ng Flash plugin at ang <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para kontrolin kung dapat gamitin ang pinagsamang PDF viewer para sa pagbubukas ng mga PDF file.
+
+      Nagsasaad ng listahan ng mga plugin na naka-disable sa <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang setting na ito.
+
+      Ang mga wildcard character na '*' at '?' ay magagamit para magtugma ng pagkakasunod-sunod ng mga arbitrary na character. Tumutugma ang '*' sa isang arbitrary na numero ng mga character habang tumutukoy naman ang '?' sa opsyonal na iisang character, ibig sabihin, tumutugma sa zero o isang character. Ang escape character ay '\', kaya para tumugma sa mga aktwal na '*', '?', o '\' na character, puwede kang maglagay ng '\' sa harap ng mga ito.
+
+      Kung ie-enable mo ang setting na ito, hindi kailanman gagamitin sa <ph name="PRODUCT_NAME" /> ang nakasaad na listahan ng mga plugin. Mamarkahan ang mga plugin bilang naka-disable sa 'about:plugins' at hindi mae-enable ng mga user ang mga ito.
+
+      Tandaang puwedeng i-override ng EnabledPlugins at DisabledPluginsExceptions ang patakarang ito.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, puwedeng gamitin ng user ang anumang plugin na naka-install sa system maliban sa mga hard-coded na plugin na hindi compatible, outdated, o mapanganib.</translation>
 <translation id="1464848559468748897">Kontrolin ang gawi ng user sa isang multiprofile session sa mga <ph name="PRODUCT_OS_NAME" /> device.
 
       Kung itinakda ang patakarang ito sa 'MultiProfileUserBehaviorUnrestricted', ang user ay maaaring maging pangunahin o pangalawang user sa isang multiprofile session.
@@ -300,11 +350,23 @@
 <translation id="1599424828227887013">I-enable ang Pag-isolate ng Site para sa mga partikular na pinagmulan sa mga Android device</translation>
 <translation id="1608755754295374538">Mga URL na mabibigyan ng access sa mga device na nakakakuha ng audio nang walang prompt</translation>
 <translation id="1615221548356595305">Payagan ang pag-iisa ng mga HTTP/2 na koneksyon para sa mga host na ito kahit na gumamit ng mga client certificate</translation>
+<translation id="1615855314789673708">Nagbibigay ng wilco DTC (diagnostics and telemetry controller) configuration.
+
+      Nagbibigay-daan ang patakarang ito na makapagbigay ng wilco DTC configuration na pinapayagang mailapat kung available ang wilco DTC sa partikular na device at pinapayagan ng patakaran. Hindi dapat lumampas sa 1MB (1000000 bytes) ang laki ng configuration at dapat ay naka-encode ito sa pamamagitan ng JSON. Responsibilidad ng wilco DTC ang pangangasiwa nito. Ginagamit ang cryptographic na hash para i-verify ang integridad ng download.
+
+      Dina-download at kina-cache ang configuration. Muli itong ida-download sa tuwing magbabago ang URL o ang hash.
+
+      Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.</translation>
 <translation id="1617235075406854669">Paganahin ang pagtatanggal ng browser at kasaysayan ng pag-download</translation>
 <translation id="163200210584085447">Itutugma ang mga pattern na nasa listahang ito sa security
       origin ng humihiling na URL.  Kung may makikitang katugma, magbibigay ng access sa mga device na nagka-capture ng video sa mga page ng pag-login ng SAML.  Kung walang makitang
       katugma, awtomatikong tatanggihan ang pag-access.  Hindi pinapayagan ang mga wildcard pattern.</translation>
 <translation id="1634989431648355062">Pahintulutan ang plugin na <ph name="FLASH_PLUGIN_NAME" /> sa mga site na ito</translation>
+<translation id="1653229475925941921">Kung itatakda ang patakarang ito, kokontrolin nito ang uri ng pang-magnify ng screen na naka-enable. Kapag itinakda ang patakaran sa "Wala," madi-disable ang pang-magnify ng screen.
+
+          Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.
+
+          Kung hahayaang hindi nakatakda ang patakarang ito, madi-disable sa simula ang pang-magnify ng screen ngunit puwede ito i-enable ng user anumang oras.</translation>
 <translation id="1655229863189977773">Itakda ang laki ng cache ng disk sa bytes</translation>
 <translation id="166427968280387991">Proxy server</translation>
 <translation id="1668836044817793277">Kung papayagan ang kiosk app na awtomatikong naglulunsad nang walang antala na kontrolin ang bersyon ng <ph name="PRODUCT_OS_NAME" />.
@@ -430,6 +492,9 @@
       Kung naka-enable ang setting na ito, kukuha ng fingerprint ng password ang serbisyo ng proteksyon sa password sa mga URL na ito para sa pagtukoy ng umulit na paggamit ng password.
       Kung naka-disable o hindi nakatakda ang setting na ito, sa https://accounts.google.com lang kukuha ng fingerprint ng password ang serbisyo ng proteksyon sa password.
       Available lang ang patakarang ito sa mga instance ng Windows na kasama sa domain ng<ph name="MS_AD_NAME" />. O kaya, sa mga instance ng Windows 10 Pro o Enterprise na naka-enroll para sa pamamahala sa device.</translation>
+<translation id="1914840757300882918">Kung itatakda ang patakarang ito, gagamit ang host ng client certificate na may partikular na issuer CN para mag-authenticate sa RemoteAccessHostTokenValidationUrl. Itakda ito sa "*" para magamit ang anumang available na client certificate.
+
+          Kasalukuyang naka-disable ang feature na ito sa server-side.</translation>
 <translation id="1919802376548418720">Gamitin ang patakaran ng KDC para maglaan ng mga kredensyal.</translation>
 <translation id="1920046221095339924">Payagan ang pinapamahalaang session sa device</translation>
 <translation id="1929709556673267855">Nagbibigay ng mga configuration para sa mga printer ng enterprise na naka-bind sa mga device.
@@ -476,6 +541,13 @@
 
       Kung itinakda sa true ang patakarang ito, susubukang i-download ng <ph name="PRODUCT_OS_NAME" /> ang mga auto-update payload sa pamamagitan ng HTTP. Kung itinakda sa false ang patakarang ito o hindi nakatakda, gagamitin ang HTTPS sa pagda-download ng mga auto-update payload.</translation>
 <translation id="199764499252435679">I-enable ang mga pag-update ng bahagi sa <ph name="PRODUCT_NAME" /></translation>
+<translation id="1997994951395619441">Kung ie-enable mo ang setting na ito, magpapakita ng bookmark bar ang <ph name="PRODUCT_NAME" />.
+
+      Kung idi-disable mo ang setting na ito, hindi makikita ng mga user ang bookmark bar.
+
+      Kung ie-enable o idi-disable mo ang setting na ito, hindi ito mababago o mao-override ng mga user sa <ph name="PRODUCT_NAME" />.
+
+      Kung hahayaang hindi nakatakda ang setting na ito, puwedeng magpasya ang user na gamitin ang function na ito o hindi.</translation>
 <translation id="2006530844219044261">Pamamahala ng power</translation>
 <translation id="2014757022750736514">Nagkokontrol sa gawi ng screen ng pag-sign in kung saan nagla-log in ang mga user sa kanilang mga account. Kasama sa mga setting ang kung sino ang maaaring mag-log in, ano ang uri ng mga account na pinapayagan, ano ang mga paraan ng pag-authenticate na dapat gamitin, pati na rin ang pangkalahatang accessibility, pamamaraan ng pag-input, at mga lokal na setting.</translation>
 <translation id="201557587962247231">Dalas ng pag-upload ng mga ulat ng status ng device</translation>
@@ -495,6 +567,7 @@
 
           Kung naka-disable ang setting na ito, hindi papayagan ang paglipat ng file. Kung naka-enable ang setting na ito o hindi nakatakda, papayagan ang paglipat ng file.</translation>
 <translation id="2057317273526988987">Payagan ang pag-access sa isang listahan ng mga URL</translation>
+<translation id="2061810934846663491">Kino-configure ang mga kinakailangang domain name para sa mga host ng remote na access</translation>
 <translation id="206623763829450685">Tinutukoy kung aling mga scheme ng pagpapatotoo ng HTTP ang sinusuportahan ng <ph name="PRODUCT_NAME" />.
 
           Ang mga posibleng value ay 'basic,' 'digest,' 'ntlm' at 'negotiate.' Paghiwa-hiwalayin ang maraming value gamit ang mga kuwit.
@@ -541,6 +614,20 @@
       Kung hindi itatakda ang patakaran, ang default na value ay 0 degrees at
       maaari itong baguhin ng user. Sa sitwasyong ito, ang default na value ay hindi muling ilalapat sa
       pag-restart.</translation>
+<translation id="2138449619211358657">Nagbibigay-daan ang patakarang ito sa <ph name="PRODUCT_OS_NAME" /> na i-bypass ang anumang proxy para sa pag-authenticate ng captive portal.
+
+      Magkakaroon lang ng bisa ang patakarang ito kung naka-configure ang isang proxy (halimbawa, sa pamamagitan ng patakaran, sa pamamagitan ng user sa chrome://settings, o sa pamamagitan ng mga extension).
+
+      Kung ie-enable mo ang setting na ito, ipapakita sa isang hiwalay na window ang anumang page sa pag-authenticate ng captive portal (ibig sabihin, lahat ng web page simula sa page ng pag-sign in sa captive portal hanggang sa maka-detect ang <ph name="PRODUCT_NAME" /> ng matagumpay na koneksyon sa internet) nang binabalewala ang lahat ng setting at paghihigpit sa patakaran para sa kasalukuyang user.
+
+      Kung idi-disable mo ang setting na ito o kung hahayaan mo itong hindi nakatakda, ipapakita sa (regular) bagong tab ng browser ang anumang page sa pag-authenticate ng captive portal, gamit ang mga setting ng proxy ng kasalukuyang user.</translation>
+<translation id="21394354835637379">Nagbibigay-daan sa iyong tukuyin kung aling mga URL ang pinapayagang mag-install ng mga extension, app, at tema.
+
+          Simula sa <ph name="PRODUCT_NAME" /> 21, mas mahirap nang mag-install ng mga extension, app, at script ng user mula sa labas ng Chrome Web Store. Dati, puwedeng i-click ng mga user ang link sa isang *.crx file, at mag-aalok ang <ph name="PRODUCT_NAME" /> na i-install ang file pagkatapos ng ilang babala. Pagkatapos ng <ph name="PRODUCT_NAME" /> 21, dapat ay i-download at i-drag ang mga naturang file sa page ng mga setting ng <ph name="PRODUCT_NAME" />. Nagbibigay-daan sa mga partikular na URL ang setting na ito para magamit ang luma at mas madaling flow ng pag-install.
+
+          Ang bawat item sa listahang ito ay isang extension-style match pattern (tingnan ang https://developer.chrome.com/extensions/match_patterns). Magagawa ng mga user na madaling ma-install ang mga item mula sa anumang URL na tumutugma sa isang item sa listahang ito. Dapat ay pahintulutan ng mga pattern na ito ang lokasyon ng *.crx file at ang page kung saan sinimulan ang pag-download (ibig sabihin, ang referrer).
+
+          Nangingibabaw ang <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> kaysa sa patakarang ito. Ibig sabihin, hindi mai-install ang isang extension na nasa blacklist, kahit na mangyari ito sa isang site na nasa listahang ito.</translation>
 <translation id="214901426630414675">Paghigpitan ang printing duplex mode</translation>
 <translation id="2149330464730004005">I-enable ang may kulay na pag-print</translation>
 <translation id="2156132677421487971">Nagko-configure ng mga patakaran para sa <ph name="PRODUCT_NAME" />, isang feature na nagbibigay-daan sa mga user na maipadala ang mga content ng mga tab, mga site, o ang desktop mula sa browser papunta sa mga malayuang display at sound system.</translation>
@@ -580,6 +667,14 @@
 
       Hindi nalalapat ang patakarang ito sa mga kiosk app - awtomatikong inililipat ang mga ito. Kung iniwang hindi nakatakda ang patakarang ito, kikilos ang device na parang 'DisallowArc' ang napili.</translation>
 <translation id="2195032660890227692">Inalis ang patakarang ito sa <ph name="PRODUCT_NAME" /> 68 at pinalitan ito ng <ph name="ARC_BR_POLICY_NAME" />.</translation>
+<translation id="219720814106081560">Kung naka-enable o hindi naka-configure (default), mapo-prompt ang user para sa
+      access sa pag-capture ng video maliban sa mga URL na naka-configure sa
+      listahan ng VideoCaptureAllowedUrls na mabibigyan ng access nang hindi nagpa-prompt.
+
+      Kapag naka-disable ang patakarang ito, hindi kailanman mapa-prompt ang user at
+      magiging available lang ang pag-capture ng video sa mga URL na naka-configure sa VideoCaptureAllowedUrls.
+
+      Naaapektuhan ng patakarang ito ang lahat ng uri ng video input at hindi lang ang built-in na camera.</translation>
 <translation id="2201555246697292490">I-configure ang whitelist ng native na pagmemensahe</translation>
 <translation id="2204753382813641270">Kontrolin ang awtomatikong pagtatago ng shelf</translation>
 <translation id="2208976000652006649">Mga parameter para sa URL ng paghahanap na ginagamit ang POST</translation>
@@ -592,6 +687,11 @@
 <translation id="2240879329269430151">Binibigyang-daan kang magtakda kung pinapayagan o hindi ang mga website na magpakita ng mga pop-up. Maaaring payagan para sa lahat ng website o tanggihan para sa lahat ng website ang pagpapakita ng mga popup.
 
           Kung hinayaang hindi nakatakda ang patakarang ito, gagamitin ang 'BlockPopups' at magagawa ng user na baguhin ito.</translation>
+<translation id="2255326053989409609">Kapag na-enable ang setting na ito, mapipigilan ang mga web page na ma-access ang graphics processing unit (GPU). Bilang partikular, hindi maa-access ng mga web page ang WebGL API at hindi magagamit ng mga plugin ang Pepper 3D API.
+
+      Kapag na-disable ang setting na ito o hinayaan itong hindi nakatakda, posibleng mabigyang-daan ang mga web page na gamitin ang WebGL API at mabigyang-daan ang mga plugin na gamitin ang Pepper 3D API. Puwede pa ring hilingin ng mga default na setting ng browser na magpasa ng mga argument sa command line nang sa gayon ay magamit ang mga API na ito.
+
+      Kung itatakda ang HardwareAccelerationModeEnabled sa false, babalewalain ang Disable3DAPIs at magiging katumbas nito ang pagtakda ng Disable3DAPIs sa true.</translation>
 <translation id="2258126710006312594">Payagan ang mga user ng malayuang pag-access na maglipat ng mga file papunta/mula sa host</translation>
 <translation id="2265214338421787313">Nagbibigay-daan ang patakarang ito sa isang admin na tukuyin na puwedeng magpakita ng mga popup ang isang page habang nag-a-unload ito.
 
@@ -758,8 +858,12 @@
       Kung i-e-enable o idi-disable mo ang setting na ito, hindi maaaring palitan o i-override ng mga user ang setting na ito.
 
       Kung iiwanang hindi nakatakda ang patakarang ito, magiging available ang feature  na proxy ng compression ng data upang makapili ang user kung gagamitin ba ito o hindi.</translation>
+<translation id="257788512393330403">Kinakailangan ang paglalagay ng password kada anim na oras</translation>
 <translation id="2587719089023392205">Itakda ang <ph name="PRODUCT_NAME" /> bilang Default na Browser</translation>
 <translation id="2592091433672667839">Tagal ng kawalan ng aktibidad bago ipakita ang screen saver sa screen sa pag-sign-in sa mode ng retail</translation>
+<translation id="2592162121850992309">Kung itatakda ang patakarang ito sa true o hahayaan itong hindi nakatakda, mae-enable ang hardware acceleration maliban na lang kung maba-blacklist ang isang partikular na feature ng GPU.
+
+      Kung itatakda ang patakarang ito sa false, madi-disable ang hardware acceleration.</translation>
 <translation id="2596260130957832043">Kinokontrol kung naka-enable ang NTLMv2.
 
           Sinusuportahan ng lahat ng kamakailang bersyon ng mga server ng Samba at Windows ang NTLMv2. Dapat lang itong i-disable para sa backwards compatibility at binabawasan nito ang seguridad ng pag-authenticate.
@@ -787,6 +891,7 @@
 
           Kung hinayaang hindi nakatakda ang patakarang ito, gagamitin ang 'AskGeolocation' at magagawa itong baguhin ng user.</translation>
 <translation id="2647069081229792812">I-enable o i-disable ang pag-edit ng bookmark</translation>
+<translation id="2649896281375932517">Hayaang magpasya ang mga user</translation>
 <translation id="2650049181907741121">Pagkilos na gagawin kapag isinara ng user ang takip</translation>
 <translation id="2655233147335439767">Tinutukoy ang URL ng search engine na ginagamit kapag nagsasagawa ng isang default na paghahanap. Ang URL ay dapat na maglaman ng string na '<ph name="SEARCH_TERM_MARKER" />,' na papalitan sa panahon ng query ng mga terminong hinahanap ng user.
 
@@ -815,6 +920,7 @@
 <translation id="268577405881275241">Ine-enable ang feature na proxy ng compression ng data</translation>
 <translation id="2693108589792503178">I-configure ang URL ng pagpapalit ng password.</translation>
 <translation id="2706708761587205154">Payagan lang ang pag-print gamit ang PIN</translation>
+<translation id="2710534340210290498">Kung itatakda ang patakarang ito sa false, hindi magagawa ng mga user na i-lock ang screen (tanging pag-sign out lang mula sa session ng user ang magiging posible). Kung itatakda ang setting na ito sa true o kung hindi ito itatakda, magagawa ng mga user na nag-authenticate gamit ang password na i-lock ang screen.</translation>
 <translation id="2731627323327011390">I-disable ang paggamit ng mga certificate ng <ph name="PRODUCT_OS_NAME" /> sa mga ARC app</translation>
 <translation id="2742843273354638707">Itago ang Chrome Web Store app at link ng footer mula sa Page ng Bagong Tab at sa app launcher ng <ph name="PRODUCT_OS_NAME" />.
 
@@ -884,6 +990,9 @@
           Kung hindi nakatakda o nakatakda sa false ang patakarang ito, babalewalain ang patakaran ng KDC sa mga sinusuportahang platform at ang patakaran ng 'AuthNegotiateDelegateWhitelist' lang ang susundin.
 
           Sa Windows, palaging sinusunod ang patakaran ng KDC.</translation>
+<translation id="283695852388224413">Kung itatakda ang patakaran, ipapatupad ang naka-configure na maximal na haba ng PIN. Ang value na 0 o mas mababa ay nangangahulugang walang maximum na haba; sa ganitong sitwasyon, puwedeng magtakda ang user ng PIN gaano man kahaba nila gusto. Kung ang setting na ito ay mas mababa sa <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> ngunit mas malaki sa 0, pareho ang maximum na haba at ang minimum na haba.
+
+          Kung hindi itatakda ang patakaran, walang ipapatupad na maximum na haba.</translation>
 <translation id="2838830882081735096">Huwag payagan ang paglipat ng data at ARC</translation>
 <translation id="2839294585867804686">Mga setting ng Mga File Share sa Network</translation>
 <translation id="2840269525054388612">Tinutukoy ang mga printer na maaaring gamitin ng isang user.
@@ -954,6 +1063,17 @@
       Kung hindi nakatakda ang patakarang ito, ipagpapalagay na pinili ang <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
 <translation id="2908277604670530363">Pinakamataas na bilang ng sabay-sabay na koneksyon sa proxy server</translation>
+<translation id="2948463916588961959">Sapilitang ine-enable ang mga wika ng spellcheck. Babalewalain ang mga hindi kilalang wika sa listahang iyon.
+
+      Kung ie-enable mo ang patakarang ito, mae-enable ang spellcheck para sa mga nakasaad na wika, bukod pa sa mga wika kung saan na-enable ng user ang spellcheck.
+
+      Kung hindi mo itatakda ang patakarang ito, o kung idi-disable mo ito, walang magiging pagbabago sa mga kagustuhan sa spellcheck ng user.
+
+      Kung itatakda ang patakarang SpellcheckEnabled sa naka-disable, hindi magkakaroon ng bisa ang patakarang ito.
+
+      Kung may wikang kasama sa patakarang ito at sa patakarang SpellcheckLanguageBlacklist, bibigyang priyoridad ang patakarang ito at mae-enable ang wika ng spellcheck.
+
+      Ang mga kasalukuyang sinusuportahang wika ay: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">Mga Paghihigpit:</translation>
 <translation id="2956777931324644324">Itinigil na ang patakarang ito simula ng bersyon 36 ng <ph name="PRODUCT_NAME" /> .
 
@@ -962,9 +1082,11 @@
       Ginagamit ang setting na ito upang i-enable ang extension ng mga TLS domain-bound na certificate para sa pagsusubok.  Aalisin ang pang-eksperimentong setting na ito sa hinaharap.</translation>
 <translation id="2957506574938329824">Huwag payagan ang anumang site na humiling ng access sa mga Bluetooth device sa pamamagitan ng Web Bluetooth API</translation>
 <translation id="2957513448235202597">Uri ng account para sa pagpapatotoo ng <ph name="HTTP_NEGOTIATE" /></translation>
+<translation id="2959469725686993410">Palaging magpadala ng mga access-point ng WiFi sa server habang nilulutas ang timezone</translation>
 <translation id="2959898425599642200">Mga panuntunan sa pag-bypass ng proxy</translation>
 <translation id="2960128438010718932">Ang iskedyul ng pag-stage para sa paglalapat ng bagong update</translation>
 <translation id="2960691910306063964">I-enable o i-disable ang pagpapatotoo na hindi gumagamit ng PIN para sa mga host ng malayuang access</translation>
+<translation id="2972261849442778817">Tanungin ang user kung gusto niyang mag-migrate o laktawan ang pag-migrate at i-disallow ang ARC.</translation>
 <translation id="2976002782221275500">Tinutukoy ang tagal ng oras na walang input ng user na kapag lumipas ay idi-dim ang screen kapag tumatakbo gamit ang power ng baterya.
 
           Kapag nakatakda ang patakarang ito sa halagang mas malaki kaysa sa zero, tinutukoy nito ang tagal ng oras na dapat manatiling idle ang user bago i-dim ng <ph name="PRODUCT_OS_NAME" /> ang screen.
@@ -974,12 +1096,25 @@
           Kapag hindi nakatakda ang patakarang ito, may default na tagal ng oras na gagamitin.
 
           Dapat tukuyin ang halaga ng patakaran ayon sa millisecond. Kinakailangang mas mababa kaysa sa o katumbas ng delay ng pag-off ng screen (kung nakatakda) at idle delay ang mga halaga.</translation>
+<translation id="2977997796833930843">Tandaang hindi na ginagamit ang patakarang ito at aalisin ito sa hinaharap.
+
+          Ang patakarang ito ay nagbibigay ng value ng fallback para sa mas partikular na patakarang <ph name="IDLE_ACTION_AC_POLICY_NAME" /> at <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" />. Kung itatakda ang patakarang ito, magagamit ang value nito kung hindi nakatakda ang tinukoy na mas partikular na patakaran.
+
+          Kapag hindi nakatakda ang patakarang ito, mananatiling hindi apektado ang gawi ng mga mas partikular na patakaran.</translation>
 <translation id="2987155890997901449">I-enable ang ARC</translation>
 <translation id="2987227569419001736">Kontrolin ang paggamit ng Web Bluetooth API</translation>
 <translation id="3016255526521614822">Pinapayagan ang mga app sa paggawa ng tala ng Whitelist sa lock screen ng <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3021562480854470924">Pinapayagan ang bilang ng pag-rollback ng mga milestone</translation>
 <translation id="3023572080620427845">URL ng XML file na naglalaman ng mga URL na ilo-load sa alternatibong browser.</translation>
 <translation id="3030000825273123558">Paganahin ang pag-uulat ng mga sukatan</translation>
+<translation id="3033660238345063904">Puwede mong isaad ang URL ng proxy server dito.
+
+          Magkakaroon lang ng bisa ang patakarang ito kung pinili mo ang mga manual na setting ng proxy sa 'Piliin kung paano magsaad ng mga setting ng proxy server' at kung hindi naisaad ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Dapat mong hayaang hindi nakatakda ang patakarang ito kung pumili ka ng anupamang mode para sa pagtatakda ng mga patakaran sa proxy.
+
+          Para sa higit pang opsyon at mga detalyadong halimbawa, bisitahin ang:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">Binibigyang-daan kang itakda kung pinapayagan o hindi ang mga website na magpatakbo ng JavaScript. Maaaring payagan para sa lahat ng website o tanggihan para sa lahat ng website ang pagpapatakbo ng JavaScript.
 
           Kung hinayaang hindi nakatakda ang patakarang ito, gagamitin ang 'AllowJavaScript' at magagawa ng user na baguhin ito.</translation>
@@ -1038,10 +1173,18 @@
       Kung naka-enable o hindi nakatakda, pana-panahong isa-scan ng Chrome Cleanup ang system para sa hindi gustong software, at kung may mahanap na ganito, magtatanong sa user kung gusto niya itong alisin. Naka-enable ang manual na pag-trigger sa Chrome Cleanup mula sa chrome://settings.
 
       Available lang ang patakarang ito sa mga instance ng Windows na kasama sa domain ng<ph name="MS_AD_NAME" />. O kaya, sa mga instance ng Windows 10 Pro o Enterprise na naka-enroll para sa pamamahala sa device.</translation>
+<translation id="3152425128389603870">Gawing available ang Unified Desktop at i-on bilang default</translation>
 <translation id="3159375329008977062">Naka-enable ang user na mag-export / mag-import ng mga Crostini container sa pamamagitan ng UI</translation>
 <translation id="3165808775394012744">Isinama rito ang mga patakarang ito para gawing mas madaling alisin ang mga ito.</translation>
 <translation id="316778957754360075">Hindi na ginagamit ang setting na ito simula sa <ph name="PRODUCT_NAME" /> bersyon 29. Ang inirerekumendang paraan upang mag-set up ng mga koleksyon ng extension/app na hino-host ng samahan ay ang pagsama sa pag-host sa site sa mga CRX package sa ExtensionInstallSources at paglagay ng direktang link sa pag-download sa mga package sa isang web page.Maaaring gawin ang isang launcher para sa web page na iyon gamit ang patakaran na ExtensionInstallForcelist.</translation>
 <translation id="3171369832001535378">Template ng hostname ng network ng device</translation>
+<translation id="3172512016079904926">Ine-enable ang pag-install sa antas ng user ng mga host ng Native na Pagmemensahe.
+
+          Kung ie-enable ang setting na ito, mabibigyang-daan ng <ph name="PRODUCT_NAME" /> ang paggamit sa mga host ng Native na Pagmemensahe na naka-install sa antas ng user.
+
+          Kung idi-disable ang setting na ito, gagamitin lang ng <ph name="PRODUCT_NAME" /> ang mga host ng Native na Pagmemensahe na naka-install sa antas ng system.
+
+          Kung hahayaang hindi nakatakda ang setting na ito, mabibigyang-daan ng <ph name="PRODUCT_NAME" /> ang paggamit sa mga host ng Native na Pagmemensahe sa antas ng user.</translation>
 <translation id="3185009703220253572">mula pa noong bersyon <ph name="SINCE_VERSION" /></translation>
 <translation id="3187220842205194486">Hindi maaaring kumuha ng access ang mga Android app sa mga pangkorporasyong key. Walang epekto ang mga ito sa patakarang ito.</translation>
 <translation id="3205825995289802549">I-maximize ang unang window ng browser sa unang pagtakbo</translation>
@@ -1138,6 +1281,13 @@
       Kung itatakda ang setting na ito sa Naka-off o wala kang itatakdang value, hindi ipapatupad ng <ph name="PRODUCT_NAME" /> ang Restricted Mode sa YouTube. Gayunpaman, ang Restricted Mode ay maaari pa ring ipatupad ng mga panlabas na patakaran gaya ng mga patakaran ng YouTube.</translation>
 <translation id="3428247105888806363">Paganahin ang paghula sa network</translation>
 <translation id="3432863169147125747">Nagkokontrol sa mga setting ng pag-print.</translation>
+<translation id="3434932177006334880">Pinangalanang EnableWebBasedSignin ang setting na ito bago pa ang Chrome 42, at tuluyang aalisin sa Chrome 43 ang suporta para rito.
+
+      Kapaki-pakinabang ang setting na ito para sa mga customer ng enterprise na gumagamit ng SSO solutions na hindi pa compatible sa bagong inline na flow ng pag-sign in.
+      Kung ie-enable mo ang setting na ito, gagamitin ang lumang web-based na flow ng pag-sign in.
+      Kung idi-disable o hahayaan mong hindi nakatakda ang setting na ito, gagamitin ang bagong inline na flow ng pag-sign in bilang default. Puwede pa ring i-enable ng mga user ang lumang web-based na flow ng pag-sign in sa pamamagitan ng flag sa command line --enable-web-based-signin.
+
+      Aalisin ang pang-eksperimentong setting sa hinaharap kapag ganap na sinusuportahan ng inline na pag-sign in ang lahat ng flow ng pag-sign in sa SSO.</translation>
 <translation id="3437924696598384725">Payagan ang user na pamahalaan ang mga koneksyon sa VPN</translation>
 <translation id="3459509316159669723">Pagpi-print</translation>
 <translation id="3460784402832014830">Tinutukoy ang URL na ginagamit ng isang search engine upang magbigay ng pahina ng bagong tab.
@@ -1157,6 +1307,12 @@
         Kung itatakda ang patakarang ito, susubukan ng <ph name="PRODUCT_NAME" /> na irehistro ang sarili nito at ilapat ang nauugnay na patakaran ng cloud para sa lahat ng profile.
 
         Ang value ng patakarang ito ay isang Token sa pag-enroll na maaaring makuha sa Google Admin console.</translation>
+<translation id="3489247539215560634">Kung naka-enable ang setting na ito, mabibigyang-daan ng mga user ang <ph name="PRODUCT_NAME" /> na tandaan ang mga password at awtomatikong ibigay ang mga ito sa susunod na mag-log in sila sa isang site.
+
+          Kung naka-disable ang setting na ito, hindi makakapag-save ng mga bagong password ang mga user ngunit
+          puwede pa rin nilang gamitin ang mga password na dati nang na-save.
+
+          Kung naka-enable o naka-disable ang patakarang ito, hindi ito maaaring baguhin o i-override ng mga user sa <ph name="PRODUCT_NAME" />. Kung hindi nakatakda ang patakarang ito, pinapayagan ang pag-save ng password (ngunit puwedeng i-off ng user).</translation>
 <translation id="3496296378755072552">Tagapamahala ng password</translation>
 <translation id="3500732098526756068">Nagbibigay-daan sa iyong kontrolin ang pag-trigger ng babala sa proteksyon ng password. Inaalertuhan ng proteksyon ng password ang mga user kapag muli nilang ginamit ang kanilang pinoprotektahang password sa mga posibleng kahina-hinalang site.
 
@@ -1175,6 +1331,13 @@
           Iginagalang lang ang patakarang ito kung naka-enable ang patakarang 'DefaultSearchProviderEnabled.'</translation>
 <translation id="350797926066071931">Paganahin ang I-translate</translation>
 <translation id="3512226956150568738">Kung sinusuportahan na ng modelo ng device ng kliyente ang ARC bago kailanganin ang paglipat sa ext4 upang mapatakbo ang ARC at kung nakatakda sa true ang patakarang ArcEnabled, gagana ang opsyong ito bilang AskUser (value 3). Sa lahat ng iba pang sitwasyon (kung hindi sinusuportahan ng modelo ng device ang ARC dati, o kung nakatakda sa false ang patakarang ArcEnabled), ang value na ito ay katumbas ng DisallowArc (value 0).</translation>
+<translation id="3513655665999652754">Ang Quirks Server ay nagbibigay ng mga file ng configuration na partikular sa hardware, tulad ng
+      mga ICC display profile para i-adjust ang calibration ng monitor.
+
+      Kapag nakatakda ang patakarang ito sa false, hindi susubukan ng device na
+      makipag-ugnayan sa Quirks Server para mag-download ng mga file ng configuration.
+
+      Kung nakatakda ang patakarang ito sa true o hindi ito naka-configure, awtomatikong makikipag-ugnayan ang <ph name="PRODUCT_OS_NAME" /> sa Quirks Server at ida-download nito ang mga file ng configuration, kung available, at iso-store ang mga ito sa device.  Ang mga naturang file, halimbawa, ay puwedeng gamitin para pagandahin ang kalidad ng display ng mga naka-attach na monitor.</translation>
 <translation id="3524204464536655762">Huwag payagan ang anumang site na humiling ng access sa mga USB device sa pamamagitan ng WebUSB API</translation>
 <translation id="3526752951628474302">Monochrome na pag-print lang</translation>
 <translation id="3528000905991875314">Paganahin ang mga kahaliling pahina ng error</translation>
@@ -1203,6 +1366,9 @@
       </translation>
 <translation id="3627678165642179114">Paganahin o huwag paganahin ang spell checking na serbisyo sa web</translation>
 <translation id="3628480121685794414">I-enable ang simplex na pag-print</translation>
+<translation id="3631099945620529777">Kung itatakda ito sa false, madi-disable ang button na 'Tapusin ang proseso' sa Task Manager.
+
+      Kung itatakda ito sa true o kung hindi ito iko-configure, puwedeng tapusin ng user ang mga proseso sa Task Manager.</translation>
 <translation id="3646859102161347133">Itakda ang uri ng magnifier sa screen</translation>
 <translation id="3653237928288822292">Default na icon ng provider ng paghahanap</translation>
 <translation id="3660510274595679517">
@@ -1217,6 +1383,7 @@
 <translation id="3709266154059827597">I-configure ang blacklist ng pag-install ng extension</translation>
 <translation id="3711895659073496551">Suspendihin</translation>
 <translation id="3715569262675717862">Pag-authenticate batay sa mga certificate ng kliyente</translation>
+<translation id="3734995764843493369">Kinakailangan ang paglalagay ng password araw-araw (24 na oras)</translation>
 <translation id="3736879847913515635">I-enable ang magdagdag ng tao sa user manager</translation>
 <translation id="3738723882663496016">Tinutukoy ng patakarang ito ang key ng lisensya ng <ph name="PLUGIN_VM_NAME" /> para sa device na ito.</translation>
 <translation id="3748900290998155147">Tumutukoy kung pinapayagan ang mga wake lock. Maaaring humiling ng mga wake lock ang mga extension sa pamamagitan ng power management extension API at sa pamamagitan ng mga ARC app.
@@ -1225,6 +1392,9 @@
 
           Kung nakatakda sa false ang patakarang ito, babalewalain ang mga kahilingan sa wake lock.</translation>
 <translation id="3750220015372671395">I-block ang pagbuo ng key sa mga site na ito</translation>
+<translation id="375266612405883748">Pinaghihigpitan ang saklaw ng UDP port na ginagamit ng host ng remote na access sa machine na ito.
+
+          Kung hahayaang hindi nakatakda ang patakarang ito, o kung itatakda ito sa blangkong string, papayagan ang host ng remote na access na gamitin ang anumang available na port, maliban na lang kung idi-disable ang patakarang <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" />, kung saan gagamit ng mga UDP port ang host ng remote na access sa saklaw na 12400-12409.</translation>
 <translation id="3756011779061588474">I-block ang mode ng developer</translation>
 <translation id="3758089716224084329">Binibigyang-daan kang tukuyin ang proxy server na ginamit ng <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang mga setting ng proxy.
 
@@ -1301,6 +1471,8 @@
           Ang value ng blacklist na * ay nangangahulugang naka-blacklist ang lahat ng host ng native na pagmemensahe at ang mga host ng native na pagmemensahe lang na nakalista sa whitelist ang ilo-load.
 
           Bilang default, naka-whitelist ang lahat ng host ng native na pagmemensahe, ngunit kung naka-blacklist ang lahat ng host ng native na pagmemensahe alinsunod sa patakaran, maaaring gamitin ang whitelist upang i-override ang patakarang iyon.</translation>
+<translation id="3835692988507803626">Sapilitang dini-disable ang mga wika ng spellcheck</translation>
+<translation id="3837424079837455272">Kinokontrol ng patakarang ito kung puwedeng magdagdag ng mga bagong user sa <ph name="PRODUCT_OS_NAME" />. Hindi nito pinipigilan ang mga user na mag-sign in sa mga karagdagang Google account na nasa Android. Kung gusto mo itong pigilan, i-configure ang patakarang <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> na partikular sa Android bilang bahagi ng <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="384743459174066962">Binibigyang-daan kang magtakda ng isang listahan ng mga pattern ng url na tumutukoy sa mga site na hindi pinapayagang magbukas ng mga popup.
 
           Kung hinayaang hindi nakatakda ang patakarang ito gagamitin ang global na default na halaga para sa lahat ng site mula sa patakarang 'DefaultPopupsSetting' kung nakatakda ito, o kung hindi man ay sa personal na configuration ng user.</translation>
@@ -1442,13 +1614,50 @@
           Dapat tukuyin ang halaga ng patakaran ayon sa millisecond.</translation>
 <translation id="4105989332710272578">I-disable ang pagpapatupad ng Transparency ng Certificate para sa isang listahan ng mga URL</translation>
 <translation id="4121350739760194865">Pigilan ang paglitaw ng mga pag-promote ng app sa pahina ng bagong tab</translation>
+<translation id="4125606414556046117">Nagbibigay-daan sa iyo ang patakarang itong i-configure ang larawan sa wallpaper na ipinapakita sa desktop at sa background ng screen sa pag-log in para sa user. Itinatakda ang patakaran sa pamamagitan ng pagtukoy sa URL kung saan mada-download ng <ph name="PRODUCT_OS_NAME" /> ang larawan sa wallpaper at isang cryptographic na hash na ginagamit para i-verify ang integridad ng download. Dapat ay nasa format na JPEG ang larawan at hindi dapat lumampas sa 16MB ang laki ng file nito. Dapat ay accessible ang URL nang walang anumang pag-authenticate.
+
+      Dina-download at kina-cache ang larawan sa wallpaper. Muli itong ida-download sa tuwing magbabago ang URL o ang hash.
+
+      Dapat tukuyin ang patakaran bilang string na nagsasaad sa URL at hash sa format na JSON, at umaayon sa sumusunod na schema:
+      {
+        "uri": "object",
+        "mga property": {
+          "url": {
+            "paglalarawan": "Ang URL kung saan mada-download ang larawan sa wallpaper.",
+            "uri": "string"
+          },
+          "hash": {
+            "paglalarawan": "Ang SHA-256 hash ng larawan sa wallpaper.",
+            "uri": "string"
+          }
+        }
+      }
+
+      Kung itatakda ang patakarang ito, ida-download at gagamitin ng <ph name="PRODUCT_OS_NAME" /> ang larawan sa wallpaper.
+
+      Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.
+
+      Kung hahayaang hindi nakatakda ang patakaran, puwedeng pumili ang user ng larawang ipapakita sa desktop at sa background ng screen sa pag-log in.</translation>
 <translation id="412697421478384751">I-enable ang mga user na magtakda ng madadaling hulaang PIN para sa PIN ng lock screen</translation>
 <translation id="4138655880188755661">Limitasyon sa Oras</translation>
 <translation id="4150201353443180367">Display</translation>
 <translation id="4157003184375321727">I-ulat ang bersyon ng OS at firmware.</translation>
 <translation id="4157594634940419685">Payagan ang pag-access sa mga native na CUPS printer</translation>
+<translation id="4163705126749612234">Kino-configure ang mga kinakailangang domain name sa client na ipapatupad sa mga client na may remote na access at pinipigilan ang mga user na baguhin ito.
+
+          Kung ie-enable ang setting na ito, tanging ang mga client lang mula sa isa sa mga nakasaad na domain ang puwedeng kumonekta sa host.
+
+          Kung idi-disable o hindi itatakda ang setting na ito, ilalapat ang default na patakaran para sa uri ng koneksyon. Para sa remote na tulong, pinapayagan nito ang mga client mula sa anumang domain na kumonekta sa host; para sa remote na access anumang oras, tanging ang may-ari lang ng host ang makakakonekta.
+
+          Mao-override ng setting na ito ang RemoteAccessHostClientDomain, kung mayroon man.
+
+          Tingnan din ang RemoteAccessHostDomainList.</translation>
 <translation id="4183229833636799228">Default na setting ng <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="4192388905594723944">URL para sa pagva-validate ng token ng pagpapatotoo ng client sa malayuang pag-access</translation>
+<translation id="4197038214024763371">Kung hindi itatakda ang patakarang ito o kung ie-enable ito, papayagan ang user na gamitin ang spellcheck.
+
+      Kung idi-disable ang patakarang ito, hindi papayagan ang user na gamitin ang spellcheck. Babalewalain din ang patakarang SpellcheckLanguage at SpellcheckLanguageBlacklist kapag naka-disable ang patakarang ito.
+      </translation>
 <translation id="4203389617541558220">Limitahan ang uptime ng device sa pamamagitan ng pagse-schedule ng mga awtomatikong reboot.
 
       Kapag nakatakda na ang patakaran, tinutukoy nito ang tagal ng uptime ng device na kung saan ise-schedule ang isang awtomatikong reboot pagkatapos.
@@ -1470,6 +1679,13 @@
 <translation id="423797045246308574">Binibigyang-daan ka na magtakda ng isang listahan ng mga pattern ng URL na tumutukoy sa mga site na pinapayagang gumamit ng pagbuo ng key. Kung ang pattern ng URL ay nasa 'KeygenAllowedForUrls', ino-override ng patakaran na ito ang mga pagbubukod na ito.
 
           Kung hinayaang hindi nakatakda ang patakaran na ito, gagamitin ang default na pandaigdigang value para sa lahat ng site mula sa patakaran na 'DefaultKeygenSetting' kung nakatakda ito, o kung hindi naman ay sa personal na configuration ng user.</translation>
+<translation id="4238997902172035160">Kino-configure ang directory na gagamitin ng <ph name="PRODUCT_NAME" /> para sa pag-store ng roaming na kopya ng mga profile.
+
+      Kung itatakda mo ang patakarang ito, gagamitin ng <ph name="PRODUCT_NAME" /> ang ibinigay na directory para i-store ang roaming na kopya ng mga profile kung na-enable ang patakarang <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" />. Kung idi-disable o hahayaang hindi nakatakda ang patakarang <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" />, hindi gagamitin ang value na naka-store sa patakarang ito.
+
+      Tingnan ang https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables para sa listahan ng mga variable na puwedeng gamitin.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang default na path ng roaming profile.</translation>
 <translation id="4239720644496144453">Hindi ginagamit ang cache para sa mga Android app. Kung ii-install ng maraming user ang parehong Android app, ida-download itong muli para sa bawat user.</translation>
 <translation id="4243336580717651045">Nag-e-enable sa pangongolekta ng naka-anonymize na data na may key ng URL sa <ph name="PRODUCT_NAME" /> at pumipigil sa mga user na baguhin ang setting na ito.
 
@@ -1524,6 +1740,9 @@
       Gamitin ang wildcard character na '*' upang itugma ang zero o higit pang arbitrary character. Ang escape character ay '\', kaya upang itugma ang mga aktwal na character na '*' o '\', maglagay ng '\' sa unahan ng mga ito.
 
       Kung hindi nakatakda ang patakarang ito, makikita ang lahat ng Google account sa device sa <ph name="PRODUCT_NAME" />.</translation>
+<translation id="4360826270668210664">Kung itatakda ang patakarang ito, hihilingin ng host na may remote na access sa mga client na magpapa-authenticate na magkaroon ng token ng pag-authenticate mula sa URL na ito para makakonekta. Dapat gamitin kasabay ng RemoteAccessHostTokenValidationUrl.
+
+          Kasalukuyang naka-disable ang feature na ito sa server-side.</translation>
 <translation id="436581050240847513">I-ulat ang mga interface ng network ng device</translation>
 <translation id="4372704773119750918">Hindi pinapayagan ang enterprise user na maging bahagi ng multiprofile (pangunahin o pangalawa)</translation>
 <translation id="4377599627073874279">Payagan ang lahat ng mga site na ipakita ang lahat ng mga larawan</translation>
@@ -1533,6 +1752,9 @@
 <translation id="4408428864159735559">Listahan ng mga naka-preconfigure na file share sa network.</translation>
 <translation id="4410236409016356088">I-enable ang pag-throttle sa bandwidth ng network</translation>
 <translation id="441217499641439905">I-disable ang Google Drive sa mga cellular na koneksyon sa app na Mga File ng <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="4415603335307944578">Kung itatakda ang patakarang ito sa true o kung hindi ito iko-configure, muling ipapakita ng browser ang welcome page sa unang paglunsad kasunod ng pag-upgrade sa OS.
+
+      Kung itatakda ang patakarang ito sa false, hindi ipapakitang muli ng browser ang welcome page sa unang paglunsad kasunod ng pag-upgrade sa OS.</translation>
 <translation id="4418726081189202489">Kapag itinakda ang patakarang ito sa false, pipigilan ang <ph name="PRODUCT_NAME" /> na paminsan-minsang magpadala ng mga query sa isang server ng Google upang kumuha ng tumpak na timestamp. Ie-enable ang mga query na ito kung nakatakda sa True ang patakarang ito o kung hindi ito nakatakda.</translation>
 <translation id="4423597592074154136">Manu-manong tukuyin ang mga setting ng proxy</translation>
 <translation id="4429220551923452215">Ini-enable o dini-disable ang shortcut ng mga app bar ng bookmark.
@@ -1618,11 +1840,25 @@
 <translation id="4557134566541205630">URL ng pahina ng bagong tab ng default na search provider</translation>
 <translation id="4567137030726189378">Payagan ang paggamit ng Mga Tool ng Developer</translation>
 <translation id="4578265298946081589">Huwag mag-reboot sa pag-sign out ng user.</translation>
+<translation id="4578912515887794133">Kung naka-enable ang setting na ito, ihahambing ng host ng remote na access ang pangalan ng lokal na user (kung saan nauugnay ang host) at ang pangalan ng Google account na nakarehistro bilang may-ari ng host (ibig sabihin, "johndoe" kung pagmamay-ari ng Google account na "johndoe@example.com" ang host).  Hindi magsisimula ang host ng remote na access kung magkaiba ang pangalan ng may-ari ng host at ang pangalan ng lokal na user kung saan nauugnay ang host.  Dapat gamitin ang patakarang RemoteAccessHostMatchUsername kasama ng RemoteAccessHostDomain para ipatupad din na nauugnay ang Google account ng may-ari ng host sa isang partikular na domain (ibig sabihin, "example.com").
+
+          Kung idi-disable o hindi itatakda ang setting na ito, puwedeng iugnay ang host ng remote na access sa anumang lokal na user.</translation>
 <translation id="4600786265870346112">I-enable ang malaking cursor</translation>
 <translation id="4604931264910482931">I-configure ang blacklist ng native na pagmemensahe</translation>
 <translation id="4613508646038788144">Kung nakatakda sa false ang patakarang ito, papayagan ang third party software na magpasok ng executable code sa mga proseso ng Chrome. Kung hindi nakatakda ang patakaran o kung nakatakda ito sa true, pipigilan ang third party software sa pagpasok ng executable code sa mga proseso ng Chrome.</translation>
 <translation id="4617338332148204752">Lalaktawan ang pagsuri sa meta tag sa <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">I-configure ang whitelist sa pag-install ng extension</translation>
+<translation id="463224920692183755">Isinasaad ang pagkilos na dapat isagawa noong ginawa ang home directory ng user gamit ang ecryptfs na pag-encrypt at noong kinakailangan itong ilipat sa ext4 na pag-encrypt.
+
+      Kung itatakda mo ang patakarang ito sa 'DisallowArc', madi-disable ang mga Android app para sa user at walang maisasagawang paglilipat mula sa ecryptfs papunta sa ext4 na pag-encrypt. Hindi mapipigilan ang pagpapatakbo sa mga Android app kapag naka-encrypt na ang home directory gamit ang ext4.
+
+      Kung itatakda mo ang patakarang ito sa 'I-migrate', awtomatikong magma-migrate sa ext4 na pag-encrypt ang mga home directory na naka-encrypt gamit ang ecryptfs sa pag-sign in nang hindi humihingi ng pahintulot sa user.
+
+      Kung itatakda mo ang patakarang ito sa 'I-wipe', made-delete ang mga home directory na naka-encrypt gamit ang ecryptfs sa pag-sign in at magkakaroon na lang ng mga bagong home directory na naka-ecrypt gamit ang ext4. Babala: Inaalis nito ang lokal na data ng user.
+
+      Kung itatakda mo ang patakarang ito sa 'AskUser', aaluking mag-migrate ang mga user na may mga home directory na naka-encrypt gamit ang ecryptfs.
+
+      Hindi nalalapat ang patakarang ito sa mga user ng kiosk. Kung hahayaang hindi nakatakda ang patakarang ito, kikilos ang device na para bang pinili ang 'DisallowArc.'</translation>
 <translation id="4632343302005518762">Payagan ang <ph name="PRODUCT_FRAME_NAME" /> na pangasiwaan ang mga uri ng nakalistang nilalaman</translation>
 <translation id="4632566332417930481">Huwag payagan ang paggamit ng Mga Tool ng Developer sa mga extension na na-install sa pamamagitan ng patakaran sa enterprise, payagan ang paggamit ng Mga Tool ng Developer sa iba pang konteksto</translation>
 <translation id="4633786464238689684">Ginagawang mga function key ang default na gawi ng mga key sa itaas na row.
@@ -1733,15 +1969,54 @@
 <translation id="4986560318567565414">Path sa Chrome para sa paglipat mula sa alternatibong browser.</translation>
 <translation id="4988291787868618635">Pagkilos na gagawin kapag naabot ang idle delay</translation>
 <translation id="4995548127349206948">Kung naka-enable ang pag-authenticate ng NTLMv2.</translation>
+<translation id="5030889661505907084">
+      Kung itatakda sa true ang patakaran, mangingibabaw ang patakaran ng cloud kung sumasalungat ito sa patakaran ng platform.
+      Kung itatakda sa false o hindi iko-configure ang patakaran, mangingibabaw ang patakaran ng platform kung sumasalungat ito sa patakaran ng cloud.
+
+      Available lang ang patakarang ito bilang platform.
+      </translation>
 <translation id="5047604665028708335">Payagan ang access sa mga site na nasa labas ng mga pack ng nilalaman</translation>
 <translation id="5052081091120171147">Pinupwersa ng patakarang ito na ma-import mula sa kasalukuyang default na browser ang kasaysayan ng pagba-browse kung pinagana. Kung pinagana, naaapektuhan rin ng patakarang ito ang dialog ng pag-import.
 
       Kung hindi pinagana, walang ini-import na kasaysayan ng pagba-browse.
 
       Kung hindi ito nakatakda, maaaring tanungin sa user kung mag-i-import o hindi, o maaaring awtomatikong mangyari ang pag-import.</translation>
+<translation id="5055312535952606505">Kino-configure ang mga setting ng proxy para sa <ph name="PRODUCT_NAME" />. Magiging available din ang mga setting ng proxy na ito para sa mga ARC-app.
+
+          Kung ie-enable mo ang setting na ito, babalewalain ng <ph name="PRODUCT_NAME" /> at mga ARC-app ang lahat ng opsyong nauugnay sa proxy na nakasaad mula sa command line.
+
+          Kapag hinayaang hindi nakatakda ang patakarang ito, mabibigyang-daan ang mga user na sila mismo ang pumili ng mga setting ng proxy.
+
+          Kung itatakda ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />, io-override nito ang alinman sa mga indibidwal na patakarang <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> at <ph name="PROXY_SERVER_MODE_POLICY_NAME" />.
+
+          Nagbibigay-daan sa iyo ang field na <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> na isaad ang proxy server na ginagamit ng <ph name="PRODUCT_NAME" /> at pinipigilan nito ang mga user na baguhin ang mga setting ng proxy.
+
+          Ang field na <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> ay isang URL sa proxy .pac file.
+
+          Ang field na <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> ay isang URL ng proxy server.
+
+          Ang field na <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> ay isang listahan ng mga host ng proxy na iba-bypass ng <ph name="PRODUCT_NAME" />.
+
+          Ang field na <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> ay hindi na ginagamit at pinalitan na ng field na 'ProxyMode'. Nagbibigay-daan ito sa iyong isaad ang proxy server na ginagamit ng <ph name="PRODUCT_NAME" /> at pinipigilan nito ang mga user na baguhin ang mga setting ng proxy.
+
+          Kung pipiliin mo ang value na 'direct' bilang 'ProxyMode,' hindi kailanman gagamit ng proxy at babalewalain ang lahat ng iba pang field.
+
+          Kung pipiliin mo ang value na 'system' bilang 'ProxyMode,' gagamitin ang proxy ng system at babalewalain ang lahat ng iba pang field.
+
+          Kung pipiliin mo ang value na 'auto_detect' bilang 'ProxyMode', babalewalain ang lahat ng iba pang field.
+
+          Kung pipiliin mo ang value na 'fixed_server' bilang 'ProxyMode', gagamitin ang field na 'ProxyServer' at 'ProxyBypassList.'
+
+          Kung pipiliin mo ang value na 'pac_script' bilang 'ProxyMode', gagamitin ang field na 'ProxyPacUrl' at 'ProxyBypassList.'</translation>
 <translation id="5056708224511062314">Naka-disable ang magnifier ng screen</translation>
 <translation id="5058573563327660283">Piliin ang diskarteng gagamitin para magbakante ng espasyo sa disk sa panahon ng awtomatikong pag-clean-up (hindi na ginagamit)</translation>
 <translation id="5067143124345820993">White list ng user sa pag-login</translation>
+<translation id="5075834892754086022">Kung itatakda ang patakaran, ipapatupad ang naka-configure na minimal na haba ng
+          PIN. (Ang ganap na minimum na haba ng PIN ay 1; ituturing na 1 ang
+          mga value na mas mababa sa 1.)
+
+          Kung hindi itatakda ang patakaran, ipapatupad ang minimal na haba ng PIN na 6 na
+          digit. Ito ang inirerekomendang minimum.</translation>
 <translation id="5076274878326940940">Nag-e-enable sa paggamit ng default na provider ng paghahanap.
 
           Kung ie-enable mo ang setting na ito, magsasagawa ng default na paghahanap kapag nag-type ang user ng text na hindi URL sa omnibox.
@@ -1794,6 +2069,24 @@
       Ang minimum na pagitan ay 30 segundo at 24 na oras ang maximum na pagitan -
       ang mga value sa labas ng saklaw na ito ay maka-clamp sa saklaw na ito.</translation>
 <translation id="5163002264923337812">I-enable ang lumang web-based na flow ng pag-sign in</translation>
+<translation id="5168529971295111207">Hindi na ginagamit ang patakarang ito, gamitin na lang ang ProxyMode.
+
+          Nagbibigay-daan sa iyong tukuyin ang proxy server na ginagamit ng <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang mga setting ng proxy.
+
+          Nagkakaroon lang ng bisa ang patakarang ito kung hindi tinukoy ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Kung pipiliin mong hindi kailanman gumamit ng proxy server at palaging direktang kumonekta, babalewalain ang lahat ng iba pang opsyon.
+
+          Kung pipiliin mong gamitin ang mga setting ng proxy ng system o awtomatikong i-detect ang proxy server, babalewalain ang lahat ng iba pang opsyon.
+
+          Kung pipiliin mo ang mga manual na setting ng proxy, puwede kang magsaad ng higit pang opsyon sa 'Address o URL ng proxy server', 'URL sa proxy .pac file' at 'Comma-separated list ng mga panuntunan sa pag-bypass ng proxy'. Tanging ang HTTP na proxy server lang na may pinakamataas na priyoridad ang available para sa mga ARC-app.
+
+          Para sa mga detalyadong halimbawa, bisitahin ang:
+          <ph name="PROXY_HELP_URL" />.
+
+          Kung ie-enable mo ang setting na ito, babalewalain ng <ph name="PRODUCT_NAME" /> ang lahat ng opsyong nauugnay sa proxy na nakasaad mula sa command line.
+
+          Kapag hinayaang hindi nakatakda ang patakarang ito, mabibigyang-daan ang mga user na sila mismo ang pumili ng mga setting ng proxy.</translation>
 <translation id="5182055907976889880">I-configure ang Google Drive sa <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="5183383917553127163">Pinapayagan kang tukuyin kung aling mga extension ang hindi sumasailalim sa blacklist. Nangangahulugan ang halaga ng blacklist ng* na naka-blacklist ang lahat ng mga extension at mai-install lamang ng mga user ang mga extension na nakalista sa whitelist. Bilang default, naka-whitelist ang lahat ng mga extension, ngunit kung na-blacklist ang lahat ng mga extension ng patakaran, magagamit ang whitelist upang i-override ang patakarang iyon.</translation>
 <translation id="519247340330463721">I-configure ang mga patakarang nauugnay sa Ligtas na Pag-browse.</translation>
@@ -1840,6 +2133,20 @@
 
       Tinutukoy ang patakarang ito gamit ang milliseconds.</translation>
 <translation id="523505283826916779">Mga setting ng accessibility</translation>
+<translation id="5236882091572996759">Kung itatakda ang patakarang ito sa True o kung hindi ito itatakda, hindi ituturing na idle ang user habang nagpe-play ang audio. Pinipigilan nitong maabot ang timeout bago mag-idle at maisagawa ang pagkilos sa idle. Gayunpaman, isasagawa ang pag-dim ng screen, pag-off ng screen, at pag-lock ng screen pagkatapos ng mga naka-configure na timeout, mayroon mang aktibidad ng audio o wala.
+
+          Kung itatakda ang patakarang ito sa False, hindi mapipigilan ng aktibidad sa audio na ituring na idle ang user.</translation>
+<translation id="5246700266104954355">Hindi na ginagamit ang patakarang ito. Pakigamit ang <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para kontrolin ang avalability ng Flash plugin at <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para kontrolin kung dapat bang gamitin ang pinagsamang PDF viewer para sa pagbubukas ng mga PDF file.
+
+      Nagsasaad ng listahan ng mga plugin na naka-enable sa <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang setting na ito.
+
+      Puwedeng gamitin ang mga wildcard na character na '*' at '?' para magtugma ng pagkakasunod-sunod ng mga arbitrary na character. Tumutugma ang '*' sa isang arbitrary na bilang ng mga character habang tumutukoy naman ang '?' sa isang opsyonal na iisang character, ibig sabihin, tumutugma ito sa zero o isang character. Ang escape na character ay '\', kaya para tumugma sa mga aktwal na '*', '?', o '\' na character, puwede kang maglagay ng '\' bago ang mga ito.
+
+      Palaging ginagamit sa <ph name="PRODUCT_NAME" /> ang nakasaad na listahan ng mga plugin kung naka-install ang mga ito. Minarkahan ang mga plugin bilang naka-enable sa 'about:plugins' at hindi madi-disable ng mga user ang mga ito.
+
+      Tandaang ino-override ng patakarang ito ang DisabledPlugins at DisabledPluginsExceptions.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, puwedeng i-disable ng user ang anumang plugin na naka-install sa system.</translation>
 <translation id="5247006254130721952">I-block ang mga mapanganib na pag-download</translation>
 <translation id="5248863213023520115">Nagtatakda ng mga uri ng pag-encrypt na pinapayagan kapag humihiling ng mga Kerberos ticket mula sa isang <ph name="MS_AD_NAME" /> server.
 
@@ -1888,6 +2195,7 @@
 
       Kung hindi, maaari itong itakda sa isa sa mga sumusunod na value: "tls1.2" o "tls1.3." Kapag naitakda, hindi gagamit ang <ph name="PRODUCT_NAME" /> ng mga bersyon ng SSL/TLS na mas bago kaysa sa tinukoy na bersyon. Babalewalain ang hindi kilalang value.</translation>
 <translation id="5330684698007383292">Payagan ang <ph name="PRODUCT_FRAME_NAME" /> na pangasiwaan ang mga sumusunod na uri ng nilalaman</translation>
+<translation id="5331746669335642668">Ino-override ng patakaran sa cloud ng <ph name="PRODUCT_NAME" /> ang patakaran sa Platform.</translation>
 <translation id="5365476955714838841">Mga command-line parameter para sa alternatibong browser.</translation>
 <translation id="5365946944967967336">Ipakita ang button na Home sa toolbar</translation>
 <translation id="5366745336748853475">Nagbibigay-daan sa iyong tumukoy ng listahan ng mga pattern ng url na tumutukoy sa mga site kung saan awtomatikong pinipili ang isang certificate ng client sa screen ng pag-sign in sa frame na nagho-host sa flow ng SAML, kung humihiling ng certificate ang site. Ang isang halimbawa ng paggamit ay ang pag-configure ng certificate para sa buong device na ipapakita sa SAML IdP.
@@ -1928,6 +2236,14 @@
 <translation id="5405289061476885481">Kino-configure kung aling mga layout ng keyboard ang papayagan sa screen sa pag-sign in ng <ph name="PRODUCT_OS_NAME" />.
 
       Kung itinakda ang patakarang ito sa isang listahan ng mga identifier ng paraan ng pag-input, magiging available ang nasabing paraan ng pag-input sa screen sa pag-sign in. Pauna nang pipiliin ang unang paraan ng pag-input. Habang naka-focus ang isang user pod sa screen sa pag-sign in, magiging available ang huling paraan ng pag-input na ginamit ng user kasama ang mga paraan ng pag-input na ibinigay ng patakarang ito. Kung hindi naitakda ang patakarang ito, ang mga paraan ng pag-input sa screen sa pag-sign in na ito ay kukunin mula sa locale kung saan ipinapakita ang screen sa pag-sign in. Babalewalain ang mga value na hindi wastong identifier ng paraan ng pag-input.</translation>
+<translation id="5412057811596122582">Kung naka-enable o hindi naka-configure (default), mapa-prompt ang user para sa
+      access sa pag-capture ng audio maliban sa mga URL na naka-configure sa
+      listahan ng AudioCaptureAllowedUrls na mabibigyan ng access nang hindi nagpa-prompt.
+
+      Kapag naka-disable ang patakarang ito, hindi kailanman mapa-prompt ang user at magiging available lang ang pag-capture ng audio
+      sa mga URL na naka-configure sa AudioCaptureAllowedUrls.
+
+      Naaapektuhan ng patakarang ito ang lahat ng uri ng audio input at hindi lang ang built-in na mikropono.</translation>
 <translation id="5422643441807528365">Key ng lisensya <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423001109873148185">Pinipilit ng patakarang ito ang mga search engine na ma-import mula sa kasalukuyang default na browser kung pinagana. Kung pinagana, maaapektuhan rin ng patakarang ito ang dialog ng pag-import.
 
@@ -1936,6 +2252,11 @@
       Kung hindi ito nakatakda, maaaring tanungin sa user kung mag-i-import o hindi, o maaaring awtomatikong mangyari ang pag-import.</translation>
 <translation id="5423197884968724595">Pangalan ng paghihigpit sa WebView ng Android:</translation>
 <translation id="5424147596523390018">Payagan ang lahat ng color mode</translation>
+<translation id="5437733496511628148">Kapag naka-enable ang setting na ito, mapipigilan ang cookies na itakda ng mga element ng web page na hindi mula sa domain na nasa address bar ng browser.
+
+      Kapag naka-disable ang setting na ito, mabibigyang-daan ang cookies na itakda ng mga element ng web page na hindi mula sa domain na nasa address bar ng browser at mapipigilan ang mga user na baguhin ang setting na ito.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, mae-enable ang cookies ng third party ngunit mababago iyon ng user.</translation>
 <translation id="5442026853063570579">Kinokontrol din ng patakarang ito ang access sa Mga Opsyon ng Developer sa Android. Kung itatakda mo ang patakarang ito sa 'DeveloperToolsDisallowed' (value na 2), hindi maa-access ng mga user ang Mga Opsyon ng Developer. Kung itatakda mo ang patakarang ito sa iba pang value o hahayaan mo itong hindi nakatakda, maa-access ng mga user ang Mga Opsyon ng Developer sa pamamagitan ng pag-tap nang pitong beses sa numero ng build na nasa app ng mga setting ng Android.</translation>
 <translation id="544342220587994947">Nagbibigay-daan sa iyong tumukoy ng listahan ng mga pattern ng url na tumutukoy ng mga site kung saan awtomatiko dapat na pumili ng mga certificate ng client ang <ph name="PRODUCT_NAME" />, kung hihiling ng certificate ang site.
 
@@ -1963,6 +2284,19 @@
       Kung nagsasalungat ang mga panuntunan, gagamitin ng <ph name="PRODUCT_NAME" /> ang pinakapartikular na panuntunan.</translation>
 <translation id="5475361623548884387">Paganahin ang pag-print</translation>
 <translation id="547601067149622666">Huwag payagan ang mga ad sa mga site na may mga nakakasagabal na ad</translation>
+<translation id="5483777239978559943">Hindi na ginagamit ang patakarang ito. Pakigamit ang <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para kontrolin ang avalability ng Flash plugin at <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para kontrolin kung dapat bang gamitin ang pinagsamang PDF viewer para sa pagbubukas ng mga PDF file.
+
+      Nagsasaad ng listahan ng mga plugin na puwedeng i-enable o i-disable ng user sa <ph name="PRODUCT_NAME" />.
+
+      Puwedeng gamitin ang mga wildcard na character na '*' at '?' para tumugma sa pagkakasunod-sunod ng mga arbitrary na character. Tumutugma ang '*' sa isang arbitrary na bilang ng mga character habang tumutukoy naman ang '?' sa isang opsyonal na iisang character, ibig sabihin, tumutugma ito sa zero o isang character. Ang escape na character ay '\', kaya para tumugma sa mga aktwal na '*', '?', o '\' na character, puwede kang maglagay ng '\' bago ang mga ito.
+
+      Kung ie-enable mo ang setting na ito, puwedeng gamitin ang nakasaad na listahan ng mga plugin sa <ph name="PRODUCT_NAME" />. Puwedeng i-enable o i-disable ng mga user ang mga ito sa 'about:plugins', kahit na tumutugma rin ang plugin sa isang pattern sa DisabledPlugins. Puwede ring i-enable at i-disable ng mga user ang mga plugin na hindi tumutugma sa anumang pattern sa DisabledPlugins, DisabledPluginsExceptions, at EnabledPlugins.
+
+      Naglalayon ang patakarang itong pahintulutan ang mahigpit na pag-blacklist sa plugin kung saan naglalaman ang listahang 'DisabledPlugins' ng mga may wildcard na entry tulad ng i-disable ang lahat ng plugin na '*' o i-disable ang lahat ng Java plugin na '*Java*' ngunit gustong i-enable ng administrator ang ilang partikular na bersyon tulad ng 'IcedTea Java 2.3.' Puwedeng isaad sa patakarang ito ang partikular na bersyong ito.
+
+      Tandaang kailangang ibukod ang pangalan ng plugin at ang pangalan ng grupo ng plugin. Ipapakita sa hiwalay na seksyon ang bawat grupo ng plugin sa about:plugins; puwedeng magkaroon ng isa o higit pang plugin sa bawat seksyon. Halimbawa, kabilang ang plugin na "Shockwave Flash" sa grupong "Adobe Flash Player," at dapat ay may katugma ang parehong pangalan sa listahan ng mga pagbubukod kung ibubukod ang plugin na iyon sa blacklist.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, mala-lock at madi-disable ang anumang plugin na tumutugma sa mga pattern sa 'DisabledPlugins' at hindi mae-enable ng user ang mga ito.</translation>
 <translation id="5499375345075963939">Sa retail mode lang aktibo ang patakarang ito.
 
       Kapag itinakda ang halaga ng patakarang ito at hindi ito 0, awtomatikong mala-log out ang kasalukuyang naka-log in na user ng demo kapag 
@@ -1999,6 +2333,13 @@
       Kung hindi ito tinukoy, hindi nito babaguhin ang URL ng seed ng Mga Variation.</translation>
 <translation id="5561811616825571914">Awtomatikong pumipili ng mga certificate ng client para sa mga site na ito sa screen ng pag-sign in</translation>
 <translation id="5566210228171064229">Payagan ang pag-print nang mayroon at walang PIN</translation>
+<translation id="556865034069957245">Kinokontrol ng patakarang ito ang availability ng fullscreen mode kung saan nakatago ang lahat ng <ph name="PRODUCT_NAME" /> UI at web content lang ang visible.
+
+      Kung itatakda ang patakarang ito sa true o kung hindi ito iko-configure, puwedeng pumasok sa fullscreen mode ang user, mga app, at mga extension na may mga naaangkop na pahintulot.
+
+      Kung itatakda ang patakarang ito sa false, hindi makakapasok sa fullscreen mode ang alinman sa user o anumang app o extension.
+
+      Sa lahat ng platform maliban sa <ph name="PRODUCT_OS_NAME" />, hindi available ang kiosk mode kapag naka-disable ang fullscreen mode.</translation>
 <translation id="556941986578702361">Kontrolin ang awtomatikong pagtatago ng shelf ng <ph name="PRODUCT_OS_NAME" />.
 
       Kung nakatakda ang patakarang ito sa 'AlwaysAutoHideShelf', palaging awtomatikong itatago ang shelf.
@@ -2016,6 +2357,11 @@
 <translation id="5581292529942108810">I-configure ang mga patakarang nauugnay sa Chrome Reporting Extension.
 
       May bisa lang ang patakarang ito kapag naka-enable ang <ph name="CHROME_REPORTING_EXTENSION_NAME" />, at naka-enroll sa <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" /> ang machine.</translation>
+<translation id="5583806683960333345">Kung ie-enable ang setting na ito, papayagan ang mga user na gamitin ang Instant na Pag-tether, na nagbibigay-daan sa kanilang Google phone na ibahagi ang mobile data nito sa kanilang device.
+
+      Kung idi-disable ang setting na ito, hindi papayagan ang mga user na gamitin ang Instant na Pag-tether.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, hindi papayagan ang default para sa mga user na pinapamahalaan ng enterprise at papayagan ito para sa mga hindi pinapamahalaang user.</translation>
 <translation id="5584132346604748282">Kontrolin ang mga serbisyo ng lokasyon ng Google sa Android</translation>
 <translation id="5586942249556966598">Walang gawin</translation>
 <translation id="5590494712401018042">Tumutukoy sa porsyento ng pag-scale ng pagkaantala ng pag-dim ng screen kapag naka-presentation mode ang device.
@@ -2041,6 +2387,19 @@
       TANDAAN: Nalalapat lang ang patakarang ito sa Chrome sa Android na tumatakbo sa mga device lang na mayroong mahigit sa 1GB na RAM. Para mailapat ang patakaran sa mga hindi Android na platform, gamitin ang IsolateOrigins.
       </translation>
 <translation id="5599461642204007579">Mga setting ng pamamahala ng <ph name="MS_AD_NAME" /></translation>
+<translation id="5610104657949692379">Kapag nakatakda ang patakarang ito, tinutukoy nito ang isinasagawang pagkilos ng <ph name="PRODUCT_OS_NAME" /> kapag nananatiling idle ang user sa loob ng tagal ng panahong ibinibigay ng delay bago maging idle, na puwedeng hiwalay na i-configure.
+
+          Kapag hindi nakatakda ang patakarang ito, isasagawa ang default na pagkilos, ang pagsususpinde.
+
+          Kung ang pagkilos ay pagsususpinde, maaaring hiwalay na i-configure ang <ph name="PRODUCT_OS_NAME" /> para i-lock o huwag i-lock ang screen bago ang pagsususpinde.</translation>
+<translation id="5618398258385745432">Ginamit ang nauugnay na setting bago ipinakilala ang muling pag-authenticate sa pagtingin ng mga password. Simula noon, wala nang bisa ang setting at ang patakarang ito sa gawi ng Chrome. Pareho na ang kasalukuyang gawi ng Chrome na para bang itinakda ang patakaran para i-disable ang pagpapakita ng mga password sa malinaw na text sa page ng mga setting ng password manager. Ibig sabihin, placeholder lang ang nilalaman ng page ng mga setting, at ipapakita lang ng Chrome ang password kapag na-click ng user ang "Ipakita" (at muling pag-authenticate, kung naaangkop). Kasunod nito ang orihinal na paglalarawan sa patakaran sa ibaba.
+
+          Kinokontrol kung puwedeng magpakita ang user ng mga password sa malinaw na text sa password manager.
+
+          Kung idi-disable mo ang setting na ito, hindi papayagan ng password manager ang pagpapakita ng mga naka-store na password sa malinaw na text sa window ng password manager.
+
+          Kung ie-enable o hindi mo itatakda ang patakarang ito, puwedeng tingnan ng mga user ang kanilang mga password sa malinaw na text sa password manager.</translation>
+<translation id="5620392548325769024">I-enable ang pagpapakita ng welcome page sa unang paglulunsad ng browser kasunod ng pag-upgrade ng OS</translation>
 <translation id="5630352020869108293">Ipanumbalik ang huling session</translation>
 <translation id="5645779841392247734">Payagan ang cookies sa mga site na ito</translation>
 <translation id="5689430183304951538">Default na laki ng page ng pag-print</translation>
@@ -2064,6 +2423,7 @@
       Kung itatakda ang patakarang ito sa true o hahayaang hindi nakatakda, gagana ang pinapamahalaang session ng bisita sa "Pinapamahalaang Session" na nag-aalis ng maraming paghihigpit na ipinapatupad para sa regular na "Mga Pampublikong Session."
 
       Kung itatakda ang patakarang ito, hindi ito mababago o mao-override ng user.</translation>
+<translation id="5708969689202733975">Kino-configure ang mga pinapayagang mode ng mabilisang pag-unlock</translation>
 <translation id="572155275267014074">Mga setting ng Android</translation>
 <translation id="5722934961007828462">Kapag naka-enable ang setting na ito, palaging magsasagawa ang <ph name="PRODUCT_NAME" /> ng pagsusuri sa pagbawi para sa mga server certificate na matagumpay na nagpapatotoo at nilagdaan ng mga lokal na naka-install na CA certificate.
 
@@ -2072,6 +2432,11 @@
       Kung hindi nakatakda ang patakarang ito, o kung nakatakda sa false, gagamitin ng <ph name="PRODUCT_NAME" /> ang umiiral nang mga setting ng online na pagsusuri sa pagbawi.</translation>
 <translation id="5728154254076636808">I-enable ang paggawa ng mga roaming na kopya para sa data ng profile sa <ph name="PRODUCT_NAME" /></translation>
 <translation id="5732972008943405952">I-import ang data ng form ng autofill mula sa default na browser sa unang pagtakbo</translation>
+<translation id="5741810844420698449">Kapag nakatakda ang patakarang ito, isinasaad nito ang pagkilos na isasagawa ng <ph name="PRODUCT_OS_NAME" /> kapag isinara ng user ang takip ng device.
+
+          Kapag hindi nakatakda ang patakarang ito, isasagawa ang default na pagkilos, ang pagsususpinde.
+
+          Kung ang pagkilos ay pagsususpinde, maaaring hiwalay na i-configure ang <ph name="PRODUCT_OS_NAME" /> para i-lock o huwag i-lock ang screen bago ang pagsususpinde.</translation>
 <translation id="5765780083710877561">Paglalarawan:</translation>
 <translation id="5770738360657678870">Dev channel (maaaring hindi stable)</translation>
 <translation id="5774856474228476867">URL sa paghahanap ng default na provider ng paghahanap</translation>
@@ -2266,6 +2631,7 @@
 <translation id="6111936128861357925">Pahintulutan ang Dinosaur Easter Egg Game</translation>
 <translation id="6114416803310251055">hindi na ginagamit</translation>
 <translation id="6133088669883929098">Payagan ang lahat ng site na gumamit ng pagbuo ng key</translation>
+<translation id="6141402445226505817">Palaging gumamit ng hindi detalyadong pag-detect ng timezone</translation>
 <translation id="6145799962557135888">Binibigyang-daan kang magtakda ng isang listahan ng mga pattern ng url na tumutukoy ng mga site na pinapayagang magpatakbo ng JavaScript.
 
           Kung hinayaang hindi nakatakda ang patakarang ito gagamitin ang global na default na halaga para sa lahat ng site mula sa patakarang 'DefaultJavaScriptSetting' kung nakatakda ito, o kung hindi man ay sa personal na configuration ng user.</translation>
@@ -2305,6 +2671,15 @@
 <translation id="6155936611791017817">Itakda ang default na katayuan ng malaking cursor sa screen ng pag-login</translation>
 <translation id="6157537876488211233">Listahang pinaghihiwalay ng kuwit ng mga panuntunan sa pag-bypass ng proxy</translation>
 <translation id="6158324314836466367">Pangalan ng web store na enterprise (hindi na ginagamit)</translation>
+<translation id="6158817306788002298">Puwede kang magsaad ng URL sa proxy .pac file dito.
+
+          Magkakaroon lang ng bisa ang patakarang ito kung pinili mo ang mga manual na setting ng proxy sa 'Piliin kung paano magsaad ng mga setting ng proxy server' at kung hindi naisaad ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Dapat mong hayaang hindi nakatakda ang patakarang ito kung pumili ka ng anupamang mode para sa pagtatakda ng mga patakaran sa proxy.
+
+          Para sa mga detalyadong halimbawa, bisitahin ang:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="6178075938488052838">Kinokontrol ng patakarang ito kung sino ang puwedeng magsimula ng session sa <ph name="PRODUCT_OS_NAME" />. Hindi nito pinipigilan ang mga user na mag-sign in sa mga karagdagang Google account na nasa Android. Kung gusto mo itong pigilan, i-configure ang patakarang <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> na partikular sa Android bilang bahagi ng <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="6181608880636987460">Nagbibigay-daan sa iyo na magtakda ng isang listahan ng mga pattern ng url na tumutukoy sa mga site na hindi pinapahintulutang magpatakbo sa plugin na <ph name="FLASH_PLUGIN_NAME" />.
 
           Kung hahayaang hindi nakatakda ang patakarang ito, ang pangkalahatang default na value ang gagamitin para sa lahat ng site na magmumula sa patakarang 'DefaultPluginsSetting' kung nakatakda ito, o kung hindi, sa personal na configuration ng user.</translation>
@@ -2343,6 +2718,17 @@
 <translation id="6281043242780654992">Kino-configure ang mga patakaran para sa Native na Pagmemensahe. Hindi papayagan ang mga naka-blacklist na host ng native na pagmemensahe maliban kung naka-whitelist ang mga ito.</translation>
 <translation id="6282799760374509080">Payagan o tanggihan ang pagkuha ng audio</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">Sapilitang dini-disable ang mga wika ng spellcheck. Babalewalain ang mga hindi kilalang wika sa listahang iyon.
+
+      Kung ie-enable mo ang patakarang ito, madi-disable ang spellcheck para sa mga nakasaad na wika. Puwede pa ring i-enable o i-disable ng user ang spellcheck para sa mga wikang wala sa listahan.
+
+      Kung hindi mo itatakda ang patakarang ito, o kung idi-disable mo ito, walang magiging pagbabago sa mga kagustuhan sa spellcheck ng user.
+
+      Kung itatakda ang patakarang SpellcheckEnabled sa naka-disable, hindi magkakaroon ng bisa ang patakarang ito.
+
+      Kung may wikang kasama sa patakarang ito at sa patakarang SpellcheckLanguage, bibigyang priyoridad ang patakarang SpellcheckLanguage at mae-enable ang wika ng spellcheck.
+
+      Ang mga kasalukuyang sinusuportahang wika ay: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">I-enable ang pag-autocomplete ng domain name sa pag-sign in ng user</translation>
 <translation id="6315673513957120120">Nagpapakita ang Chrome ng page ng babala kapag nag-navigate ang mga user sa mga site na may mga SSL error. Bilang default o kapag itinakda ang patakarang ito sa true, maaaring mag-click ang mga user sa mga page ng babala na ito.
       Kapag itinakda ang patakarang ito sa false, hindi makakapag-click ang mga user sa anumang page ng babala.</translation>
@@ -2392,6 +2778,8 @@
 <translation id="6449476513004303784">Huwag payagan ang mga user na pamahalaan ang mga certificate</translation>
 <translation id="645425387487868471">I-enable ang pwersahang pag-sign in para sa <ph name="PRODUCT_NAME" /></translation>
 <translation id="6464074037294098618">I-enable ang AutoFill para sa mga address</translation>
+<translation id="6467613372414922590">Nagbibigay-daan sa mga host ng Native na Pagmemensahe sa antas ng user (na-install nang walang pahintulot ng admin)</translation>
+<translation id="6468980648680553776">Hindi na ginagamit ang patakarang ito. Pakigamit na lang ang RemoteAccessHostClientDomainList.</translation>
 <translation id="6473623140202114570">I-configure ang listahan ng mga domain kung saan hindi magti-trigger ng mga babala ang Ligtas na Pag-browse.</translation>
 <translation id="6488627892044759800">Nagko-configure sa uri ng default na home page sa <ph name="PRODUCT_NAME" /> at pumipigil na mabago ng mga user ang mga kagustuhan sa home page. Ang home page ay maaaring itakda sa URL na tutukuyin mo o sa Page ng Bagong Tab.
 
@@ -2405,6 +2793,13 @@
 
           Available lang ang patakarang ito sa mga instance ng Windows na kasama sa domain ng<ph name="MS_AD_NAME" />. O kaya, sa mga instance ng Windows 10 Pro o Enterprise na naka-enroll para sa pamamahala sa device.</translation>
 <translation id="6491139795995924304">Payagan ang bluetooth sa device</translation>
+<translation id="6491872498385040936">Hindi na ginagamit ang patakarang ito. Pag-isipang gamitin ang <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, na io-override ang patakarang ito at magbibigay-daan sa mas mahusay na tuning.
+
+      Ipinipilit ang Katamtamang Restricted Mode sa YouTube at pinipigilan ang mga user na baguhin ang setting na ito.
+
+      Kung ie-enable ang setting na ito, palaging hindi bababa sa Katamtaman ang ipapatupad na Restricted Mode sa YouTube.
+
+      Kung idi-disable ang setting na ito o kung wala kang itatakdang value, hindi ipapatupad ng <ph name="PRODUCT_NAME" /> ang Restricted Mode sa YouTube. Gayunpaman, puwede pa ring ipatupad ng mga external na patakaran, gaya ng mga patakaran ng YouTube, ang Restricted Mode.</translation>
 <translation id="6495328383950074966">Nagko-configure sa listahan ng mga domain na pagkakatiwalaan ng Ligtas na Pag-browse. Ibig sabihin:
       Hindi magsusuri ang Ligtas na Pag-browse para sa mga mapanganib na resource (hal. phishing, malware, o hindi gustong software) kung tumutugma sa mga domain na ito ang mga URL ng mga ito.
       Hindi susuriin ng serbisyo ng proteksyon sa pag-download ng Ligtas na Pag-browse ang mga download na hino-host sa mga domain na ito.
@@ -2691,6 +3086,7 @@
       Maiuugnay ng Google ang mga log na ito, sa pamamagitan ng session ID, sa iba pang log na nakolekta ng mismong serbisyo ng Google; layunin nitong mas padaliin ang pag-debug.
       </translation>
 <translation id="706669471845501145">Payagan ang mga site upang magpakita ng mga notification sa desktop</translation>
+<translation id="7070525176564511548">Kinakailangan ang paglalagay ng password linggo-linggo (168 oras)</translation>
 <translation id="7072208053150563108">Rate ng pagpapalit ng password ng machine</translation>
 <translation id="7079519252486108041">I-block ang mga popup sa mga site na ito</translation>
 <translation id="7085803328069945025">Nagbibigay-daan sa iyo na magtakda ng listahan ng mga pattern ng url na tumutukoy sa mga site na pinapayagang magtanong sa user na bigyan siya ng access sa isang USB device.
@@ -2723,6 +3119,9 @@
       Kung nakatakda sa to False ang patakarang ito, idi-disable ang background mode at hindi makokontrol ng user sa mga setting ng browser.
 
       Kung hindi itinakda ang patakarang ito, paunang idi-disable ang background mode at maaaring makontrol ng user sa mga setting ng browser.</translation>
+<translation id="7123160381479171745">Tinutukoy ang listahan ng mga user na pinapayagang mag-log in sa device. Ang mga entry ay nasa anyo ng <ph name="USER_WHITELIST_ENTRY_FORMAT" />, gaya ng <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Para payagan ang mga arbitrary na user sa isang domain, gumamit ng mga entry na may anyong <ph name="USER_WHITELIST_ENTRY_WILDCARD" />.
+
+      Kung hindi naka-configure ang patakarang ito, walang paghihigpit kung saan pinapayagang mag-sign in ang mga user. Tandaang kapag gumawa ng mga bagong user, kinakailangan pa ring wastong naka-configure ang patakarang <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation>
 <translation id="7123266440503901785">Binibigyang-daan ng <ph name="PRODUCT_NAME" /> ang secure na pag-update at pag-install ng mga extension. Gayunpaman, ang content ng ilang extension na naka-host sa labas ng Chrome Web Store ay maaari lang protektahan ng mga hindi secure na signing o hashing algorithm gaya ng SHA1. Kapag naka-disable ang patakarang ito, ang bagong pag-install at mga update sa ganoong mga extension ay hindi papayagan ng Chrome (hanggang sa muling i-build ng mga developer ng extension ang extension gamit ang mas mahuhusay na algorithm). Kapag naka-enable ang patakarang ito, papayagan ang pag-install at mga update para sa ganoong mga extension.
 
           Ito ay babalik sa default na pagkilos na naka-enable kapag hindi nakatakda.
@@ -2766,8 +3165,15 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="718956142899066210">Mga uri ng koneksyon na pinapayagan para sa mga update</translation>
 <translation id="7194407337890404814">Pangalan ng default na provider ng paghahanap</translation>
+<translation id="7199304109870655950">Kino-configure ang mga opsyon sa remote na access sa host ng Remote na Desktop ng Chrome.
+
+      Ang host ng Remote na Desktop ng Chrome ay isang native na serbisyong tumatakbo sa target na machine kung saan makakakonekta ang isang user gamit ang application na Remote na Desktop ng Chrome.  Naka-package ang native na serbisyo at isinasagawa ito nang hiwalay sa <ph name="PRODUCT_NAME" /> browser.
+
+      Babalewalain ang mga patakarang ito maliban na lang kung naka-install ang
+      host ng Remote na Desktop ng Chrome.</translation>
 <translation id="7202925763179776247">Payagan ang mga paghihigpit sa pag-download</translation>
 <translation id="7207095846245296855">Puwersahin ang Google SafeSearch</translation>
+<translation id="7211368186050418507">Huwag awtomatikong mag-detect ng timezone kahit kailan</translation>
 <translation id="7216442368414164495">Binibigyang-daan ang mga user na mag-opt in sa pinalawak na pag-uulat sa Ligtas na Pagba-browse</translation>
 <translation id="7221822638060296742">Nagbibigay-daan sa iyo na itakda kung pinapayagan ang mga website na awtomatikong patakbuhin ang <ph name="FLASH_PLUGIN_NAME" /> plugin. Ang awtomatikong pagpapatakbo ng <ph name="FLASH_PLUGIN_NAME" /> plugin ay maaaring payagan para sa lahat ng website o tanggihan para sa lahat ng website.
 
@@ -2832,6 +3238,11 @@
 
           Kung naka-disable ang setting na ito, hindi magiging available ang tampok na ito.</translation>
 <translation id="7275334191706090484">Mga Pinamamahalaang Bookmark</translation>
+<translation id="7291084543582732020">Kung ie-enable mo ang setting na ito, papayagan ang mga user na gamitin ang Smart Lock kung matutugunan ang mga kinakailangan para sa feature.
+
+      Kung idi-disable mo ang setting na ito, hindi papayagan ang mga user na gamitin ang Smart Lock.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, hindi papayagan ang default para sa mga user na pinapamahalaan ng enterprise at papayagan ito para sa mga hindi pinapamahalaang user.</translation>
 <translation id="7295019613773647480">I-enable ang mga pinangangasiwaang user</translation>
 <translation id="7301543427086558500">Tinutukoy ang isang listahan ng mga kahaliling URL na magagamit upang kumuha ng mga termino para sa paghahanap sa search engine. Nilalaman dapat ng mga URL ang string na <ph name="SEARCH_TERM_MARKER" />, na gagamitin upang kunin ang mga termino para sa paghahanap.
 
@@ -2889,6 +3300,9 @@
 
       May bisa lang ang patakarang ito kapag naka-enable ang <ph name="CHROME_REPORTING_EXTENSION_NAME" />, at naka-enroll sa <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" /> ang machine.</translation>
 <translation id="737655323154569539">Pinaghihigpitan ang laki ng page ng pag-print. Itinuturing na walang paghihigpit ang hindi nakatakdang patakaran at empty set.</translation>
+<translation id="7389872682701720082">Kung ie-enable mo ang setting na ito, palaging tatakbo ang mga plugin na hindi outdated.
+
+      Kung idi-disable o hindi itatakda ang setting na ito, hihingi ng pahintulot sa mga user para magpatakbo ng mga plugin na nangangailangan ng awtorisasyon. Ito ang mga plugin na puwedeng magkompromiso sa seguridad.</translation>
 <translation id="7417972229667085380">Porsyento ng pag-scale ng idle delay kapag nasa presentation mode (hindi na ginagamit)</translation>
 <translation id="7421483919690710988">Itakda ang laki ng cache ng disk ng media sa bytes</translation>
 <translation id="7424751532654212117">Listahan ng mga pagbubukod sa listahan ng hindi pinaganang mga plugin</translation>
@@ -2896,12 +3310,16 @@
 
       Kungh indi nakatakda ang patakaran, o nakatakda sa false, ie-enable ang <ph name="TLS_FALSE_START" />. Kung nakatakda ito sa true, idi-disable ang <ph name="TLS_FALSE_START" />.</translation>
 <translation id="7433714841194914373">Paganahin ang Instant</translation>
+<translation id="7434202861148928348">Kino-configure ang mga kinakailangang domain name para sa mga client na may remote na access</translation>
 <translation id="7443616896860707393">Mga prompt ng Cross-origin HTTP Basic Auth</translation>
 <translation id="7458437477941640506">Huwag mag-roll back sa target na bersyon kung mas bago ang bersyon ng OS kaysa sa target. Naka-disable din ang mga update.</translation>
 <translation id="7464991223784276288">Limitahan ang cookies sa pagtutugma ng mga URL sa kasalukuyang session</translation>
 <translation id="7469554574977894907">Paganahin ang mga suhestiyon sa paghahanap</translation>
 <translation id="7474249562477552702">Kung pinapayagan ang mga SHA-1 signed certificate na ibinigay ng mga lokal na trust anchor</translation>
 <translation id="7485481791539008776">Mga panuntunan sa pagpili ng default na printer</translation>
+<translation id="7485730741952775732">Kung itatakda ang patakarang ito, gagamitin ng host na may remote na access ang URL na ito para i-validate ang mga token ng pag-authenticate mula sa mga client na may remote na access, nang sa gayon ay tumanggap ng mga koneksyon. Dapat gamitin kasabay ng RemoteAccessHostTokenUrl.
+
+          Kasalukuyang naka-disable ang feature na ito sa server-side.</translation>
 <translation id="749556411189861380">Iulat ang bersyon ng OS at firmware ng mga naka-enroll na device.
 
       Kung hindi nakatakda ang setting na ito o nakatakda ang ito sa True, iuulat paminsan-minsan ng mga naka-enroll na device ang bersyon ng OS at firmware. Kung nakatakda ang setting na ito sa False, hindi iuulat ang impormasyon ng bersyon.</translation>
@@ -3001,6 +3419,8 @@
 
       Tingnan sa https://developers.google.com/safe-browsing para sa higit pang impormasyon tungkol sa Ligtas na Pag-browse.</translation>
 <translation id="7643883929273267746">Pinaghihigpitan ang mga account na nakikita sa <ph name="PRODUCT_NAME" /></translation>
+<translation id="7644825865811580663">Kung itatakda ang patakarang ito sa true, ima-maximize ng <ph name="PRODUCT_NAME" /> nang walang kundisyon ang unang window na ipapakita sa unang pagpapatakbo.
+      Kung itatakda ang patakarang ito sa false o kung hindi ito iko-configure, ang desisyon kung ima-maximize ang unang window na ipapakita ay magiging batay sa laki ng screen.</translation>
 <translation id="7651739109954974365">Tinutukoy kung dapat paganahin ang roaming ng data para sa device. Kung nakatakda sa true, pinapayagan ang roaming ng data. Kung iniwang hindi naka-configure o nakatakda sa false, hindi magiging available ang roaming ng data.</translation>
 <translation id="7657261947024629645">I-optimize para sa performance.</translation>
 <translation id="7673194325208122247">Yugto ng panahon (millisecond)</translation>
@@ -3014,6 +3434,9 @@
 
           Kung itatakda ang patakarang "RestoreOnStartup" para mag-restore ng mga URL mula sa mga nakaraang session, hindi susundin ang patakarang ito at permanenteng maso-store ang cookies para sa mga site na iyon.</translation>
 <translation id="7683777542468165012">Dynamic na Patakaran sa Pag-refresh</translation>
+<translation id="7687943045976362719">Kung itatakda ang patakarang ito, papangasiwaan ng <ph name="PRODUCT_FRAME_NAME" /> ang mga nakasaad na uri ng content.
+
+          Kung hindi itatakda ang patakarang ito, gagamitin ang default na renderer para sa lahat ng site. (Puwedeng gamitin ang patakarang <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> para i-configure ang default na renderer.)</translation>
 <translation id="7694807474048279351">Mag-schedule ng awtomatikong reboot pagkatapos mailapat ang isang update sa <ph name="PRODUCT_OS_NAME" />.
 
       Kapag nakatakda sa true ang patakarang ito, ise-schedule ang isang awtomatikong reboot kapag nailapat ang isang update sa <ph name="PRODUCT_OS_NAME" /> uat kinakailangan ang isang reboot upang kumpletuhin ang proseso ng pag-update. Naka-schedule kaagad ang reboot ngunit maaaring maantala sa device nang hanggang sa 24 oras kung kasalukuyang ginagamit ng isang user ang device.
@@ -3054,6 +3477,7 @@
 <translation id="7763614521440615342">Ipakita ang mga suhestyon sa content sa page ng Bagong Tab</translation>
 <translation id="7765879851993224640">Payagang gamitin ang Pag-sign in Gamit ang Smart Lock.</translation>
 <translation id="7774768074957326919">Gumamit ng mga setting ng proxy ng system</translation>
+<translation id="7777535871204167559">Itinuturing ang mga external na storage device bilang read-only</translation>
 <translation id="7781069478569868053">Page ng Bagong Tab</translation>
 <translation id="7788511847830146438">Bawat Profile</translation>
 <translation id="780603170519840350">Dini-disable ang pagpapatupad ng mga kinakailangan sa Transparency ng Certificate para sa isang listahan ng mga hash ng subjectPublicKeyInfo.
@@ -3083,6 +3507,11 @@
       Ang pag-iiwan sa patakarang ito na hindi nakatakda ay magdudulot na gagamitin ng <ph name="PRODUCT_NAME" /> ang default na value na 5000 millisecond.</translation>
 <translation id="7841880500990419427">Minimum na bersyon ng TLB na babalikan</translation>
 <translation id="7842869978353666042">I-configure ang mga pagpipilian sa Google Drive</translation>
+<translation id="7858404742201086014">Kung ie-enable mo ang setting na ito, gagamitin ang mga outdated na plugin bilang mga normal na plugin.
+
+      Kung idi-disable mo ang setting na ito, hindi gagamitin ang mga outdated na plugin at hindi hihingi ng pahintulot sa mga user para patakbuhin ang mga ito.
+
+      Kung hindi itatakda ang setting na ito, hihingi ng pahintulot sa mga user para patakbuhin ang mga outdated na plugin.</translation>
 <translation id="787125417158068494">Kung nakatakda sa SyncDisabled o hindi naka-configure, hindi available ang mga certificate ng <ph name="PRODUCT_OS_NAME" /> para sa mga ARC app.
 
       Kung nakatakda sa CopyCaCerts, available para sa mga ARC app ang lahat ng CA certificate na may <ph name="WEB_TRUSTED_BIT" /> na na-install ng ONC.</translation>
@@ -3103,7 +3532,17 @@
 <translation id="793473937901685727">Itakda ang availability ng certificate para sa mga ARC app</translation>
 <translation id="7937766917976512374">Payagan o tanggihan ang pagkuha ng video</translation>
 <translation id="7941975817681987555">Huwag hulaan ang mga pagkilos sa network sa anumang koneksyon sa network</translation>
+<translation id="7952958573604504839">Hindi na ginagamit ang patakarang ito sa M48 at pinalitan na ng <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" />, at inalis sa M54.
+
+      Ine-enable ang paghula ng network sa <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na palitan ang setting na ito.
+
+      Hindi lang pag-prefetch ng DNS ang kinokontrol nito ngunit pati rin paunang pagkonekta at pag-render ng TCP at SSL ng mga web page. Tinutukoy ng pangalan ng patakaran ang pag-prefetch ng DNS para sa mga dati nang dahilan.
+
+      Kung ie-enable o idi-disable mo ang setting na ito, hindi mababago o mao-override ng mga user ang setting na ito sa <ph name="PRODUCT_NAME" />.
+
+      Kung hahayaang hindi nakatakda ang patakarang ito, mae-enable ito ngunit magagawa ng user na baguhin ito.</translation>
 <translation id="7953256619080733119">Mga pinapamahalaang host ng manu-manong exception ng user</translation>
+<translation id="7958537754689366707">Kinakailangan ang paglalagay ng password kada labindalawang oras</translation>
 <translation id="7961779417826583251">I-disable ang pagpapatupad ng Transparency ng Certificate para sa isang listahan ng Mga Legacy Certificate Authority</translation>
 <translation id="7974114691960514888">Hindi na sinusuportahan ang patakarang ito.
           Pinapagana ang paggamit ng STUN at mga relay server kapag kumokonekta sa isang malayuang client.
@@ -3114,6 +3553,9 @@
 <translation id="7976157349247117979">Pangalan ng patutunguhan ng <ph name="PRODUCT_NAME" /></translation>
 <translation id="7980227303582973781">Walang espesyal na paghihigpit</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
+<translation id="798856998567564266">Kung ie-enable mo ang setting na ito, puwedeng magdagdag, mag-alis, o magbago ng mga bookmark. Ito rin ang default kapag hindi nakatakda ang patakarang ito.
+
+      Kung idi-disable mo ang setting na ito, hindi puwedeng magdagdag, mag-alis, o magbago ng mga bookmark. Available pa rin ang mga kasalukuyang bookmark.</translation>
 <translation id="7992136759457836904">Magbibigay-daan sa iyong kontrolin kung papayagan ang pagtakbo ng mga virtual machine sa Chrome OS.
 
       Kung itatakda ang patakaran sa True, papayagan ang device na magpatakbo ng mga virtual machine.
@@ -3140,6 +3582,20 @@
 <translation id="8050080920415773384">Native na Pag-print</translation>
 <translation id="8053580360728293758">Ino-override ang default na printing color mode. Kung hindi available ang mode, binabalewala ang patakarang ito.</translation>
 <translation id="8059164285174960932">URL kung saan dapat makuha ng mga client ng malayuang pag-access ang kanilang token sa pagpapatotoo</translation>
+<translation id="806280865577636339">Kung itatakda ang patakarang ito sa true, palaging lalabas ang mga opsyon sa Accessibility sa menu ng system tray.
+
+          Kung itatakda ang patakarang ito sa false, hindi kailanman lalabas ang mga opsyon sa Accessibility sa menu ng system tray.
+
+          Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.
+
+          Kung hahayaang hindi nakatakda ang patakarang ito, hindi lalabas sa menu ng system tray ang mga opsyon sa Accessibility, ngunit mapapalabas ng user ang mga opsyon sa Accessibility gamit ang page ng Mga Setting.</translation>
+<translation id="806523868782250975">Nagko-configure ng listahan ng mga pinapamahalaang bookmark.
+
+      Binubuo ang patakaran ng isang listahan ng mga bookmark kung saan ang bawat bookmark ay isang diksyunaryong naglalaman ng mga key na "<ph name="NAME" />" at "<ph name="URL_LABEL" />" na naglalaman ng pangalan ng bookmark at ng mga target nito. Maaaring i-configure ang isang subfolder sa pamamagitan ng pagtukoy ng bookmark na walang key na "<ph name="URL_LABEL" />" ngunit may karagdagang key na "<ph name="CHILDREN" />" na naglalaman mismo ng listahan ng mga bookmark tulad ng nakasaad sa itaas (ang ilan sa mga ito ay puwedeng mga folder muli). Inaamyendahan ng <ph name="PRODUCT_NAME" /> ang mga hindi kumpletong URL na para bang isinumite ang mga ito sa pamamagitan ng Omnibox, halimbawa ang "<ph name="GOOGLE_COM" />" ay magiging "<ph name="HTTPS_GOOGLE_COM" />".
+
+      Ilalagay ang mga bookmark na ito sa isang folder na hindi mababago ng user (ngunit puwedeng piliin ng user na itago ito mula sa bookmark bar). Bilang default, ang pangalan ng folder ay "Mga pinapamahalaang bookmark" ngunit puwede itong i-customize sa pamamagitan ng pagdaragdag ng diksyunaryong naglalaman ng key na "<ph name="TOPLEVEL_NAME" />" sa listahan ng mga bookmark kung saan ang piniling pangalan ng folder ang value.
+
+      Hindi masi-sync sa user account ang mga pinapamahalaang bookmark at hindi mababago ang mga ito sa pamamagitan ng mga extension.</translation>
 <translation id="8078366200175825572">Binibigyang-daan kang magtakda ng listahan ng mga pattern ng url na tumutukoy ng mga site na hindi pinapayagang magtakda ng cookies.
 
           Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang pangkalahatang default na value para sa lahat ng site mula sa patakarang 'DefaultCookiesSetting' kung nakatakda ito, o kung hindi, sa personal na pag-configure ng user.
@@ -3202,6 +3658,9 @@
 
       Kung nakatakda ang patakaran sa naka-disable o hinayaang hindi nakatakda, hahantong ang mga pag-sign in sa mga regular na profile.</translation>
 <translation id="8158758865057576716">I-enable ang paggawa ng mga roaming na kopya para sa data ng profile sa <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8172676363520748127">Kung naka-enable, hindi makakakuha ng mga screenshot gamit ang mga keyboard shortcut o extension API.
+
+      Kung naka-disable o hindi nakasaad, papayagan ang pagkuha ng mga screenshot.</translation>
 <translation id="817455428376641507">Pinapayagan ang access sa mga nakalistang URL, bilang mga pagbubukod sa blacklist ng URL.
 
       Tingnan ang paglalarawan ng patakaran ng blacklist ng URL para sa format ng mga entry ng listahang ito.
@@ -3215,6 +3674,7 @@
       Kung hindi nakatakda ang patakarang ito, hindi magkakaroon ng mga pagbubukod sa blacklist mula sa patakarang 'URLBlacklist'.</translation>
 <translation id="8176035528522326671">Payagan ang user ng enterprise na maging pangunahing multiprofile na user lang (Default na pag-uugali para sa mga user na pinamamahalaan ng enterprise)</translation>
 <translation id="8214600119442850823">Kino-configure ang password manager.</translation>
+<translation id="8217516105848565518">Hindi na ginagamit ang patakarang ito. Pakigamit na lang ang RemoteAccessHostDomainList.</translation>
 <translation id="8244525275280476362">Maximum na pagkaantala ng pagkuha pagkatapos matukoy na di-wasto ang patakaran</translation>
 <translation id="8256688113167012935">Kinokontrol ang pangalan ng account na <ph name="PRODUCT_OS_NAME" /> na nakikita sa screen sa pag-login para sa katumbas na account na lokal sa device.
 
@@ -3230,6 +3690,9 @@
 Hindi kailangang i-configure nang manual ang mga setting na ito! May mga template na madaling gamitin para sa Windows, Mac, at Linux na mada-download sa <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" />.
 
 Ang inirerekomendang paraan upang mag-configure ng patakaran sa Windows ay sa pamamagitan ng GPO, bagama't sinusuportahan pa rin ang pagbibigay ng patakaran sa pamamagitan ng registry para sa mga instance sa Windows na kasali sa isang domain ng <ph name="MS_AD_NAME" />.</translation>
+<translation id="8259592978873597235">Kung itatakda ang patakarang ito sa True o kung hindi ito itatakda, hindi ituturing na idle ang user habang nagpe-play ang video. Pinipigilan nitong maabot ang delay bago mag-idle, delay bago mag-dim ang screen, delay bago mag-off ang screen, at delay bago mag-lock ang screen at maisagawa ang mga kaukulang pagkilos.
+
+          Kung itatakda ang patakarang ito sa False, hindi mapipigilan ng aktibidad sa video na ituring na idle ang user.</translation>
 <translation id="8264653492961233132">Tumutukoy ng listahan ng mga app at extension na na-install nang hindi napapansin,
           nang walang pakikipag-ugnayan sa user, at hindi maa-uninstall o 
           madi-disable ng user. Ang lahat ng pahintulot
@@ -3282,6 +3745,7 @@
       Dapat na tinukoy sa milliseconds ang halaga ng patakaran.</translation>
 <translation id="8339420913453596618">Naka-disable ang pangalawang factor</translation>
 <translation id="8344454543174932833">Mag-import ng mga bookmark mula sa default na browser sa unang pagtakbo</translation>
+<translation id="8357681633047935212">Nililimitahan ang haba ng session ng user</translation>
 <translation id="8359734107661430198">I-enable ang ExampleDeprecatedFeature API sa 2008/09/02</translation>
 <translation id="8367209241899435947">Ine-enable ang Chrome Cleanup sa Windows</translation>
 <translation id="8369602308428138533">Delay ng pag-off ng screen kapag tumatakbo habang nakasaksak sa kuryente</translation>
@@ -3290,6 +3754,13 @@
 
       Kung itatakda sa false ang patakaran, hindi iuulat ang mga istatistika.
       Kung itatakda sa true o iiwanang hindi nakatakda, iuulat ang mga istatistika.</translation>
+<translation id="8380490658357556620">Ine-enable ang paggamit ng mga relay server kapag sinusubukan ng mga remote na client na magtatag ng koneksyon sa machine na ito.
+
+          Kung ie-enable ang setting na ito, magagamit ng mga remote na client ang mga relay server para makakonekta sa machine na ito kapag hindi available ang direktang koneksyon (hal. dahil sa mga paghihigpit sa firewall).
+
+          Tandaang kung naka-disable ang patakarang <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" />, babalewalain ang patakarang ito.
+
+          Kung hahayaang hindi nakatakda ang patakarang ito, mae-enable ang setting.</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.
@@ -3420,6 +3891,7 @@
           Paghiwalayin ang maraming pangalan ng server gamit ang mga kuwit. Pinapayagan ang mga wildcard (*).
 
           Kung iiwanan mong hindi nakatakda ang patakarang ito, susubukan ng <ph name="PRODUCT_NAME" /> na i-detect kung nasa Intranet ang server, at kung oo ay doon lang ito tutugon sa mga kahilingan ng IWA.  Kung na-detect ang server bilang Internet, babalewalain ng <ph name="PRODUCT_NAME" /> ang mga kahilingan ng IWA mula dito.</translation>
+<translation id="8661297125441579970">Dini-disallow ang paglilipat ng data at ARC.</translation>
 <translation id="8672321184841719703">Target Auto Update Na Bersyon</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8682611302223077049">Nagbibigay-daan sa iyong itakda ang yugto ng panahon, sa millisecond, kung kailan aabisuhan ang mga user na dapat muling ilunsad ang <ph name="PRODUCT_NAME" /> o dapat i-restart ang <ph name="PRODUCT_OS_NAME" /> para malapat ang nakabinbing pag-update.
@@ -3458,6 +3930,7 @@
       Kung pinagana ang setting na ito o hindi nakatakda, maaaring matanggal ang kasaysayan sa pagba-browse at pag-download.
 
       Kung hindi pinagana ang setting na ito, hindi maaaring matanggal ang kasaysayan sa pagba-browse at pag-download.</translation>
+<translation id="8757552286070680084">Wilco DTC configuration</translation>
 <translation id="8758831693895931466">I-enable ang mandatoryong pag-enroll sa pamamahala sa cloud</translation>
 <translation id="8759829385824155666">Mga pinapayagang uri ng pag-encrypt na Kerberos</translation>
 <translation id="8764119899999036911">Tinutukoy kung ang binuong Kerberos SPN ay nakabatay sa canonical na pangalan ng DNS o sa orihinal na pangalang inilagay.
@@ -3465,6 +3938,7 @@
           Kung pinagana mo ang setting na ito, lalaktawan ang paghahanap ng CNAME at gagamitin ang pangalan ng server tulad ng inilagay.
 
           Kung hindi mo pinagana ang setting na ito o hinayaan itong hindi nakatakda, tutukuyin sa pamamagitan ng paghahanap ng CNAME ang canonical na pangalan ng server.</translation>
+<translation id="8764477907716150749">Ang patakarang ito ay para sa internal na paggamit ng mismong <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8765776988041674792">Nagko-configure sa URL ng pagpapalit ng password (mga HTTP at HTTPS na scheme lang). Dadalhin ng serbisyo ng proteksyon sa password sa URL na ito ang mga user para mapalitan nila ang kanilang password pagkatapos makakita ng babala sa browser.
       Para makuha nang wasto ng <ph name="PRODUCT_NAME" /> ang bagong fingerprint ng password sa page ng pagpapalit ng password na ito, pakitiyak na sumusunod ang iyong page ng pagpapalit ng password sa mga alituntunin sa https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3483,6 +3957,26 @@
 <translation id="8833109046074170275">Pagpapatotoo sa pamamagitan ng default na daloy ng GAIA</translation>
 <translation id="8838303810937202360">Nagka-cache ang <ph name="PRODUCT_OS_NAME" /> ng Mga App at Extension para sa pag-install ng maraming user ng iisang device upang maiwasan ang pagda-download muli para sa bawat user.
       Kung hindi naka-configure ang patakaran na ito o ang value ay mas mababa sa 1 MB, gagamitin ng <ph name="PRODUCT_OS_NAME" /> ang default na laki ng cache.</translation>
+<translation id="8851325571441692315">Nagbibigay-daan sa iyong tukuyin ang proxy server na ginagamit ng <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang mga setting ng proxy.
+
+          Nagkakaroon lang ng bisa ang patakarang ito kung hindi tinukoy ang patakaran sa <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Kung pipiliin mong hindi kailanman gumamit ng proxy server at palaging direktang kumonekta, babalewalain ang lahat ng iba pang opsyon.
+
+          Kung pipiliin mong gumamit ng mga setting ng proxy ng system, babalewalain ang lahat ng iba pang opsyon.
+
+          Kung pipiliin mong awtomatikong i-detect ang proxy server, babalewalain ang lahat ng iba pang opsyon.
+
+          Kung pipiliin mo ang nakapirming server proxy mode, puwede kang magsaad ng higit pang opsyon sa 'Address o URL ng proxy server' at 'Comma-separated list ng mga panuntunan sa pag-bypass ng proxy.' Tanging ang HTTP na proxy server lang na may pinakamataas na priyoridad ang available para sa mga ARC-app.
+
+          Kung pipiliin mong gumamit ng .pac proxy script, dapat mong isaad ang URL sa script sa 'URL sa proxy .pac file'.
+
+          Para sa mga detalyadong halimbawa, bisitahin ang:
+          <ph name="PROXY_HELP_URL" />.
+
+          Kung ie-enable mo ang setting na ito, babalewalain ng <ph name="PRODUCT_NAME" /> at mga ARC-apps ang lahat ng opsyong nauugnay sa proxy na nakasaad mula sa command line.
+
+          Kapag hinayaang hindi nakatakda ang patakarang ito, mabibigyang-daan ang mga user na sila mismo ang pumili ng mga setting ng proxy.</translation>
 <translation id="8858642179038618439">Puwersahin ang YouTube Safety Mode</translation>
 <translation id="8860342862142842017">I-disable ang pagpapatupad ng Transparency ng Certificate para sa isang listahan ng mga hash ng subjectPublicKeyInfo</translation>
 <translation id="8864975621965365890">Pinipigilan ang turndown na prompt na lumilitaw kapag na-render ang isang site ng <ph name="PRODUCT_FRAME_NAME" />.</translation>
@@ -3572,7 +4066,47 @@
 <translation id="8976248126101463034">Payagan ang pagpapatotoo ng gnubby para sa mga host ng malayuang pag-access</translation>
 <translation id="8976531594979650914">Gamitin ang Default na Printer ng System bilang Default</translation>
 <translation id="8992176907758534924">Huwag payagan ang anumang site na magpakita ng mga larawan</translation>
+<translation id="9013875414788074110">Sa panahon ng pag-log in, puwedeng i-authenticate ang <ph name="PRODUCT_OS_NAME" /> kumpara sa isang server (online) o gamit ang naka-cache na password (offline).
+
+      Kapag itinakda ang patakarang ito sa value na -1, puwedeng mag-authenticate ang user offline sa loob ng hindi tiyak na panahon. Kapag itinakda ang patakarang ito sa anupamang value, tinutukoy nito ang tagal ng panahon simula nang huling online na pag-authenticate, at pagkatapos nito ay dapat gamitin muli ng user ang online na pag-authenticate.
+
+      Kapag hinayaang hindi nakatakda ang patakarang ito, gagamit ang <ph name="PRODUCT_OS_NAME" /> ng default na limitasyon sa oras na 14 na araw, at pagkatapos nito ay dapat gamitin muli ng user ang online na pag-authenticate.
+
+      Naaapektuhan lang ng patakarang ito ang mga user na nag-authenticate gamit ang SAML.
+
+      Dapat ay nakasaad ang value ng patakaran sa pamamagitan ng segundo.</translation>
+<translation id="9027787254195333560">Nagbibigay-daan sa iyo ang patakarang ito na i-configure ang larawan ng avatar na kumakatawan sa user sa screen sa pag-log in. Itinatakda ang patakaran sa pamamagitan ng pagtukoy sa URL kung saan mada-download ng <ph name="PRODUCT_OS_NAME" /> ang larawan ng avatar at isang cryptographic na hash na ginagamit para i-verify ang integridad ng download. Dapat ay nasa format na JPEG ang larawan, hindi dapat lumampas sa 512kB ang laki nito. Dapat ay accessible ang URL nang walang anumang pag-authenticate.
+
+      Dina-download at kina-cache ang larawan ng avatar. Muli itong ida-download sa tuwing magbabago ang URL o ang hash.
+
+      Dapat tukuyin ang patakaran bilang string na nagsasaad sa URL at hash sa format na JSON, at umaayon sa sumusunod na schema:
+      {
+        "uri": "object",
+        "mga property": {
+          "url": {
+            "paglalarawan": "Ang URL kung saan mada-download ang larawan ng avatar.",
+            "uri": "string"
+          },
+          "hash": {
+            "paglalarawan": "Ang SHA-256 hash ng larawan ng avatar.",
+            "uri": "string"
+          }
+        }
+      }
+
+      Kung itatakda ang patakarang ito, ida-download at gagamitin ng <ph name="PRODUCT_OS_NAME" /> ang larawan ng avatar.
+
+      Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.
+
+      Kung hahayaang hindi nakatakda ang patakaran, puwedeng piliin ng user ang larawan ng avatar na kumakatawan sa kanya sa screen sa pag-log in.</translation>
 <translation id="9035964157729712237">Ang mga ID ng Extension upang maibukod mula sa blacklist</translation>
+<translation id="9039822628127365650">Kapag nakatakda ang patakarang ito, isinasaad nito ang haba ng oras kung kailan awtomatikong mala-log out ang user pagkatapos nito, at matatapos ang session. Ipapaalam sa user ang tungkol sa natitirang oras sa pamamagitan ng timer ng countdown na ipapakita sa system tray.
+
+      Kapag hindi nakatakda ang patakarang ito, hindi limitado ang haba ng session.
+
+      Kung itatakda mo ang patakarang ito, hindi ito mababago o mao-override ng mga user.
+
+      Dapat isaad ang value ng patakaran gamit ang millisecond. Papanatilihin ang mga value sa hanay na 30 segundo hanggang 24 na oras.</translation>
 <translation id="9042911395677044526">Nagbibigay-daan na malapat sa bawat user ang configuration ng pushing network sa isang <ph name="PRODUCT_OS_NAME" /> na device. Ang configuration ng network ay isang naka-format sa JSON  na string tulad ng tinutukoy ng format ng Configuration ng Open Network na inilalarawan sa <ph name="ONC_SPEC_URL" /></translation>
 <translation id="906631898352326790">
       Kung ie-enable ang patakaran, ang bawat pinangalanang pinagmulan sa
@@ -3586,6 +4120,15 @@
 
       TANDAAN: Hindi nalalapat ang patakarang ito sa Android. Para i-enable ang IsolateOrigins sa Android, gamitin ang setting ng patakarang IsolateOriginsAndroid.
       </translation>
+<translation id="9072600218500597787">Kino-configure ang mga kinakailangang domain name sa host na ipapatupad sa mga host na may remote na access at pinipigilan ang mga user na baguhin ito.
+
+          Kung naka-enable ang setting na ito, puwede lang ibahagi ang mga host gamit ang mga account na nakarehistro sa isa sa mga nakasaad na domain name.
+
+          Kung naka-disable o hindi nakatakda ang setting na ito, puwedeng ibahagi ang mga host gamit ang anumang account.
+
+          Mao-override ng setting na ito ang RemoteAccessHostDomain, kung mayroon man.
+
+          Tingnan din ang RemoteAccessHostClientDomainList.</translation>
 <translation id="9077227880520270584">Timer ng awtomatikong pag-log in ng lokal na account ng device</translation>
 <translation id="9084985621503260744">Tukuyin kung nakakaapekto ang aktibidad ng video sa pamamahala ng power</translation>
 <translation id="9088433379343318874">I-enable ang content provider ng pinangangasiwaang user</translation>
@@ -3594,6 +4137,30 @@
           Sinusuportahan sa bersyon 70 pataas ng <ph name="PRODUCT_OS_NAME" />. Para sa mga dati nang kliyente, nangangahulugan ang value na ito na naka-disable ang pag-roll back.</translation>
 <translation id="9096086085182305205">Whitelist ng server sa pagpapatotoo</translation>
 <translation id="9098553063150791878">Mga patakaran para sa pagpapatotoo ng HTTP</translation>
+<translation id="9103061223348895346">Kinokontrol ng patakarang ito ang maraming setting para sa istratehiya ng pamamahala sa power kapag naging idle ang user.
+
+          May apat na uri ng pagkilos:
+          * Magdi-dim ang screen kung mananatiling idle ang user para sa oras na tinukoy ng |ScreenDim|.
+          * Mag-o-off ang screen kung mananatiling idle ang user para sa oras na tinukoy ng |ScreenOff|.
+          * May ipapakitang dialog ng babala kung mananatiling idle ang user para sa oras na tinukoy ng |IdleWarning|, kung saan sinasabi sa user na isasagawa na ang pagkilos sa idle.
+          * Isasagawa ang pagkilos na tinukoy ng |IdleAction| kung mananatiling idle ang user para sa oras na tinukoy ng |Idle|.
+
+          Para sa bawat isa sa mga pagkilos na nasa itaas, dapat tukuyin ang delay gamit ang millisecond, at kailangan itong itakda sa isang value na mas mataas sa zero para ma-trigger ang kaukulang pagkilos. Kung sakaling maitakda sa zero ang delay, hindi isasagawa ng <ph name="PRODUCT_OS_NAME" /> ang kaukulang pagkilos.
+
+          Para sa bawat isa sa mga delay sa itaas, kapag hindi nakatakda ang haba ng oras, gagamitin ang default na value.
+
+          Tandaang papanatilihin ang mga value ng |ScreenDim| para maging mas mababa sa o katumbas ng |ScreenOff|, papanatilihin ang |ScreenOff| at |IdleWarning| para maging mas mababa sa o katumbas ng |Idle|.
+
+          Ang |IdleAction| ay puwedeng isa sa apat na posibleng pagkilos:
+          * |Suspend|
+          * |Logout|
+          * |Shutdown|
+          * |DoNothing|
+
+          Kapag hindi nakatakda ang |IdleAction|, isasagawa ang default na pagkilos, ang pagsususpinde.
+
+          Mayroon ding mga hiwalay na setting para sa AC na power at baterya.
+          </translation>
 <translation id="9105265795073104888">Mayroon lang subset ng opsyon sa configuration ng proxy sa mga Android app. Maaaring boluntaryong piliin ng mga Android app na gamitin ang proxy. Hindi mo maaaring puwersahin ang mga ito na gumamit ng proxy.</translation>
 <translation id="9106865192244721694">Payagan ang WebUSB sa mga site na ito</translation>
 <translation id="9112727953998243860">File ng configuration ng printer ng enterprise</translation>
@@ -3641,6 +4208,7 @@
 
           Kung hahayaang hindi nakatakda ang patakarang ito, gagamitin ang '3,' at mababago ito ng user.</translation>
 <translation id="9167719789236691545">I-disable ang Drive sa app na Mga File ng <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="9185107612228451403">Kino-configure ang mga patakarang nauugnay sa extension. Hindi pinapayagan ang user na mag-install ng mga naka-blacklist na extension maliban kung naka-whitelist ang mga ito. Puwede mo ring pilitin ang <ph name="PRODUCT_NAME" /> na awtomatikong mag-install ng mga extension sa pamamagitan ng pagtukoy sa mga ito sa <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Nai-install ang mga sapilitang na-install na extension, nasa blacklist man ang mga ito o hindi.</translation>
 <translation id="9187743794267626640">Huwag paganahin ang pag-mount ng panlabas na storage</translation>
 <translation id="9197740283131855199">Porsyento na nase-scale ang pagkaantala ng pagdilim ng screen kapag naging aktibo ang user pagkatapos ng pagdilim</translation>
 <translation id="9200828125069750521">Mga parameter para sa URL ng larawan na gumagamit ng POST</translation>
@@ -3672,8 +4240,22 @@
 <translation id="9217154963008402249">Dalas ng mga sinusubaybayang network packet</translation>
 <translation id="922540222991413931">Mag-configure ng mga pinagmulan ng pag-install ng extension, app, at script ng user</translation>
 <translation id="924557436754151212">Mag-import ng mga naka-save na password mula sa default na browser sa unang pagtakbo</translation>
+<translation id="926146562923985266">Kinokontrol ng patakarang ito ang command na gagamitin para magbukas ng mga URL sa <ph name="PRODUCT_NAME" /> kapag lumilipat mula sa Internet Explorer.
+
+      Kung hindi naka-install ang add-in na 'Suporta sa Legacy Browser' para sa Internet Explorer, walang bisa ang patakarang ito.
+
+      Kapag hinayaang hindi nakatakda ang patakarang ito, awtomatikong ide-detect ng Internet Explorer ang sariling executable path ng <ph name="PRODUCT_NAME" /> kapag inilulunsad ang <ph name="PRODUCT_NAME" /> mula sa Internet Explorer.
+
+      Kapag nakatakda ang patakarang ito, gagamitin ito para ilunsad ang <ph name="PRODUCT_NAME" /> kapag inilulunsad ang <ph name="PRODUCT_NAME" /> mula sa Internet Explorer.
+
+      Maaaring itakda ang patakarang ito sa isang executable file path, o sa ${chrome} para awtomatikong i-detect ang lokasyon sa pag-install ng Chrome.</translation>
 <translation id="930930237275114205">Itakda ang direktoryo ng data ng user ng <ph name="PRODUCT_FRAME_NAME" /></translation>
+<translation id="943865157632139008">Nagbibigay-daan sa iyong i-configure ang default na HTML renderer kapag naka-install ang <ph name="PRODUCT_FRAME_NAME" />.
+      Ang default na setting ay payagan ang host na browser na gawin ang pag-render, ngunit puwede mo rin itong i-override at ipa-render sa <ph name="PRODUCT_FRAME_NAME" /> ang mga HTML na page bilang default.</translation>
 <translation id="944817693306670849">Itakda ang laki ng cache ng disk</translation>
+<translation id="966854160628341653">Kinokontrol kung papayagan ng <ph name="PRODUCT_OS_NAME" /> na magkaroon ng mga bagong user account. Kung itatakda ang patakarang ito sa false, hindi makakapag-log in ang mga user na wala pang account.
+
+      Kung itatakda ang patakarang ito sa true o kung hindi ito iko-configure, papayagang magkaroon ng mga bagong user account sa kundisyong hindi pipigilan ng <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> ang user na mag-log in.</translation>
 <translation id="981346395360763138">Na-disable ang mga serbisyo ng lokasyon ng Google</translation>
 <translation id="982497069985795632">Ine-enable ang spellcheck</translation>
 <translation id="991560005425213776">Ipadala ang username at filename sa mga native na printer</translation>
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb
index 023eb24..e2430a5 100644
--- a/components/policy/resources/policy_templates_gu.xtb
+++ b/components/policy/resources/policy_templates_gu.xtb
@@ -553,6 +553,9 @@
 <translation id="2030905906517501646">ડિફૉલ્ટ શોધ પ્રદાતા કીવર્ડ</translation>
 <translation id="203096360153626918">આ નીતિનો Android ઍપ્લિકેશનો પર કોઈ પ્રભાવ પડતો નથી. તે પૂર્ણસ્ક્રીન મોડમાં દાખલ થવામાં સમર્થ હશે, પછી ભલેને આ નીતિ <ph name="FALSE" /> પર સેટ કરેલ હોય.</translation>
 <translation id="2043770014371753404">બંધ કરેલ એન્ટરપ્રાઇઝ પ્રિન્ટર</translation>
+<translation id="2050629715135525072">આ નીતિ, ક્લાયન્ટ અને હોસ્ટ વચ્ચે ફાઇલોને ટ્રાન્સફર કરવા માટે રિમોટ ઍક્સેસ હોસ્ટથી કનેક્ટ થયેલા વપરાશકર્તાની ક્ષમતાને નિયંત્રિત કરે છે. ફાઇલ ટ્રાન્સફરને સમર્થન આપતી ન હોય એવા બધા રિમોટ સહાયક કનેક્શનને આ નીતિ લાગુ થતી નથી.
+
+          જો આ સેટિંગ બંધ કરવામાં આવી હોય, તો ફાઇલ ટ્રાન્સફરને મંજૂરી મળી શકશે નહીં. જો આ સેટિંગ ચાલુ હોય અથવા સેટ કરવામાં આવી ન હોય, તો ફાઇલ ટ્રાન્સફરને મંજૂરી આપવામાં આવશે.</translation>
 <translation id="2057317273526988987">URLsની સૂચિના ઍક્સેસને મંજૂરી આપો</translation>
 <translation id="2061810934846663491">રિમોટ ઍક્સેસ હોસ્ટ માટે આવશ્યક ડોમેન નામ ગોઠવે છે</translation>
 <translation id="206623763829450685"><ph name="PRODUCT_NAME" /> દ્વારા કઈ HTTP પ્રમાણીકરણ યોજનાઓ સમર્થિત છે તેનો ઉલ્લેખ કરે છે.
@@ -676,6 +679,7 @@
       આ સેટિંગને અક્ષમ કરવા પર આંશિક રૂપે વેબ પેજને WebGL API ઉપયોગ કરવાની અને પ્લગઇનને Pepper 3D APIનો ઉપયોગ કરવાની મંજૂરી આપે છે. બ્રાઉઝરની ડિફૉલ્ટ સેટિંગ્સને હજી પણ આ APIનો ઉપયોગ કરવા માટે પાસ થવા આદેશ પંક્તિ દલીલોની જરૂર પડી શકે છે.
 
       જો HardwareAccelerationModeEnabled ને false પર સેટ કરેલ હોય, તો Disable3DAPIsને ટાળવામાં આવે છે અને તે true પર સેટ કરવામાં આવનાર Disable3DAPIs ના બરાબર છે.</translation>
+<translation id="2258126710006312594">રિમોટ ઍક્સેસ વપરાશકર્તાઓને હોસ્ટ પર/માંથી ફાઇલોને ટ્રાન્સફર કરવાની મંજૂરી આપો</translation>
 <translation id="2265214338421787313">આ પૉલિસી વ્યવસ્થાપકને એ ઉલ્લેખ કરવાની મંજૂરી આપે છે કે પેજ તેની અનલોડ થવાની ક્રિયા દરમિયાન પૉપઅપ બતાવી શકે છે.
 
       જ્યારે પૉલિસી ચાલુ પર સેટ કરેલ હોય, ત્યારે પેજ અનલોડ કરવામાં આવી રહ્યા હોય તે વખતે તેઓને પૉપઅપ બતાવવાની મંજૂરી આપવામાં આવે છે.
@@ -965,6 +969,13 @@
       આ નીતિ દ્વારા ઑટોમૅટિક રીતે થતા કોઈપણ અપડેટ ચેક બ્લૉક કરવામાં આવશે નહીં, જોકે અન્ય નીતિ દ્વારા તેમને બ્લૉક કરવામાં આવે તેમ બની શકે છે. આ સુવિધા ફક્ત ઑટો-લૉન્ચ કિઓસ્ક તરીકે ગોઠવાયેલાં Chrome ડિવાઇસ પર જ ચાલુ કરવામાં આવેલી છે. અન્ય ડિવાઇસ પર આ નીતિ દ્વારા મર્યાદા મુકવામાં આવશે નહીં.</translation>
 <translation id="2823870601012066791"><ph name="PRODUCT_OS_NAME" /> ક્લાયન્ટ માટે Windowsની નોંધણી કરાવવાનું સ્થાન:</translation>
 <translation id="2824715612115726353">છૂપા મોડને ચાલુ કરો</translation>
+<translation id="2836621397261130126"><ph name="KERBEROS" />ની ટિકિટના અધિકારની સોંપણી કરવી કે નહીં તે નક્કી કરવા માટે KDC નીતિ દ્વારા મંજૂરીનું પાલન કરવામાં આવશે કે નહીં તે આ નીતિ નિયંત્રિત કરે છે.
+
+          જો આ નીતિ true પર સેટ કરેલી હોય, તો HTTP પ્રમાણીકરણ, KDC નીતિ દ્વારા મંજૂરીનું પાલન કરે છે, એટલે કે Chrome લૉગ ઇન વિગતોના અધિકારની સોંપણી માત્ર એવા જ કિસ્સાઓમાં કરે છે જેમાં KDC સેવા ટિકિટ પર <ph name="OK_AS_DELEGATE" />ને સેટ કરેલું હોય. વધુ માહિતી માટે કૃપા કરીને https://tools.ietf.org/html/rfc5896.html જુઓ. સેવાનો 'AuthNegotiateDelegateWhitelist' નીતિ સાથે પણ મેળ થવો જોઈએ.
+
+          જો આ નીતિ સેટ કરેલી ન હોય અથવા false પર સેટ કરેલી હોય, તો સમર્થિત પ્લૅટફૉર્મ પર KDC નીતિને અવગણવામાં આવે છે અને 'AuthNegotiateDelegateWhitelist' નીતિનું જ પાલન કરવામાં આવે છે.
+
+          Windows પર, KDC નીતિનું હંમેશાં પાલન કરવામાં આવે છે.</translation>
 <translation id="283695852388224413">જો આ નીતિ સેટ કરેલ હોય, તો મહત્તમ પિન લંબાઈ લાગુ કરેલ હોય છે. 0 અથવા ઓછાનું મૂલ્ય એટલે કે કોઈ મહત્તમ લંબાઈ નથી; તે કિસ્સામાં વપરાશકર્તા પિનને તેમને તે જોઈએ ત્યાં સુધી સેટ કરી શકે છે. જો આ સેટિંગ <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> કરતાં ઓછી હોય અથવા 0 કરતાં વધારે હોય, તો મહત્તમ લંબાઈ ન્યૂનતમ લંબાઈના બરાબર હોય છે.
 
           જો નીતિ સેટ કરેલ ન હોય, તો કોઈ મહત્તમ લંબાઈ લાગુ કરવામાં આવતી નથી.</translation>
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb
index 6c334ec..8ac5344c 100644
--- a/components/policy/resources/policy_templates_hi.xtb
+++ b/components/policy/resources/policy_templates_hi.xtb
@@ -491,9 +491,9 @@
 <translation id="2030905906517501646">डिफ़ॉल्‍ट खोज प्रदाता कीवर्ड</translation>
 <translation id="203096360153626918">इस नीति का Android ऐप्लिकेशन पर कोई प्रभाव नहीं पड़ता. यदि इस नीति को <ph name="FALSE" /> पर सेट किया गया हो, तब भी वे पूर्णस्क्रीन मोड में प्रवेश कर सकेंगे.</translation>
 <translation id="2043770014371753404">एंटरप्राइज़ प्रिंटर बंद हैं</translation>
-<translation id="2050629715135525072">किसी रिमोट एक्सेस होस्ट से जुड़े उपयोगकर्ता की क्लाइंट और होस्ट के बीच फ़ाइलें ट्रांसफ़र करने की सुविधा को नियंत्रित करती है. यह नीति उन रिमोट सहायता कनेक्शन पर लागू नहीं होती जिनमें फ़ाइल ट्रांसफ़र की सुविधा नहीं है.
+<translation id="2050629715135525072">यह नियंत्रित करती है कि ऐसे उपयोगकर्ता जो रिमोट एक्सेस होस्ट से जुड़े हैं, क्लाइंट और होस्ट के बीच फ़ाइलें ट्रांसफ़र कर सकते हैं या नहीं. यह नीति उन रिमोट सहायता कनेक्शन पर लागू नहीं होती जिनमें फ़ाइल ट्रांसफ़र करने की सुविधा नहीं है.
 
-          अगर यह सेटिंग बंद है, तो फ़ाइल ट्रांसफ़र की अनुमति नहीं दी जाएगी. अगर यह सेटिंग चालू है या सेट नहीं है, तो फ़ाइल ट्रांसफ़र की अनुमति दी जाएगी.</translation>
+          अगर यह सेटिंग बंद है, तो फ़ाइल ट्रांसफ़र करने की अनुमति नहीं दी जाएगी. अगर यह सेटिंग चालू है या सेट नहीं की गई है, तो फ़ाइल ट्रांसफ़र करने की अनुमति दी जाएगी.</translation>
 <translation id="2057317273526988987">यूआरएल की सूची एक्सेस करने देती है</translation>
 <translation id="206623763829450685">यह निर्दिष्ट करती है कि कौन सी HTTP प्रमाणीकरण योजना <ph name="PRODUCT_NAME" /> द्वारा समर्थित है.
 
@@ -872,7 +872,7 @@
 <translation id="2824715612115726353">गुप्त मोड सक्षम करें</translation>
 <translation id="2836621397261130126">यह नियंत्रित करती है कि <ph name="KERBEROS" /> के टिकट सौंपने का फ़ैसला लेते समय केडीसी नीति की मंज़ूरी को ध्यान में रखा जाता है या नहीं.
 
-          अगर यह नीति सही है, तो एचटीटीपी प्रमाणीकरण केडीसी नीति की मंज़ूरी को ध्यान में रखता है; यानी Chrome क्रेडेंशियल तभी सौंपता है जब केडीसी किसी सेवा टिकट पर <ph name="OK_AS_DELEGATE" /> को सेट करता है. कृपया ज़्यादा जानकारी के लिए https://tools.ietf.org/html/rfc5896.html देखें. सेवा 'AuthNegotiateDelegateWhitelist' नीति के तहत होनी चाहिए.
+          अगर यह नीति सही है, तो एचटीटीपी प्रमाणीकरण केडीसी नीति की मंज़ूरी को ध्यान में रखता है; यानी जब केडीसी किसी सेवा टिकट पर <ph name="OK_AS_DELEGATE" /> को सेट करता है तभी Chrome क्रेडेंशियल सौंपता है. कृपया ज़्यादा जानकारी के लिए https://tools.ietf.org/html/rfc5896.html देखें. सेवा 'AuthNegotiateDelegateWhitelist' नीति के तहत होनी चाहिए.
 
           अगर यह नीति सेट नहीं की जाती या गलत पर सेट की जाती है, तो इस्तेमाल किए जा सकने वाले प्लैटफ़ॉर्म पर केडीसी नीति को अनदेखा कर दिया जाता है. इसके बजाय, सिर्फ़ 'AuthNegotiateDelegateWhitelist' नीति को ध्यान में रखा जाता है.
 
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index f3595e6..74d9e68b 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -51,6 +51,7 @@
 <translation id="1062011392452772310">Mengaktifkan pengesahan jarak jauh untuk perangkat tersebut</translation>
 <translation id="1062407476771304334">Ganti</translation>
 <translation id="1079801999187584280">Larang penggunaan Developer Tools</translation>
+<translation id="1087437665304381368">Kebijakan ini hanya mengontrol mode developer<ph name="PRODUCT_OS_NAME" />. Jika ingin mencegah akses ke Opsi Developer Android, Anda perlu menetapkan kebijakan <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1093082332347834239">Jika setelan ini diaktifkan, host bantuan jarak jauh akan dijalankan dalam proses dengan izin <ph name="UIACCESS_PERMISSION_NAME" />.  Hal ini akan memungkinkan pengguna jarak jauh untuk berinteraksi dengan jendela yang berada jauh di desktop pengguna lokal.
 
           Jika setelan ini dinonaktifkan atau tidak dikonfigurasi, host bantuan jarak jauh akan dijalankan dalam konteks pengguna dan pengguna jarak jauh tidak dapat berinteraksi dengan jendela yang berada jauh di desktop.</translation>
@@ -72,6 +73,14 @@
       Jika kebijakan ini tidak disetel, GPO yang disimpan dalam cache dapat digunakan kembali selama maksimal 25 jam.
 
       Jika kebijakan ini disetel ke 0, menyimpan GPO ke cache akan dinonaktifkan. Perlu diketahui bahwa ini akan meningkatkan beban server karena GPO akan didownload ulang pada setiap pengambilan kebijakan, walaupun GPO tidak berubah.</translation>
+<translation id="1117462881884985156"><ph name="PRODUCT_NAME" /> akan mengabaikan proxy apa pun untuk daftar host yang diberikan di sini.
+
+          Kebijakan ini hanya berpengaruh jika Anda telah memilih setelan proxy manual pada 'Pilih cara menentukan setelan server proxy' dan jika kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> tidak ditentukan.
+
+          Sebaiknya biarkan kebijakan ini tidak ditetapkan jika Anda telah memilih mode lain untuk menetapkan kebijakan proxy.
+
+          Untuk contoh yang lebih mendetail, buka:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Penanganan protokol yang disetel melalui kebijakan ini tidak digunakan ketika menangani maksud Android.</translation>
 <translation id="1118093128235245168">Izinkan situs meminta pengguna memberikan akses ke perangkat USB yang tersambung</translation>
 <translation id="1128903365609589950">Mengonfigurasi direktori yang akan digunakan oleh <ph name="PRODUCT_NAME" /> untuk menyimpan file yang ada dalam cache pada disk.
@@ -116,6 +125,10 @@
           Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs yaitu dari kebijakan 'DefaultImagesSetting' jika disetel, atau dari konfigurasi pribadi pengguna.
 
           Perlu diperhatikan bahwa sebelumnya kebijakan ini diaktifkan secara keliru di Android, namun fungsi ini belum pernah sepenuhnya didukung di Android.</translation>
+<translation id="1194005076170619046">Jika diaktifkan, tombol logout besar berwarna merah akan ditampilkan di baki sistem selama sesi aktif dan layar tidak dikunci.
+
+      Jika dinonaktifkan atau tidak ditentukan, tombol logout besar berwarna merah akan ditampilkan di baki sistem.</translation>
+<translation id="1197437816436565375">Anda tidak dapat memaksa aplikasi Android untuk menggunakan proxy. Subset setelan proxy disediakan untuk aplikasi Android, yang dapat dipilih untuk dipatuhi secara sukarela. Lihat kebijakan <ph name="PROXY_MODE_POLICY_NAME" /> untuk detail lebih lanjut.</translation>
 <translation id="1198465924256827162">Frekuensi upload status perangkat dikirimkan, dalam milidetik.
 
       Jika kebijakan ini tidak disetel, frekuensi defaultnya adalah 3 jam. Frekuensi minimum
@@ -156,6 +169,13 @@
 <translation id="1327466551276625742">Aktifkan permintaan konfigurasi jaringan saat offline</translation>
 <translation id="1330145147221172764">Aktifkan keyboard di layar</translation>
 <translation id="13356285923490863">Nama Kebijakan</translation>
+<translation id="1347198119056266798">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> dan <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Kebijakan ini diabaikan jika salah satu dari kebijakan <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> atau <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (tidak digunakan lagi) ditetapkan.
+
+      Memaksa kueri di Google Penelusuran Web untuk dijalankan dengan SafeSearch disetel ke aktif dan mencegah pengguna mengubah setelan ini. Setelan ini juga memaksa Mode Terbatas Menengah di YouTube.
+
+      Jika setelan ini diaktifkan, SafeSearch di Google Penelusuran dan Mode Terbatas Menengah di YouTube akan selalu aktif.
+
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan ke suatu nilai, SafeSearch di Google Penelusuran dan Mode Terbatas di YouTube tidak akan diberlakukan.</translation>
 <translation id="1352174694615491349">Kebijakan ini memungkinkan koneksi HTTP/2 bergabung saat sertifikat klien sedang digunakan. Agar dapat bergabung, hostname untuk calon koneksi baru dan hostname untuk koneksi yang sudah ada harus cocok dengan satu atau beberapa pola yang dijelaskan oleh kebijakan ini. Kebijakan ini berupa daftar host yang menggunakan format filter URLBlacklist: "example.com" cocok dengan "example.com" dan semua subdomain (misalnya "sub.example.com"), sedangkan ".example.net" hanya cocok dengan "example.net".
 
       Permintaan bergabung ke host lain melalui koneksi yang menggunakan sertifikat klien dapat menyebabkan masalah keamanan dan privasi, karena otoritas terdekat akan diperlihatkan ke semua permintaan, meskipun pengguna tidak memberikan izin secara eksplisit. Kebijakan ini bersifat sementara dan akan dihapus dalam rilis mendatang. Lihat https://crbug.com/855690.
@@ -163,6 +183,11 @@
       Jika kebijakan ini tidak ditetapkan, maka perilaku default yang tidak mengizinkan koneksi HTTP/2 bergabung melalui koneksi yang menggunakan sertifikat klien akan digunakan.</translation>
 <translation id="1353966721814789986">Halaman permulaan</translation>
 <translation id="1354424209129232709">Maksimum:</translation>
+<translation id="1354452738176731363">Jika kebijakan ini ditetapkan ke False, output audio tidak akan tersedia pada perangkat selama pengguna login.
+
+      Kebijakan ini memengaruhi semua jenis output audio, tidak hanya speaker bawaan. Fitur aksesibilitas audio juga dibatasi oleh kebijakan ini. Jangan aktifkan kebijakan ini jika pengguna memerlukan pembaca layar.
+
+      Jika setelan ini ditetapkan ke True atau tidak dikonfigurasi, maka pengguna dapat menggunakan semua output audio yang didukung pada perangkatnya.</translation>
 <translation id="1359553908012294236">Jika kebijakan ini disetel ke True atau tidak dikonfigurasi, <ph name="PRODUCT_NAME" /> akan mengaktifkan proses masuk tamu. Proses masuk tamu adalah profil <ph name="PRODUCT_NAME" /> dengan semua jendela dalam mode penyamaran.
 
       Jika kebijakan ini disetel ke False, <ph name="PRODUCT_NAME" /> tidak akan mengizinkan profil tamu dimulai.</translation>
@@ -207,10 +232,32 @@
       Lihat https://developers.google.com/safe-browsing untuk mengetahui info selengkapnya tentang Safe Browsing.
 
       Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
+<translation id="1432194160771348078">
+      Menentukan daftar aplikasi yang diinstal diam-diam di layar login, tanpa interaksi pengguna, dan yang tidak dapat diuninstal.
+      Semua izin yang diminta oleh aplikasi akan diberikan secara implisit, tanpa interaksi pengguna, termasuk semua izin tambahan yang diminta oleh aplikasi versi mendatang.
+
+      Perlu diperhatikan bahwa, demi keamanan dan privasi, penginstalan ekstensi tidak diizinkan berdasarkan kebijakan ini. Selain itu, perangkat di saluran Stabil hanya akan menginstal aplikasi yang termasuk dalam daftar diizinkan yang dipaketkan ke dalam <ph name="PRODUCT_NAME" />. Semua item yang tidak mengikuti syarat ini akan diabaikan.
+
+      Jika aplikasi yang sebelumnya diinstal otomatis dihapus dari daftar ini, maka aplikasi tersebut akan otomatis diuninstal oleh <ph name="PRODUCT_NAME" />.
+
+      Setiap item daftar dalam kebijakan ini merupakan string yang berisi ID ekstensi dan URL "update" yang dipisahkan titik koma (<ph name="SEMICOLON" />). ID ekstensi adalah string 32 huruf yang dapat ditemukan misalnya di <ph name="CHROME_EXTENSIONS_LINK" /> saat dalam mode developer. URL "update" harus mengarah ke dokumen XML Update Manifest yang dijelaskan di <ph name="LINK_TO_EXTENSION_DOC1" />. Perhatikan bahwa URL "update" yang ditetapkan dalam kebijakan ini hanya digunakan untuk penginstalan awal; update ekstensi berikutnya akan menggunakan URL update yang ditunjukkan dalam manifes ekstensi.
+
+      Misalnya, <ph name="EXTENSION_POLICY_EXAMPLE" /> akan menginstal aplikasi <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> dari URL "update" Chrome Web Store standar. Untuk informasi selengkapnya terkait menghosting ekstensi, lihat: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">Konfigurasi jaringan tingkat perangkat</translation>
 <translation id="1438739959477268107">Setelan pembuatan kunci default</translation>
 <translation id="1454846751303307294">Memungkinkan Anda menyetel daftar pola url yang menentukan situs yang tidak diizinkan untuk menjalankan JavaScript. Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultJavaScriptSetting', jika disetel, ataupun dari konfigurasi pribadi pengguna.</translation>
 <translation id="1456822151187621582">Windows (klien <ph name="PRODUCT_OS_NAME" />):</translation>
+<translation id="1458547592473993238">Kebijakan ini tidak digunakan lagi. Gunakan kebijakan <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> untuk mengontrol ketersediaan plugin Flash dan <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> untuk mengontrol apakah penampil PDF terintegrasi akan digunakan untuk membuka file PDF atau tidak.
+
+      Menentukan daftar plugin yang dinonaktifkan di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan ini.
+
+      Karakter pengganti '*' dan '?' dapat digunakan untuk mencocokkan urutan karakter sembarang. Karakter '*' mencocokkan sembarang jumlah karakter, sedangkan '?' menentukan karakter tunggal opsional, misalnya, mencocokkan karakter nol atau satu. Karakter escape adalah '\', jadi untuk mencocokkan karakter '*', '?', atau '\' yang sebenarnya, Anda dapat menempatkan '\' di depannya.
+
+      Jika setelan ini diaktifkan, daftar plugin yang ditentukan tidak akan digunakan di <ph name="PRODUCT_NAME" />. Plugin ditandai nonaktif pada 'about:plugins' dan pengguna tidak dapat mengaktifkannya.
+
+      Perhatikan bahwa kebijakan ini dapat digantikan oleh EnabledPlugins dan DisabledPluginsExceptions.
+
+      Jika kebijakan ini tidak ditetapkan, pengguna dapat menggunakan plugin apa pun yang diinstal pada sistem kecuali plugin berbahaya, tidak berlaku, atau tidak kompatibel yang sulit dikodekan.</translation>
 <translation id="1464848559468748897">Mengontrol perilaku pengguna di sesi multi profil di perangkat <ph name="PRODUCT_OS_NAME" />.
 
       Jika kebijakan ini disetel ke 'MultiProfileUserBehaviorUnrestricted', pengguna dapat menjadi pengguna utama atau sekunder di sesi multi profil.
@@ -283,6 +330,13 @@
 <translation id="1599424828227887013">Mengaktifkan Isolasi Situs untuk asal yang ditentukan di perangkat Android</translation>
 <translation id="1608755754295374538">URL yang akan diberi akses ke perangkat perekam audio tanpa peringatan</translation>
 <translation id="1615221548356595305">Izinkan koneksi HTTP/2 bergabung untuk host ini bahkan saat sertifikat klien digunakan</translation>
+<translation id="1615855314789673708">Menyediakan konfigurasi DTC (pengontrol diagnostik dan telemetri) wilco.
+
+      Dengan kebijakan ini, Anda dapat menyediakan konfigurasi DTC wilco yang boleh diterapkan jika DTC wilco tersedia pada perangkat yang diberikan dan diizinkan oleh kebijakan. Ukuran konfigurasi tidak boleh lebih dari 1 MB (1.000.000 byte) dan harus dienkode dalam JSON. DTC wilco bertanggung jawab untuk menanganinya. Hash kriptografi digunakan untuk memverifikasi integritas download.
+
+      Konfigurasi didownload dan disimpan di cache. Gambar akan didownload ulang setiap kali URL atau hash berubah.
+
+      Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.</translation>
 <translation id="1617235075406854669">Aktifkan penghapusan histori download atau browser</translation>
 <translation id="163200210584085447">Pola dalam daftar ini akan dicocokkan dengan
       asal keamanan URL yang meminta.  Jika ditemukan kecocokan, akses ke perangkat
@@ -290,6 +344,11 @@
       kecocokan, akses akan ditolak secara otomatis.  Pola karakter pengganti
       tidak diizinkan.</translation>
 <translation id="1634989431648355062">Izinkan plugin <ph name="FLASH_PLUGIN_NAME" /> di situs ini</translation>
+<translation id="1653229475925941921">Jika ditetapkan, kebijakan ini akan mengontrol jenis kaca pembesar layar yang diaktifkan. Jika ditetapkan ke "None", kebijakan ini akan menonaktifkan kaca pembesar layar.
+
+          Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+          Jika kebijakan ini tidak ditetapkan, kaca pembesar layar mula-mula dinonaktifkan, tetapi dapat diaktifkan oleh pengguna kapan saja.</translation>
 <translation id="1655229863189977773">Setel ukuran cache disk dalam bita</translation>
 <translation id="166427968280387991">Server proxy</translation>
 <translation id="1668836044817793277">Mengizinkan peluncuran otomatis dengan aplikasi kios tanpa penundaan untuk mengontrol versi <ph name="PRODUCT_OS_NAME" /> atau tidak.
@@ -409,6 +468,9 @@
       Jika setelan ini diaktifkan, layanan perlindungan sandi akan mengambil sidik jari sandi di URL tersebut untuk tujuan deteksi penggunaan ulang sandi.
       Jika setelan ini dinonaktifkan atau tidak disetel, layanan perlindungan sandi hanya akan mengambil sidik jari sandi di https://accounts.google.com.
       Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
+<translation id="1914840757300882918">Jika kebijakan ini ditetapkan, host akan menggunakan sertifikat klien dengan CN penerbit yang diberikan untuk mengautentikasi ke RemoteAccessHostTokenValidationUrl. Tetapkan ke "*" untuk menggunakan sertifikat klien mana pun yang tersedia.
+
+          Fitur ini saat ini dinonaktifkan pada sistem server.</translation>
 <translation id="1919802376548418720">Gunakan kebijakan KDC untuk mendelegasikan kredensial.</translation>
 <translation id="1920046221095339924">Mengizinkan sesi yang dikelola di perangkat</translation>
 <translation id="1929709556673267855">Memberikan konfigurasi untuk printer perusahaan yang terkait dengan perangkat.
@@ -455,6 +517,13 @@
 
       Jika kebijakan ini disetel ke true, <ph name="PRODUCT_OS_NAME" /> akan berupaya mendownload payload pembaruan otomatis via HTTP. Jika kebijakan ini disetel ke false atau tidak disetel, HTTPS akan digunakan untuk mendownload payload pembaruan otomatis.</translation>
 <translation id="199764499252435679">Aktifkan update komponen di <ph name="PRODUCT_NAME" /></translation>
+<translation id="1997994951395619441">Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> akan menampilkan kolom bookmark.
+
+      Jika setelan ini dinonaktifkan, pengguna tidak akan melihat kolom bookmark.
+
+      Jika setelan ini diaktifkan atau dinonaktifkan, pengguna tidak dapat mengubah atau menggantinya di <ph name="PRODUCT_NAME" />.
+
+      Jika setelan ini tidak ditetapkan, pengguna dapat memutuskan untuk menggunakan fungsi ini atau tidak.</translation>
 <translation id="2006530844219044261">Pengelolaan daya</translation>
 <translation id="2014757022750736514">Mengontrol perilaku layar login tempat pengguna login ke akun. Setelan mencakup siapa saja yang dapat login, jenis akun yang diizinkan, metode autentikasi yang harus digunakan, serta aksesibilitas umum, metode masukan, dan setelan lokal.</translation>
 <translation id="201557587962247231">Frekuensi upload laporan status perangkat</translation>
@@ -474,6 +543,7 @@
 
           Jika setelan ini dinonaktifkan, transfer file tidak akan diizinkan. Jika setelan ini diaktifkan atau tidak disetel, transfer file akan diizinkan.</translation>
 <translation id="2057317273526988987">Izinkan akses ke daftar URL</translation>
+<translation id="2061810934846663491">Mengonfigurasi nama domain wajib untuk host akses jarak jauh</translation>
 <translation id="206623763829450685">Menentukan skema autentikasi HTTP yang didukung oleh <ph name="PRODUCT_NAME" />.
 
           Nilai yang mungkin adalah 'basic', 'digest', 'ntlm', dan 'negotiate'. Pisahkan beberapa nilai dengan koma.
@@ -520,6 +590,20 @@
       Jika kebijakan tidak disetel, nilai defaultnya adalah 0 derajat, dan pengguna
       dapat mengubahnya. Dalam kasus ini, nilai default tidak akan diterapkan kembali
       saat memulai ulang.</translation>
+<translation id="2138449619211358657">Kebijakan ini memungkinkan <ph name="PRODUCT_OS_NAME" /> mengabaikan proxy apa pun untuk autentikasi captive portal.
+
+      Kebijakan ini hanya berlaku jika proxy dikonfigurasi (misalnya melalui kebijakan, oleh pengguna di chrome://settings, atau dengan ekstensi).
+
+      Jika setelan ini diaktifkan, semua halaman autentikasi captive portal (semua halaman mulai dari halaman login captive portal hingga <ph name="PRODUCT_NAME" /> mendeteksi sambungan internet yang berhasil) akan ditampilkan di jendela terpisah dengan mengabaikan semua setelan dan batasan kebijakan bagi pengguna saat ini.
+
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan, semua halaman autentikasi captive portal akan ditampilkan di tab browser baru (reguler), menggunakan setelan proxy pengguna saat ini.</translation>
+<translation id="21394354835637379">Memungkinkan Anda menentukan URL yang diizinkan menginstal ekstensi, aplikasi, dan tema.
+
+          Mulai <ph name="PRODUCT_NAME" /> 21, penginstalan ekstensi, aplikasi, dan skrip pengguna dari luar Chrome Web Store menjadi lebih sulit. Sebelumnya, pengguna dapat mengklik link ke file *.crx, dan <ph name="PRODUCT_NAME" /> akan menawarkan untuk menginstal file setelah menampilkan beberapa peringatan. Setelah <ph name="PRODUCT_NAME" /> 21, file semacam itu harus didownload dan ditarik ke halaman setelan <ph name="PRODUCT_NAME" />. Setelan ini memungkinkan URL tertentu menggunakan alur penginstalan lama yang lebih mudah.
+
+          Setiap item dalam daftar ini merupakan pola kecocokan gaya ekstensi (buka https://developer.chrome.com/extensions/match_patterns). Pengguna akan dapat dengan mudah menginstal item dari URL mana pun yang cocok dengan item dalam daftar ini. Baik lokasi file *.crx file dan halaman tempat dimulainya download (halaman perujuk) harus diizinkan oleh pola ini.
+
+          <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> lebih diutamakan dibandingkan kebijakan ini. Artinya, ekstensi dalam daftar tidak diizinkan tidak akan diinstal, meskipun berasal dari situs dalam daftar ini.</translation>
 <translation id="214901426630414675">Batasi mode dupleks pencetakan</translation>
 <translation id="2149330464730004005">Aktifkan pencetakan warna</translation>
 <translation id="2156132677421487971">Mengonfigurasi kebijakan untuk <ph name="PRODUCT_NAME" />, fitur yang memungkinkan pengguna mengirim konten tab, situs, atau desktop dari browser ke sistem suara dan layar jarak jauh.</translation>
@@ -559,6 +643,11 @@
 
       Kebijakan ini tidak berlaku untuk aplikasi kios - kebijakan ini dimigrasi secara otomatis. Jika kebijakan ini tidak disetel, perangkat akan berperilaku seolah-olah 'DisallowArc' yang dipilih.</translation>
 <translation id="2195032660890227692">Kebijakan ini dihapus dalam <ph name="PRODUCT_NAME" /> 68 dan digantikan oleh <ph name="ARC_BR_POLICY_NAME" />.</translation>
+<translation id="219720814106081560">Jika diaktifkan atau tidak dikonfigurasi (default), pengguna akan dimintai akses perekaman video kecuali untuk URL yang dikonfigurasi dalam daftar VideoCaptureAllowedUrls, yang akan diberi akses tanpa diminta.
+
+      Jika kebijakan ini dinonaktifkan, pengguna tidak akan dimintai akses dan perekaman video hanya tersedia untuk URL yang dikonfigurasi di VideoCaptureAllowedUrls.
+
+      Kebijakan ini memengaruhi semua jenis input video, tidak hanya kamera bawaan.</translation>
 <translation id="2201555246697292490">Konfigurasikan daftar putih perpesanan asli</translation>
 <translation id="2204753382813641270">Kontrol sembunyi otomatis rak</translation>
 <translation id="2208976000652006649">Parameter untuk URL penelusuran yang menggunakan POST</translation>
@@ -567,6 +656,11 @@
 <translation id="2231817271680715693">Impor histori browseran dari browser default saat pertama kali dijalankan</translation>
 <translation id="2236488539271255289">Jangan izinkan situs mana pun menyetel data lokal</translation>
 <translation id="2240879329269430151">Memungkinkan Anda menentukan apakah situs diizinkan untuk menampilkan pop-up. Menampilkan pop-up dapat diizinkan atau diblokir untuk semua situs. Jika kebijakan ini tidak disetel, 'BlockPopups' akan digunakan dan pengguna dapat mengubahnya.</translation>
+<translation id="2255326053989409609">Jika setelan ini diaktifkan, halaman tidak diizinkan mengakses unit pemrosesan grafis (GPU). Secara khusus, halaman tidak dapat mengakses WebGL API dan plugin tidak dapat menggunakan Pepper 3D API.
+
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan, halaman diizinkan menggunakan API WebGL dan plugin diizinkan menggunakan Pepper 3D API. Setelan default browser mungkin masih mengharuskan argumen command line diteruskan agar dapat menggunakan API ini.
+
+      Jika HardwareAccelerationModeEnabled ditetapkan ke False, Disable3DAPI akan diabaikan dan kondisi ini setara dengan menetapkan Disable3DAPI ke True.</translation>
 <translation id="2258126710006312594">Izinkan pengguna dengan akses jarak jauh untuk mentransfer file ke/dari host</translation>
 <translation id="2265214338421787313">Kebijakan ini memungkinkan admin menentukan bahwa halaman dapat menampilkan pop-up saat kontennya dibuka.
 
@@ -727,8 +821,12 @@
       Jika Anda mengaktifkan atau menonaktifkan setelan ini, pengguna tidak dapat mengubah atau mengganti setelan ini.
 
       Jika kebijakan ini dibiarkan tidak disetel, pengguna dapat memilih untuk menggunakan atau tidak menggunakan fitur proxy kompresi data.</translation>
+<translation id="257788512393330403">Sandi harus dimasukkan setiap enam jam</translation>
 <translation id="2587719089023392205">Setel <ph name="PRODUCT_NAME" /> sebagai Browser Default</translation>
 <translation id="2592091433672667839">Durasi keadaan tidak aktif sebelum tirai layar ditampilkan di layar masuk dalam mode eceran</translation>
+<translation id="2592162121850992309">Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, akselerasi hardware akan diaktifkan kecuali jika fitur GPU tertentu termasuk dalam daftar tidak diizinkan.
+
+      Jika kebijakan ini ditetapkan ke False, akselerasi hardware akan dinonaktifkan.</translation>
 <translation id="2596260130957832043">Mengontrol apakah NTLMv2 dinonaktifkan.
           
           Semua versi terbaru server Samba dan Windows mendukung NTLMv2.
@@ -756,6 +854,7 @@
 <translation id="2633084400146331575">Aktifkan masukan lisan</translation>
 <translation id="2646290749315461919">Memungkinkan Anda mengatur apakah situs web diizinkan untuk melacak lokasi fisik pengguna. Melacak lokasi fisik pengguna dapat diizinkan secara default, ditolak secara default, atau pengguna dapat ditanya setiap kali sebuah situs web meminta lokasi fisik. Jika kebijakan ini dibiarkan tidak disetel, 'AskGeolocation' akan digunakan dan pengguna dapat mengubahnya.</translation>
 <translation id="2647069081229792812">Aktifkan atau nonaktifkan pengeditan bookmark</translation>
+<translation id="2649896281375932517">Biarkan pengguna memutuskan</translation>
 <translation id="2650049181907741121">Tindakan yang akan diambil saat pengguna menutup penutupnya</translation>
 <translation id="2655233147335439767">Menentukan URL mesin telusur yang digunakan saat melakukan penelusuran default. URL harus berisi string '<ph name="SEARCH_TERM_MARKER" />', yang akan diganti pada waktu kueri dengan istilah yang sedang ditelusuri oleh pengguna.
 
@@ -780,6 +879,7 @@
 <translation id="268577405881275241">Aktifkan fitur proxy kompresi data</translation>
 <translation id="2693108589792503178">Mengonfigurasi URL ubah sandi.</translation>
 <translation id="2706708761587205154">Hanya izinkan pencetakan dengan PIN</translation>
+<translation id="2710534340210290498">Jika kebijakan ini ditetapkan ke False, pengguna tidak akan dapat mengunci layar (hanya dapat logout dari sesi pengguna). Jika setelan ini ditetapkan ke True atau tidak ditetapkan, pengguna yang melakukan autentikasi dengan sandi dapat mengunci layar.</translation>
 <translation id="2731627323327011390">Menonaktifkan penggunaan sertifikat <ph name="PRODUCT_OS_NAME" /> untuk aplikasi ARC</translation>
 <translation id="2742843273354638707">Menyembunyikan aplikasi Chrome Webstore serta link footer dari Halaman Tab Baru dan peluncur aplikasi <ph name="PRODUCT_OS_NAME" />.
 
@@ -849,6 +949,9 @@
           Jika kebijakan ini tidak ditetapkan, atau ditetapkan ke False, kebijakan KDC akan diabaikan pada platform yang didukung dan hanya kebijakan 'AuthNegotiateDelegateWhitelist' yang dipatuhi.
 
           Di Windows, kebijakan KDC selalu dipatuhi.</translation>
+<translation id="283695852388224413">Jika kebijakan ini ditetapkan, panjang PIN maksimum yang konfigurasi akan diberlakukan. Nilai 0 atau lebih kecil berarti panjang maksimum tidak berlaku; dalam hal ini, pengguna dapat menetapkan panjang PIN sesuai yang diinginkan. Jika nilai setelan ini lebih kecil dari <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> tetapi lebih besar dari 0, panjang maksimum sama dengan panjang minimum.
+
+          Jika kebijakan ini tidak ditetapkan, tidak ada panjang maksimum yang diberlakukan.</translation>
 <translation id="2838830882081735096">Jangan izinkan migrasi data dan ARC</translation>
 <translation id="2839294585867804686">Pengaturan Berbagi File Jaringan</translation>
 <translation id="2840269525054388612">Menentukan printer yang dapat digunakan pengguna.
@@ -919,6 +1022,17 @@
       Jika kebijakan ini tidak disetel, <ph name="PRINTERS_ALLOW_ALL" /> akan diterapkan.
       </translation>
 <translation id="2908277604670530363">Jumlah maksimal sambungan serentak ke server proxy</translation>
+<translation id="2948463916588961959">Mengaktifkan paksa fitur pemeriksa ejaan bahasa. Bahasa yang tidak dikenal dalam daftar tersebut akan diabaikan.
+
+      Jika kebijakan ini diaktifkan, fitur pemeriksa ejaan akan diaktifkan untuk bahasa yang ditentukan, dan juga untuk bahasa yang fitur pemeriksa ejaannya telah diaktifkan oleh pengguna.
+
+      Jika kebijakan ini tidak ditetapkan, atau dinonaktifkan, tidak akan ada perubahan pada preferensi fitur pemeriksa ejaan pengguna.
+
+      Jika kebijakan SpellcheckEnabled ditetapkan ke nonaktif, kebijakan ini tidak akan berpengaruh.
+
+      Jika suatu bahasa dicakup dalam kebijakan ini dan juga kebijakan SpellcheckLanguageBlacklist, maka kebijakan ini diprioritaskan dan fitur pemeriksa ejaan bahasa akan diaktifkan.
+
+      Bahasa yang didukung saat ini adalah: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">Pembatasan:</translation>
 <translation id="2956777931324644324">Kebijakan ini dihentikan sejak <ph name="PRODUCT_NAME" /> versi 36.
 
@@ -927,9 +1041,11 @@
       Setelan ini digunakan untuk mengaktifkan ekstensi sertifikat terikat domain TLS untuk pengujian.  Setelan eksperimental ini akan dibuang di masa mendatang.</translation>
 <translation id="2957506574938329824">Jangan izinkan situs apa pun meminta akses ke perangkat Bluetooth melalui API Bluetooth Web</translation>
 <translation id="2957513448235202597">Jenis akun untuk autentikasi <ph name="HTTP_NEGOTIATE" /></translation>
+<translation id="2959469725686993410">Selalu kirim titik akses Wi-Fi ke server selagi menentukan zona waktu</translation>
 <translation id="2959898425599642200">Peraturan mengabaikan proxy</translation>
 <translation id="2960128438010718932">Jadwal persiapan untuk menerapkan update baru</translation>
 <translation id="2960691910306063964">Mengaktifkan atau menonaktifkan autentikasi tanpa PIN untuk host akses jarak jauh</translation>
+<translation id="2972261849442778817">Tanyakan kepada pengguna apakah mereka ingin melakukan migrasi, atau melewati migrasi dan melarang ARC.</translation>
 <translation id="2976002782221275500">Menentukan panjang waktu tanpa masukan pengguna sebelum layar meredup saat menggunakan daya baterai.
 
           Saat kebijakan ini desetel ke nilai lebih besar dari nol, kebijakan menentukan panjang waktu pengguna tetap menganggur sebelum <ph name="PRODUCT_OS_NAME" /> meredupkan layar.
@@ -939,12 +1055,25 @@
           Saat kebijakan ini tidak disetel, panjang waktu default akan digunakan.
 
           Nilai kebijakan harus ditentukan dalam milidetik. Nilai dijepit hingga kurang dari atau setara dengan penundaan mematikan layar (jika disetel) dan penundaan waktu menganggur.</translation>
+<translation id="2977997796833930843">Perhatikan bahwa kebijakan ini tidak digunakan lagi dan akan dihapus di masa mendatang.
+
+          Kebijakan ini memberikan nilai fallback untuk kebijakan <ph name="IDLE_ACTION_AC_POLICY_NAME" /> dan <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> yang lebih spesifik. Jika kebijakan ini ditetapkan, nilainya akan digunakan jika masing-masing kebijakan yang lebih spesifik tidak ditetapkan.
+
+          Jika kebijakan ini tidak ditetapkan, perilaku kebijakan yang lebih spesifik tetap tidak terpengaruh.</translation>
 <translation id="2987155890997901449">Aktifkan ARC</translation>
 <translation id="2987227569419001736">Mengontrol penggunaan API Bluetooth Web</translation>
 <translation id="3016255526521614822">Beri akses aplikasi pencatat yang diizinkan di layar kunci <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3021562480854470924">Jumlah rollback milestone diizinkan</translation>
 <translation id="3023572080620427845">URL file XML yang berisi URL yang akan dimuat di browser alternatif.</translation>
 <translation id="3030000825273123558">Aktifkan pelaporan metrik</translation>
+<translation id="3033660238345063904">Anda dapat menentukan URL server proxy di sini.
+
+          Kebijakan ini hanya berpengaruh jika Anda telah memilih setelan proxy manual pada 'Pilih cara menentukan setelan server proxy' dan jika kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> tidak ditentukan.
+
+          Sebaiknya biarkan kebijakan ini tidak ditetapkan jika Anda telah memilih mode lain untuk menetapkan kebijakan proxy.
+
+          Untuk opsi dan contoh mendetail lainnya, buka:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">Memungkinkan Anda menyetel apakah situs web diizinkan menjalankan JavaScript. Menjalankan JavaScript dapat diizinkan atau ditolak untuk semua situs web. Jika kebijakan ini tidak disetel, 'AllowJavaScript' akan digunakan dan pengguna dapat mengubahnya.</translation>
 <translation id="3038323923255997294">Terus jalankan aplikasi latar belakang saat <ph name="PRODUCT_NAME" /> ditutup</translation>
 <translation id="3046192273793919231">Kirim paket jaringan ke server pengelolaan untuk memantau status online</translation>
@@ -1001,10 +1130,18 @@
       Jika diaktifkan atau tidak disetel, Pembersih Chrome akan memindai sistem secara berkala untuk menemukan software yang tidak diinginkan, dan jika ditemukan, akan menanyakan kepada pengguna apakah ia ingin menghapusnya atau tidak. Pembersih Chrome dapat dipicu secara manual dari chrome://settings.
 
       Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
+<translation id="3152425128389603870">Membuat Desktop Terpadu tersedia dan aktif secara default</translation>
 <translation id="3159375329008977062">Pengguna diaktifkan untuk mengekspor/mengimpor container Crostini melalui UI</translation>
 <translation id="3165808775394012744">Kebijakan ini disertakan di sini untuk memudahkan penghapusannya.</translation>
 <translation id="316778957754360075">Setelan ini tidak lagi digunakan sejak <ph name="PRODUCT_NAME" /> versi 29. Cara yang disarankan untuk menyiapkan koleksi aplikasi/ekstensi yang dihosting organisasi adalah dengan menyertakan situs yang menghosting paket CRX di ExtensionInstallSources dan meletakkan link download langsung di paket dalam halaman web. Peluncur untuk halaman web tersebut dapat dibuat menggunakan kebijakan ExtensionInstallForcelist.</translation>
 <translation id="3171369832001535378">Template hostname jaringan perangkat</translation>
+<translation id="3172512016079904926">Mengaktifkan penginstalan host Native Messaging level pengguna.
+
+          Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> akan mengizinkan penggunaan host Native Messaging yang diinstal pada level pengguna.
+
+          Jika setelan ini dinonaktifkan, <ph name="PRODUCT_NAME" /> hanya akan menggunakan host Native Messaging yang diinstal pada level sistem.
+
+          Jika setelan ini tidak ditetapkan, <ph name="PRODUCT_NAME" /> akan mengizinkan penggunaan host Native Messaging pada level pengguna.</translation>
 <translation id="3185009703220253572">sejak versi <ph name="SINCE_VERSION" /></translation>
 <translation id="3187220842205194486">Aplikasi Android tidak bisa mendapat akses ke kunci perusahaan. Kebijakan ini tidak memengaruhinya.</translation>
 <translation id="3205825995289802549">Maksimalkan jendela browser pertama di percobaan pertama</translation>
@@ -1091,6 +1228,13 @@
       Jika setelan ini disetel Nonaktif atau tidak ada pilihan yang disetel, Mode Terbatas di YouTube tidak dapat diterapkan oleh <ph name="PRODUCT_NAME" />. Namun, kebijakan eksternal seperti kebijakan YouTube masih dapat menerapkan Mode Terbatas.</translation>
 <translation id="3428247105888806363">Aktifkan prediksi jaringan</translation>
 <translation id="3432863169147125747">Mengontrol setelan pencetakan.</translation>
+<translation id="3434932177006334880">Setelan ini dinamai EnableWebBasedSignin sebelum Chrome 42, dan dukungan untuk setelan ini akan dihapus sepenuhnya pada Chrome 43.
+
+      Setelan ini berguna bagi pelanggan perusahaan yang menggunakan solusi SSO yang belum kompatibel dengan alur login inline baru.
+      Jika setelan ini diaktifkan, alur login berbasis web yang lama akan digunakan.
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan, alur login inline baru akan digunakan secara default. Pengguna tetap dapat mengaktifkan alur login berbasis web yang lama melalui tanda command line --enable-web-based-signin.
+
+      Setelan eksperimental ini akan dihapus di masa mendatang setelah login inline mendukung sepenuhnya semua alur login SSO.</translation>
 <translation id="3437924696598384725">Izinkan pengguna mengelola koneksi VPN</translation>
 <translation id="3459509316159669723">Pencetakan</translation>
 <translation id="3460784402832014830">Menentukan URL yang digunakan oleh mesin telusur untuk memberikan halaman tab baru.
@@ -1110,6 +1254,11 @@
         Jika kebijakan ini disetel, <ph name="PRODUCT_NAME" /> akan mencoba mendaftar dan menerapkan kebijakan cloud yang terkait untuk semua profil.
 
         Nilai kebijakan ini adalah token Pendaftaran yang dapat diambil dari konsol Google Admin.</translation>
+<translation id="3489247539215560634">Jika setelan ini diaktifkan, pengguna dapat meminta <ph name="PRODUCT_NAME" /> untuk mengingat sandi dan otomatis mengisikannya saat mereka login lagi ke situs.
+
+          Jika setelan ini dinonaktifkan, pengguna tidak dapat menyimpan sandi baru, tetapi masih dapat menggunakan sandi yang telah disimpan sebelumnya.
+
+          Jika kebijakan ini diaktifkan atau dinonaktifkan, pengguna tidak dapat mengubah atau menggantinya di <ph name="PRODUCT_NAME" />. Jika kebijakan ini tidak ditetapkan, penyimpanan sandi diizinkan (tetapi dapat dinonaktifkan oleh pengguna).</translation>
 <translation id="3496296378755072552">Pengelola sandi</translation>
 <translation id="3500732098526756068">Mengizinkan Anda mengontrol pemicuan peringatan perlindungan sandi. Perlindungan sandi memperingatkan pengguna saat mereka menggunakan kembali sandi mereka yang dilindungi di situs yang berpotensi mencurigakan.
 
@@ -1128,6 +1277,11 @@
           Kebijakan ini hanya dipatuhi jika kebijakan 'DefaultSearchProviderEnabled' diaktifkan.</translation>
 <translation id="350797926066071931">Aktifkan Terjemahan</translation>
 <translation id="3512226956150568738">Jika model perangkat klien sudah mendukung ARC sebelum migrasi ke ext4 diperlukan untuk menjalankan ARC, dan jika kebijakan ArcEnabled disetel ke true, opsi ini akan berperilaku seperti AskUser (nilai 3). Pada semua kasus lainnya (jika sebelumnya model perangkat tidak mendukung ARC, atau jika kebijakan ArcEnabled disetel ke false), nilai ini setara dengan DisallowArc (nilai 0).</translation>
+<translation id="3513655665999652754">Quirks Server menyediakan file konfigurasi khusus hardware, seperti profil tampilan ICC untuk, menyesuaikan kalibrasi monitor.
+
+      Jika kebijakan ini ditetapkan ke False, perangkat tidak akan mencoba menghubungi Quirks Server untuk mendownload file konfigurasi.
+
+      Jika kebijakan ini ditetapkan ke True atau tidak dikonfigurasi, maka <ph name="PRODUCT_OS_NAME" /> akan otomatis menghubungi Quirks Server dan mendownload file konfigurasi, jika tersedia, dan menyimpannya di perangkat. File tersebut dapat digunakan, misalnya, untuk meningkatkan kualitas tampilan monitor yang ditambahkan.</translation>
 <translation id="3524204464536655762">Jangan izinkan situs apa pun meminta akses ke perangkat USB melalui WebUSB API</translation>
 <translation id="3526752951628474302">Khusus pencetakan monokrom</translation>
 <translation id="3528000905991875314">Mengaktifkan halaman kesalahan alternatif</translation>
@@ -1156,6 +1310,9 @@
       </translation>
 <translation id="3627678165642179114">Mengaktifkan atau menonaktifkan layanan web memeriksa ejaan</translation>
 <translation id="3628480121685794414">Aktifkan pencetakan simpleks</translation>
+<translation id="3631099945620529777">Jika ditetapkan ke False, tombol 'Akhiri proses' akan dinonaktifkan di Pengelola Tugas.
+
+      Jika ditetapkan ke True atau tidak dikonfigurasi, pengguna dapat mengakhiri proses di Pengelola Tugas.</translation>
 <translation id="3646859102161347133">Menyetel jenis lup</translation>
 <translation id="3653237928288822292">Ikon penyedia penelusuran default</translation>
 <translation id="3660510274595679517">
@@ -1170,6 +1327,7 @@
 <translation id="3709266154059827597">Konfigurasikan daftar penginstalan ekstensi yang tidak diizinkan</translation>
 <translation id="3711895659073496551">Tangguhkan</translation>
 <translation id="3715569262675717862">Autentikasi berdasarkan sertifikat klien</translation>
+<translation id="3734995764843493369">Sandi harus dimasukkan setiap hari (24 jam)</translation>
 <translation id="3736879847913515635">Mengaktifkan penambahan orang di pengelola pengguna</translation>
 <translation id="3738723882663496016">Kebijakan ini menetapkan kunci lisensi <ph name="PLUGIN_VM_NAME" /> untuk perangkat ini.</translation>
 <translation id="3748900290998155147">Menentukan apakah penguncian layar saat aktif diizinkan. Penguncian layar saat aktif dapat diminta dengan ekstensi melalui power management extension API dan dengan aplikasi ARC.
@@ -1178,6 +1336,9 @@
 
 Jika kebijakan ini disetel ke false, permintaan penguncian layar saat aktif akan diabaikan.</translation>
 <translation id="3750220015372671395">Blokir pembuatan kunci di situs ini</translation>
+<translation id="375266612405883748">Membatasi rentang port UDP yang digunakan oleh host akses jarak jauh di komputer ini.
+
+          Jika kebijakan ini tidak ditetapkan, atau ditetapkan ke string kosong, host akses jarak jauh akan diizinkan menggunakan port apa pun yang tersedia, kecuali jika kebijakan <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> dinonaktifkan, yang dalam hal ini host akses jarak jauh akan menggunakan port UDP dalam rentang 12400-12409.</translation>
 <translation id="3756011779061588474">Blokir mode pengembang</translation>
 <translation id="3758089716224084329">Memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan proxy.
 
@@ -1255,6 +1416,8 @@
           Nilai daftar hitam * menunjukkan bahwa semua hosting perpesanan asli dimasukkan dalam daftar hitam dan hanya hosting perpesanan asli yang tercantum dalam daftar putih yang akan dimuat.
 
           Secara default, semua hosting perpesanan asli dimasukkan dalam daftar putih, namun jika semua hosting perpesanan asli telah dimasukkan dalam daftar hitam sesuai dengan kebijakan, daftar putih dapat digunakan untuk menggantikan kebijakan tersebut.</translation>
+<translation id="3835692988507803626">Menonaktifkan paksa fitur pemeriksa ejaan bahasa</translation>
+<translation id="3837424079837455272">Kebijakan ini mengontrol apakah pengguna baru dapat ditambahkan ke <ph name="PRODUCT_OS_NAME" /> atau tidak. Kebijakan ini tidak mencegah pengguna login ke akun Google lain dalam Android. Jika Anda ingin mencegah tindakan ini, konfigurasikan kebijakan <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> khusus Android sebagai bagian dari <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="384743459174066962">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs yang tidak diizinkan untuk membuka pop-up. Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs baik dari kebijakan 'DefaultPopupsSetting', jika disetel, atau konfigurasi pribadi pengguna.</translation>
 <translation id="3851039766298741586">Laporkan informasi tentang sesi kios aktif, misalnya
       ID dan versi aplikasi.
@@ -1392,13 +1555,50 @@
           Nilai kebijakan harus ditetapkan dalam milidetik.</translation>
 <translation id="4105989332710272578">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar URL</translation>
 <translation id="4121350739760194865">Mencegah promosi apl muncul di halaman tab baru</translation>
+<translation id="4125606414556046117">Kebijakan ini memungkinkan Anda mengonfigurasi gambar wallpaper yang ditampilkan di desktop dan di latar belakang layar login untuk pengguna. Kebijakan ini ditetapkan dengan menentukan URL tempat <ph name="PRODUCT_OS_NAME" /> dapat mendownload gambar wallpaper dan hash kriptografi yang digunakan untuk memverifikasi integritas download. Gambar harus dalam format JPEG dan ukurannya tidak boleh lebih dari 16 MB. URL harus dapat diakses tanpa autentikasi apa pun.
+
+      Gambar wallpaper akan didownload dan disimpan di cache. Gambar akan didownload ulang setiap kali URL atau hash berubah.
+
+      Kebijakan ini harus ditentukan sebagai string yang menunjukkan URL dan hash dalam format JSON, yang sesuai dengan skema berikut:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "URL tempat gambar wallpaper dapat didownload.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "Hash SHA-256 dari gambar wallpaper.",
+            "type": "string"
+          }
+        }
+      }
+
+      Jika kebijakan ini ditetapkan, <ph name="PRODUCT_OS_NAME" /> akan mendownload dan menggunakan gambar wallpaper.
+
+      Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+      Jika kebijakan ini tidak ditetapkan, pengguna dapat memilih gambar yang akan ditampilkan di desktop dan di latar belakang layar login.</translation>
 <translation id="412697421478384751">Izinkan pengguna menyetel PIN lemah untuk PIN layar kunci</translation>
 <translation id="4138655880188755661">Batas Waktu</translation>
 <translation id="4150201353443180367">Tampilan</translation>
 <translation id="4157003184375321727">Laporkan versi OS dan firmware</translation>
 <translation id="4157594634940419685">Izinkan akses ke printer CUPS native</translation>
+<translation id="4163705126749612234">Mengonfigurasi nama domain klien wajib yang akan diberlakukan pada klien akses jarak jauh dan mencegah pengguna mengubahnya.
+
+          Jika setelan ini diaktifkan, maka hanya klien dari salah satu domain yang ditentukan yang dapat tersambung ke host.
+
+          Jika setelan ini dinonaktifkan atau tidak ditetapkan, maka kebijakan default untuk jenis sambungan ini akan diterapkan. Untuk bantuan jarak jauh, setelan ini memungkinkan klien dari domain mana pun tersambung ke host; untuk akses jarak jauh kapan saja, hanya pemilik host yang dapat tersambung.
+
+          Setelan ini akan menggantikan RemoteAccessHostClientDomain, jika tersedia.
+
+          Lihat juga RemoteAccessHostDomainList.</translation>
 <translation id="4183229833636799228">Setelan <ph name="FLASH_PLUGIN_NAME" /> default</translation>
 <translation id="4192388905594723944">URL untuk memvalidasi token autentikasi klien akses jarak jauh</translation>
+<translation id="4197038214024763371">Jika kebijakan ini tidak ditetapkan atau diaktifkan, pengguna diizinkan menggunakan fitur pemeriksa ejaan.
+
+      Jika kebijakan ini dinonaktifkan, pengguna tidak diizinkan menggunakan fitur pemeriksa ejaan. Kebijakan SpellcheckLanguage dan SpellcheckLanguageBlacklist juga akan diabaikan jika kebijakan ini dinonaktifkan.
+      </translation>
 <translation id="4203389617541558220">Membatasi waktu operasi perangkat dengan menjadwalkan mulai ulang otomatis.
 
       Saat kebijakan ini disetel, kebijakan ini menentukan panjang waktu operasi perangkat setelah mulai ulang otomatis dijadwalkan.
@@ -1420,6 +1620,13 @@
 <translation id="423797045246308574">Memungkinkan Anda menyetel daftar pola URL guna menentukan situs yang diizinkan untuk menggunakan pembuatan kunci. Jika pola URL ada di dalam 'KeygenAllowedForUrls', maka kebijakan ini akan mengganti pengecualian ini.
 
           Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs dari kebijakan 'DefaultKeygenSetting' jika disetel, atau dari konfigurasi pribadi pengguna.</translation>
+<translation id="4238997902172035160">Mengonfigurasi direktori yang akan digunakan <ph name="PRODUCT_NAME" /> untuk menyimpan salinan roaming profil.
+
+      Jika kebijakan ini ditetapkan, <ph name="PRODUCT_NAME" /> akan menggunakan direktori yang tersedia untuk menyimpan salinan roaming profil jika kebijakan <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> diaktifkan. Jika kebijakan <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> dinonaktifkan atau tidak ditetapkan, nilai yang tersimpan dalam kebijakan ini tidak digunakan.
+
+      Buka https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables untuk melihat daftar variabel yang dapat digunakan.
+
+      Jika kebijakan ini tidak ditetapkan, jalur profil roaming default akan digunakan.</translation>
 <translation id="4239720644496144453">Cache tidak digunakan untuk aplikasi Android. Jika beberapa pengguna memasang aplikasi Android yang sama, aplikasi akan didownload lagi untuk setiap pengguna.</translation>
 <translation id="4243336580717651045">Mengaktifkan pengumpulan data anonim yang menyertakan URL di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan ini.
 
@@ -1474,6 +1681,9 @@
       Gunakan karakter pengganti '*' untuk mencocokkan nol atau lebih karakter arbitrer. Karakter escape adalah '\', jadi untuk mencocokkan karakter '*' atau '\' yang sebenarnya, tempatkan '\' di depannya.
 
       Jika kebijakan ini tidak disetel, semua akun Google di perangkat akan terlihat di <ph name="PRODUCT_NAME" />.</translation>
+<translation id="4360826270668210664">Jika kebijakan ini ditetapkan, host akses jarak jauh akan mewajibkan autentikasi klien untuk memperoleh token autentikasi dari URL ini agar dapat tersambung. Harus digunakan bersama RemoteAccessHostTokenValidationUrl.
+
+          Fitur ini saat ini dinonaktifkan pada sistem server.</translation>
 <translation id="436581050240847513">Melaporkan antarmuka jaringan perangkat</translation>
 <translation id="4372704773119750918">Jangan izinkan pengguna perusahaan untuk menjadi bagian dari multiprofil (primer atau sekunder)</translation>
 <translation id="4377599627073874279">Izinkan semua situs menampilkan semua gambar</translation>
@@ -1483,6 +1693,9 @@
 <translation id="4408428864159735559">Daftar berbagi file jaringan yang telah dikonfigurasikan sebelumnya.</translation>
 <translation id="4410236409016356088">Aktifkan pembatasan bandwidth jaringan</translation>
 <translation id="441217499641439905">Nonaktifkan Google Drive melalui koneksi seluler di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="4415603335307944578">Jika kebijakan ini ditetapkan ke True atau tidak dikonfigurasi, browser akan menampilkan kembali halaman sambutan saat diluncurkan pertama kali setelah upgrade OS.
+
+      Jika kebijakan ini ditetapkan ke False, browser tidak akan menampilkan kembali halaman sambutan saat diluncurkan pertama kali setelah upgrade OS.</translation>
 <translation id="4418726081189202489">Menyetel kebijakan ini ke false akan menghentikan <ph name="PRODUCT_NAME" /> yang terkadang mengirim kueri ke server Google, untuk mengambil stempel waktu yang akurat. Kueri ini akan diaktifkan jika kebijakan disetel ke True atau tidak disetel.</translation>
 <translation id="4423597592074154136">Tentukan setelan proxy secara manual</translation>
 <translation id="4429220551923452215">Mengaktifkan atau menonaktifkan pintasan aplikasi di bilah bookmark.
@@ -1560,11 +1773,25 @@
 <translation id="4557134566541205630">URL halaman tab baru penyedia penelusuran default</translation>
 <translation id="4567137030726189378">Izinkan penggunaan Developer Tools</translation>
 <translation id="4578265298946081589">Jangan reboot saat pengguna logout.</translation>
+<translation id="4578912515887794133">Jika setelan ini diaktifkan, maka host akses jarak jauh akan membandingkan nama pengguna lokal (yang dikaitkan dengan host) dengan nama akun Google yang terdaftar sebagai pemilik host (misalnya, "johndoe" jika host adalah milik akun Google "johndoe@example.com").  Host akses jarak jauh tidak akan dimulai jika nama pemilik host berbeda dengan nama pengguna lokal yang dikaitkan dengan host tersebut.  Kebijakan RemoteAccessHostMatchUsername harus digunakan bersama RemoteAccessHostDomain untuk menegaskan bahwa akun Google pemilik host dikaitkan dengan domain tertentu (misalnya "example.com").
+
+          Jika setelan ini dinonaktifkan atau tidak ditetapkan, host akses jarak jauh dapat dikaitkan dengan pengguna lokal mana pun.</translation>
 <translation id="4600786265870346112">Aktifkan kursor besar</translation>
 <translation id="4604931264910482931">Konfigurasikan daftar hitam perpesanan asli</translation>
 <translation id="4613508646038788144">Jika kebijakan disetel ke false, maka software pihak ketiga akan diizinkan untuk melakukan injeksi kode yang dapat dieksekusi ke dalam proses Chrome. Jika kebijakan tidak disetel atau disetel ke true, maka software pihak ketiga akan dicegah melakukan injeksi kode yang dapat dieksekusi ke dalam proses Chrome.</translation>
 <translation id="4617338332148204752">Lewati pemeriksaan tag meta pada <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">Mengonfigurasi daftar putih pemasangan ekstensi</translation>
+<translation id="463224920692183755">Menentukan tindakan yang harus diambil jika direktori beranda pengguna dibuat dengan enkripsi ecryptfs dan perlu dialihkan ke enkripsi ext4.
+
+      Jika kebijakan ini ditetapkan ke 'DisallowArc', aplikasi Android akan dinonaktifkan untuk pengguna dan migrasi dari enkripsi ecryptfs ke ext4 tidak akan dijalankan. Aplikasi Android tidak akan dicegah berjalan jika direktori beranda telah dienkripsi dengan ext4.
+
+      Jika kebijakan ini ditetapkan ke 'Migrate', direktori beranda yang dienkripsi dengan ecryptfs akan otomatis dimigrasikan ke enkripsi ext4 saat login tanpa meminta persetujuan pengguna.
+
+      Jika kebijakan ini ditetapkan ke 'Wipe', direktori beranda yang dienkripsi dengan ecryptfs akan dihapus saat login dan direktori beranda dengan enkripsi ext4 akan dibuat. Peringatan: Tindakan ini akan menghapus data lokal pengguna.
+
+      Jika kebijakan ini ditetapkan ke 'AskUser', pengguna dengan direktori beranda yang dienkripsi ecryptfs akan ditawari untuk migrasi.
+
+      Kebijakan ini tidak berlaku untuk pengguna kios. Jika kebijakan ini tidak ditetapkan, perangkat akan bertindak seolah-olah 'DisallowArc' dipilih.</translation>
 <translation id="4632343302005518762">Izinkan <ph name="PRODUCT_FRAME_NAME" /> menangani jenis konten yang tercantum</translation>
 <translation id="4632566332417930481">Larang penggunaan Developer Tools pada ekstensi yang diinstal oleh kebijakan perusahaan, izinkan penggunaan Developer Tools dalam konteks lainnya</translation>
 <translation id="4633786464238689684">Mengubah perilaku default tombol baris teratas ke tombol fungsi.
@@ -1675,11 +1902,47 @@
 <translation id="4986560318567565414">Jalur ke Chrome untuk beralih dari browser alternatif.</translation>
 <translation id="4988291787868618635">Tindakan yang akan diambil saat penundaan waktu menganggur tercapai</translation>
 <translation id="4995548127349206948">Apakah autentikasi NTLMv2 diaktifkan atau tidak.</translation>
+<translation id="5030889661505907084">
+      Jika kebijakan ini ditetapkan ke True, kebijakan cloud akan lebih diutamakan jika terjadi bentrok dengan kebijakan platform.
+      Jika kebijakan ini ditetapkan ke False atau tidak dikonfigurasi, kebijakan platform akan lebih diutamakan jika terjadi bentrok dengan kebijakan cloud.
+
+      Kebijakan ini hanya tersedia sebagai platform.
+      </translation>
 <translation id="5047604665028708335">Memungkinkan akses ke situs di luar paket konten</translation>
 <translation id="5052081091120171147">Kebijakan ini memaksa histori browseran diimpor dari browser default saat ini, jika diaktifkan. Jika diaktifkan, kebijakan ini juga memengaruhi dialog impor. Jika dinonaktifkan, tidak ada histori browseran yang diimpor. Jika tidak disetel, pengguna mungkin ditanya apakah akan mengimpor, atau pengimporan dapat terjadi secara otomatis.</translation>
+<translation id="5055312535952606505">Mengonfigurasi setelan proxy untuk <ph name="PRODUCT_NAME" />. Setelan proxy ini juga akan tersedia untuk aplikasi ARC.
+
+          Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> dan aplikasi ARC akan mengabaikan semua opsi terkait proxy yang ditentukan dari command line.
+
+          Jika kebijakan ini tidak ditetapkan, pengguna dapat memilih sendiri setelan proxy.
+
+          Jika ditetapkan, kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> akan menggantikan setiap kebijakan <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> dan <ph name="PROXY_SERVER_MODE_POLICY_NAME" />.
+
+          Kolom <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan proxy.
+
+          Kolom <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> adalah URL untuk file .pac proxy.
+
+          Kolom <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> adalah URL server proxy.
+
+          Kolom <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> adalah daftar host proxy yang akan diabaikan oleh <ph name="PRODUCT_NAME" />.
+
+          Kolom <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> tidak digunakan lagi guna mendukung kolom 'ProxyMode'. Kolom ini memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengganti setelan proxy.
+
+          Jika Anda memilih nilai 'direct' sebagai 'ProxyMode', proxy tidak akan digunakan dan semua kolom lain akan diabaikan.
+
+          Jika Anda memilih nilai 'system' sebagai 'ProxyMode', proxy sistem akan digunakan dan semua kolom lain akan diabaikan.
+
+          Jika Anda memilih nilai 'auto_detect' sebagai 'ProxyMode', semua kolom lain akan diabaikan.
+
+          Jika Anda memilih nilai 'fixed_server' sebagai 'ProxyMode', kolom 'ProxyServer' dan 'ProxyBypassList' akan digunakan.
+
+          Jika Anda memilih nilai 'pac_script' sebagai 'ProxyMode', kolom 'ProxyPacUrl' dan 'ProxyBypassList' akan digunakan.</translation>
 <translation id="5056708224511062314">Lup dinonaktifkan</translation>
 <translation id="5058573563327660283">Pilih strategi yang digunakan untuk mengosongkan ruang disk selama pembersihan otomatis (tidak digunakan lagi)</translation>
 <translation id="5067143124345820993">Daftar putih pengguna masuk</translation>
+<translation id="5075834892754086022">Jika kebijakan ini ditetapkan, panjang PIN minimum yang dikonfigurasi akan diberlakukan. (Panjang PIN minimum absolut adalah 1; nilai kurang dari 1 tetap dianggap sebagai 1.)
+
+          Jika kebijakan ini tidak ditetapkan, PIN dengan panjang minimum 6 digit akan diberlakukan. Ini adalah panjang minimum yang direkomendasikan.</translation>
 <translation id="5076274878326940940">Mengaktifkan penggunaan penyedia penelusuran default.
 
           Jika Anda mengaktifkan setelan ini, penelusuran default dilakukan saat pengguna mengetikkan teks di omnibox yang bukan merupakan URL.
@@ -1732,6 +1995,24 @@
       minimumnya adalah 30 detik dan interval maksimumnya adalah 24 jam -
       nilai di luar rentang ini akan dimasukkan ke rentang ini.</translation>
 <translation id="5163002264923337812">Aktifkan alur login berbasis web lama</translation>
+<translation id="5168529971295111207">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan ProxyMode.
+
+          Memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan proxy.
+
+          Kebijakan ini hanya berpengaruh jika kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> tidak ditentukan.
+
+          Jika Anda memilih untuk tidak menggunakan server proxy dan selalu tersambung secara langsung, semua opsi lainnya akan diabaikan.
+
+          Jika Anda memilih untuk menggunakan setelan proxy sistem atau otomatis mendeteksi server proxy, semua opsi lainnya akan diabaikan.
+
+          Jika memilih setelan proxy manual, Anda dapat menentukan opsi lanjutan di 'Alamat atau URL server proxy', 'URL ke file .pac proxy', dan 'Daftar aturan pengabaian proxy yang dipisahkan koma'. Hanya server proxy HTTP dengan prioritas tertinggi yang tersedia untuk aplikasi ARC.
+
+          Untuk contoh mendetail, buka:
+          <ph name="PROXY_HELP_URL" />.
+
+          Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> akan mengabaikan semua opsi terkait proxy yang ditentukan dari command line.
+
+          Jika kebijakan ini tidak ditetapkan, pengguna dapat memilih sendiri setelan proxy.</translation>
 <translation id="5182055907976889880">Konfigurasi Google Drive di <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="5183383917553127163">Memungkinkan Anda menentukan ekstensi mana yang tidak masuk daftar hitam. Nilai daftar hitam * berarti semua ekstensi dimasukkan ke daftar hitam dan pengguna hanya dapat memasang ekstensi yang tercantum dalam daftar putih. Jika tidak diubah, semua ekstensi dimasukkan ke daftar putih, tetapi jika semua ekstensi telah dimasukkan ke daftar hitam karena kebijakan, daftar putih dapat digunakan untuk mengesampingkan kebijakan tersebut.</translation>
 <translation id="519247340330463721">Mengonfigurasi kebijakan terkait Safe Browsing.</translation>
@@ -1768,6 +2049,20 @@
 
       Kebijakan ini ditentukan dalam milidetik.</translation>
 <translation id="523505283826916779">Setelan aksesibilitas</translation>
+<translation id="5236882091572996759">Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, pengguna tidak dianggap menganggur selama audio diputar. Hal ini mencegah tercapainya waktu tunggu menganggur dan mencegah diambilnya tindakan menganggur. Namun, peredupan layar, penonaktifan layar, dan penguncian layar akan dilakukan setelah waktu tunggu yang dikonfigurasi tercapai, tanpa mempertimbangkan aktivitas audio.
+
+          Jika kebijakan ini ditetapkan ke False, aktivitas audio tidak mencegah pengguna untuk dianggap menganggur.</translation>
+<translation id="5246700266104954355">Kebijakan ini tidak digunakan lagi. Gunakan kebijakan <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> untuk mengontrol ketersediaan plugin Flash dan <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> untuk mengontrol apakah penampil PDF terintegrasi akan digunakan untuk membuka file PDF atau tidak.
+
+      Menentukan daftar plugin yang diaktifkan di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan ini.
+
+      Karakter pengganti '*' dan '?' dapat digunakan untuk mencocokkan urutan karakter arbitrer. Karakter '*' mencocokkan sembarang jumlah karakter, sedangkan '?' menentukan karakter tunggal opsional, misalnya, mencocokkan karakter nol atau satu. Karakter escape adalah '\', jadi untuk mencocokkan karakter '*', '?', atau '\' yang sebenarnya, Anda dapat menempatkan '\' di depannya.
+
+      Daftar plugin yang ditentukan akan selalu digunakan di <ph name="PRODUCT_NAME" /> jika plugin tersebut diinstal. Plugin ditandai aktif pada 'about:plugins' dan pengguna tidak dapat menonaktifkannya.
+
+      Perhatikan bahwa kebijakan ini mengganti DisabledPlugins dan DisabledPluginsExceptions.
+
+      Jika kebijakan ini tidak ditetapkan, pengguna dapat menonaktifkan plugin apa pun yang diinstal pada sistem.</translation>
 <translation id="5247006254130721952">Blokir download yang berbahaya</translation>
 <translation id="5248863213023520115">Menyetel jenis enkripsi yang diizinkan saat meminta tiket Kerberos dari server <ph name="MS_AD_NAME" />.
 
@@ -1816,6 +2111,7 @@
 
       Jika kebijakan ini dikonfigurasi, produk dapat ditetapkan ke salah satu nilai berikut: "tls1.2" atau "tls1.3". Setelah ditetapkan, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih baru daripada versi yang ditentukan. Nilai yang tidak dikenal akan diabaikan.</translation>
 <translation id="5330684698007383292">Izinkan <ph name="PRODUCT_FRAME_NAME" /> menangani jenis konten berikut</translation>
+<translation id="5331746669335642668">Kebijakan cloud <ph name="PRODUCT_NAME" /> menggantikan kebijakan Platform.</translation>
 <translation id="5365476955714838841">Parameter baris perintah untuk browser alternatif.</translation>
 <translation id="5365946944967967336">Tampilkan tombol Layar Utama di toolbar</translation>
 <translation id="5366745336748853475">Memungkinkan Anda menentukan daftar pola URL yang menetapkan situs tempat sertifikat klien dipilih otomatis pada layar login dalam bingkai yang menjadi host alur SAML, jika situs meminta sertifikat. Contoh penggunaan adalah mengonfigurasi sertifikat tingkat perangkat untuk dimunculkan ke SAML IdP.
@@ -1855,10 +2151,20 @@
 <translation id="5405289061476885481">Mengonfigurasi tata letak keyboard yang diizinkan di layar login <ph name="PRODUCT_OS_NAME" />.
 
       Jika kebijakan ini disetel ke daftar pengenal metode masukan, metode masukan yang diberikan akan tersedia di layar login. Metode masukan yang diberikan pertama telah dipilih sebelumnya. Sementara pod pengguna difokuskan pada layar login, metode masukan yang terakhir kali digunakan oleh pengguna akan tersedia, selain dari metode masukan yang diberikan oleh kebijakan ini. Jika kebijakan ini tidak disetel, metode masukan pada layar login akan diambil dari lokal yang menampilkan layar login. Pengenal metode masukan akan mengabaikan nilai yang tidak valid.</translation>
+<translation id="5412057811596122582">Jika diaktifkan atau tidak dikonfigurasi (default), pengguna akan dimintai akses perekaman audio kecuali untuk URL yang dikonfigurasi dalam daftar AudioCaptureAllowedUrls, yang akan diberi akses tanpa diminta.
+
+      Jika kebijakan ini dinonaktifkan, pengguna tidak akan dimintai akses dan perekaman audio hanya tersedia untuk URL yang dikonfigurasi di AudioCaptureAllowedUrls.
+
+      Kebijakan ini memengaruhi semua jenis input audio, tidak hanya mikrofon bawaan.</translation>
 <translation id="5422643441807528365">Kunci lisensi <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423001109873148185">Kebijakan ini memaksa mesin telusur untuk diimpor dari browser default yang digunakan, jika diaktifkan. Jika diaktifkan, kebijakan ini juga memengaruhi dialog impor. Jika dinonaktifkan, mesin telusur default tidak diimpor. Jika tidak disetel, pengguna mungkin akan ditanya apakah ingin mengimpor, atau pengimporan dapat terjadi secara otomatis.</translation>
 <translation id="5423197884968724595">Nama batasan Android WebView:</translation>
 <translation id="5424147596523390018">Izinkan semua mode warna</translation>
+<translation id="5437733496511628148">Jika setelan ini diaktifkan, elemen halaman tidak diizinkan menyetel cookie yang tidak berasal dari domain yang tercantum di kolom URL browser.
+
+      Jika setelan ini dinonaktifkan, elemen halaman diizinkan menyetel cookie yang tidak berasal dari domain yang tercantum di kolom URL browser dan pengguna tidak dapat mengubah setelan ini.
+
+      Jika kebijakan ini tidak ditetapkan, cookie pihak ketiga akan diaktifkan, tetapi pengguna dapat mengubahnya.</translation>
 <translation id="5442026853063570579">Kebijakan ini juga mengontrol akses ke Opsi Developer Android. Jika Anda menetapkan kebijakan ini ke 'DeveloperToolsDisallowed' (nilai 2), pengguna tidak dapat mengakses Opsi Developer. Jika Anda menetapkan kebijakan ini ke nilai lain atau tidak menetapkannya, pengguna dapat mengakses Opsi Developer dengan menge-tap nomor build di aplikasi setelan Android sebanyak 7 kali.</translation>
 <translation id="544342220587994947">Mengizinkan Anda menentukan daftar pola URL yang menetapkan situs tempat <ph name="PRODUCT_NAME" /> akan memilih sertifikat klien secara otomatis, jika situs meminta sertifikat.
 
@@ -1885,6 +2191,19 @@
       Jika aturan bentrok satu sama lain, <ph name="PRODUCT_NAME" /> akan menggunakan aturan yang paling spesifik.</translation>
 <translation id="5475361623548884387">Aktifkan pencetakan</translation>
 <translation id="547601067149622666">Jangan izinkan iklan di situs yang menayangkan iklan mengganggu</translation>
+<translation id="5483777239978559943">Kebijakan ini tidak digunakan lagi. Gunakan kebijakan <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> untuk mengontrol ketersediaan plugin Flash dan <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> untuk mengontrol apakah penampil PDF terintegrasi akan digunakan untuk membuka file PDF atau tidak.
+
+      Menentukan daftar plugin yang dapat diaktifkan atau dinonaktifkan pengguna di <ph name="PRODUCT_NAME" />.
+
+      Karakter pengganti '*' dan '?' dapat digunakan untuk mencocokkan urutan karakter sembarang. Karakter '*' mencocokkan sembarang jumlah karakter, sedangkan '?' menentukan karakter tunggal opsional, misalnya, mencocokkan karakter nol atau satu. Karakter escape adalah '\', jadi untuk mencocokkan karakter '*', '?', atau '\' yang sebenarnya, Anda dapat menempatkan '\' di depannya.
+
+      Jika setelan ini diaktifkan, daftar plugin yang ditentukan akan dapat digunakan di <ph name="PRODUCT_NAME" />. Pengguna dapat mengaktifkan atau menonaktifkannya pada 'about:plugins', meskipun plugin tersebut juga cocok dengan pola pada DisabledPlugins. Pengguna juga dapat mengaktifkan dan menonaktifkan plugin yang tidak cocok dengan pola apa pun pada DisabledPlugins, DisabledPluginsExceptions, dan EnabledPlugins.
+
+      Kebijakan ini dimaksudkan untuk memungkinkan penyusunan daftar plugin tidak diizinkan yang ketat, di mana daftar 'DisabledPlugins' memuat entri berkarakter pengganti seperti nonaktifkan semua plugin '*' atau nonaktifkan semua plugin Java '*Java*', tetapi administrator ingin mengaktifkan beberapa versi tertentu seperti 'IcedTea Java 2.3'. Versi tertentu ini dapat ditetapkan dalam kebijakan ini.
+
+      Perhatikan bahwa baik nama plugin maupun nama grup plugin harus dikecualikan. Setiap grup plugin ditampilkan di bagian terpisah pada about:plugins; setiap bagian dapat memiliki satu atau beberapa plugin. Misalnya, plugin "Shockwave Flash" termasuk dalam grup "Adobe Flash Player", dan kedua nama tersebut perlu memiliki kecocokan dalam daftar pengecualian agar plugin tersebut dapat dikecualikan dari daftar tidak diizinkan.
+
+      Jika kebijakan ini tidak ditetapkan, semua plugin yang cocok dengan pola pada 'DisabledPlugins' akan dikunci sebagai nonaktif dan pengguna tidak akan dapat mengaktifkannya.</translation>
 <translation id="5499375345075963939">Kebijakan ini hanya aktif pada mode ritel.
 
       Saat nilai kebijakan ini disetel dan tidak 0, maka pengguna demo yang saat ini telah masuk akan dikeluarkan secara otomatis setelah waktu tidak aktif selama durasi yang ditentukan telah habis.
@@ -1920,6 +2239,13 @@
       Jika tidak ditentukan, tidak akan mengubah URL bibit Variasi.</translation>
 <translation id="5561811616825571914">Memilih sertifikat klien untuk situs ini secara otomatis di layar login</translation>
 <translation id="5566210228171064229">Izinkan pencetakan dengan dan tanpa PIN</translation>
+<translation id="556865034069957245">Kebijakan ini mengontrol ketersediaan mode layar penuh di mana semua UI <ph name="PRODUCT_NAME" /> disembunyikan dan hanya konten web yang terlihat.
+
+      Jika kebijakan ini ditetapkan ke True atau tidak dikonfigurasi, pengguna, aplikasi, dan ekstensi dengan izin yang sesuai dapat memasuki mode layar penuh.
+
+      Jika kebijakan ini ditetapkan ke False, tidak ada pengguna, aplikasi, atau ekstensi yang dapat memasuki mode layar penuh.
+
+      Di semua platform kecuali <ph name="PRODUCT_OS_NAME" />, mode kios tidak tersedia saat mode layar penuh dinonaktifkan.</translation>
 <translation id="556941986578702361">Mengontrol rak <ph name="PRODUCT_OS_NAME" /> sembunyi otomatis.
 
       Jika kebijakan ini disetel ke 'AlwaysAutoHideShelf', rak akan selalu bersembunyi secara otomatis.
@@ -1937,6 +2263,11 @@
 <translation id="5581292529942108810">Konfigurasi kebijakan terkait Ekstensi Pelaporan Chrome.
 
       Kebijakan ini hanya berlaku jika <ph name="CHROME_REPORTING_EXTENSION_NAME" /> diaktifkan, dan mesin didaftarkan ke <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
+<translation id="5583806683960333345">Jika setelan ini diaktifkan, pengguna akan diizinkan menggunakan Tethering Instan, yang membuat ponsel Google mereka dapat membagikan kuota internetnya dengan perangkat mereka.
+
+      Jika setelan ini dinonaktifkan, pengguna tidak akan diizinkan untuk menggunakan Tethering Instan.
+
+      Jika kebijakan ini tidak ditetapkan, tindakan defaultnya adalah tidak diizinkan untuk pengguna yang dikelola perusahaan dan diizinkan untuk pengguna yang tidak dikelola.</translation>
 <translation id="5584132346604748282">Mengontrol layanan lokasi Google di Android</translation>
 <translation id="5586942249556966598">Tidak melakukan apa-apa</translation>
 <translation id="5590494712401018042">Menentukan persentase yang digunakan untuk menskalakan penundaan redup layar ketika perangkat dalam mode presentasi.
@@ -1962,6 +2293,19 @@
       CATATAN: Kebijakan ini hanya berlaku untuk Chrome di Android yang berjalan di perangkat dengan RAM harus lebih dari 1 GB. Untuk menerapkan kebijakan di platform non-Android, gunakan IsolateOrigins.
       </translation>
 <translation id="5599461642204007579">Setelan pengelolaan <ph name="MS_AD_NAME" /></translation>
+<translation id="5610104657949692379">Jika ditetapkan, kebijakan ini menentukan tindakan yang diambil <ph name="PRODUCT_OS_NAME" /> saat pengguna tetap menganggur selama durasi waktu yang ditentukan oleh penundaan menganggur, yang dapat dikonfigurasi secara terpisah.
+
+          Jika tidak ditetapkan, tindakan default akan diambil, yaitu suspend (tangguhkan).
+
+          Jika tindakannya adalah suspend, <ph name="PRODUCT_OS_NAME" /> dapat dikonfigurasi secara terpisah untuk mengunci atau tidak mengunci layar sebelum menangguhkan.</translation>
+<translation id="5618398258385745432">Setelan yang terkait digunakan sebelum autentikasi ulang pada melihat sandi diperkenalkan. Sejak saat itu, setelan dan kebijakan ini tidak berpengaruh pada perilaku Chrome. Perilaku Chrome saat ini sama seperti saat kebijakan ini ditetapkan untuk tidak menampilkan sandi dalam teks jelas di halaman setelan pengelola sandi. Artinya, halaman setelan hanya memuat placeholder, dan Chrome hanya akan menampilkan sandi setelah pengguna mengklik "Tampilkan" (dan mengautentikasi ulang, jika berlaku). Deskripsi asli untuk kebijakan ini tercantum di bawah.
+
+          Mengontrol apakah pengguna dapat melihat sandi dalam teks jelas di pengelola sandi atau tidak.
+
+          Jika setelan ini dinonaktifkan, pengelola sandi tidak mengizinkan sandi yang disimpan untuk ditampilkan dalam teks jelas di jendela pengelola sandi.
+
+          Jika kebijakan ini diaktifkan atau tidak ditetapkan, pengguna dapat melihat sandi dalam teks jelas di pengelola sandi.</translation>
+<translation id="5620392548325769024">Mengaktifkan menampilkan halaman sambutan saat browser pertama kali diluncurkan setelah upgrade OS</translation>
 <translation id="5630352020869108293">Mengembalikan sesi terakhir</translation>
 <translation id="5645779841392247734">Izinkan cookie di situs ini</translation>
 <translation id="5689430183304951538">Ukuran halaman pencetakan default</translation>
@@ -1985,6 +2329,7 @@
       Jika kebijakan ini ditetapkan ke true atau tidak ditetapkan, sesi tamu terkelola akan melakukan perilaku "Sesi Terkelola" yang menghapus banyak batasan yang diterapkan untuk "Sesi Publik" reguler.
 
       Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.</translation>
+<translation id="5708969689202733975">Mengonfigurasi mode buka kunci cepat yang diizinkan</translation>
 <translation id="572155275267014074">Setelan Android</translation>
 <translation id="5722934961007828462">Saat setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> akan selalu melakukan pemeriksaan pembatalan untuk sertifikat server yang berhasil memvalidasi dan masuk dengan sertifikat CA yang dipasang secara lokal.
 
@@ -1993,6 +2338,11 @@
       Jika kebijakan tidak disetel, atau disetel ke false, <ph name="PRODUCT_NAME" /> akan menggunakan setelan pemeriksaan pembatalan online yang ada.</translation>
 <translation id="5728154254076636808">Mengaktifkan pembuatan salinan roaming untuk data profil <ph name="PRODUCT_NAME" /></translation>
 <translation id="5732972008943405952">Mengimpor data formulir isi-otomatis dari browser default saat pertama kali dijalankan</translation>
+<translation id="5741810844420698449">Jika ditetapkan, kebijakan ini akan menentukan tindakan yang diambil <ph name="PRODUCT_OS_NAME" /> saat pengguna menutup penutup perangkat.
+
+          Jika tidak ditetapkan, tindakan default akan diambil, yaitu suspend (tangguhkan).
+
+          Jika tindakannya adalah suspend, <ph name="PRODUCT_OS_NAME" /> dapat dikonfigurasi secara terpisah untuk mengunci atau tidak mengunci layar sebelum menangguhkan.</translation>
 <translation id="5765780083710877561">Deskripsi:</translation>
 <translation id="5770738360657678870">Saluran pengembang (mungkin tidak stabil)</translation>
 <translation id="5774856474228476867">URL penelusuran penyedia penelusuran default</translation>
@@ -2181,6 +2531,7 @@
 <translation id="6111936128861357925">Izinkan Game Dinosaur Easter Egg</translation>
 <translation id="6114416803310251055">tak lagi digunakan</translation>
 <translation id="6133088669883929098">Izinkan semua situs menggunakan pembuatan kunci</translation>
+<translation id="6141402445226505817">Selalu gunakan deteksi perkiraan kasar zona waktu</translation>
 <translation id="6145799962557135888">Memungkinkan Anda menyetel daftar pola url yang menentukan situs yang tidak diizinkan untuk menjalankan JavaScript. Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultJavaScriptSetting', jika disetel, ataupun dari konfigurasi pribadi pengguna.</translation>
 <translation id="614662973812186053">Kebijakan ini juga mengontrol pengumpulan data diagnostik dan penggunaan Android.</translation>
 <translation id="6153048425064249648">Kebijakan ini mengontrol pelaporan cloud <ph name="PRODUCT_NAME" /> yang mengupload informasi tentang operasi browser ke konsol Google Admin.
@@ -2196,6 +2547,15 @@
 <translation id="6155936611791017817">Setel status default kursor besar di layar masuk</translation>
 <translation id="6157537876488211233">Peraturan mengabaikan proxy yang dipisahkan koma</translation>
 <translation id="6158324314836466367">Nama toko web perusahaan (tidak digunakan)</translation>
+<translation id="6158817306788002298">Anda dapat menentukan URL ke file .pac proxy di sini.
+
+          Kebijakan ini hanya berpengaruh jika Anda telah memilih setelan proxy manual pada 'Pilih cara menentukan setelan server proxy' dan jika kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> tidak ditentukan.
+
+          Sebaiknya biarkan kebijakan ini tidak ditetapkan jika Anda telah memilih mode lain untuk menetapkan kebijakan proxy.
+
+          Untuk contoh mendetail, buka:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="6178075938488052838">Kebijakan ini mengontrol siapa yang dapat memulai sesi <ph name="PRODUCT_OS_NAME" />. Kebijakan ini tidak mencegah pengguna login ke akun Google lain dalam Android. Jika Anda ingin mencegah tindakan ini, konfigurasikan kebijakan <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> khusus Android sebagai bagian dari <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="6181608880636987460">Memungkinkan Anda menetapkan daftar pola URL yang menentukan situs yang tidak diizinkan untuk menjalankan plugin <ph name="FLASH_PLUGIN_NAME" />.
 
           Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultPluginsSetting' jika disetel, atau konfigurasi pribadi pengguna.</translation>
@@ -2230,6 +2590,17 @@
 <translation id="6281043242780654992">Mengonfigurasikan kebijakan untuk Perpesanan Asli. Hosting perpesanan asli yang dimasukkan dalam daftar hitam tidak akan diizinkan kecuali telah dimasukkan dalam daftar putih.</translation>
 <translation id="6282799760374509080">Izinkan atau tolak penangkapan audio</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">Menonaktifkan paksa fitur pemeriksa ejaan bahasa. Bahasa yang tidak dikenal dalam daftar tersebut akan diabaikan.
+
+      Jika kebijakan ini diaktifkan, fitur pemeriksa ejaan akan dinonaktifkan untuk bahasa yang ditentukan. Pengguna masih dapat mengaktifkan atau menonaktifkan fitur pemeriksa ejaan untuk bahasa yang tidak tercantum dalam daftar.
+
+      Jika kebijakan ini tidak ditetapkan, atau dinonaktifkan, tidak akan ada perubahan pada preferensi fitur pemeriksa ejaan pengguna.
+
+      Jika kebijakan SpellcheckEnabled ditetapkan ke nonaktif, kebijakan ini tidak akan berpengaruh.
+
+      Jika suatu bahasa dicakup dalam kebijakan ini dan juga kebijakan SpellcheckLanguage, maka kebijakan SpellcheckLanguage diprioritaskan dan fitur pemeriksa ejaan bahasa akan diaktifkan.
+
+      Bahasa yang didukung saat ini adalah: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">Mengaktifkan pelengkapan otomatis nama domain saat proses masuk pengguna</translation>
 <translation id="6315673513957120120">Chrome menunjukkan halaman peringatan saat pengguna menavigasi ke situs dengan kesalahan SSL. Secara default atau saat kebijakan ini disetel ke True, pengguna diizinkan untuk mengeklik melalui halaman peringatan ini.
       Menyetel kebijakan ini ke False membuat pengguna tidak dapat mengeklik melalui halaman peringatan apa pun.</translation>
@@ -2279,6 +2650,8 @@
 <translation id="6449476513004303784">Jangan izinkan pengguna mengelola sertifikat</translation>
 <translation id="645425387487868471">Aktifkan login paksa untuk <ph name="PRODUCT_NAME" /></translation>
 <translation id="6464074037294098618">Mengaktifkan IsiOtomatis untuk alamat</translation>
+<translation id="6467613372414922590">Mengizinkan host Native Messaging level pengguna (diinstal tanpa izin admin)</translation>
+<translation id="6468980648680553776">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan RemoteAccessHostClientDomainList.</translation>
 <translation id="6473623140202114570">Mengonfigurasi daftar domain tempat Safe Browsing tidak akan memicu peringatan.</translation>
 <translation id="6488627892044759800">Mengonfigurasi jenis halaman beranda default di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah preferensi halaman beranda. Halaman beranda dapat disetel ke URL yang Anda tetapkan, atau disetel ke Halaman Tab Baru.
 
@@ -2292,6 +2665,13 @@
 
           Kebijakan ini hanya tersedia pada instance Windows yang dihubungkan ke domain <ph name="MS_AD_NAME" />, atau instance Windows 10 Pro atau Enterprise yang terdaftar untuk pengelolaan perangkat.</translation>
 <translation id="6491139795995924304">Izinkan bluetooth di perangkat</translation>
+<translation id="6491872498385040936">Kebijakan ini tidak digunakan lagi. Pertimbangkan untuk menggunakan kebijakan <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, yang mengganti kebijakan ini dan memungkinkan penyelarasan yang lebih mendetail.
+
+      Memaksa Mode Terbatas Menengah di YouTube dan mencegah pengguna mengubah setelan ini.
+
+      Jika setelan ini diaktifkan, Mode Terbatas di YouTube akan selalu diberlakukan setidaknya ke Menengah.
+
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan ke nilai apa pun, Mode Terbatas di YouTube tidak akan diberlakukan oleh <ph name="PRODUCT_NAME" />. Namun, kebijakan eksternal seperti kebijakan YouTube tetap dapat memberlakukan Mode Terbatas.</translation>
 <translation id="6495328383950074966">Mengonfigurasi daftar domain yang akan dipercaya Safe Browsing. Hal ini berarti:
       Safe Browsing tidak akan memeriksa keberadaan resource berbahaya (misalnya phishing, malware, atau software yang tidak diinginkan) jika URL cocok dengan domain ini.
       Layanan perlindungan download Safe Browsing tidak akan memeriksa download yang dihosting di domain ini.
@@ -2562,6 +2942,7 @@
       Google dapat mengaitkan log ini, melalui ID sesi, dengan log lain yang dikumpulkan oleh layanan Google itu sendiri. Ini dimaksudkan agar debug lebih mudah.
       </translation>
 <translation id="706669471845501145">Izinkan situs menampilkan pemberitahuan desktop</translation>
+<translation id="7070525176564511548">Sandi harus dimasukkan setiap minggu (168 jam)</translation>
 <translation id="7072208053150563108">Tingkat perubahan sandi mesin</translation>
 <translation id="7079519252486108041">Cekal pop-up di situs ini</translation>
 <translation id="7085803328069945025">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang diizinkan untuk meminta pengguna memberikan akses ke perangkat USB.
@@ -2594,6 +2975,9 @@
       Jika kebijakan ini disetel ke False, mode latar belakang dinonaktifkan dan tidak dapat dikontrol oleh pengguna di setelan browser.
 
       Jika kebijakan ini tidak disetel, mode latar belakang pada awalnya akan dinonaktifkan dan dapat dikontrol oleh pengguna di setelan browser.</translation>
+<translation id="7123160381479171745">Menetapkan daftar pengguna yang diizinkan untuk login ke perangkat. Entri menggunakan format <ph name="USER_WHITELIST_ENTRY_FORMAT" />, misalnya <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Untuk mengizinkan sembarang pengguna di suatu domain, gunakan entri dengan format <ph name="USER_WHITELIST_ENTRY_WILDCARD" />.
+
+      Jika kebijakan ini tidak dikonfigurasi, semua pengguna diizinkan untuk login. Perhatikan bahwa pembuatan pengguna baru tetap mengharuskan kebijakan <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> dikonfigurasi dengan tepat.</translation>
 <translation id="7123266440503901785"><ph name="PRODUCT_NAME" /> menyediakan update dan penginstalan ekstensi yang aman. Namun, konten dari beberapa ekstensi yang di-host di luar Chrome Web Store mungkin hanya dilindungi dengan algoritme hashing atau penandatanganan yang tidak aman seperti SHA1. Jika kebijakan ini dinonaktifkan, penginstalan baru dan update ekstensi tersebut tidak akan diizinkan oleh Chrome (sampai developer membuat ulang ekstensi ini dengan algoritme yang lebih kuat). Jika kebijakan ini diaktifkan, penginstalan dan update ekstensi tersebut akan diizinkan.
 
           Kebijakan ini secara default akan diaktifkan jika tidak ditetapkan.
@@ -2637,8 +3021,14 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="718956142899066210">Jenis sambungan yang diizinkan untuk pembaruan</translation>
 <translation id="7194407337890404814">Nama penyedia penelusuran default</translation>
+<translation id="7199304109870655950">Mengonfigurasi opsi akses jarak jauh di host Chrome Desktop Jarak Jauh.
+
+      Host Chrome Desktop Jarak Jauh adalah layanan native yang berjalan di mesin target, tempat pengguna dapat tersambung untuk menggunakan aplikasi Chrome Desktop Jarak Jauh.  Layanan native ini dikemas dan dijalankan secara terpisah dari browser <ph name="PRODUCT_NAME" />.
+
+      Kebijakan ini diabaikan kecuali jika host Chrome Desktop Jarak Jauh diinstal.</translation>
 <translation id="7202925763179776247">Izinkan batasan download</translation>
 <translation id="7207095846245296855">Paksa Google SafeSearch</translation>
+<translation id="7211368186050418507">Jangan mendeteksi zona waktu secara otomatis</translation>
 <translation id="7216442368414164495">Memungkinkan pengguna ikut serta dalam pelaporan yang diperluas Safe Browsing</translation>
 <translation id="7221822638060296742">Memungkinkan Anda menyetel apakah situs diizinkan menjalankan plugin <ph name="FLASH_PLUGIN_NAME" />. Otomatis menjalankan plugin <ph name="FLASH_PLUGIN_NAME" /> dapat diizinkan atau ditolak untuk semua situs.
 
@@ -2703,6 +3093,11 @@
 
           Jika setelan ini dinonaktifkan, fitur ini tidak akan tersedia.</translation>
 <translation id="7275334191706090484">Bookmark yang Terkelola</translation>
+<translation id="7291084543582732020">Jika setelan ini diaktifkan, pengguna akan diizinkan menggunakan Smart Lock jika persyaratan untuk fitur ini terpenuhi.
+
+      Jika setelan ini dinonaktifkan, pengguna tidak akan diizinkan menggunakan Smart Lock.
+
+      Jika kebijakan ini tidak ditetapkan, tindakan defaultnya adalah tidak diizinkan untuk pengguna yang dikelola perusahaan dan diizinkan untuk pengguna yang tidak dikelola.</translation>
 <translation id="7295019613773647480">Aktifkan pengguna yang dilindungi</translation>
 <translation id="7301543427086558500">Menentukan daftar URL pengganti yang dapat digunakan untuk mengekstrak istilah penelusuran dari mesin telusur. URL harus berisi string <ph name="SEARCH_TERM_MARKER" />, yang akan digunakan untuk mengekstrak istilah penelusuran.
 
@@ -2758,6 +3153,9 @@
 
       Kebijakan ini hanya berlaku jika <ph name="CHROME_REPORTING_EXTENSION_NAME" /> diaktifkan, dan mesin didaftarkan ke <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
 <translation id="737655323154569539">Membatasi ukuran halaman pencetakan. Kebijakan yang tidak disetel dan setelan kosong diperlakukan sebagai tidak ada batasan.</translation>
+<translation id="7389872682701720082">Jika setelan ini diaktifkan, plugin yang tidak usang selalu berjalan.
+
+      Jika setelan ini dinonaktifkan atau tidak ditetapkan, pengguna akan dimintai izin untuk menjalankan plugin yang memerlukan otorisasi. Ini adalah plugin yang dapat membahayakan keamanan.</translation>
 <translation id="7417972229667085380">Persentase yang digunakan untuk menskalakan penundaan status menganggur dalam mode presentasi (tidak digunakan lagi)</translation>
 <translation id="7421483919690710988">Setel ukuran cache disk media dalam bita</translation>
 <translation id="7424751532654212117">Daftar pengecualian untuk daftar plugin yang dinonaktifkan</translation>
@@ -2765,12 +3163,16 @@
 
       Jika kebijakan tidak disetel, atau disetel ke False, <ph name="TLS_FALSE_START" /> akan diaktifkan. Jika disetel ke True, <ph name="TLS_FALSE_START" /> akan dinonaktifkan.</translation>
 <translation id="7433714841194914373">Aktifkan Instan</translation>
+<translation id="7434202861148928348">Mengonfigurasi nama domain wajib untuk klien akses jarak jauh</translation>
 <translation id="7443616896860707393">Permintaan Autentikasi Dasar HTTP lintas asal</translation>
 <translation id="7458437477941640506">Jangan kembalikan ke versi target jika versi OS lebih baru daripada target. Update juga dinonaktifkan.</translation>
 <translation id="7464991223784276288">Membatasi cookie dari URL yang cocok ke sesi saat ini</translation>
 <translation id="7469554574977894907">Aktifkan saran penelusuran</translation>
 <translation id="7474249562477552702">Apakah sertifikat bertanda tangan SHA-1 yang dikeluarkan oleh sumber tepercaya setempat diizinkan atau tidak</translation>
 <translation id="7485481791539008776">Aturan pemilihan printer default</translation>
+<translation id="7485730741952775732">Jika kebijakan ini ditetapkan, host akses jarak jauh akan menggunakan URL ini untuk memvalidasi token autentikasi dari klien akses jarak jauh, agar dapat menerima sambungan. Harus digunakan bersama RemoteAccessHostTokenUrl.
+
+          Fitur ini saat ini dinonaktifkan pada sistem server.</translation>
 <translation id="749556411189861380">Laporkan versi firmware dan OS perangkat yang terdaftar.
 
       Jika setelan ini tidak disetel atau disetel ke True, perangkat terdaftar akan melaporkan versi firmware dan OS secara berkala. Jika setelan ini disetel ke False, info versi tidak akan dilaporkan.</translation>
@@ -2863,6 +3265,8 @@
 
       Lihat https://developers.google.com/safe-browsing untuk info selengkapnya terkait Safe Browsing.</translation>
 <translation id="7643883929273267746">Batasi akun yang terlihat di <ph name="PRODUCT_NAME" /></translation>
+<translation id="7644825865811580663">Jika kebijakan ini ditetapkan ke True, <ph name="PRODUCT_NAME" /> akan memaksimalkan jendela pertama yang ditampilkan pada percobaan pertama tanpa syarat.
+      Jika kebijakan ini ditetapkan ke False atau tidak dikonfigurasi, keputusan apakah akan memaksimalkan jendela pertama yang ditampilkan atau tidak akan didasarkan pada ukuran layar.</translation>
 <translation id="7651739109954974365">Menentukan apakah roaming data harus diaktifkan untuk perangkat. Jika disetel ke true, roaming data akan diizinkan. Jika dibiarkan tanpa konfigurasi atau disetel ke false, roaming data tidak akan tersedia.</translation>
 <translation id="7657261947024629645">Mengoptimalkan performa.</translation>
 <translation id="7673194325208122247">Periode waktu (milidetik)</translation>
@@ -2876,6 +3280,9 @@
 
           Jika kebijakan "RestoreOnStartup" disetel untuk memulihkan URL dari sesi sebelumnya, kebijakan ini tidak akan diterapkan dan cookie akan disimpan permanen untuk situs tersebut.</translation>
 <translation id="7683777542468165012">Penyegaran Kebijakan Dinamis</translation>
+<translation id="7687943045976362719">Jika kebijakan ini ditetapkan, jenis konten yang ditentukan akan ditangani oleh <ph name="PRODUCT_FRAME_NAME" />.
+
+          Jika kebijakan ini tidak ditetapkan, perender default akan digunakan untuk semua situs. (Kebijakan <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> dapat digunakan untuk mengonfigurasi perender default.)</translation>
 <translation id="7694807474048279351">Menjadwalkan mulai ulang otomatis setelah pembaruan <ph name="PRODUCT_OS_NAME" /> diterapkan.
 
       Saat kebijakan ini disetel ke true, mulai ulang otomatis akan dijadwalkan saat pembaruan <ph name="PRODUCT_OS_NAME" /> diterapkan dan diperlukan mulai ulang untuk menyelesaikan proses pembaruan. Mulai ulang dijadwalkan langsung namun mungkin ditunda di perangkat hingga 24 jam jika pengguna sedang menggunakan perangkat.
@@ -2915,6 +3322,7 @@
 <translation id="7763614521440615342">Tampilkan saran konten di halaman Tab Baru</translation>
 <translation id="7765879851993224640">Izinkan Smart Lock Signin digunakan.</translation>
 <translation id="7774768074957326919">Gunakan setelan proxy sistem</translation>
+<translation id="7777535871204167559">Memperlakukan perangkat penyimpanan eksternal sebagai hanya baca</translation>
 <translation id="7781069478569868053">Halaman Tab Baru</translation>
 <translation id="7788511847830146438">Per Profil</translation>
 <translation id="780603170519840350">Menonaktifkan penerapan persyaratan Transparansi Sertifikat untuk daftar hash subjectPublicKeyInfo.
@@ -2944,6 +3352,11 @@
       Membiarkan kebijakan ini tidak disetel akan membuat penggunaan <ph name="PRODUCT_NAME" /> menggunakan nilai default 5000 milidetik.</translation>
 <translation id="7841880500990419427">Versi TLS minimum untuk kembali</translation>
 <translation id="7842869978353666042">Konfigurasi opsi Google Drive</translation>
+<translation id="7858404742201086014">Jika setelan ini diaktifkan, plugin usang akan digunakan sebagai plugin normal.
+
+      Jika setelan ini dinonaktifkan, plugin usang tidak akan digunakan dan pengguna tidak akan dimintai izin untuk menjalankannya.
+
+      Jika setelan ini tidak ditetapkan, pengguna akan dimintai izin untuk menjalankan plugin usang.</translation>
 <translation id="787125417158068494">Jika disetel ke SyncDisabled atau tidak dikonfigurasi, sertifikat <ph name="PRODUCT_OS_NAME" /> tidak tersedia untuk aplikasi ARC.
 
       Jika disetel ke CopyCaCerts, semua sertifikat CA yang memasang ONC dengan <ph name="WEB_TRUSTED_BIT" /> tersedia untuk aplikasi ARC.</translation>
@@ -2964,12 +3377,25 @@
 <translation id="793473937901685727">Menyetel ketersediaan sertifikat untuk aplikasi ARC</translation>
 <translation id="7937766917976512374">Izinkan atau tolak penangkapan video</translation>
 <translation id="7941975817681987555">Jangan memprediksi tindakan jaringan di sambungan jaringan apa pun</translation>
+<translation id="7952958573604504839">Kebijakan ini tidak digunakan lagi di M48 guna mendukung <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" />, dan dihapus di M54.
+
+      Mengaktifkan prediksi jaringan di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan ini.
+
+      Hal ini tidak hanya mengontrol prefetching DNS tetapi juga prakoneksi TCP dan SSL serta praperenderan halaman. Nama kebijakan merujuk ke prefetching DNS karena alasan historis.
+
+      Jika setelan ini diaktifkan atau dinonaktifkan, pengguna tidak dapat mengubah atau menggantinya di <ph name="PRODUCT_NAME" />.
+
+      Jika tidak ditetapkan, kebijakan ini akan diaktifkan tetapi pengguna dapat mengubahnya.</translation>
 <translation id="7953256619080733119">Hosting pengecualian manual pengguna yang dikelola</translation>
+<translation id="7958537754689366707">Sandi harus dimasukkan setiap dua belas jam</translation>
 <translation id="7961779417826583251">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar Otoritas Sertifikat Lama</translation>
 <translation id="7974114691960514888">Kebijakan ini tidak lagi didukung. Mengaktifkan penggunaan STUN dan server relay saat menyambungkan ke klien jarak jauh. Jika setelan ini diaktifkan, maka komputer ini dapat menemukan dan tersambung ke komputer host jarak jauh bahkan jika dipisahkan oleh firewall. Jika setelan ini dinonaktifkan dan sambungan UDP keluar difilter oleh firewall, maka komputer ini hanya dapat tersambung ke komputer host dalam jaringan lokal.</translation>
 <translation id="7976157349247117979">Nama tujuan <ph name="PRODUCT_NAME" /></translation>
 <translation id="7980227303582973781">Tidak ada batasan khusus</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
+<translation id="798856998567564266">Jika setelan ini diaktifkan, bookmark dapat ditambahkan, dihapus, atau diubah. Ini juga merupakan tindakan default jika kebijakan ini tidak ditetapkan.
+
+      Jika setelan ini dinonaktifkan, bookmark tidak dapat ditambahkan, dihapus, atau diubah. Bookmark yang ada tetap tersedia.</translation>
 <translation id="7992136759457836904">Memungkinkan Anda untuk mengontrol apakah mesin virtual diizinkan berjalan di Chrome OS atau tidak.
 
       Jika kebijakan ini ditetapkan ke True, perangkat diizinkan untuk menjalankan mesin virtual.
@@ -2992,6 +3418,20 @@
 <translation id="8050080920415773384">Pencetakan Asli</translation>
 <translation id="8053580360728293758">Mengganti mode warna pencetakan default. Jika mode tersebut tidak tersedia, kebijakan ini akan diabaikan.</translation>
 <translation id="8059164285174960932">URL tempat klien akses jarak jauh seharusnya memperoleh token autentikasi mereka</translation>
+<translation id="806280865577636339">Jika kebijakan ini ditetapkan ke True, opsi Aksesibilitas akan selalu muncul di menu baki sistem.
+
+          Jika kebijakan ini ditetapkan ke False, opsi Aksesibilitas tidak akan muncul di menu baki sistem.
+
+          Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+          Jika kebijakan ini tidak ditetapkan, opsi Aksesibilitas tidak akan muncul di menu baki sistem, tetapi pengguna dapat menyebabkan munculnya opsi Aksesibilitas melalui halaman Setelan.</translation>
+<translation id="806523868782250975">Mengonfigurasi daftar bookmark terkelola.
+
+      Kebijakan ini terdiri dari daftar bookmark, di mana setiap bookmark merupakan kamus yang berisi kunci "<ph name="NAME" />" dan "<ph name="URL_LABEL" />" yang menampung nama bookmark beserta targetnya. Subfolder dapat dikonfigurasi dengan menentukan bookmark tanpa kunci "<ph name="URL_LABEL" />" tetapi dengan kunci "<ph name="CHILDREN" />" tambahan, di mana kunci itu sendiri berisi daftar bookmark seperti dijelaskan di atas (beberapa mungkin berupa folder lagi). <ph name="PRODUCT_NAME" /> mengubah URL tidak lengkap seolah-olah URL tersebut dikirim melalui Omnibox, misalnya "<ph name="GOOGLE_COM" />" menjadi "<ph name="HTTPS_GOOGLE_COM" />".
+
+      Bookmark ini ditempatkan di dalam sebuah folder yang tidak dapat diubah oleh pengguna (tetapi pengguna dapat memilih untuk menyembunyikannya dari kolom bookmark). Secara default, nama folder adalah "Bookmark terkelola" tetapi nama ini dapat disesuaikan dengan menambahkan ke daftar bookmark sebuah kamus yang berisi kunci "<ph name="TOPLEVEL_NAME" />" dengan nama folder yang diinginkan sebagai nilainya.
+
+      Bookmark terkelola tidak disinkronkan dengan akun pengguna dan tidak dapat diubah oleh ekstensi.</translation>
 <translation id="8078366200175825572">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang tidak diizinkan untuk menyetel cookie.
 
           Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs yaitu dari kebijakan 'DefaultWebUsbGuardSetting' jika disetel, atau dari konfigurasi pribadi pengguna.
@@ -3054,6 +3494,9 @@
 
       Jika kebijakan ini disetel ke nonaktif atau dibiarkan tidak disetel, proses masuk akan mengarahkan ke profil reguler.</translation>
 <translation id="8158758865057576716">Mengaktifkan pembuatan salinan roaming untuk data profil <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8172676363520748127">Jika diaktifkan, screenshot tidak dapat diambil menggunakan pintasan keyboard atau API ekstensi.
+
+      Jika dinonaktifkan atau tidak ditentukan, pengambilan screenshot diizinkan.</translation>
 <translation id="817455428376641507">Memungkinkan akses ke URL yang tercantum, kecuali untuk URL yang masuk dalam daftar hitam.
 
       Lihat deskripsi kebijakan daftar hitam URL untuk format entri daftar ini.
@@ -3067,6 +3510,7 @@
       Jika kebijakan ini tidak disetel, tidak akan ada pengecualian untuk daftar hitam dari kebijakan 'URLBlacklist'.</translation>
 <translation id="8176035528522326671">Memungkinkan pengguna perusahaan menjadi pengguna banyak profil primer saja (Perilaku default untuk pengguna yang dikelola perusahaan)</translation>
 <translation id="8214600119442850823">Mengonfigurasi pengelola sandi.</translation>
+<translation id="8217516105848565518">Kebijakan ini tidak digunakan lagi. Sebagai gantinya, gunakan RemoteAccessHostDomainList.</translation>
 <translation id="8244525275280476362">Penundaan mengambil maksimum setelah kebijakan invalidasi</translation>
 <translation id="8256688113167012935">Mengontrol nama akun yang ditampilkan <ph name="PRODUCT_OS_NAME" /> di layar masuk untuk akun lokal perangkat yang sesuai.
 
@@ -3082,6 +3526,9 @@
 Setelan ini tidak perlu dikonfigurasi secara manual! Template untuk Windows, Mac dan Linux yang mudah digunakan dapat didownload dari <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" />.
 
 Cara yang disarankan untuk mengonfigurasi kebijakan di Windows adalah melalui GPO, meski menyediakan kebijakan melalui registry tetap didukung untuk instance Windows yang bergabung dalam domain <ph name="MS_AD_NAME" />.</translation>
+<translation id="8259592978873597235">Jika kebijakan ini ditetapkan ke True atau tidak ditetapkan, pengguna tidak dianggap menganggur selama video diputar. Hal ini mencegah tercapainya waktu tunggu penundaan menganggur, penundaan peredupan layar, penundaan penonaktifan layar, dan penundaan penguncian layar, serta mencegah diambilnya tindakan yang terkait.
+
+          Jika kebijakan ini ditetapkan ke False, aktivitas video tidak mencegah pengguna untuk dianggap menganggur.</translation>
 <translation id="8264653492961233132">Menentukan daftar aplikasi dan ekstensi yang diinstal secara otomatis, tanpa interaksi pengguna, dan yang tidak dapat di-uninstal atau dinonaktifkan oleh pengguna. Semua izin yang diminta oleh aplikasi/ekstensi diberikan secara implisit, tanpa interaksi pengguna, termasuk izin tambahan apa pun yang diminta oleh versi berikutnya dari aplikasi/ekstensi tersebut. Selain itu, izin diberikan untuk API ekstensi enterprise.deviceAttributes dan enterprise.platformKeys. (Kedua API ini tidak tersedia untuk aplikasi/ekstensi yang tidak diinstal paksa.)
 
           Kebijakan ini lebih diutamakan daripada kebijakan <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> yang berpotensi bentrok. Jika aplikasi atau ekstensi yang sebelumnya diinstal paksa telah dihapus dari daftar ini, aplikasi/ekstensi tersebut akan otomatis di-uninstal oleh <ph name="PRODUCT_NAME" />.
@@ -3126,6 +3573,7 @@
       Nilai kebijakan harus ditentukan dalam milidetik.</translation>
 <translation id="8339420913453596618">Faktor kedua dinonaktifkan</translation>
 <translation id="8344454543174932833">Impor bookmark dari browser default saat pertama kali dijalankan</translation>
+<translation id="8357681633047935212">Membatasi durasi sesi pengguna</translation>
 <translation id="8359734107661430198">Aktifkan API ExampleDeprecatedFeature hingga 02/09/2008</translation>
 <translation id="8367209241899435947">Aktifkan Pembersih Chrome di Windows</translation>
 <translation id="8369602308428138533">Penundaan mematikan layar saat menggunakan daya AC</translation>
@@ -3134,6 +3582,13 @@
 
       Jika kebijakan disetel ke false, statistik tidak akan dilaporkan.
       Jika disetel ke true atau tidak disetel, statistik akan dilaporkan.</translation>
+<translation id="8380490658357556620">Memungkinkan penggunaan server relai saat klien jarak jauh mencoba membuat koneksi ke komputer ini.
+
+          Jika setelan ini diaktifkan, klien jarak jauh dapat menggunakan server relai untuk tersambung ke komputer ini saat koneksi langsung tidak tersedia (misalnya karena pembatasan firewall).
+
+          Perhatikan bahwa jika kebijakan <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> dinonaktifkan, kebijakan ini akan diabaikan.
+
+          Jika kebijakan ini tidak ditetapkan, setelan tersebut akan diaktifkan.</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.
@@ -3254,6 +3709,7 @@
           Pisahkan beberapa nama server dengan koma. Karakter pengganti (*) diizinkan.
 
           Jika Anda membiarkan kebijakan ini tidak disetel, <ph name="PRODUCT_NAME" /> akan mencoba mendeteksi apakah server ada di internet dan akan menanggapi permintaan IWA setelahnya.  Jika server terdeteksi sebagai internet, permintaan IWA darinya akan diabaikan oleh <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8661297125441579970">Jangan izinkan migrasi data dan ARC.</translation>
 <translation id="8672321184841719703">Versi Pembaruan Otomatis Target</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8682611302223077049">Mengizinkan Anda menyetel jangka waktu, dalam milidetik, untuk memberi tahu pengguna bahwa <ph name="PRODUCT_NAME" /> harus diluncurkan ulang atau bahwa perangkat <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda.
@@ -3288,9 +3744,11 @@
       Jika setelan ini diaktifkan atau tidak disetel, histori penjelajahan atau download dapat dihapus.
 
       Jika setelan ini dinonaktifkan, histori penjelajahan dan download tidak dapat dihapus.</translation>
+<translation id="8757552286070680084">Konfigurasi DTC wilco</translation>
 <translation id="8758831693895931466">Aktifkan pendaftaran pengelolaan cloud wajib</translation>
 <translation id="8759829385824155666">Jenis enkripsi Kerberos yang diizinkan</translation>
 <translation id="8764119899999036911">Menentukan apakah Kerberos SPN yang dihasilkan didasarkan pada nama DNS kanonik atau nama asli yang dimasukkan. Jika Anda mengaktifkan setelan ini, pencarian CNAME akan dilewati dan nama server akan digunakan seperti saat dimasukkan. Jika Anda menonaktifkan setelan ini atau membiarkannya tidak disetel, nama kanonik server akan ditentukan melalui pencarian CNAME.</translation>
+<translation id="8764477907716150749">Kebijakan ini untuk penggunaan internal oleh <ph name="PRODUCT_NAME" /> sendiri.</translation>
 <translation id="8765776988041674792">Mengonfigurasi URL ubah sandi (khusus skema HTTP dan HTTPS). Layanan perlindungan sandi akan mengarahkan pengguna ke URL ini untuk mengubah sandinya setelah melihat peringatan di browser.
       Agar <ph name="PRODUCT_NAME" /> dapat mengambil sidik jari sandi baru di halaman ubah sandi dengan benar, pastikan halaman ubah sandi Anda mengikuti pedoman di https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3309,6 +3767,26 @@
 <translation id="8833109046074170275">Autentikasi melalui alur GAIA default</translation>
 <translation id="8838303810937202360"><ph name="PRODUCT_OS_NAME" /> menyimpan Aplikasi dan Ekstensi dalam cache untuk pemasangan oleh banyak pengguna pada perangkat tunggal guna menghindari download ulang oleh setiap pengguna.
       Jika kebijakan ini tidak dikonfigurasi atau nilainya kurang dari 1 MB, <ph name="PRODUCT_OS_NAME" /> akan menggunakan ukuran cache default.</translation>
+<translation id="8851325571441692315">Memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan proxy.
+
+          Kebijakan ini hanya berpengaruh jika kebijakan <ph name="PROXY_SETTINGS_POLICY_NAME" /> tidak ditentukan.
+
+          Jika Anda memilih untuk tidak menggunakan server proxy dan selalu tersambung secara langsung, semua opsi lainnya akan diabaikan.
+
+          Jika Anda memilih untuk menggunakan setelan proxy sistem, semua opsi lainnya akan diabaikan.
+
+          Jika Anda memilih untuk otomatis mendeteksi server proxy, semua opsi lainnya akan diabaikan.
+
+          Jika memilih mode proxy server tetap, Anda dapat menentukan opsi lanjutan di 'Alamat atau URL server proxy' dan 'Daftar aturan pengabaian proxy yang dipisahkan koma'. Hanya server proxy HTTP dengan prioritas tertinggi yang tersedia untuk aplikasi ARC.
+
+          Jika memilih untuk menggunakan skrip proxy .pac, Anda harus menentukan URL ke skrip tersebut di 'URL ke file .pac proxy'.
+
+          Untuk contoh mendetail, buka:
+          <ph name="PROXY_HELP_URL" />.
+
+          Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> dan aplikasi ARC akan mengabaikan semua opsi terkait proxy yang ditentukan dari command line.
+
+          Jika kebijakan ini tidak ditetapkan, pengguna dapat memilih sendiri setelan proxy.</translation>
 <translation id="8858642179038618439">Memaksakan Mode Perlindungan YouTube</translation>
 <translation id="8860342862142842017">Nonaktifkan penerapan Transparansi Sertifikat untuk daftar hash subjectPublicKeyInfo</translation>
 <translation id="8864975621965365890">Menimpa permintaan penghentian yang muncul saat situs dirender oleh <ph name="PRODUCT_FRAME_NAME" />.</translation>
@@ -3383,7 +3861,47 @@
 <translation id="8976248126101463034">Izinkan autentikasi gnubby untuk host akses jarak jauh</translation>
 <translation id="8976531594979650914">Menggunakan Printer Default Sistem sebagai Default</translation>
 <translation id="8992176907758534924">Jangan izinkan situs apa pun menampilkan gambar</translation>
+<translation id="9013875414788074110">Selama proses login, <ph name="PRODUCT_OS_NAME" /> dapat mengautentikasi terhadap server (online) atau menggunakan sandi yang tersimpan di cache (offline).
+
+      Jika kebijakan ini ditetapkan ke nilai -1, pengguna dapat menjalankan autentikasi offline tanpa batas. Jika ditetapkan ke nilai lain, kebijakan ini akan menentukan durasi waktu sejak autentikasi online terakhir, yang setelah itu pengguna harus menggunakan autentikasi online lagi.
+
+      Jika kebijakan ini tidak ditetapkan, <ph name="PRODUCT_OS_NAME" /> akan menggunakan batas waktu default yakni 14 hari, yang setelah itu pengguna harus menggunakan autentikasi online lagi.
+
+      Kebijakan ini hanya memengaruhi pengguna yang menjalankan autentikasi menggunakan SAML.
+
+      Nilai kebijakan harus ditentukan dalam detik.</translation>
+<translation id="9027787254195333560">Kebijakan ini memungkinkan Anda mengonfigurasi gambar avatar yang mewakili pengguna di layar login. Kebijakan ini ditetapkan dengan menentukan URL tempat <ph name="PRODUCT_OS_NAME" /> dapat mendownload gambar avatar dan hash kriptografi yang digunakan untuk memverifikasi integritas download. Gambar harus dalam format JPEG dan ukurannya tidak boleh lebih dari 512 kB. URL harus dapat diakses tanpa autentikasi apa pun.
+
+      Gambar avatar didownload dan disimpan di cache. Gambar akan didownload ulang setiap kali URL atau hash berubah.
+
+      Kebijakan ini harus ditentukan sebagai string yang menunjukkan URL dan hash dalam format JSON, yang sesuai dengan skema berikut:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "URL tempat gambar avatar dapat didownload.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "Hash SHA-256 gambar avatar.",
+            "type": "string"
+          }
+        }
+      }
+
+      Jika kebijakan ini ditetapkan, <ph name="PRODUCT_OS_NAME" /> akan mendownload dan menggunakan gambar avatar.
+
+      Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+      Jika kebijakan ini tidak ditetapkan, pengguna dapat memilih gambar avatar yang mewakili dirinya di layar login.</translation>
 <translation id="9035964157729712237">ID Ekstensi yang dikeluarkan dari daftar hitam</translation>
+<translation id="9039822628127365650">Jika ditetapkan, kebijakan ini akan menentukan durasi waktu yang setelahnya pengguna akan otomatis dipaksa logout dan sesi akan dihentikan. Waktu yang tersisa diberitahukan kepada pengguna melalui penghitung mundur yang ditampilkan di baki sistem.
+
+      Jika kebijakan ini tidak ditetapkan, durasi sesi tidak dibatasi.
+
+      Jika kebijakan ini ditetapkan, pengguna tidak dapat mengubah atau menggantinya.
+
+      Nilai kebijakan harus ditentukan dalam milidetik. Nilai dikunci ke rentang 30 detik hingga 24 jam.</translation>
 <translation id="9042911395677044526">Memungkinkan konfigurasi jaringan dorongan untuk diterapkan per pengguna ke perangkat <ph name="PRODUCT_OS_NAME" />. Konfigurasi jaringan adalah string berformat JSON seperti yang didefinisikan oleh format Konfigurasi Jaringan Terbuka yang diuraikan di <ph name="ONC_SPEC_URL" /></translation>
 <translation id="906631898352326790">
       Jika kebijakan ini diaktifkan, setiap asal bernama dalam
@@ -3397,6 +3915,15 @@
 
       CATATAN: Kebijakan ini tidak berlaku di Android. Untuk mengaktifkan IsolateOrigins di Android, gunakan setelan kebijakan IsolateOriginsAndroid.
       </translation>
+<translation id="9072600218500597787">Mengonfigurasi nama domain host wajib yang akan diberlakukan pada host akses jarak jauh dan mencegah pengguna mengubahnya.
+
+          Jika setelan ini diaktifkan, host hanya dapat dibagikan menggunakan akun yang terdaftar pada salah satu nama domain yang ditentukan.
+
+          Jika setelan ini dinonaktifkan atau tidak ditetapkan, host dapat dibagikan menggunakan akun apa pun.
+
+          Setelan ini akan mengganti RemoteAccessHostDomain, jika ada.
+
+          Lihat juga RemoteAccessHostClientDomainList.</translation>
 <translation id="9077227880520270584">Timer login otomatis akun lokal perangkat</translation>
 <translation id="9084985621503260744">Tentukan apakah aktivitas video memengaruhi pengelolaan daya</translation>
 <translation id="9088433379343318874">Izinkan penyedia konten pengguna yang dilindungi</translation>
@@ -3405,6 +3932,30 @@
           Didukung pada <ph name="PRODUCT_OS_NAME" /> versi 70 dan lebih baru. Untuk klien yang lebih lama, nilai ini berarti bahwa rollback dinonaktifkan.</translation>
 <translation id="9096086085182305205">Daftar putih server autentikasi</translation>
 <translation id="9098553063150791878">Kebijakan untuk autentikasi HTTP</translation>
+<translation id="9103061223348895346">Kebijakan ini mengontrol beberapa setelan untuk strategi pengelolaan daya saat pengguna menganggur.
+
+          Ada empat jenis tindakan:
+          * Layar akan diredupkan jika pengguna tetap menganggur selama waktu yang ditentukan oleh |ScreenDim|.
+          * Layar akan dinonaktifkan jika pengguna tetap menganggur selama waktu yang ditentukan oleh |ScreenOff|.
+          * Dialog peringatan akan ditampilkan jika pengguna tetap menganggur selama waktu yang ditentukan oleh |IdleWarning|, yang memberitahukan kepada pengguna bahwa tindakan menganggur akan segera diambil.
+          * Tindakan yang ditentukan oleh |IdleAction| akan diambil jika pengguna tetap menganggur selama waktu yang ditentukan oleh |Idle|.
+
+          Untuk setiap tindakan di atas, penundaan harus ditetapkan dalam milidetik, dan harus disetel ke nilai yang lebih besar daripada nol untuk memicu tindakan yang terkait. Apabila penundaan disetel ke nol, <ph name="PRODUCT_OS_NAME" /> tidak akan mengambil tindakan yang terkait.
+
+          Untuk setiap penundaan di atas, jika durasi waktunya tidak ditetapkan, nilai default akan digunakan.
+
+          Perhatikan bahwa nilai |ScreenDim| akan dikunci ke kurang dari atau sama dengan |ScreenOff|, sedangkan nilai |ScreenOff| dan |IdleWarning| akan dikunci ke kurang dari atau sama dengan |Idle|.
+
+          |IdleAction| dapat berupa salah satu dari empat tindakan berikut:
+          * |Suspend|
+          * |Logout|
+          * |Shutdown|
+          * |DoNothing|
+
+          Jika |IdleAction| tidak ditetapkan, tindakan default akan diambil, yaitu suspend (tangguhkan).
+
+          Juga ada setelan terpisah untuk daya AC dan baterai.
+          </translation>
 <translation id="9105265795073104888">Hanya bagian dari opsi konfigurasi proxy yang disediakan untuk aplikasi Android. Aplikasi Android dapat memilih untuk menggunakan proxy secara sukarela. Anda tidak dapat memaksakan aplikasi Android agar menggunakan proxy.</translation>
 <translation id="9106865192244721694">Izinkan WebUSB di situs ini</translation>
 <translation id="9112727953998243860">File konfigurasi untuk printer perusahaan</translation>
@@ -3445,6 +3996,7 @@
 
           Jika kebijakan ini tidak disetel, '3' akan digunakan dan pengguna dapat mengubahnya.</translation>
 <translation id="9167719789236691545">Nonaktifkan Drive di aplikasi File <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="9185107612228451403">Mengonfigurasi kebijakan terkait ekstensi. Pengguna tidak diizinkan menginstal ekstensi yang tercantum dalam daftar tidak diizinkan kecuali jika ekstensi tersebut dipindahkan ke daftar diizinkan. Anda juga dapat memaksa <ph name="PRODUCT_NAME" /> agar otomatis menginstal ekstensi dengan menentukannya di <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Ekstensi instal otomatis akan diinstal meskipun ekstensi tersebut tercantum dalam daftar tidak diizinkan.</translation>
 <translation id="9187743794267626640">Menonaktifkan pemasangan penyimpanan eksternal</translation>
 <translation id="9197740283131855199">Persentase yang digunakan untuk menskalakan penundaan layar redup jika pengguna aktif setelah peredupan</translation>
 <translation id="9200828125069750521">Parameter untuk URL gambar yang menggunakan POST</translation>
@@ -3476,8 +4028,21 @@
 <translation id="9217154963008402249">Frekuensi paket jaringan pemantauan</translation>
 <translation id="922540222991413931">Konfigurasi sumber pemasangan skrip pengguna, aplikasi, dan ekstensi</translation>
 <translation id="924557436754151212">Impor sandi yang disimpan dari browser default saat pertama kali dijalankan</translation>
+<translation id="926146562923985266">Kebijakan ini mengontrol perintah yang akan digunakan untuk membuka URL di <ph name="PRODUCT_NAME" /> saat beralih dari Internet Explorer.
+
+      Jika add-in 'Dukungan Browser Lama' untuk Internet Explorer tidak diinstal, kebijakan ini tidak akan berpengaruh.
+
+      Jika kebijakan ini tidak ditetapkan, Internet Explorer akan otomatis mendeteksi jalur executable <ph name="PRODUCT_NAME" /> sendiri saat <ph name="PRODUCT_NAME" /> diluncurkan dari Internet Explorer.
+
+      Jika ditetapkan, kebijakan ini akan digunakan untuk meluncurkan <ph name="PRODUCT_NAME" /> saat <ph name="PRODUCT_NAME" /> diluncurkan dari Internet Explorer.
+
+      Kebijakan ini dapat ditetapkan ke jalur file executable, atau ${chrome} untuk otomatis mendeteksi lokasi penginstalan Chrome.</translation>
 <translation id="930930237275114205">Setel direktori data pengguna <ph name="PRODUCT_FRAME_NAME" /></translation>
+<translation id="943865157632139008">Memungkinkan Anda mengonfigurasi perender HTML default jika <ph name="PRODUCT_FRAME_NAME" /> diinstal. Setelan defaultnya adalah mengizinkan browser host melakukan rendering, tetapi Anda dapat mengganti ini secara opsional dan memerintahkan <ph name="PRODUCT_FRAME_NAME" /> me-render halaman HTML secara default.</translation>
 <translation id="944817693306670849">Setel ukuran cache disk</translation>
+<translation id="966854160628341653">Mengontrol apakah <ph name="PRODUCT_OS_NAME" /> mengizinkan akun pengguna baru dibuat atau tidak. Jika kebijakan ini ditetapkan ke False, pengguna yang belum memiliki akun tidak akan dapat login.
+
+      Jika kebijakan ini ditetapkan ke True atau tidak dikonfigurasi, akun pengguna baru akan diizinkan untuk dibuat asalkan kebijakan <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> tidak mencegah pengguna untuk login.</translation>
 <translation id="981346395360763138">Layanan lokasi Google dinonaktifkan</translation>
 <translation id="982497069985795632">Aktifkan fitur pemeriksa ejaan</translation>
 <translation id="991560005425213776">Kirim nama pengguna dan nama file ke printer native</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 1a37ac7e..9c8e6b5f 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -1646,7 +1646,7 @@
 
       Se questo criterio è impostato su false, in <ph name="PRODUCT_NAME" /> non sarà possibile creare nuovi profili da Gestione utenti.</translation>
 <translation id="4970855112942626932">Disattiva accesso al browser</translation>
-<translation id="4978405676361550165">Se viene impostata la norma "OffHours", le norme relative ai dispositivi specificate vengono ignorate (vengono usate le impostazioni predefinite delle norme) durante gli intervalli di tempo definiti. Le norme relative ai dispositivi vengono riapplicate da Chrome ogni volta che inizia o finisce il periodo definito in "OffHours". L'utente verrà informato e obbligato a uscire dall'account quando vengono cambiate le impostazioni relative alla fine del periodo "OffHours" e alle norme relative ai dispositivi (ad esempio se l'utente ha eseguito l'accesso con un account non consentito).</translation>
+<translation id="4978405676361550165">Se viene impostata la norma "OffHours", i criteri relativi ai dispositivi specificate vengono ignorate (vengono usate le impostazioni predefinite dei criteri) durante gli intervalli di tempo definiti. I criteri relativi ai dispositivi vengono riapplicati da Chrome ogni volta che inizia o finisce il periodo definito in "OffHours". L'utente verrà informato e obbligato a uscire dall'account quando vengono cambiate le impostazioni relative alla fine del periodo "OffHours" e ai criteri relativi ai dispositivi (ad esempio se l'utente ha eseguito l'accesso con un account non consentito).</translation>
 <translation id="4980635395568992380">Tipo di dati:</translation>
 <translation id="4983201894483989687">Consenti esecuzione dei plug-in obsoleti</translation>
 <translation id="4986560318567565414">Percorso a Chrome per cambiare il browser alternativo.</translation>
@@ -1876,13 +1876,13 @@
 
       Questa norma non viene applicata agli switch del canale.</translation>
 <translation id="5526701598901867718">Tutto (non sicuro)</translation>
-<translation id="5529037166721644841">Consente di specificare in millisecondi il periodo di tempo per cui vengono richieste informazioni sulle norme relative al dispositivo al servizio di gestione del dispositivo.
+<translation id="5529037166721644841">Consente di specificare in millisecondi il periodo di tempo per cui vengono richieste informazioni sui criteri relativi al dispositivo al servizio di gestione del dispositivo.
 
       Se questa norma viene impostata, il valore predefinito di tre ore viene ignorato. L'intervallo dei valori validi per questa norma è compreso tra 1800000 (30 minuti) e 86400000 (un giorno). I valori non compresi in questo intervallo verranno bloccati al relativo limite.
 
       Se questa norma non viene impostata, <ph name="PRODUCT_OS_NAME" /> utilizzerà il valore predefinito di tre ore.
 
-      Se la piattaforma supporta le notifiche relative alle norme, il ritardo dell'aggiornamento verrà impostato su 24 ore (vengono ignorati tutti i valori predefiniti e il valore di questa norma) perché è previsto che le notifiche relative alle norme forzino l'aggiornamento automatico quando cambiano le norme, rendendo superflui aggiornamenti più frequenti.</translation>
+      Se la piattaforma supporta le notifiche relative ai criteri, il ritardo dell'aggiornamento verrà impostato su 24 ore (vengono ignorati tutti i valori predefiniti e il valore di questa norma) perché è previsto che le notifiche relative ai criteri forzino l'aggiornamento automatico quando cambiano i criteri, rendendo superflui aggiornamenti più frequenti.</translation>
 <translation id="5530347722229944744">Blocca download potenzialmente pericolosi</translation>
 <translation id="5535973522252703021">Whitelist server di delega Kerberos</translation>
 <translation id="555077880566103058">Consenti l'esecuzione automatica del plug-in <ph name="FLASH_PLUGIN_NAME" /> in tutti i siti</translation>
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb
index 1859e20..b1b670fe 100644
--- a/components/policy/resources/policy_templates_kn.xtb
+++ b/components/policy/resources/policy_templates_kn.xtb
@@ -74,6 +74,14 @@
       ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಕ್ಯಾಷ್ ಮಾಡಿರುವ GPO ಗಳನ್ನು 25 ಗಂಟೆಗಳವರೆಗೆ ಮರುಬಳಕೆ ಮಾಡಬಹುದು.
 
       ಈ ಕಾರ್ಯನೀತಿಯನ್ನು 0 ಎಂದು ಹೊಂದಿಸಿದರೆ, GPO ಕ್ಯಾಷ್ ಮಾಡುವಿಕೆಯನ್ನು ಆಫ್ ಮಾಡಲಾಗುತ್ತದೆ. GPO ಗಳು ಬದಲಾಗದಿದ್ದರೂ, ಕಾರ್ಯನೀತಿಯನ್ನು ಪ್ರತಿ ಬಾರಿ ಪಡೆದುಕೊಳ್ಳುವಾಗಲೂ ಅವುಗಳನ್ನು ಮರು-ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಕಾರಣ, ಇದರಿಂದ ಸರ್ವರ್‌ನ ಮೇಲೆ ಹೆಚ್ಚಿನ ಹೊರೆ ಬೀಳುತ್ತದೆ.</translation>
+<translation id="1117462881884985156">ಇಲ್ಲಿ ಕೊಟ್ಟಿರುವ ಹೋಸ್ಟ್‌ಗಳ ಪಟ್ಟಿಗಾಗಿ ಇರುವ ಯಾವುದೇ ಪ್ರಾಕ್ಸಿಯನ್ನು <ph name="PRODUCT_NAME" />, ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ.
+
+          'ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೇಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು ಎಂಬುದನ್ನು ಆರಿಸಿ' ಎಂಬಲ್ಲಿ ನೀವು ಮ್ಯಾನುವಲ್ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ ಮತ್ತು <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+          ಪ್ರಾಕ್ಸಿ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಹೊಂದಿಸಲು ನೀವು ಬೇರೆ ಯಾವುದಾದರೂ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ, ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಬೇಡಿ.
+
+          ಇನ್ನಷ್ಟು ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Android ಉದ್ದೇಶಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಈ ನೀತಿಯ ಮೂಲಕ ಹೊಂದಿಸಲಾದ ಪ್ರೊಟೊಕಾಲ್‌ ಹ್ಯಾಂಡಲರ್‌ಗಳನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="1118093128235245168">ಸಂಪರ್ಕಗೊಂಡಿರುವ USB ಸಾಧನಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಬೇಕೆ ಎಂದು ಬಳಕೆದಾರರನ್ನು ಕೇಳಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ</translation>
 <translation id="1128903365609589950">ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ <ph name="PRODUCT_NAME" /> ಬಳಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ.
@@ -308,6 +316,13 @@
 <translation id="1599424828227887013">Android ಸಾಧನಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಮೂಲಗಳಿಗಾಗಿ ಸೈಟ್ ಪ್ರತ್ಯೇಕಿಸುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="1608755754295374538">ಪ್ರಾಂಪ್ಟ್ ಇಲ್ಲದೆಯೇ ಆಡಿಯೊ ಸೆರೆಹಿಡಿಯುವಿಕೆ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಪೂರೈಸುವಂತಹ URL ಗಳು</translation>
 <translation id="1615221548356595305">ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಬಳಸುವಾಗಲೂ ಸಹ, ಈ ಹೋಸ್ಟ್‌ಗಳಿಗಾಗಿ HTTP/2 ಸಂಪರ್ಕಗಳನ್ನು ಒಗ್ಗೂಡಿಸಲು ಅನುಮತಿ ನೀಡಿ</translation>
+<translation id="1615855314789673708">wilco DTC (ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ಮತ್ತು ಟೆಲಿಮೆಟ್ರಿ ಕಂಟ್ರೋಲರ್) ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ.
+
+      wilco DTC, ಈ ಸಾಧನದಲ್ಲಿ ಲಭ್ಯವಿದ್ದರೆ ಮತ್ತು ಕಾರ್ಯನೀತಿಯು ಅನುಮತಿಸಿದರೆ, ಅನ್ವಯಿಸಲು ಅನುಮತಿಯಿರುವ wilco DTC ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಒದಗಿಸಲು ಈ ಕಾರ್ಯನೀತಿಯು ಅನುಮತಿಸುತ್ತದೆ. ಕಾನ್ಫಿಗರೇಶನ್‌ನ ಗಾತ್ರವು 1MB (1000000 bytes) ಮೀರಬಾರದು ಮತ್ತು ಅದನ್ನು JSON ನಲ್ಲಿ ಎನ್‌ಕೋಡ್ ಮಾಡಬೇಕು. ಅದನ್ನು ನಿಭಾಯಿಸುವ ಜವಾಬ್ದಾರಿಯನ್ನು wilco DTC ಹೊಂದಿರುತ್ತದೆ. ಡೌನ್‌ಲೋಡ್‌ನ ಸಮಗ್ರತೆಯನ್ನು ದೃಢೀಕರಿಸಲು, ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಹ್ಯಾಶ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
+
+      ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ, ಕ್ಯಾಷ್‌ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. URL ಅಥವಾ ಹ್ಯಾಶ್ ಬದಲಾದಾಗಲೆಲ್ಲಾ, ಅದನ್ನು ಪುನಃ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="1617235075406854669">ಬ್ರೌಸರ್ ಅನ್ನು ಅಳಿಸುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಮತ್ತು ಇತಿಹಾಸವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ</translation>
 <translation id="163200210584085447">ಈ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪ್ಯಾಟರ್ನ್‌ಗಳು ವಿನಂತಿಸುತ್ತಿರುವ URL ನ ಸುರಕ್ಷತೆ ಮೂಲದ ವಿರುದ್ಧವಾಗಿ
       ಹೊಂದಾಣಿಕೆ ಮಾಡಲಾಗುತ್ತದೆ. ಹೊಂದಾಣಿಕೆ ಕಂಡುಬಂದರೆ, SAML ಲಾಗ್‌ಇನ್ ಪುಟಗಳಲ್ಲಿ
@@ -506,6 +521,9 @@
 <translation id="2030905906517501646">ಡಿಫಾಲ್ಟ್ ಹುಡುಕಾಟ ನೀಡುಗರ ಕೀವರ್ಡ್</translation>
 <translation id="203096360153626918">ಈ ನೀತಿಯು Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೇಲೆ ಯಾವುದೇ ಪರಿಣಾಮ ಹೊಂದಿರುವುದಿಲ್ಲ. ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು <ph name="FALSE" /> ಗೆ ಹೊಂದಿಸಿದ್ದರೂ ಅವರಿಗೆ ಪೂರ್ಣಪರದೆ ಮೋಡ್ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="2043770014371753404">ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿರುವ ಎಂಟರ್‌ಪ್ರೈಸ್ ಪ್ರಿಂಟರ್‌ಗಳು</translation>
+<translation id="2050629715135525072">ಕ್ಲೈಂಟ್ ಮತ್ತು ಹೋಸ್ಟ್ ನಡುವಿನ ಫೈಲ್‌ಗಳನ್ನು ವರ್ಗಾಯಿಸಲು, ರಿಮೋಟ್ ಪ್ರವೇಶ ಹೋಸ್ಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಬಳಕೆದಾರನ ಸಾಮರ್ಥ್ಯವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಫೈಲ್ ವರ್ಗಾವಣೆಗೆ ಬೆಂಬಲ ನೀಡದಿರುವ, ರಿಮೋಟ್ ಸಹಾಯಕ ಸಂಪರ್ಕಗಳಿಗೆ ಇದು ಅನ್ವಯಿಸುವುದಿಲ್ಲ.
+
+          ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಫೈಲ್‌ ವರ್ಗಾವಣೆಯನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ ಅಥವಾ ಹೊಂದಿಸದಿದ್ದರೆ, ಫೈಲ್‌ ವರ್ಗಾವಣೆಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದು.</translation>
 <translation id="2057317273526988987">URL ಗಳ ಪಟ್ಟಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="2061810934846663491">ರಿಮೋಟ್ ಪ್ರವೇಶ ಹೋಸ್ಟ್‌ಗಳಿಗೆ ಅಗತ್ಯವಿರುವ ಡೊಮೇನ್ ಹೆಸರುಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
 <translation id="206623763829450685">ಯಾವ HTTP ದೃಢೀಕರಣ ಸ್ಕೀಮ್‌ಗಳನ್ನು <ph name="PRODUCT_NAME" /> ಬೆಂಬಲಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. 
@@ -549,6 +567,13 @@
 ಈ ನೀತಿಯು ಪ್ರಾಥಮಿಕ ಮತ್ತು ಎಲ್ಲಾ ದ್ವಿತೀಯ ಪ್ರದರ್ಶನಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ.
 
 ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಇದ್ದರೆ, ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವು 0 ಡಿಗ್ರಿಗಳಾಗಿರುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಮುಕ್ತವಾಗಿರುತ್ತಾರೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವಾಗ ಮರು ಅನ್ವಯಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
+<translation id="2138449619211358657">ವೈ-ಫೈ ಪ್ರಾರಂಭ ಪೋರ್ಟಲ್ ಪ್ರಮಾಣೀಕರಣಕ್ಕಾಗಿ ಯಾವುದೇ ಪ್ರಾಕ್ಸಿಯನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು, ಈ ಕಾರ್ಯನೀತಿಯು <ph name="PRODUCT_OS_NAME" /> ಗೆ ಅನುಮತಿಸುತ್ತದೆ.
+
+      ಪ್ರಾಕ್ಸಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದರೆ (ಉದಹಾರಣೆಗೆ, ಕಾರ್ಯನೀತಿಯ ಮೂಲಕ, chrome://settings ನಲ್ಲಿ ಬಳಕೆದಾರರ ಮೂಲಕ, ಅಥವಾ ವಿಸ್ತರಣೆಗಳ ಮೂಲಕ) ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಎಲ್ಲಾ ಕಾರ್ಯನೀತಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಪ್ರಸ್ತುತ ಬಳಕೆದಾರರ ಮೇಲಿನ ನಿರ್ಬಂಧಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ, ಯಾವುದೇ ವೈ-ಫೈ ಪ್ರಾರಂಭ ಪೋರ್ಟಲ್ ಪ್ರಮಾಣೀಕರಣ ಪುಟಗಳನ್ನು (ಅಂದರೆ <ph name="PRODUCT_NAME" />, ಯಶಸ್ವಿ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪತ್ತೆಹಚ್ಚುವವರೆಗೆ, ವೈ-ಫೈ ಪ್ರಾರಂಭ ಪೋರ್ಟಲ್ ಸೈನ್-ಇನ್ ಪುಟದಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಎಲ್ಲಾ ವೆಬ್ ಪುಟಗಳು) ಪ್ರತ್ಯೇಕ ವಿಂಡೋದಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಅದನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಯಾವುದೇ ವೈ-ಫೈ ಪೋರ್ಟಲ್ ಪ್ರಮಾಣೀಕರಣ ಪುಟಗಳನ್ನು, ಪ್ರಸ್ತುತ ಬಳಕೆದಾರರ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು, (ನಿಯಮಿತ) ಹೊಸ ಬ್ರೌಸರ್ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="21394354835637379">ವಿಸ್ತರಣಿಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಥೀಮ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಯಾವ URLಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟ ಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
 
       <ph name="PRODUCT_NAME" /> 21 ರಲ್ಲಿ ಪ್ರಾರಂಭಿಸುವ ಮೂಲಕ, Chrome ವೆಬ್‌ ಅಂಗಡಿಯ ಹೊರಗಡೆ ವಿಸ್ತರಣೆಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಬಳಕೆದಾರರ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದು ತುಂಬಾ ಕಷ್ಟಕರವಾಗಿರುತ್ತದೆ. ಈ ಹಿಂದೆ, ಬಳಕೆದಾರರು *.crx ಲಿಂಕ್‌ನ ಮೇಲೆ ಕ್ಲಿಕ್‌ ಮಾಡುತ್ತಿದ್ದರು, ಮತ್ತು <ph name="PRODUCT_NAME" /> ಕೆಲವೊಂದು ಎಚ್ಚರಿಕೆಗಳ ನಂತರ Chrome ಫೈಲ್‌ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸೂಚಿಸುತ್ತಿತ್ತು. <ph name="PRODUCT_NAME" /> 21ರ ನಳತರ, ಕೆಲವೊಂದು ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿ <ph name="PRODUCT_NAME" /> ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟದಲ್ಲಿ ಡ್ರ್ಯಾಗ್‌ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಈ ಸೆಟ್ಟಿಂಗ್‌ ನಿರ್ದಿಷ್ಟ URL ಗಳಿಗೆ ಹಳೆಯ, ಸುಲಭ ಸ್ಥಾಪನೆಯು ಫ್ಲೋ ಅನ್ನು ಹೊಂದಿರಲು ಅನುಮತಿಸುತ್ತದೆ.
@@ -615,6 +640,7 @@
       ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಸಂಭವನೀಯವಾಗಿ ವೆಬ್ ಪುಟಗಳನ್ನು WebGL API ಬಳಸಲು ಮತ್ತು ಪ್ಲಗಿನ್‌ಗಳಿಗೆ Pepper 3D API ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಈ APIಗಳನ್ನು ಬಳಸುವ ಸಲುವಾಗಿ ಬ್ರೌಸರ್‌ನ ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಕಮಾಂಡ್ ಸಾಲಿನ ವಾದಗಳ ಅಗತ್ಯ ಇನ್ನೂ ಇರಬಹುದು.
 
       HardwareAccelerationModeEnabled ಅನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ, Disable3DAPIಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು Disable3DAPIಗಳನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸುವುದಕ್ಕೆ ಸಮವಾಗಿರುತ್ತದೆ.</translation>
+<translation id="2258126710006312594">ಹೋಸ್ಟ್‌ನಿಂದ/ಗೆ ಫೈಲ್‌ಗಳನ್ನು ರಿಮೋಟ್‌ ಪ್ರವೇಶ ಬಳಕೆದಾರರಿಗೆ ವರ್ಗಾಹಿಸಲು ಅನುಮತಿಸಿ</translation>
 <translation id="2265214338421787313">ಈ ಕಾರ್ಯನೀತಿಯು ಪುಟವನ್ನು ಅನ್‌ಲೋಡ್ ಮಾಡುವ ಸಂದರ್ಭದಲ್ಲಿ ಅದು ಪಾಪ್ಅಪ್‌ಗಳನ್ನು ತೋರಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿರ್ವಾಹಕರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ.
 
       ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಹೊಂದಿಸಿದರೆ, ಪುಟಗಳನ್ನು ಅನ್‌ಲೋಡ್ ಮಾಡುವಾಗ ಪಾಪ್ಅಪ್‌ಗಳನ್ನು ತೋರಿಸುವಂತೆ ಅವುಗಳನ್ನು ಅನುಮತಿಸಲಾಗುತ್ತದೆ.
@@ -891,6 +917,13 @@
       ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಸ್ವಯಂಚಾಲಿತ ಅಪ್‍ಡೇಟ್‍ನ ಪರಿಶೀಲನೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವುದಿಲ್ಲ, ಆದರೆ ಇತರ ಕಾರ್ಯನೀತಿಗಳು ಅವುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಬಹುದು. ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಗೊಳ್ಳುವ ಕಿಯೋಸ್ಕ್‌ಗಳ ರೂಪದಲ್ಲಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿರುವ Chrome ಸಾಧನಗಳಲ್ಲಿ ಮಾತ್ರ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುತ್ತದೆ. ಈ ಕಾರ್ಯನೀತಿಯು ಇತರ ಸಾಧನಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="2823870601012066791"><ph name="PRODUCT_OS_NAME" /> ಕ್ಲೈಂಟ್‌ಗಳಿಗಾಗಿ Windows ದಾಖಲಾತಿ ಸ್ಥಳ:</translation>
 <translation id="2824715612115726353">ಅದೃಶ್ಯ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು</translation>
+<translation id="2836621397261130126"><ph name="KERBEROS" /> ಟಿಕೆಟ್‌ಗಳನ್ನು ನಿಯೋಜಿಸಬೇಕೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು KDC ಕಾರ್ಯನೀತಿಯ ಮೂಲಕ ಅನುಮೋದನೆಯನ್ನು ಗೌರವಿಸಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯು ಸರಿ ಎಂದಾದರೆ, HTTP ಪ್ರಮಾಣೀಕರಣವು KDC ಕಾರ್ಯನೀತಿಯ ಮೂಲಕ ಅನುಮೋದನೆಯನ್ನು ಗೌರವಿಸುತ್ತದೆ, ಅಂದರೆ, ಸೇವಾ ಟಿಕೆಟ್‌ನಲ್ಲಿ KDC ಅನ್ನು <ph name="OK_AS_DELEGATE" /> ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದ್ದರೆ ಮಾತ್ರ Chrome ರುಜುವಾತುಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, https://tools.ietf.org/html/rfc5896.html ನೋಡಿ. ಸೇವೆಯು 'AuthNegotiateDelegateWhitelist' ಕಾರ್ಯನೀತಿಗೆ ಕೂಡ ಹೊಂದಾಣಿಕೆಯಾಗಬೇಕು.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿಲ್ಲದಿದ್ದರೆ ಅಥವಾ ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ, ಬೆಂಬಲಿತ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ KDC ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು 'AuthNegotiateDelegateWhitelist' ಕಾರ್ಯನೀತಿಯನ್ನು ಮಾತ್ರ ಗೌರವಿಸಲಾಗುತ್ತದೆ.
+
+          Windows ನಲ್ಲಿ, KDC ಕಾರ್ಯನೀತಿಯು ಯಾವಾಗಲೂ ಗೌರವಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="283695852388224413">ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಗರಿಷ್ಠ ಪಿನ್‌ ಉದ್ದವನ್ನು ಒತ್ತಾಯಪಡಿಸಲಾಗಿರುತ್ತದೆ. ಮೌಲ್ಯವು 0 ಅಥವಾ ಗರಿಷ್ಠ ಪಿನ್‌ ಉದ್ದಕ್ಕಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ; ಆ ಸಂದರ್ಭದಲ್ಲಿ,ಬಳಕೆದಾರರು ಅವರಿಗೆ ಬೇಕಾದಷ್ಟು ಪಿನ್‌ ಅನ್ನು ಉದ್ದಮಾಡಿಕೊಳ್ಳಬಹುದು. ಅಥವಾ ಈ ಸೆಟ್ಟಿಂಗ್ <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> ಗಿಂತ ಕಡಿಮೆ ಇದ್ದು 0 ಗಿಂತ ಹೆಚ್ಚು ಇದ್ದಲ್ಲಿ, ಗರಿಷ್ಠ ಉದ್ದವು ಕನಿಷ್ಠ ಉದ್ದಷ್ಟೆ ಇರುತ್ತದೆ.
 
           ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ, ಯಾವುದೇ ಗರಿಷ್ಠ ಉದ್ದವು ಒತ್ತಾಯಪಡಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
@@ -960,6 +993,17 @@
 <translation id="2907992746861405243"><ph name="BULK_PRINTERS_POLICY" /> ಯಿಂದ ಯಾವ ಪ್ರಿಂಟರ್‌ಗಳು ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿವೆ ಎನ್ನುವುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ದೊಡ್ಡ ಪ್ರಮಾಣದಲ್ಲಿ ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಯಾವ ಪ್ರವೇಶ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಬೇಕು ಎನ್ನುವುದನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ. <ph name="PRINTERS_ALLOW_ALL" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಎಲ್ಲ ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ. <ph name="PRINTERS_BLACKLIST" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ನಿರ್ದಿಷ್ಟ ಪ್ರಿಂಟರ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಲು <ph name="BULK_PRINTERS_BLACKLIST" /> ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. <ph name="PRINTERS_WHITELIST" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ ಪ್ರಿಂಟರ್‌ಗಳನ್ನು ಮಾತ್ರ <ph name="BULK_PRINTERS_WHITELIST" /> ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, <ph name="PRINTERS_ALLOW_ALL" /> ಎಂದು ಭಾವಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ.
       </translation>
 <translation id="2908277604670530363">ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ಗೆ ಏಕಕಾಲೀನ ಸಂಪರ್ಕಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ</translation>
+<translation id="2948463916588961959">ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯ ಭಾಷೆಗಳನ್ನು ಬಲವಂತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಆ ಪಟ್ಟಿಯಲ್ಲಿರುವ, ಗುರುತಿಸಲಾಗದ ಭಾಷೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಬಳಕೆದಾರರು ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿರುವ ಭಾಷೆಗಳು ಮಾತ್ರವಲ್ಲದೆ, ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಭಾಷೆಗಳಿಗಾಗಿ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಬಳಕೆದಾರರ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆ ಆದ್ಯತೆಗಳಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಉಂಟಾಗುವುದಿಲ್ಲ.
+
+      SpellcheckEnabled ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
+
+      ಒಂದು ವೇಳೆ ಭಾಷೆಯನ್ನು ಈ ಕಾರ್ಯನೀತಿಯಲ್ಲಿ ಮತ್ತು SpellcheckLanguageBlacklist ಕಾರ್ಯನೀತಿಯಲ್ಲಿ ಸೇರಿಸಿದ್ದರೆ, ಈ ಕಾರ್ಯನೀತಿಗೆ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯ ಭಾಷೆಯನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+      ಪ್ರಸ್ತುತ, ಈ ಭಾಷೆಗಳಿಗೆ ಬೆಂಬಲವಿದೆ: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">ನಿರ್ಬಂಧಗಳು:</translation>
 <translation id="2956777931324644324">ಈ ನೀತಿಯನ್ನು <ph name="PRODUCT_NAME" /> ಆವೃತ್ತಿ 36 ರ ರೂಪದಲ್ಲಿ ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ.
 
@@ -972,6 +1016,7 @@
 <translation id="2959898425599642200">ಪ್ರಾಕ್ಸಿ ಬೈಪಾಸ್ ನಿಯಮಗಳು</translation>
 <translation id="2960128438010718932">ಹೊಸ ಅಪ್‌ಡೇಟ್ ಅನ್ವಯಿಸುವ ಹಂತದ ವೇಳಾಪಟ್ಟಿ</translation>
 <translation id="2960691910306063964">ರಿಮೋಟ್ ಪ್ರವೇಶ ಹೋಸ್ಟ್‌ಗಳಿಗೆ ಪಿನ್ ರಹಿತ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="2972261849442778817">ಬಳಕೆದಾರರು ಡೇಟಾ ರವಾನೆ ಮಾಡಲು ಬಯಸುತ್ತಾರೆಯೇ ಅಥವಾ ಡೇಟಾ ರವಾನೆಯನ್ನು ಸ್ಕಿಪ್ ಮಾಡಲು ಹಾಗೂ ARC ಗೆ ಅನುಮತಿ ನೀಡದಿರಲು ಬಯಸುತ್ತಾರೆಯೇ ಎಂದು ಕೇಳಿ.</translation>
 <translation id="2976002782221275500">ಬ್ಯಾಟರಿ ಪವರ್‌ನಲ್ಲಿ ಮಂದವಾಗುವ ಪರದೆಯು ನಂತರ ಬಳಕೆದಾರ ಇನ್‌ಪುಟ್ ಇಲ್ಲದೆಯೇ ಸಮಯದ ಉದ್ದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
           ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಪರದೆಯನ್ನು <ph name="PRODUCT_OS_NAME" /> ಮಂದಗೊಳಿಸುವ ಮುನ್ನ ಬಳಕೆದಾರ ನಿಷ್ಪಲನಾಗಿ ಉಳಿಯುವಂತಹ ಉದ್ದವನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
 
@@ -991,6 +1036,14 @@
 <translation id="3021562480854470924">ಇಷ್ಟು ಸಂಖ್ಯೆಯಷ್ಟು ಮೈಲಿಗಲ್ಲುಗಳ ಹಿಂತಿರುಗುವಿಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ</translation>
 <translation id="3023572080620427845">ಪರ್ಯಾಯ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಬೇಕಾದ URL ಗಳನ್ನು ಹೊಂದಿರುವ XML ಫೈಲ್‌ನ URL.</translation>
 <translation id="3030000825273123558">ಮಾಪನಗಳ ವರದಿಗಾರಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="3033660238345063904">ನೀವು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ನ URL ಅನ್ನು ಇಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು.
+
+          'ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೇಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು ಎಂಬುದನ್ನು ಆರಿಸಿ' ಎಂಬಲ್ಲಿ ನೀವು ಮ್ಯಾನುವಲ್ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ ಮತ್ತು <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+          ಪ್ರಾಕ್ಸಿ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಹೊಂದಿಸಲು ನೀವು ಬೇರೆ ಯಾವುದಾದರೂ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ, ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಬೇಡಿ.
+
+          ಹೆಚ್ಚಿನ ಆಯ್ಕೆಗಳು ಮತ್ತು ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">JavaScript ಅನ್ನು ಚಾಲನೆ ಮಾಡಲು ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆಯೇ ಎಂದು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. JavaScript ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದರಿಂದ ಎಲ್ಲ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೂ ಅನುಮತಿಸಬಹುದು ಅಥವಾ ಎಲ್ಲ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೂ ನಿರಾಕರಿಸಬಹುದಾಗಿದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, 'AllowJavaScript' ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬಳಕೆದಾರರು ಬದಲಾಯಿಸಬಹುದಾಗಿರುತ್ತದೆ.</translation>
 <translation id="3038323923255997294"><ph name="PRODUCT_NAME" /> ಮುಚ್ಚಿದಾಗ ಚಾಲನೆಯಲ್ಲಿರುವ ಹಿನ್ನಲೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮುಂದುವರಿಸಿ</translation>
 <translation id="3046192273793919231">ಆನ್‌ಲೈನ್‌ ಸ್ಥಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ನಿರ್ವಹಣೆ ಸರ್ವರ್‌ಗೆ ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಕಳುಹಿಸಿ</translation>
@@ -1320,6 +1373,7 @@
           * ನ ಕಪ್ಪುಪಟ್ಟಿ ಮೌಲ್ಯವು ಎಂದರೆ ಎಲ್ಲ ಸ್ಥಳಿಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ ಹೋಸ್ಟ್‌ಗಳನ್ನು ಕಪ್ಪುಪಟ್ಟಿಯನ್ನಾಗಿ ಮಾಡಲಾಗಿದೆ ಎಂದರ್ಥ ಮತ್ತು ಕೇವಲ ಅನುಮತಿಪಟ್ಟಿಯಲ್ಲಿ ಪಟ್ಟಿಮಾಡಲಾಗಿರುವ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ ಹೋಸ್ಟ್‌ಗಳನ್ನು ಮಾತ್ರ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತದೆ.
 
           ಡೀಫಾಲ್ಟ್ ಆಗಿ, ಎಲ್ಲಾ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ  ಹೋಸ್ಟ್‌ಗಳನ್ನು ಅನುಮತಿ ಪಟ್ಟಿಯಾಗಿರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಒಂದು ವೇಳೆ ನೀತಿಯ ಮೂಲಕ ಎಲ್ಲ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ ಹೋಸ್ಟ್‌ಗಳನ್ನು ಕಪ್ಪುಪಟ್ಟಿಯನ್ನಾಗಿಸಿದರೆ, ಅನುಮತಿ ಪಟ್ಟಿಯು ಆ ನೀತಿಯನ್ನು ಅತಿಕ್ರಮಿಸಲು ಬಳಸಬಹುದು.</translation>
+<translation id="3835692988507803626">ಕಾಗುಣಿತ ಪರೀಕ್ಷೆ ಭಾಷೆಗಳನ್ನು ಬಲವಂತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="3837424079837455272">ಹೊಸ ಬಳಕೆದಾರರನ್ನು <ph name="PRODUCT_OS_NAME" /> ಗೆ ಸೇರಿಸಬಹುದೇ ಎಂಬುದನ್ನು ಈ ನೀತಿ ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಇದು Android ನೊಳಗೆ ಹೆಚ್ಚುವರಿ Google ಖಾತೆಗಳಿಗೆ ಬಳಕೆದಾರರು ಸೈನ್ ಇನ್ ಆಗುವುದನ್ನು ತಡೆಯುವುದಿಲ್ಲ. ಇದನ್ನು ತಡೆಯಲು ನೀವು ಬಯಸಿದರೆ,<ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> ಭಾಗವಾಗಿ Android-ನಿರ್ದಿಷ್ಟ <ph name="ARC_POLICY_POLICY_NAME" /> ನೀತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.</translation>
 <translation id="384743459174066962">ಪಾಪ್ಅಪ್‌ಗಳನ್ನು ತೆರೆಯಲು ಅನುಮತಿಸದೆ ಇರುವಂತಹ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ url ನಮೂನೆಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
 
@@ -1499,6 +1553,10 @@
           RemoteAccessHostDomain ಸಹ ನೋಡಿ.</translation>
 <translation id="4183229833636799228"><ph name="FLASH_PLUGIN_NAME" /> ನ ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್</translation>
 <translation id="4192388905594723944">ರಿಮೋಟ್ ಪ್ರವೇಶ ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣೀಕರಣ ಟೋಕನ್ ದೃಢೀಕರಿಸುವುದಕ್ಕಾಗಿ URL</translation>
+<translation id="4197038214024763371">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಸಕ್ರಿಯಗೊಳಿಸದಿದ್ದರೆ, ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಬಳಸಲು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಲಾಗುತ್ತದೆ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಬಳಸಲು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಾಗ, SpellcheckLanguage ಹಾಗೂ SpellcheckLanguageBlacklist ಕಾರ್ಯನೀತಿಗಳನ್ನು ಸಹ ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+      </translation>
 <translation id="4203389617541558220">ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್‌ಗಳನ್ನು ನಿಗದಿಗೊಳಿಸುವುದರ ಮೂಲಕ ಸಾಧನದ ಅಪ್‌ಟೈಮ್ ಅನ್ನು ಮಿತಗೊಳಿಸಿ.
 
       ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದಾಗ, ಒಂದು ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ ಅನ್ನು ನಿಗದಿಗೊಳಿಸಿದ ನಂತರ ಇದು ಸಾಧನದ ಅಪ್‌ಟೈಮ್ ಉದ್ದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
@@ -1671,6 +1729,17 @@
 <translation id="4613508646038788144">ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದರೆ, ಥರ್ಡ್‌ ಪಾರ್ಟಿ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕೋಡ್ ಅನ್ನು Chrome ನ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಸೇರಿಸಿಕೊಳ್ಳಲು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಸರಿ ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ ಥರ್ಡ್ ಪಾರ್ಟಿ ಸಾಫ್ಟ್‌ವೇರ್ Chrome ನ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ಸೇರಿಸುವುದನ್ನು ಇದು ತಡೆಯುತ್ತದೆ.</translation>
 <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" /> ನಲ್ಲಿ ಮೇಟಾ ಟ್ಯಾಗ್ ಪರಿಶೀಲನೆಯನ್ನು ಬಿಟ್ಟುಬಿಡಿ</translation>
 <translation id="4625915093043961294">ವಿಸ್ತರಣಾ ಸ್ಥಾಪನೆಯ ಶ್ವೇತಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
+<translation id="463224920692183755">ಬಳಕೆದಾರರ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ecryptfs ಎನ್‌ಕ್ರಿಪ್ಷನ್‌ನೊಂದಿಗೆ ರಚಿಸಿದ್ದಾಗ ಮತ್ತು ಅದನ್ನು ext4 ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ಗೆ ಪರಿವರ್ತಿಸಬೇಕಿದ್ದಾಗ, ಯಾವ ಕ್ರಮ ಕೈಗೊಳ್ಳಬೇಕು ಎಂಬುದನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು 'DisallowArc' ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಈ ಬಳಕೆದಾರರಿಗೆ Android ಆ್ಯಪ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ecryptfs ನಿಂದ ext4 ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ಗೆ ಡೇಟಾ ರವಾನೆ ಮಾಡುವ ಕಾರ್ಯವನ್ನು ನಡೆಸಲಾಗುವುದಿಲ್ಲ. ಹೋಮ್ ಡೈರೆಕ್ಟರಿಯು ಈಗಾಗಲೇ ext4-ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಹೊಂದಿದ್ದಾಗ, Android ಆ್ಯಪ್‌ಗಳು ರನ್ ಆಗದಂತೆ ತಡೆಗಟ್ಟಲಾಗುವುದಿಲ್ಲ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು 'ಡೇಟಾ ರವಾನೆ' ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, ecryptfs-ಎನ್‍ಕ್ರಿಪ್ಶನ್ ಹೊಂದಿರುವ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳ ಡೇಟಾವನ್ನು ಬಳಕೆದಾರರ ಸಮ್ಮತಿ ಕೇಳದೆಯೇ ext4 ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ಗೆ ರವಾನೆ ಮಾಡಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು 'ಅಳಿಸಿ' ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, ecryptfs-ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಹೊಂದಿರುವ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ಬದಲಿಗೆ ext4-ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಹೊಂದಿರುವ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಎಚ್ಚರಿಕೆ: ಇದು ಬಳಕೆದಾರರ ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು 'AskUser' ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ecryptfs-ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಇರುವ ಹೋಮ್ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಹೊಂದಿರುವ ಬಳಕೆದಾರರಿಗೆ, ಡೇಟಾ ರವಾನೆ ಮಾಡುವ ಪ್ರಸ್ತಾವವನ್ನು ನೀಡಲಾಗುತ್ತದೆ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯು ಕಿಯಾಸ್ಕ್ ಬಳಕೆದಾರರಿಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ. 'DisallowArc' ಅನ್ನು ಆರಿಸಿದರೆ ಸಾಧನವು ಯಾವ ರೀತಿ ವರ್ತಿಸುತ್ತದೆಯೋ, ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಕೂಡಾ ಅದೇ ರೀತಿ ವರ್ತಿಸುತ್ತದೆ.</translation>
 <translation id="4632343302005518762">ಪಟ್ಟಿಮಾಡಲಾದ ವಿಷಯದ ಪ್ರಕಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು <ph name="PRODUCT_FRAME_NAME" /> ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.</translation>
 <translation id="4632566332417930481">ಎಂಟರ್‌ಪ್ರೈಸ್ ಕಾರ್ಯನೀತಿಯು ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಿದ ವಿಸ್ತರಣೆಗಳ ಮೇಲೆ ಡೆವಲಪರ್‌ ಪರಿಕರಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಬೇಡಿ, ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ ಡೆವಲಪರ್‌ ಪರಿಕರಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="4633786464238689684">ಅಗ್ರ ಸಾಲಿನ ಕೀಲಿಗಳ ಡಿಫಾಲ್ಟ್ ವರ್ತನೆಯನ್ನು ಕಾರ್ಯವಿಧಾನದ ಕೀಲಿಗಳಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ.
@@ -1782,8 +1851,41 @@
 <translation id="4986560318567565414">ಪರ್ಯಾಯ ಬ್ರೌಸರ್‌ನಿಂದ ಬದಲಾಯಿಸಲು Chrome ಗೆ ಪಥ.</translation>
 <translation id="4988291787868618635">ನಿಷ್ಪಲ ವಿಳಂಬ ತಲುಪಿದಾಗ ತೆಗೆದುಕೊಳ್ಳಬೇಕಾದ ಕ್ರಮ</translation>
 <translation id="4995548127349206948">NTLMv2 ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆಯೇ.</translation>
+<translation id="5030889661505907084">
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸರಿ ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದ್ದರೆ, ಕ್ಲೌಡ್ ಕಾರ್ಯನೀತಿ ಹಾಗೂ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯನೀತಿಯ ನಡುವೆ ಸಂಘರ್ಷ ಉಂಟಾದ ಸಂದರ್ಭದಲ್ಲಿ, ಕ್ಲೌಡ್ ಕಾರ್ಯನೀತಿಯು ಮೇಲುಗೈ ಹೊಂದಿರುತ್ತದೆ.
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದ್ದರೆ ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದರೆ, ಕ್ಲೌಡ್ ಕಾರ್ಯನೀತಿ ಹಾಗೂ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯನೀತಿಯ ನಡುವೆ ಸಂಘರ್ಷ ಉಂಟಾದ ಸಂದರ್ಭದಲ್ಲಿ, ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯನೀತಿಯು ಮೇಲುಗೈ ಹೊಂದಿರುತ್ತದೆ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯು ಕೇವಲ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ರೂಪದಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿದೆ.
+      </translation>
 <translation id="5047604665028708335">ವಿಷಯ ಪ್ಯಾಕ್‌ಗಳಿಂದ ಹೊರಗಿನ ಸೈಟ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ</translation>
 <translation id="5052081091120171147">ಪ್ರಸ್ತುತ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ ಈ ನೀತಿಯು ಅದರಿಂದ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಆಮದು ಮಾಡುವಂತೆ ಒತ್ತಾಯಿಸುತ್ತದೆ. ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ, ಈ ನೀತಿಯು ಆಮದು ಸಂವಾದಕ್ಕೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ, ಯಾವುದೇ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಆಮದು ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಇದನ್ನು ಹೊಂದಿಸದೆ ಇದ್ದಲ್ಲಿ, ಆಮದು ಮಾಡಬೇಕೆ ಅಥವಾ ಬೇಡವೆ ಎಂದು ಬಳಕೆದಾರರನ್ನು ಕೇಳಲಾಗುತ್ತದೆ ಅಥವಾ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಮದು ಆಗುತ್ತದೆ.</translation>
+<translation id="5055312535952606505"><ph name="PRODUCT_NAME" /> ಗಾಗಿ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ಈ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ARC-ಆ್ಯಪ್‌ಗಳಿಗೂ ಲಭ್ಯವಿರುತ್ತವೆ.
+
+          ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಮತ್ತು ARC-ಆ್ಯಪ್‌ಗಳು, ಕಮಾಂಡ್ ಲೈನ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತವೆ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಬಳಕೆದಾರರು ತಮ್ಮದೇ ಆದ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಅದು <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> ಮತ್ತು<ph name="PROXY_SERVER_MODE_POLICY_NAME" /> ಗಳಲ್ಲಿ ಯಾವುದೇ ಪ್ರತ್ಯೇಕ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ.
+
+         <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> ಕ್ಷೇತ್ರವು, <ph name="PRODUCT_NAME" /> ಬಳಸುವ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸದಂತೆ ತಡೆಯುತ್ತದೆ.
+
+          <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> ಕ್ಷೇತ್ರವು, ಪ್ರಾಕ್ಸಿ .pac ಫೈಲ್‌ನ URL ಆಗಿದೆ.
+
+          <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> ಕ್ಷೇತ್ರವು, ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ನ URL ಆಗಿದೆ.
+
+          <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> ಕ್ಷೇತ್ರವು, <ph name="PRODUCT_NAME" /> ಬೈಪಾಸ್ ಮಾಡುವ ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್‌ಗಳ ಪಟ್ಟಿಯಾಗಿದೆ.
+
+          <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> ಕ್ಷೇತ್ರವನ್ನು ತಡೆಹಿಡಿಯಲಾಗಿದೆ ಮತ್ತು ಅದರ ಬದಲಿಗೆ 'ProxyMode' ಬಳಸಲಾಗುತ್ತಿದೆ. <ph name="PRODUCT_NAME" /> ಬಳಸುವ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಮತ್ತು ಬಳಕೆದಾರರು ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸದಂತೆ ತಡೆಗಟ್ಟಲು, ಇದು ನಿಮಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ.
+
+          ನೀವು 'ProxyMode' ಗಾಗಿ 'ನೇರ' ಎಂಬ ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ, ಪ್ರಾಕ್ಸಿಯನ್ನು ಎಂದೂ ಬಳಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಇತರ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು 'ProxyMode' ಗಾಗಿ 'ಸಿಸ್ಟಂ' ಎಂಬ ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಸಿಸ್ಟಂನ ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಇತರ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು 'ProxyMode' ಗಾಗಿ 'auto_detect' ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಇತರ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು 'ProxyMode' ಗಾಗಿ 'fixed_server' ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ProxyServer ಹಾಗೂ 'ProxyBypassList' ಕ್ಷೇತ್ರಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು 'ProxyMode' ಗಾಗಿ 'pac_script' ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, 'ProxyPacUrl' ಹಾಗೂ 'ProxyBypassList' ಕ್ಷೇತ್ರಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="5056708224511062314">ಪರದೆ ವರ್ಧಕವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="5058573563327660283">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲೀನ್-ಅಪ್ ಸಂದರ್ಭದಲ್ಲಿ ಡಿಸ್ಕ್ ಸ್ಥಳವನ್ನು ಮುಕ್ತಗೊಳಿಸಲು ಬಳಸುವಂತಹ ಕಾರ್ಯತಂತ್ರವನ್ನು ಆಯ್ಕೆಮಾಡಿ (ಅಸಮ್ಮತಿಸಲಾಗಿದೆ)</translation>
 <translation id="5067143124345820993">ಬಳಕೆದಾರ ಶ್ವೇತಪಟ್ಟಿಯನ್ನು ಲಾಗಿನ್ ಮಾಡಿ</translation>
@@ -1840,6 +1942,24 @@
       ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ, ಡಿಫಾಲ್ಟ್ ವಿರಾಮವು 3 ನಿಮಿಷಗಳಾಗಿರುತ್ತದೆ. ಕನಿಷ್ಠ ವಿರಾಮ 30 ಸೆಕೆಂಡುಗಳಾಗಿರುತ್ತದೆ ಮತ್ತು ಗರಿಷ್ಠ ವಿರಾಮ 24 ಗಂಟೆಗಳಾಗಿರುತ್ತದೆ - ಈ ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿನ
 ಮೌಲ್ಯಗಳನ್ನು ಈ ವ್ಯಾಪ್ತಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="5163002264923337812">ಹಳೆಯ ವೆಬ್ ಆಧಾರಿತ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="5168529971295111207">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಡೆಹಿಡಿಯಲಾಗಿದೆ, ಇದರ ಬದಲಿಗೆ ProxyMode ಬಳಸಿ.
+
+          <ph name="PRODUCT_NAME" /> ಬಳಸುವ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು, ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸದಂತೆ ತಡೆಗಟ್ಟುತ್ತದೆ.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+          ನೀವು ಎಂದಿಗೂ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಬಳಸದಿರಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ ಮತ್ತು ಯಾವಾಗಲೂ ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸಿದರೆ, ಇತರ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು ಸಿಸ್ಟಂನ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‍ಗಳನ್ನು ಬಳಸಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ ಅಥವಾ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚಿದರೆ, ಇತರ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು ಮ್ಯಾನುವಲ್ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ, 'ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ನ ವಿಳಾಸ ಅಥವಾ URL', 'ಪ್ರಾಕ್ಸಿ .pac ಫೈಲ್‌ನ URL' ಹಾಗೂ 'ಅಲ್ಪವಿರಾಮಗಳ ಮೂಲಕ ಪ್ರತ್ಯೇಕಿಸಿರುವ ಪ್ರಾಕ್ಸಿ ಬೈಪಾಸ್ ನಿಯಮಗಳು' ಎಂಬಲ್ಲಿ ನೀವು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ARC-ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ, ಅತ್ಯಧಿಕ ಆದ್ಯತೆಯ HTTP ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಮಾತ್ರ ಲಭ್ಯವಿರುತ್ತದೆ.
+
+          ವಿವರವಾದ ಉದಹಾರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ:
+          <ph name="PROXY_HELP_URL" />.
+
+          ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಕಮಾಂಡ್-ಲೈನ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು <ph name="PRODUCT_NAME" /> ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಬಳಕೆದಾರರು ತಮ್ಮದೇ ಆದ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="5182055907976889880"><ph name="PRODUCT_OS_NAME" /> ರಲ್ಲಿ Google ಡ್ರೈವ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.</translation>
 <translation id="5183383917553127163">ಯಾವ ವಿಸ್ತರಣೆಗಳು ಕಪ್ಪುಪಟ್ಟಿಗೆ ಒಳಪಡುವುದಿಲ್ಲ ಎಂದು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
 
@@ -1939,6 +2059,7 @@
 
     ಇಲ್ಲದಿದ್ದರೆ, ಅದನ್ನು ಈ ಮುಂದಿನ ಮೌಲ್ಯಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಒಂದು ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಬಹುದು: "tls1.2" ಅಥವಾ "tls1.3". ಇದನ್ನು ಹೊಂದಿಸಿದಾಗ, ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಆವೃತ್ತಿಗಿಂತ ಹೆಚ್ಚಿನ SSL/TLS ಆವೃತ್ತಿಗಳನ್ನು <ph name="PRODUCT_NAME" /> ಬಳಸುವುದಿಲ್ಲ. ಗುರುತಿಸಲಾಗದ ಮೌಲ್ಯವನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುವುದು.</translation>
 <translation id="5330684698007383292">ಮುಂದಿನ ವಿಷಯದ ಪ್ರಕಾರಗಳನ್ನು ನಿರ್ವಹಿಸಲು <ph name="PRODUCT_FRAME_NAME" /> ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.</translation>
+<translation id="5331746669335642668"><ph name="PRODUCT_NAME" /> ಕ್ಲೌಡ್ ಕಾರ್ಯನೀತಿಯು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯನೀತಿಯನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ.</translation>
 <translation id="5365476955714838841">ಪರ್ಯಾಯ ಬ್ರೌಸರ್‌ಗಾಗಿ ಕಮಾಂಡ್-ಲೈನ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು</translation>
 <translation id="5365946944967967336">ಪರಿಕರ ಪಟ್ಟಿಯಲ್ಲಿ ಮುಖಪುಟ ಬಟನ್‌ ಅನ್ನು ತೋರಿಸು</translation>
 <translation id="5366745336748853475">ಸೈಟ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಕೋರಿದರೆ, SAML ಹರಿವನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವ ಚೌಕಟ್ಟಿನಲ್ಲಿನ ಸೈನ್-ಇನ್ ಪರದೆಯಲ್ಲಿ ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಯ್ಕೆಮಾಡಲ್ಪಡುವ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ url ಪ್ಯಾಟರ್ನ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. SAML IdP ಗೆ ಒದಗಿಸುವ ಸಾಧನ-ವಿಸ್ತಾರದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್‌ ಮಾಡುವುದು ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.
@@ -2124,6 +2245,13 @@
           ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದಾಗ ಅಮಾನತ್ತಿನಲ್ಲಿರುವ ಡಿಫಾಲ್ಟ್‌ ಕ್ರಮ ಕೈಗೊಳ್ಳಲಾಗುವುದು.
 
           ಕ್ರಮವು ಅಮಾನತ್ತಿನಲ್ಲಿದ್ದರೆ, ಅಮಾನತ್ತು ಮಾಡುವ ಮುನ್ನ ಪರದೆಯನ್ನು ಲಾಕ್‌ ಮಾಡಲು ಅಥವಾ ಲಾಕ್‌ ಮಾಡದೆ ಇರಲು <ph name="PRODUCT_OS_NAME" /> ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಕಾನ್ಫಿಗರ್‌ ಮಾಡಬಹುದು.</translation>
+<translation id="5618398258385745432">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸುವುದರ ಮೇಲೆ ಮರುಪ್ರಮಾಣೀಕರಣವನ್ನು ಪರಿಚಯಿಸುವ ಮೊದಲೇ ಸಂಬಂಧಿತ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗಿತ್ತು. ಆ ಬಳಿಕ, ಈ ಸೆಟ್ಟಿಂಗ್ ಹಾಗೂ ಈ ಕಾರ್ಯನೀತಿಯು Chrome ನ ವರ್ತನೆಯ ಮೇಲೆ ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರಲಿಲ್ಲ. ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟದಲ್ಲಿ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಪಠ್ಯದ ಮೂಲಕ ತೋರಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಂತೆ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ ಸಂದರ್ಭದ ವರ್ತನೆ ಹಾಗೂ Chrome ನ ಪ್ರಸ್ತುತ ವರ್ತನೆಯು ಈಗ ಒಂದೇ ತೆರನಾಗಿದೆ. ಅದರ ಅರ್ಥ, ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟವು ಕೇವಲ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಅನ್ನು ಮಾತ್ರ ಹೊಂದಿರುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು "ತೋರಿಸಿ" ಎಂಬುದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದರೆ ಮಾತ್ರ (ಹಾಗೂ ಅನ್ವಯಿಸಿದಲ್ಲಿ, ಮರುಪ್ರಮಾಣೀಕರಿಸಿದರೆ) Chrome, ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ. ಕಾರ್ಯನೀತಿಯ ಮೂಲ ವಿವರಣೆಯು ಈ ಕೆಳಗಿನಂತಿದೆ.
+
+          ಬಳಕೆದಾರರು, ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕದಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸ್ಪಷ್ಟವಾದ ಪಠ್ಯದಲ್ಲಿ ತೋರಿಸಬಹುದೇ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ.
+
+          ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಸಂಗ್ರಹಣೆ ಮಾಡಿರುವ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕ ವಿಂಡೋದಲ್ಲಿ ತೋರಿಸಲು ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕವು ಅನುಮತಿಸುವುದಿಲ್ಲ.
+
+          ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದಿದ್ದರೆ, ಬಳಕೆದಾರರು ತಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು, ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕದಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ ಪಠ್ಯದಲ್ಲಿ ವೀಕ್ಷಿಸಬಹುದು.</translation>
 <translation id="5620392548325769024">OS ಅಪ್‌ಗ್ರೇಡ್ ನಂತರ ಮೊದಲ ಬಾರಿಗೆ ಬ್ರೌಸರ್ ಪ್ರಾರಂಭಗೊಳ್ಳುವ ಸಮಯದಲ್ಲಿ ಸ್ವಾಗತ ಪುಟ ತೋರಿಸಲ್ಪಡುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="5630352020869108293">ಕೊನೆಯ ಸೆಶನ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ</translation>
 <translation id="5645779841392247734">ಈ ಸೈಟ್‌ಗಳಲ್ಲಿನ ಕುಕೀಸ್ ಅನುಮತಿಸಿ</translation>
@@ -2385,6 +2513,14 @@
 <translation id="6155936611791017817">ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿ ದೊಡ್ಡ ಕರ್ಸರ್‌ನ ಡಿಫಾಲ್ಟ್ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="6157537876488211233">ಪ್ರಾಕ್ಸಿ ಬೈಪಾಸ್ ನಿಯಮಗಳ ಅಲ್ಪವಿರಾಮದಿಂದ ಬೇರ್ಪಡಿಸಲಾದ ಪಟ್ಟಿ</translation>
 <translation id="6158324314836466367">ಎಂಟರ್‌ಪ್ರೈಸ್ ವೆಬ್ ಸ್ಟೋರ್ ಹೆಸರು (ಅಸಮ್ಮತಿಸಲಾಗಿದೆ)</translation>
+<translation id="6158817306788002298">ಪ್ರಾಕ್ಸಿ .pac ಫೈಲ್‌ನ URL ಅನ್ನು ನೀವು ಇಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪದಿಸಬಹುದು.
+
+          'ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೇಗೆ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು ಎಂಬುದನ್ನು ಆರಿಸಿ' ಎಂಬಲ್ಲಿ ನೀವು ಮ್ಯಾನುವಲ್ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ ಮತ್ತು <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+          ಪ್ರಾಕ್ಸಿ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಹೊಂದಿಸಲು ನೀವು ಬೇರೆ ಯಾವುದಾದರೂ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದರೆ, ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಬೇಡಿ.
+
+          ವಿವರವಾದ ಉದಹಾರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="6178075938488052838"><ph name="PRODUCT_OS_NAME" /> ಸೆಷನ್ ಅನ್ನು ಯಾರು ಪ್ರಾರಂಭಿಸಬಹುದು ಎಂಬುದನ್ನು ಈ ನೀತಿಯು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಇದು Android ನಲ್ಲಿನ ಹೆಚ್ಚುವರಿ Google ಖಾತೆಗಳಿಗೆ ಬಳಕೆದಾರರು ಸೈನ್ ಇನ್ ಆಗುವುದನ್ನು ತಡೆಗಟ್ಟುವುದಿಲ್ಲ. ಇದನ್ನು ತಡೆಗಟ್ಟಲು ನೀವು ಬಯಸಿದರೆ,<ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> ಭಾಗವಾಗಿ Android-ನಿರ್ದಿಷ್ಟ <ph name="ARC_POLICY_POLICY_NAME" /> ನೀತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.</translation>
 <translation id="6181608880636987460"><ph name="FLASH_PLUGIN_NAME" /> ಪ್ಲಗ್‌ಇನ್ ರನ್‌ಮಾಡಲು ಅನುಮತಿಸಲಾರದ ನಿರ್ದಿಷ್ಟ ಸೈಟ್‌ಗಳ url ಮಾದರಿಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
 
@@ -2420,6 +2556,17 @@
 <translation id="6281043242780654992">ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಗಾಗಿ ನೀತಿಗಳನ್ನು ಕಾನ್ಫಿಗರ್‌ ಮಾಡುತ್ತದೆ. ಅನುಮತಿಪಟ್ಟಿ ಮಾಡದ ಹೊರತು ಅವುಗಳನ್ನು ಕಪ್ಪುಪಟ್ಟಿಗೆ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ ಹೋಸ್ಟ್‌ಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="6282799760374509080">ಆಡಿಯೋ ಸೆರೆಹಿಡಿಯುವಿಕೆ ಅನುಮತಿಸಿ ಅಥವಾ ನಿರಾಕರಿಸಿ</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">ಕಾಗುಣಿತ ಪರೀಕ್ಷೆ ಭಾಷೆಗಳನ್ನು ಬಲವಂತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಆ ಪಟ್ಟಿಯಲ್ಲಿರುವ, ಗುರುತಿಸಲಾಗದ ಭಾಷೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಭಾಷೆಗಳಿಗಾಗಿ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ. ಪಟ್ಟಿಯಲ್ಲಿರದ ಭಾಷೆಗಳಿಗಾಗಿ, ಬಳಕೆದಾರರು ಈಗಲೂ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.
+
+      ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಬಳಕೆದಾರರ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆ ಆದ್ಯತೆಗಳಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆ ಉಂಟಾಗುವುದಿಲ್ಲ.
+
+      SpellcheckEnabled ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ, ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
+
+      ಯಾವುದೇ ಭಾಷೆಯನ್ನು ಈ ಕಾರ್ಯನೀತಿ ಹಾಗೂ SpellcheckLanguage ಕಾರ್ಯನೀತಿಗಳೆರಡರಲ್ಲೂ ಸೇರಿಸಿದ್ದರೆ, SpellcheckLanguage ಕಾರ್ಯನೀತಿಗೆ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯ ಭಾಷೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.
+
+      ಪ್ರಸ್ತುತ, ಈ ಭಾಷೆಗಳಿಗೆ ಬೆಂಬಲವಿದೆ: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">ಬಳಕೆದಾರ ಸೈನ್ ಇನ್ ಮಾಡುವ ಸಮಯದಲ್ಲಿ ಡೊಮೇನ್ ಹೆಸರು ಸ್ವಯಂಪೂರ್ಣತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="6315673513957120120">SSL ದೋಷಗಳನ್ನು ಹೊಂದಿರುವ ಸೈಟ್‌ಗಳಿಗೆ ಬಳಕೆದಾರರು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದಾಗ ಎಚ್ಚರಿಕೆ ಪುಟವನ್ನು Chrome ತೋರಿಸುತ್ತದೆ. ಡಿಫಾಲ್ಟ್ ಆಗಿ ಅಥವಾ ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಾಗ, ಈ ಎಚ್ಚರಿಕೆ ಪುಟಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡಲು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಲಾಗುತ್ತದೆ.
       ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸುವುದರಿಂದ ಯಾವುದೇ ಎಚ್ಚರಿಕೆ ಪುಟ ಕ್ಲಿಕ್ ಮಾಡುವುದನ್ನು ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
@@ -3078,6 +3225,8 @@
 
       ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ https://developers.google.com/safe-browsing ನೋಡಿ.</translation>
 <translation id="7643883929273267746"><ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ಗೋಚರಿಸುವ ಖಾತೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
+<translation id="7644825865811580663">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸರಿ ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದ್ದರೆ, ಮೊದಲ ಬಾರಿ ರನ್ ಮಾಡಿದಾಗ ತೋರಿಸಿದ ಮೊದಲ ವಿಂಡೋವನ್ನು <ph name="PRODUCT_NAME" />, ಷರತ್ತುಗಳಿಲ್ಲದೆ ಮ್ಯಾಕ್ಸಿಮೈಸ್ ಮಾಡುತ್ತದೆ.
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದರೆ ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡದಿದ್ದರೆ, ತೋರಿಸುವ ಮೊದಲ ವಿಂಡೋವನ್ನು ಮ್ಯಾಕ್ಸಿಮೈಸ್ ಮಾಡಬೇಕೇ ಎಂಬ ನಿರ್ಧಾರವು, ಪರದೆಯ ಗಾತ್ರದ ಮೇಲೆ ಅವಲಂಬಿಸಿರುತ್ತದೆ.</translation>
 <translation id="7651739109954974365">ಸಾಧನಕ್ಕಾಗಿ ಡೇಟಾ ರೋಮಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದೆಯೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. 'ನಿಜ' ಎಂದು ಹೊಂದಿಸಿದರೆ, ಡೇಟಾ ರೋಮಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. ಕಾನ್ಫಿಗರ್ ಮಾಡದೆ ಹಾಗೆ ಬಿಟ್ಟರೆ ಅಥವಾ 'ತಪ್ಪು' ಎಂದು ಹೊಂದಿಸಿದರೆ, ಡೇಟಾ ರೋಮಿಂಗ್ ಲಭ್ಯವಿರುವುದಿಲ್ಲ.</translation>
 <translation id="7657261947024629645">ಕಾರ್ಯಕ್ಷಮತೆಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿ.</translation>
 <translation id="7673194325208122247">ಕಾಲಾವಧಿ (ಮಿಲಿಸೆಕೆಂಡುಗಳು)</translation>
@@ -3532,6 +3681,7 @@
           ಬಹು ಸರ್ವರ್ ಹೆಸರುಗಳನ್ನು ಅಲ್ಪವಿರಾಮಗಳಿಂದ ಬೇರ್ಪಡಿಸಿ. ವೈಲ್ಡ್‌ಕಾರ್ಡ್‌ಗಳನ್ನು (*) ಅನುಮತಿಸಲಾಗುತ್ತದೆ.
 
           ಈ ನೀತಿಯನ್ನು ನೀವು ಹೊಂದಿಸದೆ ಹಾಗೇ ಬಿಟ್ಟರೆ ಸರ್ವರ್ ಇಂಟ್ರಾನೆಟ್‌ನಲ್ಲಿದೆಯೇ ಎಂಬುದನ್ನು ಪತ್ತೆಹಚ್ಚಲು <ph name="PRODUCT_NAME" /> ಪ್ರಯತ್ನಿಸುತ್ತದೆ ನಂತರ ಮಾತ್ರವೇ ಅದು IWA ವಿನಂತಿಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಸರ್ವರ್ ಅನ್ನು ಇಂಟರ್ನೆಟ್‌ನಂತೆ ಪತ್ತೆಹಚ್ಚಲಾಗಿದ್ದರೆ ನಂತರ ಅದರಿಂದ IWA ವಿನಂತಿಗಳನ್ನು <ph name="PRODUCT_NAME" /> ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.</translation>
+<translation id="8661297125441579970">ಡೇಟಾ ರವಾನೆ ಹಾಗೂ ARC ಗೆ ಅನುಮತಿ ನೀಡಬೇಡಿ.</translation>
 <translation id="8672321184841719703">ಲಕ್ಷ್ಯ ಸ್ವಯಂ ಅಪ್‌ಡೇಟ್‌‌ ಆದ ಆವೃತ್ತಿ</translation>
 <translation id="867410340948518937">U2F (ಸಾರ್ವತ್ರಿಕ ಎರಡನೆಯ ಅಂಶ)</translation>
 <translation id="8682611302223077049">ಕಾಲಾವಧಿಯನ್ನು ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ಹೊಂದಿಸಲು ಇದು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಬಾಕಿಯಿರುವ ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲು <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪುನಃ ಪ್ರಾರಂಭಿಸಬೇಕು ಅಥವಾ <ph name="PRODUCT_OS_NAME" /> ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು ಎಂದು ಈ ಅವಧಿಯಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಸೂಚನೆ ನೀಡಲಾಗುತ್ತದೆ.
@@ -3566,6 +3716,7 @@
            ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಗೊಳಿಸದಿದ್ದರೆ, ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಡೌನ್‌ಲೋಡ್ ಇತಿಹಾಸವನ್ನು ಅಳಿಸಬಹುದು.
 
            ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಡೌನ್‌ಲೋಡ್ ಇತಿಹಾಸವನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
+<translation id="8757552286070680084">Wilco DTC ಕಾನ್ಫಿಗರೇಶನ್</translation>
 <translation id="8758831693895931466">ಕಡ್ಡಾಯವಾದ ಕ್ಲೌಡ್ ನಿರ್ವಹಣೆ ನೋಂದಣಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="8759829385824155666">ಅನುಮತಿಸಿರುವ Kerberos ಎನ್‌ಕ್ರಿಪ್ಶನ್ ವಿಧಗಳು</translation>
 <translation id="8764119899999036911">ರಚಿತವಾದ Kerberos SPN ಕ್ಯಾನೊನಿಕಲ್ DNS ಹೆಸರಿಗೆ ಅಥವಾ ನಮೂದಿಸಲಾದ ಮೂಲ ಹೆಸರಿಗೆ ಆಧಾರಿತವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, CNAME ಲುಕಪ್ ಅನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಮೂದಿಸಿದಂತೆ ಸರ್ವರ್ ಹೆಸರನ್ನು ಬಳಸಲಾಗುವುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನೀವು ನಿಷ್ಕ್ಕಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, ಸರ್ವರ್‌ನ ಕ್ಯಾನೊನಿಕಲ್ ಹೆಸರನ್ನು CNAME ಲುಕಪ್ ಮೂಲಕ ದೃಢೀಕರಿಸಲಾಗುವುದು.</translation>
@@ -3590,6 +3741,26 @@
 <translation id="8833109046074170275">ಡಿಫಾಲ್ಟ್‌‌ GAIA ಹರಿವಿನ ಮೂಲಕ ಪ್ರಮಾಣೀಕರಣ</translation>
 <translation id="8838303810937202360">ಒಂದೇ ಸಾಧನದ ಅನೇಕ ಬಳಕೆದಾರರು ಸ್ಥಾಪನೆ ಮಾಡಿಕೊಳ್ಳುವುದಕ್ಕಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳನ್ನು <ph name="PRODUCT_OS_NAME" /> ಸಂಗ್ರಹ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಪ್ರತಿ ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಮರು-ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಬಹುದು. 
       ನೀತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡದೇ ಇದ್ದರೆ ಅಥವಾ ಮೌಲ್ಯವು 1 MB ಗಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ, <ph name="PRODUCT_OS_NAME" /> ಡಿಫಾಲ್ಟ್ ಸಂಗ್ರಹ ಗಾತ್ರವನ್ನು ಬಳಸುತ್ತದೆ.</translation>
+<translation id="8851325571441692315"><ph name="PRODUCT_NAME" /> ಬಳಸುವ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು, ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸದಂತೆ ತಡೆಗಟ್ಟುತ್ತದೆ.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ ಮಾತ್ರ ಈ ಕಾರ್ಯನೀತಿಯು ಜಾರಿಯಾಗುತ್ತದೆ.
+
+          ನೀವು ಎಂದಿಗೂ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಬಳಸದಿರಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ ಮತ್ತು ಯಾವಾಗಲೂ ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸಿದರೆ, ಇತರ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು ಸಿಸ್ಟಂನ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ, ಇತರ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ, ಇತರ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.
+
+          ನೀವು ಸ್ಥಿರ ಸರ್ವರ್ ಪ್ರಾಕ್ಸಿ ಮೋಡ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ, 'ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ನ ವಿಳಾಸ ಅಥವಾ URL' ಮತ್ತು 'ಅಲ್ಪವಿರಾಮಗಳ ಮೂಲಕ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿರುವ ಪ್ರಾಕ್ಸಿ ಬೈಪಾಸ್ ನಿಯಮಗಳ ಪಟ್ಟಿ' ಎಂಬಲ್ಲಿ ನೀವು ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ARC-ಆ್ಯಪ್‌ಗಳಿಗಾಗಿ, ಅತ್ಯಧಿಕ ಆದ್ಯತೆಯ HTTP ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಮಾತ್ರ ಲಭ್ಯವಿರುತ್ತದೆ.
+
+          ನೀವು .pac ಪ್ರಾಕ್ಸಿ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಲು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡರೆ, 'ಪ್ರಾಕ್ಸಿ .pac ಫೈಲ್‌ನ URL' ಎಂಬಲ್ಲಿ ನೀವು ಸ್ಕ್ರಿಪ್ಟ್‌ನ URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು.
+
+          ವಿವರವಾದ ಉದಹಾರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ:
+          <ph name="PROXY_HELP_URL" />.
+
+          ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಹಾಗೂ ARC-ಆ್ಯಪ್‌ಗಳು, ಕಮಾಂಡ್ ಲೈನ್‌ನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತವೆ.
+
+          ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಬಳಕೆದಾರರು ತಮ್ಮದೇ ಆದ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
 <translation id="8858642179038618439">YouTube ಸುರಕ್ಷಿತ ಮೋಡ್ ಜಾರಿಗೊಳಿಸಿ</translation>
 <translation id="8860342862142842017">subjectPublicKeyInfo ಹ್ಯಾಶ್‍ಗಳ ಪಟ್ಟಿಗೆ ಪ್ರಮಾಣಪತ್ರ ಪಾರದರ್ಶಕತೆ ಜಾರಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="8864975621965365890">ಸೈಟ್ ಅನ್ನು <ph name="PRODUCT_FRAME_NAME" /> ಮೂಲಕ ತೋರಿಸುತ್ತಿರುವಾಗ ಗೋಚರಿಸುವಂತಹ ಟರ್ನ್‌ಡೌನ್ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ನಿಗ್ರಹಿಸುತ್ತದೆ.</translation>
@@ -3815,6 +3986,15 @@
 <translation id="9217154963008402249">ನೆಟ್‌ವರ್ಕ್‌ ಪ್ಯಾಕೇಟ್‌ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಆವರ್ತನೆ</translation>
 <translation id="922540222991413931">ವಿಸ್ತರಣೆ, ಅಪ್ಲಿಕೇಶನ್, ಮತ್ತು ಬಳಕೆದಾರ ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಥಾಪನೆ ಮೂಲಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
 <translation id="924557436754151212">ಮೊದಲ ಚಾಲನೆಯಲ್ಲಿ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್‌ನಿಂದ ಉಳಿಸಿದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಿ</translation>
+<translation id="926146562923985266">Internet Explorer ನಿಂದ ಬದಲಾಯಿಸುವಾಗ, <ph name="PRODUCT_NAME" /> ನಲ್ಲಿ URL ಗಳನ್ನು ತೆರೆಯಲು ಬಳಸುವುದಕ್ಕಾಗಿ ಇರುವ ಕಮಾಂಡ್ ಅನ್ನು ಈ ಕಾರ್ಯನೀತಿಯು ನಿಯಂತ್ರಿಸುತ್ತದೆ.
+
+      Internet Explorer ಗಾಗಿ 'ಪಾರಂಪರಿಕ ಬ್ರೌಸರ್ ಬೆಂಬಲ' ಆ್ಯಡ್-ಇನ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರದಿದ್ದರೆ, ಈ ಕಾರ್ಯನೀತಿಯು ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, Internet Explorer ನಿಂದ <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪ್ರಾರಂಭಿಸುವಾಗ, <ph name="PRODUCT_NAME" /> ತಾನಾಗಿ ಎಕ್ಸಿಕ್ಯೂಟ್ ಆಗುವ ಪಥವನ್ನು Internet Explorer ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚುತ್ತದೆ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, Internet Explorer ನಿಂದ <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪ್ರಾರಂಭಿಸುವಾಗ, <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
+
+      ಈ ಕಾರ್ಯನೀತಿಯನ್ನು, ಎಕ್ಸಿಕ್ಯೂಟ್ ಮಾಡಬಹುದಾದ ಫೈಲ್ ಪಥಕ್ಕೆ ಹೊಂದಿಸಬಹುದು ಅಥವಾ Chrome ನ ಇನ್‌ಸ್ಟಾಲ್ ಸ್ಥಳವನ್ನು ಪತ್ತೆಹಚ್ಚಲು ${chrome} ಗೆ ಹೊಂದಿಸಬಹುದು.</translation>
 <translation id="930930237275114205"><ph name="PRODUCT_FRAME_NAME" /> ಬಳಕೆದಾರ ಡೇಟಾ ಡೈರಕ್ಟರಿಯನ್ನು ಹೊಂದಿಸಿ</translation>
 <translation id="943865157632139008"><ph name="PRODUCT_FRAME_NAME" /> ಅನ್ನು ಸ್ಥಾಪಿಸಿದಾಗ ಡಿಫಾಲ್ಟ್ HTML ಸಲ್ಲಿಸುವಿಕೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. 
           ಸಲ್ಲಿಸುವಿಕೆಯನ್ನು ಪೂರೈಸಲು ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್ ಹೋಸ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಇದನ್ನು ನೀವು ಐಚ್ಛಿಕವಾಗಿ ಅತಿಕ್ರಮಿಸಬಹುದು ಮತ್ತು ಸಲ್ಲಿಸುವಿಕೆ HTML ಪುಟಗಳನ್ನು <ph name="PRODUCT_FRAME_NAME" /> ಡಿಫಾಲ್ಟ್ ಆಗಿ ಹೊಂದಬಹುದು.</translation>
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb
index c6171960..5e9e21c 100644
--- a/components/policy/resources/policy_templates_mr.xtb
+++ b/components/policy/resources/policy_templates_mr.xtb
@@ -534,7 +534,7 @@
 <translation id="2043770014371753404">एंटरप्राइझ प्रिंटर बंद केले</translation>
 <translation id="2050629715135525072">क्लायंट आणि होस्ट दरम्यान फायली ट्रान्सफर करण्यासाठी रिमोट अॅक्सेस होस्टशी कनेक्ट असलेल्या वापरकर्त्याची क्षमता नियंत्रित करते. फाइल ट्रान्सफरला सपोर्ट करत नसलेल्या रिमोट साहाय्य कनेक्शनवर हे लागू होत नाही.
 
-          ही सेटिंग बंद केलेली असल्यास, फाइल ट्रान्सफरला अनुमती दिली जाणार नाही. ही सेटिंग सुरू केलेली असेल किंवा सेट नसल्यास फाइल ट्रान्सफरला अनुमती दिली जाईल.</translation>
+          हे सेटिंग बंद केलेले असल्यास, फाइल ट्रान्सफरला अनुमती दिली जाणार नाही. हे सेटिंग सुरू केलेले असल्यास किंवा सेट नसल्यास फाइल ट्रान्सफरला अनुमती दिली जाईल.</translation>
 <translation id="2057317273526988987">URL सूचीला अॅक्सेस करण्याची अनुमती देते</translation>
 <translation id="2061810934846663491">रिमोट अॅक्सेस होस्टसाठी आवश्यक डोमेन नावे कॉन्फिगर करा</translation>
 <translation id="206623763829450685"><ph name="PRODUCT_NAME" /> कडून कोणत्या HTTP प्रमाणीकरण योजना समर्थित केल्या जातात ते निर्दिष्‍ट करते.
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb
index 94a85cb..b3a4c21 100644
--- a/components/policy/resources/policy_templates_no.xtb
+++ b/components/policy/resources/policy_templates_no.xtb
@@ -476,9 +476,9 @@
 <translation id="2030905906517501646">Søkeord for standard søkeleverandør</translation>
 <translation id="203096360153626918">Denne regelen har ingen innvirkning på Android-apper. Android-apper kan brukes i fullskjermmodus selv om denne regelen er angitt som <ph name="FALSE" />.</translation>
 <translation id="2043770014371753404">Deaktiverte bedriftsskrivere</translation>
-<translation id="2050629715135525072">Bestemmer muligheten en bruker som er koblet til en ekstern tilgangsvert har til å overføre filer mellom klienten og verten. Dette er ikke relevant for eksterne assistansetilkoblinger, som ikke støtter filoverføring.
+<translation id="2050629715135525072">Bestemmer om en bruker som er koblet til en ekstern tilgangsvert, kan overføre filer mellom klienten og verten. Dette er ikke relevant for forbindelser for ekstern hjelp, som ikke støtter filoverføring.
 
-          Hvis denne innstillingen er deaktivert, er ikke filoverføring tillatt. Hvis denne innstillingen er aktivert, er filoverføring tillatt.</translation>
+          Hvis denne innstillingen er av, er ikke filoverføring tillatt. Hvis denne innstillingen er på, er filoverføring tillatt.</translation>
 <translation id="2057317273526988987">Gi tilgang til en liste med nettadresser</translation>
 <translation id="206623763829450685">Spesifiserer hvilke HTTP-autentiseringsskjemaer som støttes av <ph name="PRODUCT_NAME" />.
 
@@ -575,7 +575,7 @@
 <translation id="2231817271680715693">Importér nettleserlogg fra standard nettleser ved første kjøring</translation>
 <translation id="2236488539271255289">Ikke la noen nettsteder angi lokale data</translation>
 <translation id="2240879329269430151">Gjør at du kan angi om nettsteder tillates å vise forgrunnsvinduer. Visning av forgrunnsvinduer kan enten tillates for alle nettsteder, eller nektes for alle nettsteder. Hvis denne retningslinjen ikke angis, brukes BlockPopups, og brukeren har mulighet til å endre på dette.</translation>
-<translation id="2258126710006312594">Tillatt at brukere med ekstern tilgang kan overføre filer til/fra verten</translation>
+<translation id="2258126710006312594">Tillat at brukere med ekstern tilgang kan overføre filer til/fra verten</translation>
 <translation id="2265214338421787313">Denne regelen lar administratorer angi at sider kan vise forgrunnsvinduer mens de lastes ut.
 
       Når regelen er satt til «enabled» (aktivert), kan sider vise forgrunnsvinduer mens de lastes ut.
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb
index 538b9643..201c43e 100644
--- a/components/policy/resources/policy_templates_pt-PT.xtb
+++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -51,6 +51,7 @@
 <translation id="1062011392452772310">Ativar a comprovação remota para o dispositivo</translation>
 <translation id="1062407476771304334">Substituir</translation>
 <translation id="1079801999187584280">Não permitir a utilização das Ferramentas para programadores.</translation>
+<translation id="1087437665304381368">Esta política controla apenas o modo de programador do <ph name="PRODUCT_OS_NAME" />. Se quiser evitar o acesso às Opções de programador do Android, tem de definir a política <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1093082332347834239">Se esta definição estiver ativada, o anfitrião de assistência remota é executado num processo com autorizações <ph name="UIACCESS_PERMISSION_NAME" />. Isto permite que os utilizadores remotos interajam com janelas elevadas no ambiente de trabalho do utilizador local.
 
           Se esta definição estiver desativada ou não estiver configurada, o anfitrião de assistência remota é executado no contexto do utilizador e os utilizadores remotos não conseguem interagir com janelas de prioridade elevada no ambiente de trabalho.</translation>
@@ -87,6 +88,14 @@
       Se a política não estiver definida, os GPOs em cache podem ser reutilizados durante um máximo de 25 horas.
 
       Se a política estiver definida como 0, a colocação de GPOs em cache é desativada. Tenha em atenção que esta opção aumenta a carga do servidor, uma vez que os GPOs são transferidos novamente em cada obtenção de política, mesmo que não tenham sido alterados.</translation>
+<translation id="1117462881884985156">O <ph name="PRODUCT_NAME" /> ignora qualquer proxy para a lista de anfitriões aqui indicada.
+
+          Esta política só é aplicada se tiver selecionado as definições de proxy manuais em "Escolher como especificar as definições do servidor proxy" e se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> não tiver sido especificada.
+
+          Deixe esta política por definir se tiver selecionado qualquer outro modo para definir políticas de proxy.
+
+          Para obter exemplos mais detalhados, aceda a:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Os controladores de protocolos definidos através desta política não são utilizados no processamento de intenções do Android.</translation>
 <translation id="1118093128235245168">Permitir que os sites solicitem ao utilizador a concessão de acesso a um dispositivo USB ligado</translation>
 <translation id="1128903365609589950">Configura o diretório que o <ph name="PRODUCT_NAME" /> irá utilizar para armazenar ficheiros em cache no disco.
@@ -131,6 +140,10 @@
           Se esta política não for definida, é utilizado o valor global predefinido para todos os sites, seja a partir da política "DefaultImagesSetting", caso esteja definida, ou a partir da configuração pessoal do utilizador.
 
           Tenha em atenção que esta política foi ativada por engano anteriormente no Android, mas esta funcionalidade nunca foi totalmente suportada no Android.</translation>
+<translation id="1194005076170619046">Se estiver ativado, é mostrado um botão vermelho grande para terminar sessão no tabuleiro do sistema enquanto uma sessão estiver ativa e o ecrã não estiver bloqueado.
+
+      Se estiver desativado ou não estiver especificado, não é mostrado nenhum botão vermelho grande para terminar sessão no tabuleiro do sistema.</translation>
+<translation id="1197437816436565375">Não pode forçar as aplicações para Android a utilizar um proxy. É disponibilizado um subconjunto de definições de proxy para aplicações para Android, que estas podem optar voluntariamente por aceitar. Para mais informações, consulte a política <ph name="PROXY_MODE_POLICY_NAME" />.</translation>
 <translation id="1198465924256827162">Com que frequência os carregamentos do estado do dispositivo são enviados, em milissegundos.
 
       Se esta política não for definida, a frequência predefinida é de 3 horas. A frequência mínima
@@ -172,6 +185,13 @@
 <translation id="1327466551276625742">Ativar o pedido de configuração da rede quando estiver offline</translation>
 <translation id="1330145147221172764">Ativar o teclado no ecrã</translation>
 <translation id="13356285923490863">Nome da Política</translation>
+<translation id="1347198119056266798">Esta política foi descontinuada. Em alternativa, utilize <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> e <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Esta política é ignorada se as políticas <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> ou <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (descontinuada) estiverem definidas.
+
+      Força a execução de consultas na Pesquisa Web do Google através da Pesquisa segura definida como ativada e impede que os utilizadores alterem esta definição. Esta definição também força o Modo restrito moderado no YouTube.
+
+      Se ativar esta definição, a Pesquisa segura na Pesquisa Google e o Modo restrito moderado no YouTube estão sempre ativos.
+
+      Se desativar esta definição ou não definir qualquer valor, a Pesquisa segura na Pesquisa Google e o Modo restrito no YouTube não são aplicados.</translation>
 <translation id="1352174694615491349">Esta política permite a união de ligações HTTP/2 quando são utilizados certificados de cliente. Para a união, o nome de anfitrião da potencial nova ligação e o nome de anfitrião de uma ligação existente têm de corresponder a um ou mais padrões descritos por esta política. A política é uma lista de anfitriões que utilizam o formato de filtro URLBlacklist: "example.com" corresponde a "example.com" e a todos os subdomínios (por exemplo, "sub.example.com"), enquanto ".example.net" corresponde exatamente a "example.net".
 
       A união de pedidos para diferentes anfitriões através de ligações que utilizam certificados de cliente pode criar problemas de segurança e privacidade, uma vez que a autoridade do ambiente será transmitida a todos os pedidos, mesmo que o utilizador não o tenha autorizado explicitamente. Esta política é temporária e será removida numa versão futura. Consulte https://crbug.com/855690.
@@ -179,6 +199,11 @@
       Se esta política não for definida, será utilizado o comportamento predefinido de não permitir qualquer união de ligações HTTP/2 para ligações que utilizam certificados de cliente.</translation>
 <translation id="1353966721814789986">Páginas de arranque</translation>
 <translation id="1354424209129232709">Máximo:</translation>
+<translation id="1354452738176731363">Quando esta política está definida como falsa, a saída de áudio não está disponível no dispositivo enquanto o utilizador tiver sessão iniciada.
+
+      Esta política afeta todos os tipos de saída de áudio e não apenas os altifalantes integrados. As funcionalidades de acessibilidade de áudio também são inibidas por esta política. Não ative esta política se o utilizador necessitar de um leitor de ecrã.
+
+      Se esta opção estiver definida como verdadeira ou não estiver configurada, os utilizadores podem utilizar todas as saídas de áudio suportadas no respetivo dispositivo.</translation>
 <translation id="1359553908012294236">Se esta política for definida como verdadeira ou não for configurada, o <ph name="PRODUCT_NAME" /> permite inícios de sessão de convidados. Os inícios de sessão de convidados são perfis do <ph name="PRODUCT_NAME" /> em que todas as janelas estão no modo de navegação anónima.
 
       Se esta política for definida como falsa, o <ph name="PRODUCT_NAME" /> não permite que os perfis de convidado sejam iniciados.</translation>
@@ -223,10 +248,35 @@
       Consulte https://developers.google.com/safe-browsing para obter mais informações sobre a Navegação segura.
 
       Esta política está apenas disponível em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou em instâncias do Windows 10 Pro ou Enterprise inscritas para gestão de dispositivos.</translation>
+<translation id="1432194160771348078">
+      Especifica uma lista de aplicações que são instaladas silenciosamente no ecrã de início de sessão,
+      sem a interação do utilizador, e que não podem ser desinstaladas.
+      Todas as autorizações solicitadas pelas aplicações são concedidas
+      implicitamente, sem a interação do utilizador, incluindo quaisquer autorizações
+      adicionais solicitadas por versões futuras da aplicação.
+
+      Tenha em atenção que, por motivos de segurança e privacidade, não é permitido instalar extensões através desta política. Além disso, os dispositivos no canal estável apenas instalam as aplicações que pertencem à lista de autorizações integrada no <ph name="PRODUCT_NAME" />. Quaisquer itens que não estejam em conformidade com estas condições são ignorados.
+
+      Se uma aplicação cuja instalação tenha sido forçada anteriormente for removida desta lista, o <ph name="PRODUCT_NAME" /> desinstala-a automaticamente.
+
+      Cada item de lista da política é uma string que inclui um ID de extensão e um URL de "atualização", separados por ponto e vírgula (<ph name="SEMICOLON" />). O ID de extensão é uma string de 32 letras encontrada, por exemplo, em <ph name="CHROME_EXTENSIONS_LINK" /> quando está no modo de programador. O URL de "atualização" deve indicar um documento XML de manifesto de atualização, tal como descrito em <ph name="LINK_TO_EXTENSION_DOC1" />. Tenha em atenção que o URL de "atualização" definido nesta política apenas é utilizado para a instalação inicial, uma vez que as atualizações subsequentes da extensão utilizam o URL de atualização indicado no manifesto da extensão.
+
+      Por exemplo, <ph name="EXTENSION_POLICY_EXAMPLE" /> instala a aplicação <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> a partir do URL de "atualização" padrão da Web Store do Chrome. Para mais informações acerca do alojamento de extensões, consulte: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">Configuração de rede ao nível do aparelho</translation>
 <translation id="1438739959477268107">Predefinição de geração de chaves</translation>
 <translation id="1454846751303307294">Permite definir uma lista de padrões de URL que especificam os Web sites não autorizados a executar JavaScript. Se esta política não for definida, será utilizado o valor global predefinido para todos os Web sites, seja a partir da política "DefaultJavaScriptSetting", caso esteja definida, ou a partir da configuração pessoal do utilizador.</translation>
 <translation id="1456822151187621582">Windows (clientes <ph name="PRODUCT_OS_NAME" />):</translation>
+<translation id="1458547592473993238">Esta política foi descontinuada. Utilize <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para controlar a disponibilidade do plug-in Flash e <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para controlar se o visualizador de PDF integrado deve ser utilizado para abrir ficheiros PDF.
+
+      Especifica uma lista de plug-ins que estão desativados no <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem esta definição.
+
+      É possível utilizar os carateres universais "*" e "?" para fazer corresponder sequências de carateres arbitrários. "*" corresponde a um número arbitrário de carateres, ao passo que "?" indica um caráter único opcional, ou seja, corresponde aos carateres zero ou um. O caráter de escape é "\", pelo que, para corresponder aos carateres reais "*", "?" ou "\", pode colocar um "\" à frente dos mesmos.
+
+      Se ativar esta definição, a lista especificada de plug-ins nunca é utilizada no <ph name="PRODUCT_NAME" />. Os plug-ins estão marcados como desativados em "about:plugins" e os utilizadores não os podem ativar.
+
+      Tenha em atenção que esta política pode ser substituída por EnabledPlugins e DisabledPluginsExceptions.
+
+      Se esta política não for definida, o utilizador pode utilizar qualquer plug-in instalado no sistema, com exceção de plug-ins incompatíveis, desatualizados ou perigosos determinados pela codificação.</translation>
 <translation id="1464848559468748897">Controle o comportamento do utilizador numa sessão multiperfil em dispositivos <ph name="PRODUCT_OS_NAME" />.
 
       Se esta política estiver definida para "MultiProfileUserBehaviorUnrestricted", o utilizador pode ser um utilizador primário ou secundário numa sessão multiperfil.
@@ -299,6 +349,13 @@
 <translation id="1599424828227887013">Ativar o isolamento de site para origens especificadas em dispositivos Android</translation>
 <translation id="1608755754295374538">URLs aos quais será concedido acesso a dispositivos de captura de áudio imediatamente</translation>
 <translation id="1615221548356595305">Permitir a união de ligações HTTP/2 para estes anfitriões, mesmo quando são utilizados certificados de cliente</translation>
+<translation id="1615855314789673708">Fornece uma configuração do Wilco DTC (controlador de diagnóstico e telemetria).
+
+      Esta política permite fornecer a configuração do Wilco DTC que pode ser aplicada se o Wilco DTC estiver disponível no dispositivo indicado e for permitida pela política. O tamanho da configuração não pode exceder 1 MB (1 000 000 bytes) e tem de estar codificada em JSON. O Wilco DTC é responsável pela respetiva gestão. O hash criptográfico é utilizado para validar a integridade da transferência.
+
+      A configuração é transferida e colocada em cache. Será transferida novamente sempre que o URL ou o hash forem alterados.
+
+      Se definir esta política, os utilizadores não a podem alterar nem substituir.</translation>
 <translation id="1617235075406854669">Ativar a eliminação do histórico de transferências e do navegador</translation>
 <translation id="163200210584085447">Os padrões nesta lista serão comparados com a origem de
       segurança do URL que faz o pedido. Caso seja encontrada uma correspondência, o acesso a dispositivos de
@@ -306,6 +363,11 @@
       correspondência, o acesso é automaticamente negado. Não são permitidos padrões com
       carateres universais.</translation>
 <translation id="1634989431648355062">Permitir que o plug-in <ph name="FLASH_PLUGIN_NAME" /> seja executado nestes sites</translation>
+<translation id="1653229475925941921">Se esta política estiver definida, controla o tipo de lupa que está ativada. Definir a política para "Nenhuma" desativa a lupa.
+
+          Se definir esta política, os utilizadores não a podem alterar nem substituir.
+
+          Se esta política não for definida, a lupa está inicialmente desativada, mas pode ser ativada em qualquer altura pelo utilizador.</translation>
 <translation id="1655229863189977773">Definir o tamanho da cache do disco em bytes</translation>
 <translation id="166427968280387991">Servidor proxy</translation>
 <translation id="1668836044817793277">Se a aplicação de quiosque de início automático sem atraso tem permissão para controlar a versão do <ph name="PRODUCT_OS_NAME" />.
@@ -425,6 +487,9 @@
       Se esta definição estiver ativada, o serviço de proteção por palavra-passe captura a pegada digital da palavra-passe nestes URLs para fins de deteção de reutilização da palavra-passe.
       Se esta definição estiver desativada ou não estiver configurada, o serviço de proteção por palavra-passe apenas captura a pegada digital da palavra-passe em https://accounts.google.com.
       Esta política está apenas disponível em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou em instâncias do Windows 10 Pro ou Enterprise inscritas para gestão de dispositivos.</translation>
+<translation id="1914840757300882918">Se esta política estiver definida, o anfitrião utiliza um certificado de cliente com o CN do emissor indicado para autenticar para RemoteAccessHostTokenValidationUrl. Defina-a como "*" para utilizar qualquer certificado de cliente disponível.
+
+          Atualmente, esta funcionalidade encontra-se desativada do lado do servidor.</translation>
 <translation id="1919802376548418720">Utilize a política do KDC para delegar credenciais.</translation>
 <translation id="1920046221095339924">Permitir sessões geridas no dispositivo</translation>
 <translation id="1929709556673267855">Fornece configurações para impressoras empresariais associadas a dispositivos.
@@ -471,6 +536,13 @@
 
       Se esta política for definida como verdadeira, o <ph name="PRODUCT_OS_NAME" /> tentará transferir payloads de atualização automática através de HTTP. Se esta política for definida como falsa ou não for definida, será utilizado HTTPS para transferir payloads de atualização automática.</translation>
 <translation id="199764499252435679">Ativar as atualizações de componentes no <ph name="PRODUCT_NAME" /></translation>
+<translation id="1997994951395619441">Se ativar esta definição, o <ph name="PRODUCT_NAME" /> apresentará uma barra de marcadores.
+
+      Se desativar esta definição, a barra de marcadores nunca será apresentada aos utilizadores.
+
+      Se ativar ou desativar esta definição, os utilizadores não a poderão alterar ou substituir no <ph name="PRODUCT_NAME" />.
+
+      Se deixar esta definição por definir, o utilizador pode optar por utilizar ou não esta função.</translation>
 <translation id="2006530844219044261">Gestão de energia</translation>
 <translation id="2014757022750736514">Controla o comportamento do ecrã de início de sessão, onde os utilizadores iniciam sessão nas respetivas contas. As definições incluem quem pode iniciar sessão, o tipo de contas permitido, que métodos de autenticação devem ser utilizados, bem como a acessibilidade geral, o método de introdução e as definições locais.</translation>
 <translation id="201557587962247231">Frequência de carregamentos de relatórios de estado do dispositivo</translation>
@@ -486,10 +558,11 @@
 <translation id="2030905906517501646">Palavra-chave do fornecedor de pesquisas predefinido</translation>
 <translation id="203096360153626918">Esta política não tem qualquer efeito nas aplicações para Android. Estas podem ser colocadas no modo de ecrã inteiro mesmo que esta política esteja definida como <ph name="FALSE" />.</translation>
 <translation id="2043770014371753404">Impressoras empresariais desativadas</translation>
-<translation id="2050629715135525072">Controla a capacidade de um utilizador ligado a um anfitrião de acesso remoto transferir ficheiros entre o cliente e o anfitrião. Isto não se aplica a ligações da assistência remota, uma vez que não suportam a transferência de ficheiros.
+<translation id="2050629715135525072">Controla a capacidade de um utilizador ligado a um anfitrião de acesso remoto de transferir ficheiros entre o cliente e o anfitrião. Isto não se aplica a ligações da assistência remota, uma vez que não suportam a transferência de ficheiros.
 
           Se esta definição estiver desativada, a transferência de ficheiros não será permitida. Se esta definição estiver ativada ou não estiver definida, a transferência de ficheiros será permitida.</translation>
 <translation id="2057317273526988987">Permitir o acesso a uma lista de URLs</translation>
+<translation id="2061810934846663491">Configurar os nomes de domínio necessários para anfitriões de acesso remoto</translation>
 <translation id="206623763829450685">Especifica quais os esquemas de autenticação HTTP que o <ph name="PRODUCT_NAME" /> suporta.
 
           "basic", "digest", "ntlm" e "negotiate" são exemplos de valores possíveis. Separe os vários valores por vírgulas.
@@ -543,6 +616,13 @@
       Se ativar esta definição, todas as páginas de autenticação do portal cativo (ou seja, todas as páginas Web desde a página de início de sessão do portal cativo até o <ph name="PRODUCT_NAME" /> detetar uma ligação à Internet com êxito) são apresentadas numa janela separada e são ignoradas todas as restrições e definições da política para o utilizador atual.
 
       Se desativar esta definição ou não a definir, todas as páginas de autenticação do portal cativo são apresentadas num separador de navegador novo (normal), com as definições de proxy do utilizador atual.</translation>
+<translation id="21394354835637379">Permite-lhe especificar que URLs podem instalar extensões, aplicações e temas.
+
+          Desde o <ph name="PRODUCT_NAME" /> 21, é mais difícil instalar extensões, aplicações e scripts de utilizadores que não sejam da Web Store do Chrome. Anteriormente, os utilizadores podiam clicar num link para um ficheiro *.crx e o <ph name="PRODUCT_NAME" /> oferecia-se para instalar o ficheiro depois de apresentar alguns avisos. Depois do <ph name="PRODUCT_NAME" /> 21, este tipo de ficheiro tem de ser transferido e arrastado para a página de definições do <ph name="PRODUCT_NAME" />. Esta definição permite que URLs específicos tenham o fluxo de instalação antigo e mais fácil.
+
+          Cada item desta lista é um padrão de correspondência do estilo de extensão (consulte https://developer.chrome.com/extensions/match_patterns). Os utilizadores poderão instalar itens facilmente a partir de qualquer URL que corresponda a um item desta lista. Tanto a localização do ficheiro *.crx como a página a partir da qual foi iniciada a transferência (ou seja, o referenciador) têm de ser permitidas por estes padrões.
+
+          O <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> tem prioridade sobre esta política. Isto é, uma extensão na lista negra não será instalada mesmo que seja proveniente de um site incluído nesta lista.</translation>
 <translation id="214901426630414675">Restringir modo duplex de impressão</translation>
 <translation id="2149330464730004005">Ativar impressão a cores</translation>
 <translation id="2156132677421487971">Configura políticas para o <ph name="PRODUCT_NAME" />, uma funcionalidade que permite aos utilizadores enviar o conteúdo de separadores, de sites ou do ambiente de trabalho a partir do navegador para sistemas de som e ecrãs remotos.</translation>
@@ -582,6 +662,14 @@
 
       Esta política não se aplica a aplicações de quiosque, as quais são migradas automaticamente. Se esta política for deixada por definir, o dispositivo comporta-se como se "DisallowArc" fosse a opção escolhida.</translation>
 <translation id="2195032660890227692">Esta política foi removida no <ph name="PRODUCT_NAME" /> 68 e substituída por <ph name="ARC_BR_POLICY_NAME" />.</translation>
+<translation id="219720814106081560">Se esta política estiver ativada ou não estiver configurada (predefinição), é solicitado ao utilizador
+      acesso de captura de vídeo, exceto para os URLs configurados na
+      lista VideoCaptureAllowedUrls, à qual será concedido acesso sem pedido.
+
+      Quando esta política está desativada, nunca é solicitado acesso ao utilizador e a captura
+      de vídeo está disponível apenas para os URLs configurados em VideoCaptureAllowedUrls.
+
+      Esta política afeta todos os tipos de entrada de vídeo e não apenas a câmara integrada.</translation>
 <translation id="2201555246697292490">Configurar a lista de autorizações de mensagens nativas</translation>
 <translation id="2204753382813641270">Controlar a ocultação automática da prateleira</translation>
 <translation id="2208976000652006649">Parâmetros do URL de pesquisa que utilize POST</translation>
@@ -592,6 +680,11 @@
 <translation id="2231817271680715693">Importar histórico de navegação a partir do navegador predefinido na primeira execução</translation>
 <translation id="2236488539271255289">Não permitir que os sites definam dados de local</translation>
 <translation id="2240879329269430151">Permite definir se os Web sites estão autorizados a apresentar janelas de pop-up. A apresentação de janelas de pop-up pode ser permitida para todos os Web sites ou negada para todos os Web sites. Se esta política não for definida, será utilizada a definição "BlockPopups" e o utilizador poderá alterá-la.</translation>
+<translation id="2255326053989409609">A ativação desta definição impede que as páginas Web acedam à unidade de processamento de gráficos (GPU). Mais concretamente, as páginas Web não podem aceder à API WebGL e os plug-ins não podem utilizar a API Pepper 3D.
+
+      Se esta definição for desativada ou não for definida, poderá permitir que as páginas Web utilizem a API WebGL e os plug-ins utilizem a API Pepper 3D. Consoante as predefinições do navegador, poderá ainda ser necessária a transmissão de argumentos de linhas de comando para utilizar estas APIs.
+
+      Se a política HardwareAccelerationModeEnabled estiver definida como falsa, a política Disable3DAPIs é ignorada e é equivalente à definição da política Disable3DAPIs como verdadeira.</translation>
 <translation id="2258126710006312594">Permitir que os utilizadores de acesso remoto transfiram ficheiros de/para o anfitrião</translation>
 <translation id="2265214338421787313">Esta política permite a um administrador especificar que uma página pode mostrar pop-ups durante o descarregamento.
 
@@ -751,8 +844,12 @@
       Se ativar ou desativar esta definição, os utilizadores não podem alterar nem substituir esta definição.
 
       Se esta política não ficar definida, a funcionalidade proxy de compressão de dados estará disponível para o utilizador decidir se pretende utilizá-la ou não.</translation>
+<translation id="257788512393330403">A introdução da palavra-passe é obrigatória a cada seis horas</translation>
 <translation id="2587719089023392205">Definir o <ph name="PRODUCT_NAME" /> como o Navegador predefinido</translation>
 <translation id="2592091433672667839">Período de inatividade antes de a proteção de ecrã ser apresentada no ecrã de início de sessão no modo de retalho</translation>
+<translation id="2592162121850992309">Se esta política estiver definida como verdadeira ou não estiver definida, a aceleração de hardware é ativada, a menos que alguma funcionalidade da GPU seja adicionada à lista negra.
+
+      Se esta política estiver definida como falsa, a aceleração de hardware é desativada.</translation>
 <translation id="2596260130957832043">Controla se o NTLMv2 está ativado.
 
           Todas as versões recentes dos servidores Samba e Windows são compatíveis com o NTLMv2. Só deve ser desativado para retrocompatibilidade e reduz a segurança da autenticação.
@@ -778,6 +875,7 @@
 <translation id="2633084400146331575">Ativar comentários falados</translation>
 <translation id="2646290749315461919">Permite definir se os Websites têm permissão para monitorizar a localização física dos utilizadores. A monitorização da localização física dos utilizadores pode ser permitida por predefinição, negada por predefinição ou o utilizador pode ser questionado sempre que um Website solicitar a localização física. Se esta política não for definida, será utilizada a definição "AskGeolocation" e o utilizador poderá alterá-la.</translation>
 <translation id="2647069081229792812">Ativar ou desativar a edição de marcadores</translation>
+<translation id="2649896281375932517">Permitir que os utilizadores decidam</translation>
 <translation id="2650049181907741121">Ação a realizar quando o utilizador fecha a tampa</translation>
 <translation id="2655233147335439767">Especifica o URL do motor de pesquisa utilizado para efetuar uma pesquisa predefinida. O URL deve incluir a string "<ph name="SEARCH_TERM_MARKER" />", que, no momento da consulta, será substituída pelos termos que o utilizador estiver a pesquisar.
 
@@ -802,6 +900,7 @@
 <translation id="268577405881275241">Ativar a funcionalidade proxy de compressão de dados</translation>
 <translation id="2693108589792503178">Configure o URL de alteração da palavra-passe.</translation>
 <translation id="2706708761587205154">Permitir impressão apenas com PIN</translation>
+<translation id="2710534340210290498">Se esta política estiver definida como falsa, os utilizadores não podem bloquear o ecrã (apenas será possível terminar a sessão de utilizador). Se esta política estiver definida como verdadeira ou não estiver definida, os utilizadores que efetuaram a autenticação com uma palavra-passe podem bloquear o ecrã.</translation>
 <translation id="2731627323327011390">Desativar a utilização de certificados do <ph name="PRODUCT_OS_NAME" /> em aplicações ARC</translation>
 <translation id="2742843273354638707">Oculta a aplicação da Web Store do Chrome e o link do rodapé da página Novo separador e do iniciador de aplicações do <ph name="PRODUCT_OS_NAME" />.
 
@@ -870,6 +969,9 @@
           Se esta política não estiver definida ou estiver definida como falsa, a política do KDC é ignorada nas plataformas suportadas e apenas é respeitada a política "AuthNegotiateDelegateWhitelist".
 
           No Windows, a política do KDC é sempre respeitada.</translation>
+<translation id="283695852388224413">Se a política estiver definida, é aplicado o comprimento máximo de PIN configurado. Um valor de 0 ou inferior significa que não existe comprimento máximo; nesse caso, o utilizador pode definir um PIN com o comprimento que pretender. Se esta definição for inferior a <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" />, mas superior a 0, o comprimento máximo é igual ao comprimento mínimo.
+
+          Se a política não estiver definida, não é aplicado nenhum comprimento máximo.</translation>
 <translation id="2838830882081735096">Não permitir a migração de dados nem ARC</translation>
 <translation id="2839294585867804686">Definições das Partilhas de ficheiros na rede</translation>
 <translation id="2840269525054388612">Especifica as impressoras disponíveis para um utilizador.
@@ -940,6 +1042,17 @@
       Se esta política não estiver definida, é assumida a opção <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
 <translation id="2908277604670530363">Número máximo de ligações simultâneas ao servidor proxy</translation>
+<translation id="2948463916588961959">Força a ativação de idiomas com verificação ortográfica. Os idiomas não reconhecidos nessa lista são ignorados.
+
+      Se ativar esta política, a verificação ortográfica é ativada para os idiomas especificados, além dos idiomas para os quais o utilizador ativou a verificação ortográfica.
+
+      Se não definir esta política ou a desativar, as preferências de verificação ortográfica do utilizador não são alteradas.
+
+      Se a política SpellcheckEnabled estiver definida como desativada, esta política não tem efeito.
+
+      Se um idioma estiver incluído nesta política e na política SpellcheckLanguageBlacklist, esta política tem prioridade e o idioma com verificação ortográfica é ativado.
+
+      Os idiomas atualmente suportados são: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">Restrições:</translation>
 <translation id="2956777931324644324">Esta política foi retirada a partir da versão 36 do <ph name="PRODUCT_NAME" />.
 
@@ -948,9 +1061,11 @@
       Esta definição é utilizada para ativar os certificados de vinculação ao domínio TLS para testes. Esta definição experimental será removida no futuro.</translation>
 <translation id="2957506574938329824">Não permitir que os sites solicitem acesso a dispositivos Bluetooth através da API Web Bluetooth</translation>
 <translation id="2957513448235202597">Tipo de conta para a autenticação <ph name="HTTP_NEGOTIATE" /></translation>
+<translation id="2959469725686993410">Enviar sempre pontos de acesso Wi-Fi para o servidor durante a resolução do fuso horário</translation>
 <translation id="2959898425599642200">Regras para ignorar o proxy</translation>
 <translation id="2960128438010718932">A agenda experimental para aplicar uma nova atualização.</translation>
 <translation id="2960691910306063964">Ativar ou desativar a autenticação sem PIN para anfitriões de acesso remoto</translation>
+<translation id="2972261849442778817">Perguntar ao utilizador se pretende migrar ou ignorar a migração e não permitir o ARC</translation>
 <translation id="2976002782221275500">Especifica o período de tempo sem atividade por parte do utilizador após o qual o ecrã escurece quando o dispositivo está a utilizar a energia da bateria.
 
           Quando esta política está definida para um valor superior a zero, especifica o período de tempo que o utilizador tem de permanecer inativo antes de o <ph name="PRODUCT_OS_NAME" /> escurecer o ecrã.
@@ -960,12 +1075,25 @@
           Quando esta política não está definida, utiliza-se um período de tempo predefinido.
 
           O valor da política deve ser especificado em milissegundos. Os valores devem ser inferiores ou iguais ao atraso para desligar o ecrã (se estiver definido) e ao atraso de inatividade.</translation>
+<translation id="2977997796833930843">Tenha em atenção que esta política foi descontinuada e será removida no futuro.
+
+          Esta política fornece um valor alternativo para as políticas mais específicas: <ph name="IDLE_ACTION_AC_POLICY_NAME" /> e <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" />. Se esta política for definida, é utilizado o seu valor se a respetiva política mais específica não for definida.
+
+          Se esta política não for definida, o comportamento das políticas mais específicas permanece intacto.</translation>
 <translation id="2987155890997901449">Ativar ARC</translation>
 <translation id="2987227569419001736">Controlar a utilização da API Web Bluetooth</translation>
 <translation id="3016255526521614822">Adicionar à lista de autorizações as aplicações para tirar notas permitidas no ecrã de bloqueio do <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3021562480854470924">Número de marcos para os quais é autorizada a reversão.</translation>
 <translation id="3023572080620427845">URL de um ficheiro XML que contém URLs a carregar num navegador alternativo.</translation>
 <translation id="3030000825273123558">Ativar relatório de métricas</translation>
+<translation id="3033660238345063904">Pode especificar o URL do servidor proxy aqui.
+
+          Esta política só é aplicada se tiver selecionado as definições de proxy manuais em "Escolher como especificar as definições do servidor proxy" e se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> não tiver sido especificada.
+
+          Deixe esta política por definir se tiver selecionado qualquer outro modo para definir políticas de proxy.
+
+          Para mais opções e exemplos detalhados, aceda a:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">Permite definir se os Web sites estão autorizados a executar JavaScript. A execução de JavaScript pode ser permitida para todos os Web sites ou negada para todos os Web sites. Se esta política não for definida, será utilizada a definição "AllowJavaScript" e o utilizador poderá alterá-la.</translation>
 <translation id="3038323923255997294">Continuar a executar aplicações em segundo plano quando o <ph name="PRODUCT_NAME" /> está fechado</translation>
 <translation id="3046192273793919231">Enviar pacotes de rede para o servidor de gestão para monitorizar o estado online</translation>
@@ -1022,10 +1150,18 @@
       Se estiver ativada ou por definir, a Limpeza do Chrome verifica periodicamente a existência de software indesejado no sistema e, caso encontre algum, pergunta ao utilizador se pretende removê-lo. O acionamento manual da Limpeza do Chrome a partir de chrome://settings está ativado.
 
       Esta política está apenas disponível em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou em instâncias do Windows 10 Pro ou Enterprise inscritas para gestão de dispositivos.</translation>
+<translation id="3152425128389603870">Disponibilizar o Ambiente de trabalho unificado e ativá-lo por predefinição</translation>
 <translation id="3159375329008977062">O utilizador pode exportar/importar contentores do Crostini através da IU</translation>
 <translation id="3165808775394012744">Estas políticas estão incluídas aqui para que seja fácil removê-las.</translation>
 <translation id="316778957754360075">Esta definição foi removida a partir da versão 29 do <ph name="PRODUCT_NAME" />. A forma recomendada de configurar coleções de extensões/aplicações alojadas na entidade é incluir no alojamento do site os pacotes CRX em ExtensionInstallSources e colocar links de transferência diretos para os pacotes numa página Web. Pode ser criado um iniciador para essa página Web utilizando a política ExtensionInstallForcelist.</translation>
 <translation id="3171369832001535378">Modelo de nome do anfitrião da rede do dispositivo</translation>
+<translation id="3172512016079904926">Permite a instalação de nível de utilizador de anfitriões de Mensagens nativas.
+
+          Se esta definição estiver ativa, o <ph name="PRODUCT_NAME" /> permite a utilização de anfitriões de Mensagens nativas instalados no nível de utilizador.
+
+          Se esta definição estiver desativada, o <ph name="PRODUCT_NAME" /> utilizará apenas os anfitriões de Mensagens nativas instalados no nível do sistema.
+
+          Se esta definição for deixada por definir, o <ph name="PRODUCT_NAME" /> permitirá a utilização de anfitriões de Mensagens nativas no nível do utilizador.</translation>
 <translation id="3185009703220253572">desde a versão <ph name="SINCE_VERSION" /></translation>
 <translation id="3187220842205194486">As aplicações para Android não podem obter acesso a chaves empresariais. Esta política não tem qualquer efeito nas mesmas.</translation>
 <translation id="3205825995289802549">Maximizar a primeira janela do navegador na primeira execução</translation>
@@ -1118,6 +1254,13 @@
       Se esta política estiver definida como Desativada ou não for definido qualquer valor, o <ph name="PRODUCT_NAME" /> não aplica o Modo restrito no YouTube. As políticas externas, tais como as políticas do YouTube, podem ainda assim aplicar o Modo restrito.</translation>
 <translation id="3428247105888806363">Ativar previsão de rede</translation>
 <translation id="3432863169147125747">Controla as definições de impressão.</translation>
+<translation id="3434932177006334880">Esta definição foi denominada EnableWebBasedSignin antes do Chrome 42 e o respetivo apoio técnico vai ser completamente removido no Chrome 43.
+
+      Esta definição é útil para os clientes empresariais que utilizem soluções de SSO ainda incompatíveis com o novo fluxo de início de sessão inline.
+      Se ativar esta definição, é utilizado o antigo fluxo de início de sessão baseado na Web.
+      Se desativar esta definição ou a deixar por definir, é utilizado por predefinição o novo fluxo de início de sessão inline. Os utilizadores podem, ainda assim, ativar o antigo fluxo de início de sessão baseado na Web através do sinalizador da linha de comandos --enable-web-based-signin.
+
+      A definição experimental será removida no futuro quando o início de sessão inline suportar totalmente todos os fluxos de início de sessão SSO.</translation>
 <translation id="3437924696598384725">Permitir a gestão de ligações VPN pelo utilizador.</translation>
 <translation id="3459509316159669723">Impressão</translation>
 <translation id="3460784402832014830">Especifica o URL que um motor de pesquisa utiliza para fornecer uma página Novo separador.
@@ -1137,6 +1280,12 @@
         Se esta política estiver definida, o <ph name="PRODUCT_NAME" /> tentará registar-se e aplicar a política de nuvem associada a todos os perfis.
 
         O valor desta política é um símbolo de inscrição que pode ser obtido na Consola do administrador do Google.</translation>
+<translation id="3489247539215560634">Se esta definição estiver ativada, os utilizadores podem fazer com que o <ph name="PRODUCT_NAME" /> memorize palavras-passe e as forneça automaticamente da próxima vez que iniciarem sessão num site.
+
+          Se esta definição estiver desativada, os utilizadores não podem guardar palavras-passe, mas
+          podem continuar a utilizar as palavras-passe guardadas anteriormente.
+
+          Se esta política estiver ativada ou desativada, os utilizadores não a podem alterar ou substituir no <ph name="PRODUCT_NAME" />. Se esta política não estiver definida, é permitido guardar palavras-passe (mas o utilizador pode desativar essa definição).</translation>
 <translation id="3496296378755072552">Gestor de palavras-passe</translation>
 <translation id="3500732098526756068">Permite-lhe controlar o acionamento do aviso de proteção por palavra-passe. A proteção por palavra-passe alerta os utilizadores quando reutilizarem as respetivas palavras-passe protegidas em sites potencialmente suspeitos.
 
@@ -1155,6 +1304,13 @@
           Esta política só será seguida se a política "DefaultSearchProviderEnabled" estiver ativada.</translation>
 <translation id="350797926066071931">Ativar Google Tradutor</translation>
 <translation id="3512226956150568738">Se o modelo do dispositivo do cliente já era compatível com ARC antes de a migração para ext4 ser necessária para executar ARC e se a política ArcEnabled estiver definida como verdadeira, esta opção comporta-se como AskUser (valor 3). Em todos os outros casos (se o modelo do dispositivo não era compatível com ARC anteriormente ou se a política ArcEnabled estiver definida como falsa), este valor é equivalente a DisallowArc (valor 0).</translation>
+<translation id="3513655665999652754">O Quirks Server fornece ficheiros de configuração específicos do hardware, como
+      perfis de visualização ICC para ajustar a calibração do monitor.
+
+      Quando esta política está definida como falsa, o dispositivo não tenta
+      contactar o Quirks Server para transferir ficheiros de configuração.
+
+      Se esta política estiver definida como verdadeira ou não estiver configurada, o <ph name="PRODUCT_OS_NAME" /> contacta automaticamente o Quirks Server, transfere os ficheiros de configuração, se estiverem disponíveis, e armazena-os no dispositivo. Estes ficheiros podem ser utilizados, por exemplo, para melhorar a qualidade de visualização dos monitores ligados.</translation>
 <translation id="3524204464536655762">Não permitir que nenhum site solicite acesso a dispositivos USB através da API WebUSB</translation>
 <translation id="3526752951628474302">Apenas impressão monocromática</translation>
 <translation id="3528000905991875314">Ativar páginas de erro alternativas</translation>
@@ -1183,6 +1339,9 @@
       </translation>
 <translation id="3627678165642179114">Ativar ou desativar o serviço Web de verificação ortográfica</translation>
 <translation id="3628480121685794414">Ativar impressão simples</translation>
+<translation id="3631099945620529777">Se estiver definida como falso, o botão "Terminar processo" está desativado no Gestor de tarefas.
+
+      Se estiver definida como verdadeiro ou não estiver configurada, o utilizador pode terminar processos no Gestor de tarefas.</translation>
 <translation id="3646859102161347133">Definir tipo de lupa</translation>
 <translation id="3653237928288822292">Ícone do fornecedor de pesquisas predefinido</translation>
 <translation id="3660510274595679517">
@@ -1197,6 +1356,7 @@
 <translation id="3709266154059827597">Configurar lista negra de instalação de extensões</translation>
 <translation id="3711895659073496551">Suspenso</translation>
 <translation id="3715569262675717862">Autenticação baseada em certificados de cliente</translation>
+<translation id="3734995764843493369">A introdução da palavra-passe é obrigatória todos os dias (24 horas)</translation>
 <translation id="3736879847913515635">Ativar a opção para adicionar uma pessoa no gestor de utilizadores</translation>
 <translation id="3738723882663496016">Esta política especifica a chave da licença de <ph name="PLUGIN_VM_NAME" /> para este dispositivo.</translation>
 <translation id="3748900290998155147">Especifica se são permitidos wake locks. Os wake locks podem ser solicitados por extensões através da API da extensão de gestão da alimentação e por aplicações ARC.
@@ -1205,6 +1365,9 @@
 
           Se esta política estiver definida como falsa, os pedidos de wake lock serão ignorados.</translation>
 <translation id="3750220015372671395">Bloquear a geração de chaves nestes sites</translation>
+<translation id="375266612405883748">Restringe o intervalo de portas UDP utilizado pelo anfitrião de acesso remoto neste computador.
+
+          Se esta política não for definida ou for definida para uma string vazia, o anfitrião de acesso remoto está autorizado a utilizar qualquer porta disponível, exceto se a política <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> estiver desativada, caso em que o anfitrião de acesso remoto utiliza as portas UDP no intervalo 12400-12409.</translation>
 <translation id="3756011779061588474">Bloquear modo de programador</translation>
 <translation id="3758089716224084329">Permite-lhe especificar o servidor proxy utilizado pelo <ph name="PRODUCT_NAME" /> e impede os utilizadores de alterarem as definições de proxy.
 
@@ -1281,6 +1444,8 @@
           Um valor de * na lista negra significa que todos os anfitriões de mensagens nativas estão na lista negra e que apenas os anfitriões de mensagens nativas na lista de autorizações serão carregados.
 
           Por predefinição, todos os anfitriões de mensagens nativas estão na lista de autorizações, mas, se todos os anfitriões de mensagens nativas tiverem sido colocados na lista negra devido a uma política, a lista de autorizações pode ser utilizada para substituir essa política.</translation>
+<translation id="3835692988507803626">Forçar a desativação de idiomas com verificação ortográfica</translation>
+<translation id="3837424079837455272">Esta política controla se podem ser adicionados novos utilizadores ao <ph name="PRODUCT_OS_NAME" />. Não impede que os utilizadores iniciem sessão noutras Contas Google no sistema Android. Se quiser evitar que isto aconteça, configure a política <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> específica para Android como parte da <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="384743459174066962">Permite definir uma lista de padrões de URL que especificam os Web sites não autorizados a abrir janelas de pop-up. Se esta política não for definida, será utilizado o valor global predefinido para todos os Web sites, seja a partir da política "DefaultPopupsSetting", caso esteja definida, ou a partir da configuração pessoal do utilizador.</translation>
 <translation id="3851039766298741586">Comunica informações acerca da sessão ativa do quiosque, como o
       ID e a versão da aplicação.
@@ -1418,13 +1583,50 @@
           O valor da política deve ser especificado em milissegundos.</translation>
 <translation id="4105989332710272578">Desativar a imposição da Transparência de certificados para uma lista de URLs</translation>
 <translation id="4121350739760194865">Impedir a apresentação de promoções de aplicações na página de novo separador</translation>
+<translation id="4125606414556046117">Esta política permite-lhe configurar a imagem de fundo apresentada no ambiente de trabalho e no fundo do ecrã de início de sessão do utilizador. A política é definida ao especificar o URL a partir do qual o <ph name="PRODUCT_OS_NAME" /> pode transferir a imagem de fundo e um hash criptográfico utilizado para confirmar a integridade da transferência. A imagem tem de estar no formato JPEG e o tamanho não pode exceder 16 MB. O URL tem de ser acessível sem qualquer autenticação.
+
+      A imagem de fundo é transferida e colocada em cache. Será transferida novamente sempre que o URL ou o hash forem alterados.
+
+      A política deve ser especificada como uma string que expresse o URL e o hash em formato JSON, em conformidade com o esquema seguinte:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "O URL a partir do qual é possível transferir a imagem de fundo.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "O hash SHA-256 da imagem de fundo.",
+            "type": "string"
+          }
+        }
+      }
+
+      Se esta política estiver definida, o <ph name="PRODUCT_OS_NAME" /> transfere e utiliza a imagem de fundo.
+
+      Se definir esta política, os utilizadores não a podem alterar nem substituir.
+
+      Se não definir a política, o utilizador pode escolher uma imagem para apresentação no ambiente de trabalho e no fundo do ecrã de início de sessão.</translation>
 <translation id="412697421478384751">Permitir aos utilizadores definirem PINs fracos para o PIN do ecrã de bloqueio</translation>
 <translation id="4138655880188755661">Limite de tempo</translation>
 <translation id="4150201353443180367">Visualização</translation>
 <translation id="4157003184375321727">Comunicar versão do SO e do firmware</translation>
 <translation id="4157594634940419685">Autorizar o acesso a impressoras CUPS nativas</translation>
+<translation id="4163705126749612234">Configura os nomes de domínio do cliente obrigatórios que são impostos aos clientes de acesso remoto e impede os utilizadores de os alterarem.
+
+          Se esta definição estiver ativada, apenas os clientes de um dos domínios especificados se pode ligar ao anfitrião.
+
+          Se esta definição estiver desativada ou não estiver configurada, é aplicada a política predefinida para o tipo de ligação. Para a assistência remota, isto permite que os clientes de qualquer domínio se liguem ao anfitrião; para acesso remoto em qualquer altura, apenas o proprietário do anfitrião pode estabelecer ligação.
+
+          Esta definição substitui a política RemoteAccessHostClientDomain, se estiver presente.
+
+          Consulte também RemoteAccessHostDomainList.</translation>
 <translation id="4183229833636799228">Definição de <ph name="FLASH_PLUGIN_NAME" /> predefinida</translation>
 <translation id="4192388905594723944">URL para validar o símbolo de autenticação de cliente de acesso remoto</translation>
+<translation id="4197038214024763371">Se esta política não estiver definida ou ativada, o utilizador tem autorização para utilizar a verificação ortográfica.
+
+      Se esta política estiver desativada, o utilizador não tem autorização para utilizar a verificação ortográfica. Quando esta política está desativada, as políticas SpellcheckLanguage e SpellcheckLanguageBlacklist também são ignoradas.
+      </translation>
 <translation id="4203389617541558220">Limitar o tempo de atividade do dispositivo ao agendar reinícios automáticos.
 
       Quando esta política está definida, indica a duração do tempo de atividade do dispositivo após o qual é agendado um reinício automático.
@@ -1446,6 +1648,13 @@
 <translation id="423797045246308574">Permite definir uma lista de padrões de URL que especificam os sites não autorizados a utilizar a geração de chaves. Se um padrão do URL estiver incluído em "KeygenAllowedForUrls", essa política substitui estas exceções.
 
           Se esta política não for definida, é utilizado o valor global predefinido para todos os sites, seja a partir da política "DefaultKeygenSetting", se estiver definida, ou a partir da configuração pessoal do utilizador.</translation>
+<translation id="4238997902172035160">Configura o diretório utilizado pelo <ph name="PRODUCT_NAME" /> para armazenar a cópia de roaming dos perfis.
+
+      Se definir esta política, o <ph name="PRODUCT_NAME" /> utiliza o diretório fornecido para armazenar a cópia de roaming dos perfis se a política <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> tiver sido ativada. Se a política <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> estiver desativada ou não estiver definida, não é utilizado o valor armazenado nesta política.
+
+      Consulte https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables para obter uma lista das variáveis que podem ser utilizadas.
+
+      Se esta política não estiver definida, é utilizado o caminho do perfil de roaming predefinido.</translation>
 <translation id="4239720644496144453">A cache não é utilizada para aplicações para Android. Se vários utilizadores instalarem a mesma aplicação Android, é transferida uma nova para cada utilizador.</translation>
 <translation id="4243336580717651045">Ativa a recolha de dados anónimos com chave de URL no <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem esta definição.
 
@@ -1500,6 +1709,9 @@
       Utilize o caráter "*" para corresponder a zero ou mais carateres arbitrários. O caráter de escape é "\", pelo que, para corresponder aos carateres reais "*" ou "\", coloque um "\" à frente dos mesmos.
 
       Se esta política não estiver definida, todas as Contas Google do dispositivo estarão visíveis no <ph name="PRODUCT_NAME" />.</translation>
+<translation id="4360826270668210664">Se esta política estiver definida, o anfitrião de acesso remoto exige que os clientes que tentam efetuar a autenticação obtenham um símbolo de autenticação a partir deste URL para estabelecer ligação. Deve utilizá-la em conjunto com a política RemoteAccessHostTokenValidationUrl.
+
+          Atualmente, esta funcionalidade encontra-se desativada do lado do servidor.</translation>
 <translation id="436581050240847513">Comunicar interfaces de rede do dispositivo</translation>
 <translation id="4372704773119750918">Não permitir que o utilizador empresarial faça parte do multiperfil (principal ou secundário)</translation>
 <translation id="4377599627073874279">Permitir que todos os sites mostrem todas as imagens</translation>
@@ -1509,6 +1721,9 @@
 <translation id="4408428864159735559">Lista de partilhas de ficheiros de rede pré-configuradas.</translation>
 <translation id="4410236409016356088">Permitir controlar a largura de banda da rede</translation>
 <translation id="441217499641439905">Desativar o Google Drive através de ligações de redes móveis na aplicação Ficheiros do <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="4415603335307944578">Se esta política estiver definida como verdadeira ou não estiver configurada, o navegador volta a apresentar a página de boas-vindas da primeira vez que for iniciado após uma atualização do SO.
+
+      Se esta política estiver definida como falsa, o navegador não volta a apresentar a página de boas-vindas da primeira vez que for iniciado após uma atualização do SO.</translation>
 <translation id="4418726081189202489">Definir esta política como falsa impede o <ph name="PRODUCT_NAME" /> de enviar ocasionalmente consultas para um servidor da Google para obter uma data/hora exata. Estas consultas serão ativadas caso esta política esteja definida como verdadeira ou não esteja definida.</translation>
 <translation id="4423597592074154136">Especificar manualmente as definições de proxy</translation>
 <translation id="4429220551923452215">Ativa ou desativa o atalho de aplicações na barra de marcadores.
@@ -1586,11 +1801,25 @@
 <translation id="4557134566541205630">URL da página Novo separador do motor de pesquisa predefinido</translation>
 <translation id="4567137030726189378">Permite a utilização das Ferramentas para programadores.</translation>
 <translation id="4578265298946081589">Não reiniciar quando o utilizador terminar sessão.</translation>
+<translation id="4578912515887794133">Se esta definição estiver ativada, o anfitrião de acesso remoto compara o nome do utilizador local (ao qual o anfitrião está associado) e o nome da Conta Google registada como proprietária do anfitrião (ou seja, "joaosilva" caso o anfitrião seja propriedade da Conta Google "joaosilva@example.com").  Se o nome do proprietário do anfitrião for diferente do nome do utilizador local ao qual o anfitrião está associado, o anfitrião de acesso remoto não é iniciado.  Deve utilizar a política RemoteAccessHostMatchUsername em conjunto com a política RemoteAccessHostDomain para exigir também que a Conta Google do proprietário do anfitrião esteja associada a um domínio específico (ou seja, "example.com").
+
+          Se esta definição estiver desativada ou não estiver definida, o anfitrião de acesso remoto pode ser associado a qualquer utilizador local.</translation>
 <translation id="4600786265870346112">Ativar cursor grande</translation>
 <translation id="4604931264910482931">Configurar a lista negra de mensagens nativas</translation>
 <translation id="4613508646038788144">Se a política estiver definida como falsa, o software de terceiros está autorizado a injetar código executável nos processos do Chrome. Se a política não estiver definida ou estiver definida como verdadeira, o software de terceiros é impedido de injetar código executável nos processos do Chrome.</translation>
 <translation id="4617338332148204752">Ignorar a verificação de metatags em <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">Configurar lista de permissões de instalação de extensões</translation>
+<translation id="463224920692183755">Especifica a ação que deve ser efetuada quando o diretório principal do utilizador for criado com a encriptação ecryptfs e tiver de transitar para a encriptação ext4.
+
+      Se definir esta política como "DisallowArc", as aplicações para Android são desativadas para o utilizador e não é efetuada qualquer migração da encriptação ecryptfs para a ext4. A execução das aplicações para Android não é impedida quando o diretório principal já tiver encriptação ext4.
+
+      Se definir esta política como "Migrate", os diretórios principais com encriptação ecryptfs são migrados automaticamente para a encriptação ext4 ao iniciar sessão sem solicitar a autorização do utilizador.
+
+      Se definir esta política como "Wipe", os diretórios principais com encriptação ecryptfs são eliminados ao iniciar sessão e são criados novos diretórios principais com encriptação ext4. Aviso: São removidos os dados locais do utilizador.
+
+      Se definir esta política como "AskUser", é indicada a opção de migração aos utilizadores com diretórios principais com encriptação ecryptfs.
+
+      Esta politica não se aplica aos utilizadores de quiosque. Se esta política não for definida, o dispositivo apresenta um comportamento semelhante a "DisallowArc".</translation>
 <translation id="4632343302005518762">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> processe os tipos de conteúdo listados</translation>
 <translation id="4632566332417930481">Não permite a utilização das Ferramentas para programadores nas extensões instaladas pela política empresarial, mas permite a utilização das Ferramentas para programadores noutros contextos.</translation>
 <translation id="4633786464238689684">Altera o comportamento predefinido das teclas da linha superior para teclas de função.
@@ -1701,11 +1930,50 @@
 <translation id="4986560318567565414">Caminho para o Chrome para mudar do navegador alternativo.</translation>
 <translation id="4988291787868618635">Ação a realizar quando o atraso de inatividade for alcançado</translation>
 <translation id="4995548127349206948">Se a autenticação NTLMv2 está ativada.</translation>
+<translation id="5030889661505907084">
+      Se a política estiver definida como verdadeira, a política da nuvem tem prioridade em caso de conflito com a política da plataforma.
+      Se a política estiver definida como falsa ou não estiver configurada, a política da plataforma tem prioridade em caso de conflito com a política da nuvem.
+
+      Esta política só está disponível como plataforma.
+      </translation>
 <translation id="5047604665028708335">Permitir o acesso a sites fora dos pacotes de conteúdo</translation>
 <translation id="5052081091120171147">Se esta política estiver ativada, força a importação do histórico de navegação a partir do navegador predefinido atual e também afeta a caixa de diálogo de importação. Se estiver desativada, o histórico de navegação não é importado. Se não estiver definida, o utilizador poderá ser questionado se pretende importá-lo ou a importação poderá ocorrer automaticamente.</translation>
+<translation id="5055312535952606505">Configura as definições de proxy para o <ph name="PRODUCT_NAME" />. Estas definições de proxy também estão disponíveis para aplicações ARC.
+
+          Se ativar esta definição, o <ph name="PRODUCT_NAME" /> e as aplicações ARC ignoram todas as opções relacionadas com o proxy especificadas a partir da linha de comandos.
+
+          Se deixar esta política por definir, permite que os utilizadores escolham as definições de proxy conforme pretendam.
+
+          Se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> estiver definida, irá substituir todas as políticas <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> e <ph name="PROXY_SERVER_MODE_POLICY_NAME" /> individuais.
+
+          O campo <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> permite-lhe especificar o servidor proxy utilizado pelo <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem as definições de proxy.
+
+          O campo <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> é um URL para um ficheiro .pac de proxy.
+
+          O campo <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> é um URL do servidor proxy.
+
+          O campo <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> é uma lista de anfitriões de proxy que o <ph name="PRODUCT_NAME" /> irá ignorar.
+
+          O campo <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> foi descontinuado e substituído pelo campo "ProxyMode". Permite-lhe especificar o servidor proxy utilizado pelo <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem as definições de proxy.
+
+          Se escolher o valor "direct" como "ProxyMode", nunca será utilizado um proxy e todos os outros campos serão ignorados.
+
+          Se escolher o valor "system" como "ProxyMode", é utilizado o proxy do sistema e todos os outros campos são ignorados.
+
+          Se escolher o valor "auto_detect" como "ProxyMode", todos os outros campos são ignorados.
+
+          Se escolher o valor "fixed_server" como "ProxyMode", são utilizados os campos "ProxyServer" e "ProxyBypassList".
+
+          Se escolher o valor "pac_script" como "ProxyMode", são utilizados os campos "ProxyPacUrl" e "ProxyBypassList".</translation>
 <translation id="5056708224511062314">Lupa desativada</translation>
 <translation id="5058573563327660283">Selecionar a estratégia utilizada para libertar espaço no disco durante a limpeza automática (descontinuado)</translation>
 <translation id="5067143124345820993">Lista branca de utilizadores com início de sessão</translation>
+<translation id="5075834892754086022">Se a política estiver definida, é aplicado o comprimento mínimo de PIN
+          configurado. (O comprimento mínimo absoluto de um PIN é 1. Os valores inferiores a 1
+          são tratados como 1.)
+
+          Se a política não estiver definida, é aplicado um comprimento mínimo de PIN
+          de 6 dígitos. Este é o comprimento mínimo recomendado.</translation>
 <translation id="5076274878326940940">Permite a utilização de um fornecedor de pesquisas predefinido.
 
           Se ativar esta definição, é realizada uma pesquisa predefinida quando o utilizador introduz texto na caixa geral sem ser um URL.
@@ -1758,6 +2026,24 @@
       intervalo mínimo é de 30 segundos e o intervalo máximo é de 24 horas. Os
       valores fora deste intervalo são ajustados em conformidade com o mesmo.</translation>
 <translation id="5163002264923337812">Ativar o fluxo de início de sessão baseado na Web antigo</translation>
+<translation id="5168529971295111207">Esta política foi descontinuada. Em alternativa, utilize ProxyMode.
+
+          Permite-lhe especificar o servidor proxy utilizado pelo <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem as definições de proxy.
+
+          Esta política apenas tem efeito se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> não tiver sido especificada.
+
+          Se optar por nunca utilizar um servidor proxy e estabelecer sempre ligação diretamente, todas as outras opções são ignoradas.
+
+          Se optar por utilizar as definições de proxy do sistema ou detetar automaticamente o servidor proxy, todas as outras opções são ignoradas.
+
+          Se selecionar as definições de proxy manuais, pode especificar outras opções em "Endereço ou URL do servidor proxy", "URL para um ficheiro .pac de proxy" e "Lista separada por vírgulas das regras para ignorar o proxy". Apenas o servidor proxy HTTP com a prioridade mais elevada está disponível para aplicações ARC.
+
+          Para obter exemplos mais detalhados, aceda a:
+          <ph name="PROXY_HELP_URL" />.
+
+          Se ativar esta definição, o <ph name="PRODUCT_NAME" /> ignora todas as opções relacionadas com o proxy especificadas a partir da linha de comandos.
+
+          Se deixar esta política por definir, permite que os utilizadores escolham as definições de proxy conforme pretendam.</translation>
 <translation id="5182055907976889880">Configurar o Google Drive no <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="5183383917553127163">Permite-lhe indicar quais as extensões que não estão sujeitas à lista negra. Um valor de lista negra de * significa que todas as extensões foram adicionadas à lista negra e os utilizadores só podem instalar extensões incluídas na lista de autorizações. Por predefinição, todas as extensões estão na lista de autorizações, mas se todas elas tiverem sido adicionadas à lista negra devido à política, a lista de autorizações pode ser utilizada para substituir essa política.</translation>
 <translation id="519247340330463721">Configure políticas relacionadas com a Navegação segura.</translation>
@@ -1794,6 +2080,20 @@
 
       Esta política é especificada em milissegundos.</translation>
 <translation id="523505283826916779">Definições de acessibilidade</translation>
+<translation id="5236882091572996759">Se esta política estiver definida como Verdadeira ou não estiver definida, o utilizador não é considerado inativo enquanto o áudio está a ser reproduzido. Deste modo, o limite de tempo de inatividade não é alcançado e a ação de inatividade não é realizada. No entanto, o escurecimento do ecrã, a ação de desligar o ecrã e o bloqueio do ecrã são realizados após os limites de tempo configurados, independentemente da atividade do áudio.
+
+          Se esta política estiver definida como Falsa, a atividade do áudio não impede que o utilizador seja considerado inativo.</translation>
+<translation id="5246700266104954355">Esta política foi descontinuada. Utilize <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para controlar a disponibilidade do plug-in Flash e <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para controlar se o visualizador de PDF integrado deve ser utilizado para abrir ficheiros PDF.
+
+      Especifica uma lista de plug-ins que estão ativados no <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem esta definição.
+
+      É possível utilizar os carateres universais "*" e "?" para fazer corresponder sequências de carateres arbitrários. "*" corresponde a um número arbitrário de carateres, ao passo que "?" indica um caráter único opcional, ou seja, corresponde aos carateres zero ou um. O caráter de escape é "\", pelo que, para corresponder aos carateres reais "*", "?" ou "\", pode colocar um "\" à frente dos mesmos.
+
+      A lista de plug-ins especificada é sempre utilizada no <ph name="PRODUCT_NAME" /> se os plug-ins estiverem instalados. Os plug-ins estão marcados como ativados em "about:plugins" e os utilizadores não os podem desativar.
+
+      Tenha em atenção que esta política substitui DisabledPlugins e DisabledPluginsExceptions.
+
+      Se esta política não for definida, o utilizador pode desativar qualquer plug-in instalado no sistema.</translation>
 <translation id="5247006254130721952">Bloquear transferências perigosas</translation>
 <translation id="5248863213023520115">Define os tipos de encriptação permitidos ao solicitar permissões Kerberos a um servidor do <ph name="MS_AD_NAME" />.
 
@@ -1842,6 +2142,7 @@
 
       Caso contrário, pode ser definida para um dos seguintes valores: "tls1.2" ou "tls1.3". Quando estiver definida, o <ph name="PRODUCT_NAME" /> não utiliza as versões SSL/TLS superiores à versão especificada. Um valor não reconhecido será ignorado.</translation>
 <translation id="5330684698007383292">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> processe os seguintes tipos de conteúdo</translation>
+<translation id="5331746669335642668">A política da nuvem do <ph name="PRODUCT_NAME" /> substitui a política da plataforma.</translation>
 <translation id="5365476955714838841">Parâmetros da linha de comandos para o navegador alternativo.</translation>
 <translation id="5365946944967967336">Mostrar o botão Página Inicial na barra de ferramentas</translation>
 <translation id="5366745336748853475">Permite especificar uma lista de padrões do URL que especificam sites para os quais é automaticamente selecionado um certificado de cliente no ecrã de início de sessão, no frame que aloja o fluxo SAML, se o site solicitar um certificado. Serve, por exemplo, para configurar um certificado ao nível do dispositivo que deve ser apresentado ao SAML IdP.
@@ -1881,10 +2182,23 @@
 <translation id="5405289061476885481">Configura os esquemas de teclado que são autorizados no ecrã de início de sessão do <ph name="PRODUCT_OS_NAME" />.
 
       Se esta política estiver definida como uma lista de identificadores do método de introdução, os métodos de introdução fornecidos são disponibilizados no ecrã de início de sessão. O primeiro método de introdução fornecido é pré-selecionado. Quando um agrupamento de utilizadores está centrado no ecrã de início de sessão, é disponibilizado o método de introdução utilizado mais recentemente, para além dos métodos de introdução fornecidos por esta política. Se esta política não estiver definida, os métodos de introdução no ecrã de início de sessão serão provenientes do local no qual o ecrã de início de sessão é apresentado. Os valores que não forem identificadores de métodos de introdução válidos serão ignorados.</translation>
+<translation id="5412057811596122582">Se esta política estiver ativada ou não estiver configurada (predefinição), é solicitado ao utilizador
+      acesso de captura de áudio, exceto para os URLs configurados na
+      lista AudioCaptureAllowedUrls, à qual será concedido acesso sem pedido.
+
+      Quando esta política está desativada, nunca é solicitado acesso ao utilizador e a captura
+      de áudio está disponível apenas para os URLs configurados em AudioCaptureAllowedUrls.
+
+      Esta política afeta todos os tipos de entrada de áudio e não apenas o microfone integrado.</translation>
 <translation id="5422643441807528365">Chave da licença do <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423001109873148185">Se esta política estiver ativada, força a importação de motores de pesquisa a partir do navegador predefinido atual e também afeta a caixa de diálogo de importação. Se estiver desativada, o motor de pesquisa predefinido não é importado. Se não for definida, o utilizador poderá ser questionado se pretende importá-lo ou a importação poderá ocorrer automaticamente.</translation>
 <translation id="5423197884968724595">Nome da restrição WebView do Android:</translation>
 <translation id="5424147596523390018">Permitir todos os modos a cores</translation>
+<translation id="5437733496511628148">A ativação desta definição impede que os cookies sejam definidos por elementos de páginas Web que não pertençam ao domínio indicado na barra de endereço do navegador.
+
+      A desativação desta definição permite que os cookies sejam definidos por elementos de páginas Web que não pertençam ao domínio indicado na barra de endereço do navegador e impede que os utilizadores alterem esta definição.
+
+      Se esta política não for definida, os cookies de terceiros são ativados, mas o utilizador pode alterar essa situação.</translation>
 <translation id="5442026853063570579">Esta política também controla o acesso às Opções de programador do Android. Se a definir como "DeveloperToolsDisallowed" (valor 2), os utilizadores não poderão aceder às Opções de programador. Se a definir com outro valor ou não a definir, os utilizadores poderão aceder às Opções de programador ao tocar sete vezes no número da compilação na aplicação Definições do Android.</translation>
 <translation id="544342220587994947">Permite especificar uma lista de padrões de URL que especificam sites para os quais o <ph name="PRODUCT_NAME" /> deverá selecionar automaticamente um certificado de cliente, se o site pedir um certificado.
 
@@ -1911,6 +2225,19 @@
       Se houver uma contradição entre as regras, o <ph name="PRODUCT_NAME" /> utiliza a regra mais específica.</translation>
 <translation id="5475361623548884387">Ativar impressão</translation>
 <translation id="547601067149622666">Não permitir anúncios em sites com anúncios intrusivos</translation>
+<translation id="5483777239978559943">Esta política foi descontinuada. Utilize <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> para controlar a disponibilidade do plug-in Flash e <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> para controlar se o visualizador de PDF integrado deve ser utilizado para abrir ficheiros PDF.
+
+      Especifica uma lista de plug-ins que o utilizador pode ativar ou desativar no <ph name="PRODUCT_NAME" />.
+
+      É possível utilizar os carateres universais "*" e "?" para fazer corresponder sequências de carateres arbitrários. "*" corresponde a um número arbitrário de carateres, enquanto "?" indica um caráter único opcional, ou seja, corresponde aos carateres zero ou um. O caráter de escape é "\", pelo que, para corresponder aos carateres reais "*", "?" ou "\", pode colocar um "\" à frente dos mesmos.
+
+      Se ativar esta definição, a lista especificada de plug-ins pode ser utilizada no <ph name="PRODUCT_NAME" />. Os utilizadores podem ativá-los ou desativá-los em "about:plugins", mesmo que o plug-in também corresponda a um padrão em DisabledPlugins. Os utilizadores podem ainda ativar e desativar plug-ins que não correspondam a qualquer padrão em DisabledPlugins, DisabledPluginsExceptions e EnabledPlugins.
+
+      Esta política destina-se a permitir a elaboração de listas negras de plug-ins rigorosas quando a lista "DisabledPlugins" inclui entradas com carateres universais, tais como desativar todos os plug-ins "*" ou desativar todos os plug-ins Java "*Java*'", mas o administrador pretende ativar uma versão específica, como "IcedTea Java 2.3". Estas versões particulares podem ser especificadas nesta política.
+
+      Tenha em atenção que tanto o nome do plug-in como o nome do grupo do plug-in têm de estar isentos. Cada grupo de plug-ins é apresentado numa secção separada em about:plug-ins; cada secção pode ter um ou mais plug-ins. Por exemplo, o plug-in "Shockwave Flash" pertence ao grupo "Adobe Flash Player" e ambos os nomes têm de ter uma correspondência na lista de exceções se esse plug-in for isento da lista negra.
+
+      Se esta política não for definida, qualquer plug-in correspondente aos padrões em "DisabledPlugins" será bloqueado como desativado e o utilizador não o poderá ativar.</translation>
 <translation id="5499375345075963939">Esta política está ativa apenas no modo de retalho.
 
       Quando o valor desta política estiver definido e não for 0, o utilizador de demonstração com sessão iniciada atualmente verá a sua sessão terminada uma vez decorrido o tempo de inatividade especificado.
@@ -1946,6 +2273,13 @@
       Se não estiver especificada, não irá modificar o URL da semente Variações.</translation>
 <translation id="5561811616825571914">Selecionar automaticamente certificados de cliente para estes sites no ecrã de início de sessão</translation>
 <translation id="5566210228171064229">Permitir impressão com e sem PIN</translation>
+<translation id="556865034069957245">Esta política controla a disponibilidade do modo de ecrã inteiro, em que toda a interface de <ph name="PRODUCT_NAME" /> está oculta e apenas o conteúdo Web é visível.
+
+      Se esta política for definida como verdadeira ou não for configurada, as aplicações e extensões do utilizador com autorizações adequadas podem entrar no modo de ecrã inteiro.
+
+      Se esta política for definida como falsa, nem o utilizador nem quaisquer aplicações ou extensões podem entrar no modo de ecrã inteiro.
+
+      Em todas as plataformas, exceto no <ph name="PRODUCT_OS_NAME" />, o modo quiosque está indisponível quando o modo de ecrã inteiro está desativado.</translation>
 <translation id="556941986578702361">Controlar a ocultação automática da prateleira do <ph name="PRODUCT_OS_NAME" />.
 
       Se esta política estiver definida como 'AlwaysAutoHideShelf', a prateleira será sempre ocultada automaticamente.
@@ -1963,6 +2297,11 @@
 <translation id="5581292529942108810">Configure as políticas relacionadas com a Chrome Reporting Extension.
 
       Esta política apenas entra em vigor quando a <ph name="CHROME_REPORTING_EXTENSION_NAME" /> está ativada e a máquina está associada à <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
+<translation id="5583806683960333345">Se esta definição estiver ativada, os utilizadores podem utilizar a Ligação (à Internet) via telemóvel instantânea, que permite ao telemóvel Google partilhar os dados móveis com o dispositivo.
+
+      Se esta definição estiver desativada, os utilizadores não podem utilizar a Ligação (à Internet) via telemóvel instantânea.
+
+      Se esta política não for definida, a predefinição não é permitida para utilizadores geridos por empresas e é permitida para utilizadores não geridos.</translation>
 <translation id="5584132346604748282">Controlar os serviços de localização da Google para aplicações para Android.</translation>
 <translation id="5586942249556966598">Não fazer nada</translation>
 <translation id="5590494712401018042">Especifica a percentagem que determina a escala do atraso de escurecimento do ecrã quando o dispositivo está no modo de apresentação.
@@ -1984,6 +2323,19 @@
       NOTA: esta política é aplicável apenas ao Chrome no Android nos dispositivos estritamente com mais de 1 GB de RAM. Para aplicar a política a plataformas não Android, utilize IsolateOrigins.
       </translation>
 <translation id="5599461642204007579">Definições de gestão de <ph name="MS_AD_NAME" /></translation>
+<translation id="5610104657949692379">Quando esta política está definida, especifica a ação que o <ph name="PRODUCT_OS_NAME" /> efetua quando o utilizador permanece inativo durante o período de tempo determinado pelo atraso de inatividade, que pode ser configurado separadamente.
+
+          Quando esta política não está definida, é efetuada a ação predefinida, que é a suspensão.
+
+          Se a ação for a suspensão, o <ph name="PRODUCT_OS_NAME" /> pode ser configurado separadamente para bloquear ou não bloquear o ecrã antes da suspensão.</translation>
+<translation id="5618398258385745432">A definição associada era utilizada antes de ser introduzida a reautenticação durante a visualização de palavras-passe. Depois disso, a definição e, consequentemente, esta política deixaram de afetar o comportamento do Chrome. Atualmente, o Chrome comporta-se como se a política estivesse definida para desativar a apresentação das palavras-passe em texto não codificado na página de definições do gestor de palavras-passe. Isto significa que a página de definições inclui apenas um marcador de posição e o Chrome só mostra a palavra-passe depois de o utilizador clicar em "Mostrar" (e efetuar a reautenticação, se aplicável). Segue-se a descrição original da política.
+
+          Controla se os utilizadores podem mostrar palavras-passe em texto não codificado no gestor de palavras-passe.
+
+          Se desativar esta definição, o gestor de palavras-passe não permite mostrar as palavras-passe armazenadas em texto não codificado na janela do gestor.
+
+          Se ativar ou não definir esta política, os utilizadores podem ver as palavras-passe em texto não codificado no gestor de palavras-passe.</translation>
+<translation id="5620392548325769024">Ativar a apresentação da página de boas-vindas da primeira vez que o navegador for iniciado após uma atualização do SO</translation>
 <translation id="5630352020869108293">Restaurar a última sessão</translation>
 <translation id="5645779841392247734">Permitir cookies nestes sites</translation>
 <translation id="5689430183304951538">Tamanho da página de impressão padrão</translation>
@@ -2007,6 +2359,7 @@
       Se esta política estiver definida como verdadeira ou não for definida, a sessão de convidado gerida assume o comportamento "Sessão gerida" que levanta muitas das restrições em vigor aplicadas às "Sessões públicas" padrão.
 
       Se esta política estiver definida, o utilizador não a pode alterar nem substituir.</translation>
+<translation id="5708969689202733975">Configurar os modos de desbloqueio rápido permitidos</translation>
 <translation id="572155275267014074">Definições do Android</translation>
 <translation id="5722934961007828462">Com esta definição ativada, o <ph name="PRODUCT_NAME" /> executará sempre a verificação da revogação de certificados de servidor que validem com êxito e estejam assinados por certificados da AC instalados localmente.
 
@@ -2015,6 +2368,11 @@
       Se esta política não estiver definida ou estiver definida como falsa, o <ph name="PRODUCT_NAME" /> utilizará as definições de verificação da revogação online existentes.</translation>
 <translation id="5728154254076636808">Permitir a criação de cópias de roaming para dados de perfis do <ph name="PRODUCT_NAME" /></translation>
 <translation id="5732972008943405952">Importar dados do formulário de preenchimento automático a partir do navegador predefinido na primeira execução</translation>
+<translation id="5741810844420698449">Quando esta política está definida, especifica a ação que o <ph name="PRODUCT_OS_NAME" /> efetua quando o utilizador fecha a tampa do dispositivo.
+
+          Quando esta política não está definida, é efetuada a ação predefinida, que é a suspensão.
+
+          Se a ação for a suspensão, o <ph name="PRODUCT_OS_NAME" /> pode ser configurado separadamente para bloquear ou não bloquear o ecrã antes da suspensão.</translation>
 <translation id="5765780083710877561">Descrição:</translation>
 <translation id="5770738360657678870">Canal para programadores (pode ser instável)</translation>
 <translation id="5774856474228476867">URL de pesquisa do fornecedor de pesquisas predefinido</translation>
@@ -2203,6 +2561,7 @@
 <translation id="6111936128861357925">Permitir o jogo do ovo da Páscoa do dinossauro</translation>
 <translation id="6114416803310251055">obsoleta</translation>
 <translation id="6133088669883929098">Permitir que todos os sites utilizem a geração de chaves</translation>
+<translation id="6141402445226505817">Utilizar sempre a deteção aproximada do fuso horário</translation>
 <translation id="6145799962557135888">Permite definir uma lista de padrões de URL que especificam os Web sites autorizados a executar JavaScript. Se esta política não for definida, será utilizado o valor global predefinido para todos os Web sites, seja a partir da política "DefaultJavaScriptSetting", caso esteja definida, ou a partir da configuração pessoal do utilizador.</translation>
 <translation id="614662973812186053">Esta política também controla a recolha de dados de utilização e de diagnóstico do Android.</translation>
 <translation id="6153048425064249648">Esta política controla os relatórios da nuvem do <ph name="PRODUCT_NAME" /> que carregam informações acerca da utilização do navegador para a Consola do administrador do Google.
@@ -2240,6 +2599,15 @@
 <translation id="6155936611791017817">Definir o estado predefinido do cursor grande no ecrã de início de sessão</translation>
 <translation id="6157537876488211233">Lista separada por vírgulas das regras para ignorar o proxy</translation>
 <translation id="6158324314836466367">Nome da Web store da empresa (descontinuado)</translation>
+<translation id="6158817306788002298">Pode especificar um URL para um ficheiro .pac de proxy aqui.
+
+          Esta política só é aplicada se tiver selecionado as definições de proxy manuais em "Escolher como especificar as definições do servidor proxy" e se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> não tiver sido especificada.
+
+          Deixe esta política por definir se tiver selecionado qualquer outro modo para definir políticas de proxy.
+
+          Para obter exemplos mais detalhados, aceda a:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="6178075938488052838">Esta política controla quem pode iniciar uma sessão do <ph name="PRODUCT_OS_NAME" />. Não impede que os utilizadores iniciem sessão noutras Contas Google no sistema Android. Se quiser evitar que isto aconteça, configure a política <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> específica para Android como parte da <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="6181608880636987460">Permite-lhe definir uma lista de padrões de URL que especificam sites que não têm autorização para executar o plug-in <ph name="FLASH_PLUGIN_NAME" />.
 
           Se esta política não for definida, é utilizado o valor predefinido global para todos os sites da política "DefaultPluginsSetting", se esta estiver definida, ou, caso contrário, a configuração pessoal do utilizador.</translation>
@@ -2274,6 +2642,17 @@
 <translation id="6281043242780654992">Configura as políticas das Mensagens nativas. Os anfitriões de mensagens nativas na lista negra não terão autorização até passarem para a lista de autorizações.</translation>
 <translation id="6282799760374509080">Permitir ou impedir a captura de áudio</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">Força a desativação de idiomas com verificação ortográfica. Os idiomas não reconhecidos nessa lista são ignorados.
+
+      Se ativar esta política, a verificação ortográfica é desativada para os idiomas especificados. O utilizador ainda pode ativar ou desativar a verificação ortográfica para os idiomas não presentes na lista.
+
+      Se não definir esta política ou a desativar, as preferências de verificação ortográfica do utilizador não são alteradas.
+
+      Se a política SpellcheckEnabled estiver definida como desativada, esta política não tem efeito.
+
+      Se um idioma estiver incluído nesta política e na política SpellcheckLanguage, a política SpellcheckLanguage tem prioridade e o idioma com verificação ortográfica é ativado.
+
+      Os idiomas atualmente suportados são: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">Ativar o preenchimento automático do nome do domínio durante o início de sessão do utilizador</translation>
 <translation id="6315673513957120120">O Chrome mostra uma página de aviso quando os utilizadores navegam para sites com erros de SSL. Por predefinição ou quando esta política está definida como verdadeira, os utilizadores estão autorizados a clicar nestas páginas de aviso.
       Definir esta política como falsa desautoriza os utilizadores a clicar em qualquer página de aviso.</translation>
@@ -2323,6 +2702,8 @@
 <translation id="6449476513004303784">Não permitir que os utilizadores efetuem a gestão dos certificados</translation>
 <translation id="645425387487868471">Ativar o início de sessão forçado no <ph name="PRODUCT_NAME" /></translation>
 <translation id="6464074037294098618">Ativar o Preenchimento automático para endereços</translation>
+<translation id="6467613372414922590">Permitir anfitriões de Mensagens nativas de nível de utilizador (instalados sem autorizações de administração)</translation>
+<translation id="6468980648680553776">Esta política foi descontinuada. Em alternativa, utilize a política RemoteAccessHostClientDomainList.</translation>
 <translation id="6473623140202114570">Configure a lista de domínios em que a Navegação segura não acionará avisos.</translation>
 <translation id="6488627892044759800">Configura o tipo de página inicial predefinida no <ph name="PRODUCT_NAME" /> e impede os utilizadores de alterarem as preferências da página inicial. A página inicial pode ser definida como um URL especificado ou como a página Novo separador.
 
@@ -2336,6 +2717,13 @@
 
           Esta política está apenas disponível em instâncias do Windows associadas a um domínio do <ph name="MS_AD_NAME" /> ou em instâncias do Windows 10 Pro ou Enterprise inscritas para gestão de dispositivos.</translation>
 <translation id="6491139795995924304">Permitir o Bluetooth no dispositivo</translation>
+<translation id="6491872498385040936">Esta política foi descontinuada. Considere utilizar <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, que substitui esta política e permite um aperfeiçoamento mais detalhado.
+
+      Força o Modo restrito moderado no YouTube e impede que os utilizadores alterem esta definição.
+
+      Se esta definição estiver ativada, o Modo restrito no YouTube é sempre aplicado, com um mínimo nunca inferior a Moderado.
+
+      Se esta definição estiver desativada ou não for definido qualquer valor, o <ph name="PRODUCT_NAME" /> não aplica o Modo restrito no YouTube. As políticas externas, tais como as políticas do YouTube, podem ainda assim aplicar o Modo restrito.</translation>
 <translation id="6495328383950074966">Configure a lista de domínios em que a Navegação segura irá confiar. Isto significa que:
       A Navegação segura não irá verificar a existência de recursos perigosos (por exemplo, phishing, software malicioso ou software indesejado) se os respetivos URLs corresponderem a esses domínios.
       O serviço de proteção de transferências da Navegação segura não irá verificar as transferências alojadas nesses domínios.
@@ -2608,6 +2996,7 @@
       O Google poderá associar estes registos, mediante um ID de sessão, a outros registos que o próprio serviço Google recolha, o que tem como objetivo facilitar a depuração.
       </translation>
 <translation id="706669471845501145">Permitir que os sites mostrem notificações do ambiente de trabalho</translation>
+<translation id="7070525176564511548">A introdução da palavra-passe é obrigatória todas as semanas (168 horas)</translation>
 <translation id="7072208053150563108">Taxa de alteração da palavra-passe da máquina</translation>
 <translation id="7079519252486108041">Bloquear pop-ups nestes sites</translation>
 <translation id="7085803328069945025">Permite definir uma lista de padrões URL que especificam sites que podem pedir ao utilizador que lhes conceda acesso a um dispositivo USB.
@@ -2640,6 +3029,9 @@
       Se esta política estiver definida como falsa, o modo de segundo plano é desativado e não pode ser controlado pelo utilizador nas definições do navegador.
 
       Se esta política não for definida, o modo de segundo plano está inicialmente desativado e pode ser controlado pelo utilizador nas definições do navegador.</translation>
+<translation id="7123160381479171745">Define a lista de utilizadores com permissão para iniciar sessão no dispositivo. As entradas são as do formulário <ph name="USER_WHITELIST_ENTRY_FORMAT" />, como <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Para permitir utilizadores arbitrários num domínio, utilize entradas do formulário <ph name="USER_WHITELIST_ENTRY_WILDCARD" />.
+
+      Se esta política não estiver configurada, não existem restrições em relação a quais os utilizadores autorizados a iniciar sessão. Tenha em atenção que, para criar novos utilizadores, continua a ser necessário que a política <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> seja configurada de forma adequada.</translation>
 <translation id="7123266440503901785">O <ph name="PRODUCT_NAME" /> trata de atualizar e instalar extensões com segurança. No entanto, o conteúdo de algumas extensões alojadas fora da Web Store do Chrome apenas pode ser protegido por assinaturas inseguras ou algoritmos de hash como o SHA1. Quando esta política está desativada, o Chrome não permite a nova instalação nem atualizações dessas extensões (até os programadores da extensão voltarem a compilar a extensão com algoritmos mais seguros). Quando esta política está ativada, é permitida a instalação e atualizações dessas extensões.
 
           Quando a política não está definida, o comportamento predefinido é de ativação.
@@ -2679,8 +3071,15 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="718956142899066210">Tipos de ligação permitidos para atualizações</translation>
 <translation id="7194407337890404814">Nome do fornecedor de pesquisas predefinido</translation>
+<translation id="7199304109870655950">Configure as opções de acesso remoto no anfitrião do Ambiente de Trabalho Remoto do Chrome.
+
+      O anfitrião do Ambiente de Trabalho Remoto do Chrome é um serviço nativo executado no computador de destino ao qual um utilizador se pode associar ao utilizar a aplicação Ambiente de Trabalho Remoto do Chrome. O serviço nativo é comprimido e executado em separado a partir do navegador <ph name="PRODUCT_NAME" />.
+
+      Estas políticas são ignoradas, exceto se o
+      anfitrião do Ambiente de Trabalho Remoto do Chrome estiver instalado.</translation>
 <translation id="7202925763179776247">Permitir restrições de transferências</translation>
 <translation id="7207095846245296855">Forçar Google Pesquisa segura</translation>
+<translation id="7211368186050418507">Nunca detetar automaticamente o fuso horário</translation>
 <translation id="7216442368414164495">Permite aos utilizadores optar por receber relatórios alargados de Navegação segura</translation>
 <translation id="7221822638060296742">Permite-lhe definir se os Websites estão autorizados a executar automaticamente o plugin <ph name="FLASH_PLUGIN_NAME" />. É possível autorizar ou recusar a execução automática do plugin <ph name="FLASH_PLUGIN_NAME" /> para todos os Websites.
 
@@ -2745,6 +3144,11 @@
 
           Se esta definição estiver desativada, esta funcionalidade não estará disponível.</translation>
 <translation id="7275334191706090484">Marcadores Geridos</translation>
+<translation id="7291084543582732020">Se ativar esta definição, os utilizadores têm autorização para utilizar o Smart Lock se os requisitos para a funcionalidade forem respeitados.
+
+      Se desativar esta definição, os utilizadores não têm autorização para utilizar o Smart Lock.
+
+      Se esta política não for definida, a predefinição não é permitida para utilizadores geridos por empresas e é permitida para utilizadores não geridos.</translation>
 <translation id="7295019613773647480">Ativar utilizadores supervisionados</translation>
 <translation id="7301543427086558500">Especifica uma lista de URLs alternativos que podem ser utilizados para extrair termos de pesquisa do motor de pesquisa. Os URLs devem conter a cadeia <ph name="SEARCH_TERM_MARKER" />, que será utilizada para extrair os termos de pesquisa.
 
@@ -2800,6 +3204,9 @@
 
       Esta política apenas entra em vigor quando a <ph name="CHROME_REPORTING_EXTENSION_NAME" /> está ativada e a máquina está associada à <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
 <translation id="737655323154569539">Restringe o tamanho da página de impressão. Uma política não definida ou uma definição vazia são consideradas uma não restrição.</translation>
+<translation id="7389872682701720082">Se ativar esta definição, os plug-ins que não estão desatualizados são sempre executados.
+
+      Se esta definição estiver desativada ou não estiver definida, será pedida autorização aos utilizadores para executar plug-ins que requerem autorização. Estes são plug-ins que podem comprometer a segurança.</translation>
 <translation id="7417972229667085380">Percentagem que determina a escala do atraso de inatividade no modo de apresentação (descontinuado)</translation>
 <translation id="7421483919690710988">Definir o tamanho da cache do disco multimédia em bytes</translation>
 <translation id="7424751532654212117">Lista de exceções à lista de plug-ins desativados</translation>
@@ -2807,12 +3214,16 @@
 
       Se a política não for definida ou for definida como falsa, o <ph name="TLS_FALSE_START" /> fica ativado. Se for definida como verdadeira, o <ph name="TLS_FALSE_START" /> fica desativado.</translation>
 <translation id="7433714841194914373">Ativar Instantâneo</translation>
+<translation id="7434202861148928348">Configurar os nomes de domínio necessários para clientes de acesso remoto</translation>
 <translation id="7443616896860707393">Mensagens de Autorização Básica de HTTP de origem cruzada</translation>
 <translation id="7458437477941640506">Não reverta para a versão de destino se a versão do SO for mais recente do que a do destino. As atualizações também estão desativadas.</translation>
 <translation id="7464991223784276288">Limitar os cookies dos URLs correspondentes à sessão atual.</translation>
 <translation id="7469554574977894907">Ativar sugestões de pesquisa</translation>
 <translation id="7474249562477552702">Se os certificados assinados SHA-1 emitidos por âncoras fidedignas locais são ou não autorizados</translation>
 <translation id="7485481791539008776">Regras de seleção da impressora predefinida</translation>
+<translation id="7485730741952775732">Se esta política estiver definida, o anfitrião de acesso remoto utiliza este URL para validar os símbolos de autenticação de clientes de acesso remoto, com o objetivo de aceitar ligações. Tem de ser utilizada juntamente com RemoteAccessHostTokenUrl.
+
+          Atualmente, esta funcionalidade encontra-se desativada do lado do servidor.</translation>
 <translation id="749556411189861380">Comunicar versão do SO e do firmware dos dispositivos inscritos.
 
       Se esta opção não estiver definida ou estiver definida como "true", os dispositivos inscritos comunicarão a versão do SO e do firmware periodicamente. Se esta estiver definida como "false", as informações de versão não serão comunicadas.</translation>
@@ -2905,6 +3316,8 @@
 
       Consulte https://developers.google.com/safe-browsing para obter mais informações sobre a Navegação segura.</translation>
 <translation id="7643883929273267746">Restrinja as contas que estão visíveis no <ph name="PRODUCT_NAME" />.</translation>
+<translation id="7644825865811580663">Se esta política for definida como verdadeira, o <ph name="PRODUCT_NAME" /> maximiza incondicionalmente a primeira janela mostrada na primeira execução.
+      Se esta política for definida como falsa ou não for configurada, a decisão de maximizar ou não a primeira janela apresentada depende do tamanho do ecrã.</translation>
 <translation id="7651739109954974365">Determina se o roaming de dados deve estar ativado para o aparelho. Se a política estiver definida como verdadeira, o roaming de dados é permitido. Se ficar por configurar ou for definida como falsa, o roaming de dados não estará disponível.</translation>
 <translation id="7657261947024629645">Otimizar o desempenho.</translation>
 <translation id="7673194325208122247">Período de tempo (milissegundos)</translation>
@@ -2918,6 +3331,9 @@
 
           Se a política "RestoreOnStartup" estiver definida para restaurar URLs de sessões anteriores, esta política não é respeitada e os cookies são armazenados permanentemente para esses sites.</translation>
 <translation id="7683777542468165012">Atualização Dinâmica de Políticas</translation>
+<translation id="7687943045976362719">Se esta política estiver definida, os tipos de conteúdo especificados são geridos pelo <ph name="PRODUCT_FRAME_NAME" />.
+
+          Se esta política não estiver definida, é utilizado o processador predefinido para todos os sites. (A politica <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> pode ser utilizada para configurar o processador predefinido.)</translation>
 <translation id="7694807474048279351">Agendar um reinício automático depois de ter sido aplicada uma atualização do <ph name="PRODUCT_OS_NAME" />.
 
       Quando esta política estiver definida como verdadeira, é agendado um reinício automático, assim que tiver sido aplicada uma atualização do <ph name="PRODUCT_OS_NAME" />; é necessário reiniciar, para concluir o processo de atualização. O reinício é imediatamente agendado, mas pode ser adiado no dispositivo até 24 horas se um utilizador estiver atualmente a utilizar o dispositivo.
@@ -2957,6 +3373,7 @@
 <translation id="7763614521440615342">Mostrar sugestões de conteúdo na página Novo separador</translation>
 <translation id="7765879851993224640">Permitir a utilização do início de sessão do Smart Lock</translation>
 <translation id="7774768074957326919">Utilizar definições de proxy do sistema</translation>
+<translation id="7777535871204167559">Tratar os dispositivos de armazenamento externo como só de leitura</translation>
 <translation id="7781069478569868053">Página Novo separador</translation>
 <translation id="7788511847830146438">Por Perfil</translation>
 <translation id="780603170519840350">Desativa a aplicação dos requisitos da Transparência de certificados numa lista de hashes de subjectPublicKeyInfo.
@@ -2986,6 +3403,11 @@
       Se esta política não for definida, o <ph name="PRODUCT_NAME" /> utilizará o valor predefinido de 5000 milissegundos.</translation>
 <translation id="7841880500990419427">Versão TLS mínima como alternativa</translation>
 <translation id="7842869978353666042">Configurar as opções do Google Drive</translation>
+<translation id="7858404742201086014">Se ativar esta definição, os plug-ins desatualizados são utilizados como plug-ins normais.
+
+      Se desativar esta definição, os plug-ins desatualizados não são utilizados e não é solicitada autorização aos utilizadores para os executar.
+
+      Se esta opção não estiver definida, é solicitada aos utilizadores autorização para executar os plug-ins desatualizados.</translation>
 <translation id="787125417158068494">Se estiverem definidos para SyncDisabled ou não estiverem configurados, os certificados do <ph name="PRODUCT_OS_NAME" /> não ficam disponíveis para aplicações ARC.
 
       Se estiverem definidos para CopyCaCerts, todos os certificados da AC (Autoridade de certificação) instalados pelo ONC com <ph name="WEB_TRUSTED_BIT" /> ficam disponíveis para aplicações ARC.</translation>
@@ -3006,12 +3428,25 @@
 <translation id="793473937901685727">Definir a disponibilidade de certificados para aplicações ARC</translation>
 <translation id="7937766917976512374">Permitir ou impedir a captura de vídeo</translation>
 <translation id="7941975817681987555">Não prever ações de rede em nenhuma ligação de rede</translation>
+<translation id="7952958573604504839">Esta política foi descontinuada no M48 e substituída pela política <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" />, e removida no M54.
+
+      Ativa a previsão da rede no <ph name="PRODUCT_NAME" /> e impede que os utilizadores alterem esta definição.
+
+      Isto controla não só a obtenção prévia do DNS, mas também a ligação e o processamento prévios de TCP e SSL de páginas Web. Por motivos históricos, o nome da política refere-se à obtenção prévia do DNS.
+
+      Se ativar ou desativar esta definição, os utilizadores não a podem alterar ou substituir no <ph name="PRODUCT_NAME" />.
+
+      Se esta política for deixada por definir, é ativada, mas o utilizador pode alterá-la.</translation>
 <translation id="7953256619080733119">Anfitriões de exceção no manual do utilizador gerido</translation>
+<translation id="7958537754689366707">A introdução da palavra-passe é necessária a cada doze horas</translation>
 <translation id="7961779417826583251">Desativar a aplicação da Transparência de certificados para uma lista de autoridades de certificação antigas</translation>
 <translation id="7974114691960514888">Esta política já não é suportada. Ativa a utilização de servidores STUN e de transmissão ao estabelecer ligação a um cliente remoto. Se esta definição estiver ativada, o computador poderá localizar e estabelecer ligação a computadores anfitrião remotos, mesmo que estejam separados por uma firewall. Se esta definição estiver desativada e as ligações UDP de saída forem filtradas pela firewall, este computador apenas poderá estabelecer ligação a computadores anfitrião dentro da rede local.</translation>
 <translation id="7976157349247117979">Nome do destino do <ph name="PRODUCT_NAME" /></translation>
 <translation id="7980227303582973781">Sem restrições especiais</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
+<translation id="798856998567564266">Se ativar esta definição, é possível adicionar, remover ou modificar marcadores. Esta é também a predefinição quando esta política não está definida.
+
+      Se desativar esta definição, não é possível adicionar, remover ou modificar marcadores. Os marcadores existentes continuam disponíveis.</translation>
 <translation id="7992136759457836904">Permite-lhe controlar a execução de máquinas virtuais no Chrome OS.
 
       Se a política estiver definida como verdadeira, o dispositivo pode executar máquinas virtuais.
@@ -3038,6 +3473,20 @@
 <translation id="8050080920415773384">Impressão nativa</translation>
 <translation id="8053580360728293758">Substitui o modo de impressão a cores padrão. Se o modo não estiver disponível, esta política é ignorada.</translation>
 <translation id="8059164285174960932">URL onde os clientes de acesso remoto devem obter o respetivo símbolo de autenticação</translation>
+<translation id="806280865577636339">Se esta política for definida como verdadeira, as opções de Acessibilidade aparecem sempre no menu do tabuleiro do sistema.
+
+          Se esta política for definida como falsa, as opções de Acessibilidade nunca aparecem no menu do tabuleiro do sistema.
+
+          Se definir esta política, os utilizadores não a podem alterar nem substituir.
+
+          Se esta política não for definida, as opções de Acessibilidade não aparecem no menu do tabuleiro do sistema, mas o utilizador pode fazer com que as opções de Acessibilidade apareçam através da página Definições.</translation>
+<translation id="806523868782250975">Configura uma lista de marcadores geridos.
+
+      A política consiste numa lista de marcadores, em que cada marcador é um dicionário que contém as chaves "<ph name="NAME" />" e "<ph name="URL_LABEL" />" que, por sua vez, contêm o nome e o destino do marcador. É possível configurar uma subpasta ao definir um marcador sem uma chave "<ph name="URL_LABEL" />", mas com uma chave "<ph name="CHILDREN" />" adicional que contém uma lista de marcadores conforme definido acima (alguns deles também podem ser pastas). O <ph name="PRODUCT_NAME" /> corrige os URLs incompletos como se tivessem sido enviados através da caixa geral, por exemplo, "<ph name="GOOGLE_COM" />" fica "<ph name="HTTPS_GOOGLE_COM" />".
+
+      Estes marcadores são colocados numa pasta que não pode ser modificada pelo utilizador (embora o utilizador possa optar por ocultá-la da barra de marcadores). Por predefinição, o nome da pasta é "Marcadores geridos", mas pode ser personalizado ao adicionar à lista de marcadores um dicionário com a chave "<ph name="TOPLEVEL_NAME" />" com o nome de pasta pretendido como valor.
+
+      Os marcadores geridos não são sincronizados com a conta do utilizador e não podem ser modificados pelas extensões.</translation>
 <translation id="8078366200175825572">Permite definir uma lista de padrões de URL que especificam os sites não autorizados a definir cookies.
 
           Se esta política não for definida, é utilizado o valor global predefinido para todos os sites, seja a partir da política "DefaultCookiesSetting", caso esteja definida, ou a partir da configuração pessoal do utilizador.
@@ -3100,6 +3549,9 @@
 
       Se a política for definida como desativada ou não for definida, o início de sessão encaminha para perfis normais.</translation>
 <translation id="8158758865057576716">Permitir a criação de cópias de roaming para dados de perfis do <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8172676363520748127">Se a política estiver ativada, não é possível efetuar capturas de ecrã com atalhos de teclado ou APIs de extensões.
+
+      Se a política estiver desativada ou não estiver especificada, as capturas de ecrã são permitidas.</translation>
 <translation id="817455428376641507">Permite o acesso aos URLs listados, como exceções à lista negra de URLs.
 
       Para obter o formato de entradas desta lista, consulte a política da lista negra de URLs.
@@ -3113,6 +3565,7 @@
       Se esta política não for definida, não existirão exceções à lista negra da política "URLBlacklist".</translation>
 <translation id="8176035528522326671">Permitir que o utilizador empresarial seja apenas um utilizador principal de vários perfis (comportamento predefinido para utilizadores geridos por empresas)</translation>
 <translation id="8214600119442850823">Configura o gestor de palavras-passe.</translation>
+<translation id="8217516105848565518">Esta política foi descontinuada. Em alternativa, utilize a política RemoteAccessHostDomainList.</translation>
 <translation id="8244525275280476362">Atraso máximo na obtenção após a invalidação de uma política</translation>
 <translation id="8256688113167012935">Controla o nome da conta mostrado pelo <ph name="PRODUCT_OS_NAME" /> no ecrã de início de sessão para a conta local do dispositivo correspondente.
 
@@ -3128,6 +3581,9 @@
 Não é necessário configurar estas definições manualmente. Existem modelos de fácil utilização para Windows, Mac e Linux que pode transferir a partir de <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" />.
 
 A forma recomendada para configurar a política no Windows é através do GPO, embora o aprovisionamento da política através de registo ainda seja suportado para instâncias do Windows que estejam associadas a um domínio do <ph name="MS_AD_NAME" />.</translation>
+<translation id="8259592978873597235">Se esta política estiver definida como Verdadeira ou não estiver definida, o utilizador não é considerado inativo enquanto o vídeo está a ser reproduzido. Deste modo, o atraso de inatividade, o atraso de escurecimento do ecrã, o atraso para desligar o ecrã e o atraso do bloqueio do ecrã não são alcançados e as ações correspondentes não são realizadas.
+
+          Se esta política estiver definida como Falsa, a atividade do vídeo não impede que o utilizador seja considerado inativo.</translation>
 <translation id="8264653492961233132">Especifica uma lista de aplicações e de extensões que são instaladas silenciosamente,
           sem a interação do utilizador e que não podem ser desinstaladas nem
           desativadas pelo utilizador. Todas as autorizações solicitadas pelas
@@ -3179,6 +3635,7 @@
       O valor da política deve ser especificado em milissegundos.</translation>
 <translation id="8339420913453596618">Fator duplo desativado</translation>
 <translation id="8344454543174932833">Importar marcadores a partir do navegador predefinido na primeira execução</translation>
+<translation id="8357681633047935212">Limitar a duração de uma sessão de utilizador</translation>
 <translation id="8359734107661430198">Ativar a API ExampleDeprecatedFeature através de 2008/09/02</translation>
 <translation id="8367209241899435947">Ativar a Limpeza do Chrome no Windows</translation>
 <translation id="8369602308428138533">Atraso para desligar o ecrã quando o dispositivo está ligado à eletricidade</translation>
@@ -3187,6 +3644,13 @@
 
       Se a política estiver definida como falsa, as estatísticas não são comunicadas.
       Se estiver definida como verdadeira ou não estiver definida, as estatísticas são comunicadas.</translation>
+<translation id="8380490658357556620">Ativa a utilização de servidores de transmissão quando existirem clientes remotos a tentar estabelecer ligação a este computador.
+
+          Se esta definição estiver ativada, os clientes remotos podem utilizar servidores de transmissão para se ligarem a esta máquina quando não está disponível uma ligação direta (por exemplo, devido a restrições de firewall).
+
+          Tenha em atenção que se a política <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> estiver desativada, esta política é ignorada.
+
+          Se esta política não for definida, a definição será ativada.</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.
@@ -3317,6 +3781,7 @@
           Separe os vários nomes de servidor por vírgulas. Os carateres universais (*) são permitidos.
 
           Se esta política não estiver definida, o <ph name="PRODUCT_NAME" /> tentará detetar se um servidor está na Intranet e só nesse momento irá responder a pedidos IWA. Se um servidor for detetado como Internet, os pedidos IWA serão ignorados pelo <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8661297125441579970">Não permitir a migração de dados nem ARC</translation>
 <translation id="8672321184841719703">Versão de Atualização Automática de Destino</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8682611302223077049">Permite-lhe definir o período de tempo, em milissegundos, ao longo do qual os utilizadores são notificados de que o <ph name="PRODUCT_NAME" /> tem de ser reiniciado ou que um dispositivo <ph name="PRODUCT_OS_NAME" /> tem de ser reiniciado para aplicar uma atualização pendente.
@@ -3351,9 +3816,11 @@
       Se esta definição estivar ativada ou não definida, o histórico de transferências e de navegação poderão ser eliminados.
 
       Se esta definição estiver desativada, o histórico de transferências e de navegação não poderão ser eliminados.</translation>
+<translation id="8757552286070680084">Configuração do Wilco DTC</translation>
 <translation id="8758831693895931466">Ativar a inscrição na gestão da nuvem obrigatória</translation>
 <translation id="8759829385824155666">Tipos de encriptação Kerberos permitidos.</translation>
 <translation id="8764119899999036911">Especifica se o SPN do Kerberos gerado é baseado no nome de DNS canónico ou no nome introduzido originalmente. Se ativar esta definição, a procura de CNAME será ignorada e será utilizado o nome do servidor introduzido. Se desativar esta definição ou não a definir, o nome canónico do servidor será determinado através da procura de CNAME.</translation>
+<translation id="8764477907716150749">Esta política destina-se a utilização interna pelo próprio <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8765776988041674792">Configure o URL de alteração da palavra-passe (apenas esquemas HTTP e HTTPS). O serviço de proteção por palavra-passe envia os utilizadores para este URL para que alterem as respetivas palavras-passe depois de ser apresentado um aviso no navegador.
       Para que o <ph name="PRODUCT_NAME" /> capture a pegada digital da nova palavra-passe corretamente nesta página de alteração da palavra-passe, certifique-se de que a sua página de alteração da palavra-passe segue as diretrizes apresentadas em https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3372,6 +3839,26 @@
 <translation id="8833109046074170275">Autenticação através do fluxo GAIA predefinido</translation>
 <translation id="8838303810937202360">O <ph name="PRODUCT_OS_NAME" /> coloca em cache aplicações e extensões para instalação por vários utilizadores de um único dispositivo para evitar voltar a transferi-las para cada utilizador.
       Se esta política não estiver configurada ou o valor for inferior a 1 MB, o <ph name="PRODUCT_OS_NAME" /> utiliza o tamanho de cache predefinido.</translation>
+<translation id="8851325571441692315">Permite-lhe especificar o servidor proxy utilizado pelo <ph name="PRODUCT_NAME" /> e impede os utilizadores de alterarem as definições de proxy.
+
+          Esta política apenas tem efeito se a política <ph name="PROXY_SETTINGS_POLICY_NAME" /> não tiver sido especificada.
+
+          Se optar por nunca utilizar um servidor proxy e por estabelecer sempre ligação diretamente, todas as outras opções são ignoradas.
+
+          Se optar por utilizar as definições de proxy do sistema, todas as outras opções são ignoradas.
+
+          Se optar por detetar automaticamente o servidor proxy, todas as outras opções são ignoradas.
+
+          Se optar pelo modo de servidor proxy fixo, pode especificar mais opções em "Endereço ou URL do servidor proxy" e em "Lista separada por vírgulas das regras para ignorar o proxy". Apenas o servidor proxy HTTP com a prioridade mais elevada está disponível para aplicações ARC.
+
+          Se optar por utilizar um script de proxy .pac, tem de especificar o URL para o script em "URL para um ficheiro .pac de proxy".
+
+          Para obter exemplos detalhados, aceda a:
+          <ph name="PROXY_HELP_URL" />.
+
+          Se ativar esta definição, o <ph name="PRODUCT_NAME" /> e as aplicações ARC ignoram todas as opções relacionadas com o proxy especificadas a partir da linha de comandos.
+
+          Se deixar esta política por definir, permite que os utilizadores escolham as definições de proxy conforme pretendam.</translation>
 <translation id="8858642179038618439">Forçar o Modo de segurança do YouTube</translation>
 <translation id="8860342862142842017">Desativar a implementação da Transparência de certificados para uma lista de hashes de subjectPublicKeyInfo</translation>
 <translation id="8864975621965365890">Suprime o pedido de recusa que aparece quando um site é convertido por <ph name="PRODUCT_FRAME_NAME" />.</translation>
@@ -3464,7 +3951,47 @@
 <translation id="8976248126101463034">Permitir autenticação gnubby para anfitriões de acesso remoto</translation>
 <translation id="8976531594979650914">Utilizar a impressora predefinida do sistema como a predefinição</translation>
 <translation id="8992176907758534924">Não permitir que os sites mostrem imagens</translation>
+<translation id="9013875414788074110">Durante o início de sessão, o <ph name="PRODUCT_OS_NAME" /> pode efetuar a autenticação junto de um servidor (online) ou através de uma palavra-passe em cache (offline).
+
+      Quando esta política está definida para um valor de -1, o utilizador pode efetuar a autenticação offline indefinidamente. Quando esta política está definida para qualquer outro valor, é especificado o período de tempo desde a última autenticação online após o qual o utilizador tem de utilizar a autenticação online novamente.
+
+      Se deixar esta política não definida, fará com que o <ph name="PRODUCT_OS_NAME" /> utilize um limite predefinido de 14 dias após o qual o utilizador terá de utilizar a autenticação online novamente.
+
+      Esta política apenas afeta os utilizadores que efetuaram a autenticação através de SAML.
+
+      O valor da política deve ser especificado em segundos.</translation>
+<translation id="9027787254195333560">Esta política permite-lhe configurar a imagem do avatar que representa o utilizador no ecrã de início de sessão. A política é definida ao especificar o URL a partir do qual o <ph name="PRODUCT_OS_NAME" /> pode transferir a imagem do avatar e um hash criptográfico utilizado para validar a integridade da transferência. A imagem tem de estar no formato JPEG e o tamanho não pode exceder 512 KB. O URL tem de ser acessível sem qualquer autenticação.
+
+      A imagem do avatar é transferida e colocada em cache. Será transferida novamente sempre que o URL ou o hash forem alterados.
+
+      A política deve ser especificada como uma string que expresse o URL e o hash em formato JSON, em conformidade com o esquema seguinte:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "O URL a partir do qual é possível transferir a imagem do avatar.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "O hash SHA-256 da imagem do avatar.",
+            "type": "string"
+          }
+        }
+      }
+
+      Se esta política estiver definida, o <ph name="PRODUCT_OS_NAME" /> transfere e utiliza a imagem do avatar.
+
+      Se definir esta política, os utilizadores não a podem alterar nem substituir.
+
+      Se não definir a política, o utilizador pode escolher a imagem do avatar que o representa no ecrã de início de sessão.</translation>
 <translation id="9035964157729712237">IDs de extensões a excluir da lista negra</translation>
+<translation id="9039822628127365650">Quando esta política está definida, especifica a duração após a qual a sessão de um utilizador é automaticamente terminada, encerrando a sessão. O utilizador é informado sobre o tempo restante através de um temporizador de contagem decrescente mostrado no tabuleiro do sistema.
+
+      Quando esta política não está definida, a duração da sessão não é limitada.
+
+      Se definir esta política, os utilizadores não a podem alterar nem substituir.
+
+      O valor da política deve ser especificado em milissegundos. Os valores estão limitados a um intervalo entre 30 segundos e 24 horas.</translation>
 <translation id="9042911395677044526">Permite que a configuração de rede seja aplicada por utilizador para um aparelho <ph name="PRODUCT_OS_NAME" />. A configuração de rede é uma cadeia de formato JSON, conforme definido pelo formato de Configuração de Rede Aberta descrito em <ph name="ONC_SPEC_URL" /></translation>
 <translation id="906631898352326790">
       Se a política estiver ativada, cada uma das origens nomeadas numa lista separada por vírgulas é executada no seu próprio processo. Deste modo, são também isoladas as origens nomeadas por subdomínios. Por exemplo, ao especificar https://example.com/, https://foo.example.com/ também é isolado como parte do site https://example.com/.
@@ -3474,6 +4001,15 @@
 
       NOTA: esta política não é aplicável no Android. Para ativar IsolateOrigins no Android, utilize a definição da política IsolateOriginsAndroid.
       </translation>
+<translation id="9072600218500597787">Configura os nomes de domínio do anfitrião obrigatórios que são impostos aos anfitriões de acesso remoto e impede os utilizadores de os alterarem.
+
+          Se esta definição estiver ativada, os anfitriões apenas podem ser partilhados através de contas registadas num dos nomes de domínio especificados.
+
+          Se esta definição estiver desativada ou não estiver definida, os anfitriões podem ser partilhados através de qualquer conta.
+
+          Esta definição substitui a política RemoteAccessHostDomain, se estiver presente.
+
+          Consulte também RemoteAccessHostClientDomainList.</translation>
 <translation id="9077227880520270584">Temporizador de início de sessão automático na conta local de dispositivo</translation>
 <translation id="9084985621503260744">Especificar se a atividade do vídeo afeta a gestão da energia</translation>
 <translation id="9088433379343318874">Ativar o fornecedor de conteúdos do utilizador supervisionado</translation>
@@ -3482,6 +4018,30 @@
           Compatível com a versão 70 e superior do <ph name="PRODUCT_OS_NAME" />. Para clientes mais antigos, este valor significa que a reversão está desativada.</translation>
 <translation id="9096086085182305205">Lista de permissões do servidor de autenticação</translation>
 <translation id="9098553063150791878">Políticas para a autenticação HTTP</translation>
+<translation id="9103061223348895346">Esta política controla várias definições para a estratégia de gestão de energia quando o utilizador fica inativo.
+
+          Existem quatro tipos de ação:
+          * O ecrã ficará com a luz reduzida se o utilizador continuar inativo durante o período especificado por |ReduzirLuzEcrã|.
+          * O ecrã será desligado se o utilizador continuar inativo durante o período especificado por |EcrãDesligado|.
+          * Será apresentada uma caixa de diálogo de aviso se o utilizador continuar inativo durante o período especificado por |AvisoInatividade|, informando o utilizador de que a ação de inatividade está prestes a ser efetuada.
+          * A ação especificada por |AçãoInatividade| será efetuada se o utilizador continuar inativo durante o período especificado em |Inativo|.
+
+          Para cada uma das ações mencionadas acima, deve especificar o tempo de atraso em milissegundos e tem de definir para um valor superior a zero para acionar a ação correspondente. Se o tempo de atraso estiver definido como zero, o <ph name="PRODUCT_OS_NAME" /> não efetuará a ação correspondente.
+
+          Para cada um dos tempos de atraso mencionados acima, quando o período de tempo não estiver definido, será utilizado um valor predefinido.
+
+          Tenha em conta que os valores de |ReduzirLuzEcrã| estarão afixados para serem inferiores ou iguais a |EcrãDesligado|, |EcrãDesligado| e |AvisoInatividade| estarão afixados para serem inferiores ou iguais a |Inativo|.
+
+          |AçãoInatividade| pode ser uma das quatro ações possíveis:
+          * |Suspender|
+          * |TerminarSessão|
+          * |Encerrar|
+          * |NãoFazerNada|
+
+          Quando a ação |AçãoInatividade| não está definida, é efetuada a ação predefinida, que é a suspensão.
+
+          Existem também definições em separado para a corrente alternada e a bateria.
+          </translation>
 <translation id="9105265795073104888">Apenas é disponibilizado um subconjunto de opções de configuração de proxy para aplicações para Android. As aplicações para Android podem optar voluntariamente por utilizar o proxy. Não as pode forçar a utilizar um proxy.</translation>
 <translation id="9106865192244721694">Permitir WebUSB nestes sites</translation>
 <translation id="9112727953998243860">Ficheiro de configuração de impressoras empresariais</translation>
@@ -3522,6 +4082,7 @@
 
           Se esta política não for definida, será utilizado o valor "3" e o utilizador poderá alterar esta definição.</translation>
 <translation id="9167719789236691545">Desativar o Drive na aplicação Ficheiros do <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="9185107612228451403">Configura políticas relacionadas com extensões. O utilizador não pode instalar extensões que estejam na lista negra, a não ser que estas sejam incluídas na lista de autorizações. Também pode forçar o <ph name="PRODUCT_NAME" /> a instalar extensões automaticamente ao especificá-las na <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. As extensões instaladas à força são instaladas independentemente de fazerem parte da lista negra.</translation>
 <translation id="9187743794267626640">Desativar a montagem do armazenamento externo</translation>
 <translation id="9197740283131855199">Percentagem que determina a escala do atraso do esbatimento do ecrã se o utilizador se tornar ativo depois do esbatimento</translation>
 <translation id="9200828125069750521">Parâmetros do URL de imagem que utilize POST</translation>
@@ -3553,8 +4114,22 @@
 <translation id="9217154963008402249">Frequência dos pacotes de monitorização de rede</translation>
 <translation id="922540222991413931">Configurar fontes de instalação de extensões, aplicações e scripts do utilizador</translation>
 <translation id="924557436754151212">Importar palavras-passe guardadas a partir do navegador predefinido na primeira execução</translation>
+<translation id="926146562923985266">Esta política controla o comando a utilizar para abrir URLs no <ph name="PRODUCT_NAME" /> quando mudar do Internet Explorer.
+
+      Se o suplemento "Compatibilidade com o navegador antigo" para o Internet Explorer não estiver instalado, esta política não tem qualquer efeito.
+
+      Se esta política não estiver definida, o Internet Explorer deteta automaticamente o próprio caminho executável do <ph name="PRODUCT_NAME" /> quando iniciar o <ph name="PRODUCT_NAME" /> a partir do Internet Explorer.
+
+      Se esta política estiver definida, é utilizada para iniciar o <ph name="PRODUCT_NAME" /> quando iniciar o <ph name="PRODUCT_NAME" /> a partir do Internet Explorer.
+
+      Esta política pode ser definida para um caminho de ficheiro executável ou ${chrome} para detetar automaticamente a localização de instalação do Chrome.</translation>
 <translation id="930930237275114205">Definir diretório de dados do utilizador do <ph name="PRODUCT_FRAME_NAME" /></translation>
+<translation id="943865157632139008">Permite-lhe configurar o processador de HTML predefinido quando é instalado o <ph name="PRODUCT_FRAME_NAME" />.
+      A predefinição é permitir que o navegador anfitrião efetue o processamento, mas, se pretender, pode substituir esta predefinição e fazer com que o <ph name="PRODUCT_FRAME_NAME" /> processe as páginas HTML por predefinição.</translation>
 <translation id="944817693306670849">Definir o tamanho da cache do disco</translation>
+<translation id="966854160628341653">Controla se o <ph name="PRODUCT_OS_NAME" /> permite a criação de novas contas de utilizador. Se esta política estiver definida como falsa, os utilizadores que ainda não têm uma conta não poderão iniciar sessão.
+
+      Se esta política estiver definida como verdadeira ou não estiver configurada, é permitida a criação de novas contas de utilizador desde que <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> não impeça o utilizador de iniciar sessão.</translation>
 <translation id="981346395360763138">Os serviços de localização da Google estão desativados.</translation>
 <translation id="982497069985795632">Ativar a verificação ortográfica</translation>
 <translation id="991560005425213776">Enviar o nome de utilizador e o nome de ficheiro para as impressoras nativas</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 921ece39..13ef6d2 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -847,7 +847,7 @@
 
           Если установлено значение True, при аутентификации HTTP будет учитываться подтверждение от KDC, то есть Chrome сможет делегировать учетные данные только после того, как KDC укажет <ph name="OK_AS_DELEGATE" /> на удостоверении для доступа к ресурсу. Подробные сведения можно найти на странице https://tools.ietf.org/html/rfc5896.html. Сервис не должен противоречить правилу AuthNegotiateDelegateWhitelist.
 
-          Если правило не настроено или установлено значение False, политика KDC игнорируется на поддерживаемых платформах, и применяется только правило AuthNegotiateDelegateWhitelist.
+          Если правило не настроено или установлено значение False, политика KDC игнорируется на поддерживаемых платформах и применяется только правило AuthNegotiateDelegateWhitelist.
 
           В Windows политика KDC учитывается всегда.</translation>
 <translation id="2838830882081735096">Запретить перенос данных и ARC</translation>
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb
index 88ca60e..084abec 100644
--- a/components/policy/resources/policy_templates_sk.xtb
+++ b/components/policy/resources/policy_templates_sk.xtb
@@ -1171,7 +1171,7 @@
 <translation id="3583230441447348508">Umožňuje špecifikovať zoznam vopred nakonfigurovaných zdieľaných úložísk v sieti.
 
       Jednotlivé položky zoznamu v danom pravidle sú objekty pozostávajúce z dvoch častí: „share_url“ a „mode“. „share_url“ by mala byť webová adresa zdieľaného úložiska a „mode“ by malo byť „drop_down“ alebo „pre_mount“. „drop_down“ označuje, že „share_url“ sa pridá do rozbaľovacieho zoznamu na objavovanie zdieľaných úložísk. Režim „pre_mount“ označuje, že „share_url“ sa pripojí.</translation>
-<translation id="3591527072193107424">Povoliť funkciu podpory staršieho prehliadača</translation>
+<translation id="3591527072193107424">Zapnúť funkciu Podpora starších prehliadačov</translation>
 <translation id="3591584750136265240">Konfigurácia správania pri overovaní prihlasovacích údajov</translation>
 <translation id="3624171042292187668">
       Ak chcete vyťažiť z oboch možností, t. j. izolovať s obmedzeným vplyvom na používateľov, pozrite si nastavenie pravidla IsolateOrigins. Pravidlo IsolateOrigins použite so zoznamom webov, ktoré chcete izolovať. Toto nastavenie, SitePerProcess, izoluje všetky weby.
@@ -1362,7 +1362,7 @@
       Ak je toto pravidlo nastavené na hodnotu True, budú sa odosielať sledovacie sieťové pakety (tzv. <ph name="HEARTBEATS_TERM" />).
       Ak je nastavené na hodnotu False alebo nie je nastavené, pakety sa odosielať nebudú.</translation>
 <translation id="3950239119790560549">Časové obmedzenia aktualizácií</translation>
-<translation id="3956686688560604829">Podporu pre staré verzie prehliadača nájdete v pravidle SiteList prehliadača Internet Explorer.</translation>
+<translation id="3956686688560604829">Používať pravidlo SiteList prehliadača Internet Explorer na podporu starších prehliadačov</translation>
 <translation id="3958586912393694012">Povoliť použitie funkcie Smart Lock</translation>
 <translation id="3963602271515417124">Ak je toto pravidlo nastavené na hodnotu True, pre zariadenia sa povolí vzdialené overenie a certifikát sa automaticky vygeneruje a nahrá na server na správu zariadení.
 
@@ -1370,7 +1370,7 @@
 <translation id="3965339130942650562">Časový limit pred odhlásením nečinného používateľa</translation>
 <translation id="3973371701361892765">Poličku nikdy neskrývať automaticky</translation>
 <translation id="3984028218719007910">Určuje, či má systém <ph name="PRODUCT_OS_NAME" /> po odhlásení zachovať miestne údaje o účte. Ak je toto pravidlo nastavené na hodnotu true, systém <ph name="PRODUCT_OS_NAME" /> nebude uchovávať žiadne trvalé účty a všetky údaje z relácií používateľov budú po odhlásení odstránené. Ak je toto pravidlo nastavené na hodnotu false, alebo nie je nakonfigurované, zariadenie môže uchovávať (zašifrované) miestne údaje používateľa.</translation>
-<translation id="398475542699441679">Toto pravidlo ovláda, či má byť povolená podpora staršieho prehliadača.
+<translation id="398475542699441679">Toto pravidlo ovláda, či má byť zapnutá Podpora starších prehliadačov.
 
       Keď ho nenastavíte alebo nastavíte na hodnotu false, Chrome sa nebude pokúšať určené webové adresy spúšťať v alternatívnom prehliadači.
 
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb
index 785b1394..d982560 100644
--- a/components/policy/resources/policy_templates_sl.xtb
+++ b/components/policy/resources/policy_templates_sl.xtb
@@ -54,6 +54,7 @@
 <translation id="1062011392452772310">Omogoči oddaljeno potrditev naprave</translation>
 <translation id="1062407476771304334">Zamenjaj</translation>
 <translation id="1079801999187584280">Prepoved uporabe orodij za razvijalce</translation>
+<translation id="1087437665304381368">Ta pravilnik nadzira samo način za razvijalce sistema <ph name="PRODUCT_OS_NAME" />. Če želite preprečiti dostop do možnosti za razvijalce za Android, morate nastaviti pravilnik <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1093082332347834239">Če je ta nastavitev omogočena, se gostitelj za oddaljeno pomoč izvaja v procesu z dovoljenji <ph name="UIACCESS_PERMISSION_NAME" />. Tako lahko oddaljeni uporabniki uporabljajo okna s skrbniškimi pravicami na namizju lokalnega uporabnika.
 
           Če je ta nastavitev onemogočena ali ni konfigurirana, se gostitelj za oddaljeno pomoč izvaja v uporabnikovem kontekstu in oddaljeni uporabniki ne morejo uporabljati oken s skrbniškimi pravicami na namizju.</translation>
@@ -86,6 +87,14 @@
       Če pravilnik ni nastavljen, je mogoče predpomnjene uporabnike znova uporabiti v obdobju do 25 ur.
 
       Če je pravilnik nastavljen na 0, je predpomnjenje GPO izklopljeno. Upoštevajte, da se s tem poveča obremenjenost strežnika, saj so GPO-ji znova preneseni ob vsakem prenosu pravilnika, tudi če se niso spremenili.</translation>
+<translation id="1117462881884985156"><ph name="PRODUCT_NAME" /> bo obšel vse strežnike proxy za seznam gostiteljev, naveden tukaj.
+
+          Ta pravilnik velja le, če ste v »Izberite, kako določiti nastavitve strežnika proxy« izbrali ročne nastavitve strežnika proxy in če pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" /> ni bil določen.
+
+          Če ste za nastavitve pravilnikov za strežnik proxy izbrali drug način, tega pravilnika ne nastavljajte.
+
+          Če želite podrobnejše primere, obiščite:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Rutine za obravnavo protokolov, nastavljene s tem pravilnikom, se ne uporabljajo pri obravnavi namer za Android.</translation>
 <translation id="1118093128235245168">Dovoli spletnim mestom, da od uporabnika zahtevajo, da omogoči dostop do povezane naprave USB</translation>
 <translation id="1128903365609589950">Konfigurira imenik, ki ga bo <ph name="PRODUCT_NAME" /> uporabljal za shranjevanje predpomnjenih datotek na disk.
@@ -130,6 +139,10 @@
          Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena globalna privzeta vrednost iz pravilnika »DefaultImagesSetting«, kadar je ta pravilnik nastavljen, sicer pa iz osebnih nastavitev uporabnika.
 
           Ta pravilnik je bil prej zmotno omogočen v Androidu, vendar ta funkcija ni bila nikoli v celoti podprta v Androidu.</translation>
+<translation id="1194005076170619046">Če je ta pravilnik omogočen, je v sistemski vrstici prikazan velik rdeč gumb za odjavo, ko je seja aktivna in zaslon ni zaklenjen.
+
+      Če je ta pravilnik onemogočen ali ni določen, v sistemski vrstici ni velikega rdečega gumba za odjavo.</translation>
+<translation id="1197437816436565375">Aplikacij za Android ni mogoče prisiliti, da bi uporabljale strežnik proxy. Aplikacije za Android imajo na voljo podnabor nastavitev strežnika proxy, ki jih lahko prostovoljno upoštevajo. Če želite več podrobnosti, glejte pravilnik <ph name="PROXY_MODE_POLICY_NAME" />.</translation>
 <translation id="1198465924256827162">Kako pogosto se pošljejo nalaganja stanja naprave (v milisekundah).
 
       Če ta pravilnik ni nastavljen, je vrednost privzete pogostosti 3 ure. Najmanjša
@@ -171,6 +184,13 @@
 <translation id="1327466551276625742">Omogočanje poziva za konfiguracijo omrežja v stanju brez povezave</translation>
 <translation id="1330145147221172764">Omogoči zaslonsko tipkovnico</translation>
 <translation id="13356285923490863">Ime pravilnika</translation>
+<translation id="1347198119056266798">Ta pravilnik je zastarel, namesto tega uporabite <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> in <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />. Ta pravilnik se prezre, če je nastavljen kateri od teh pravilnikov: <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> ali <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (zastarel).
+
+      Vsili, da se poizvedbe v Google Spletnem iskanju opravijo tako, da je Varno iskanje nastavljeno kot aktivno, uporabnikom pa se prepreči, da bi to nastavitev spremenili. Ta nastavitev prav tako vsili Zmerno omejeni način v YouTubu.
+
+      Če to nastavitev omogočite, sta Varno iskanje v Iskanju Google in Zmerno omejeni način v YouTubu vedno aktivna.
+
+      Če to nastavitev onemogočite ali ne nastavite vrednosti, Varno iskanje v Iskanju Google in Omejeni način v YouTubu nista vsiljena.</translation>
 <translation id="1352174694615491349">Ta pravilnik omogoča združevanje povezav HTTP/2, ko se uporabljajo potrdila odjemalca. Če želite združiti povezavi, se morata tako ime gostitelja morebitne nove povezave kot ime gostitelja obstoječe povezave ujemati z enim od vzorcev, ki jih opisuje ta pravilnik. Pravilnik sestavlja seznam gostiteljev, ki uporabljajo obliko filtra URLBlacklist: »example.com« se ujema z »example.com« in vsemi poddomenami (npr. »sub.example.com«), medtem ko se ».example.net« ujema točno z »example.net«.
 
       Zahteve za združevanje, poslane različnim gostiteljem prek povezav, ki uporabljajo potrdila odjemalca, lahko povzročijo varnostne težave in težave glede zasebnosti, saj bo lokalno pooblastilo preneseno na vse zahteve, tudi če uporabnik tega ni izrecno odobril. Ta pravilnik je začasen in bo odstranjen v eni od prihodnjih različic. Glejte https://crbug.com/855690.
@@ -178,6 +198,11 @@
       Če ta pravilnik ni nastavljen, bo uporabljeno privzeto delovanje, po katerem ni dovoljeno nobeno združevanje povezav HTTP/2 pri povezavah, ki uporabljajo potrdila odjemalca.</translation>
 <translation id="1353966721814789986">Začetne strani</translation>
 <translation id="1354424209129232709">Največ:</translation>
+<translation id="1354452738176731363">Če je ta pravilnik nastavljen na »false«, zvok v napravi ni na voljo, ko je uporabnik prijavljen.
+
+      Ta pravilnik vpliva na vse vrste zvočnega predvajanja, ne samo na predvajanje iz vgrajenih zvočnikov. Onemogočene so tudi zvočne funkcije za ljudi s posebnimi potrebam. Če uporabnik potrebuje bralnik zaslona, tega pravilnika ne omogočite.
+
+      Če je ta nastavitev nastavljena na »true« ali ni določena, lahko uporabniki uporabljajo vse podprte izhodne zvočne funkcije v napravi.</translation>
 <translation id="1359553908012294236">Če je ta pravilnik omogočen ali ni nastavljen, <ph name="PRODUCT_NAME" /> omogoči prijave gostov. Prijave gostov so profili v brskalniku <ph name="PRODUCT_NAME" />, v katerih so vsa okna v načinu brez beleženja zgodovine.
 
       Če je ta pravilnik onemogočen, <ph name="PRODUCT_NAME" /> ne dovoli profilov gosta.</translation>
@@ -222,12 +247,37 @@
       Na https://developers.google.com/safe-browsing je na voljo več informacij o Varnem brskanju.
 
       Ta pravilnik je na voljo samo v primerkih s sistemom Windows, ki so pridruženi v domeno <ph name="MS_AD_NAME" />, ali primerkih s sistemom Windows 10 Pro ali Enterprise, ki so včlanjeni v upravljanje naprav.</translation>
+<translation id="1432194160771348078">
+      Določa seznam aplikacij, ki se namestijo v ozadju na zaslonu za prijavo
+      brez poseganja uporabnika in jih ni mogoče odstraniti.
+      Vsa dovoljenja, ki jih zahtevajo aplikacije, se odobrijo
+       implicitno in brez poseganja uporabnika, vključno z dodatnimi
+      dovoljenji, ki jih bodo zahtevale prihodnje različice aplikacije.
+
+      Zaradi varnosti in zasebnosti razširitev ni mogoče namestiti s tem pravilnikom. Poleg tega naprave v stabilni različici namestijo samo aplikacije, ki so na seznamu dovoljenih, ki je povezan v skupino v brskalniku <ph name="PRODUCT_NAME" />. Elementi, ki niso skladni s temi pogoji, so prezrti.
+
+      Če je aplikacija, ki je bila prisilno nameščena, odstranjena s tega seznama, jo <ph name="PRODUCT_NAME" /> samodejno odstrani.
+
+      Vsak element na seznamu pravilnika je niz, ki vsebuje ID razširitve in URL za »posodobitev«, ločen s podpičjem (<ph name="SEMICOLON" />). ID razširitve je 32-mestni črkovni niz, ki ga je mogoče v načinu za razvijalce najti na primer na <ph name="CHROME_EXTENSIONS_LINK" />. URL za »posodobitev« mora kazati na dokument XML manifesta za posodobitev, kot je opisano na <ph name="LINK_TO_EXTENSION_DOC1" />. Upoštevajte, da se URL za »posodobitev«, nastavljen v tem pravilniku, uporabi samo pri začetni namestitvi; pri vseh nadaljnjih posodobitvah razširitve je uporabljen URL, naveden v manifestu razširitve.
+
+      <ph name="EXTENSION_POLICY_EXAMPLE" /> namesti na primer aplikacijo <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> s standardnega URL-ja za »posodobitev« v Spletni trgovini Chrome. Več informacij o gostovanju razširitev je na voljo tukaj: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">Konfiguracija omrežja na ravni naprave</translation>
 <translation id="1438739959477268107">Privzeta nastavitev ustvarjanja ključev</translation>
 <translation id="1454846751303307294">Omogoča nastavitev seznama vzorcev URL-jev, s katerimi so določena spletna mesta, ki jim ni dovoljeno izvajanje JavaScripta.
 
           Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena splošna privzeta vrednost iz pravilnika »DefaultJavaScriptSetting«, kadar je ta nastavljen, ali iz uporabnikove osebne konfiguracije, kadar pravilnik »DefaultImagesSetting« ni nastavljen.</translation>
 <translation id="1456822151187621582">Windows (odjemalci s sistemom <ph name="PRODUCT_OS_NAME" />):</translation>
+<translation id="1458547592473993238">Ta pravilnik je zastarel. Uporabite pravilnik <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> za nadziranje razpoložljivosti vtičnika za Flash in pravilnik <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> za nadziranje, ali je za odpiranje datotek PDF treba uporabiti vdelan pregledovalnik PDF-jev.
+
+      Določi seznam vtičnikov, ki so onemogočeni v brskalniku <ph name="PRODUCT_NAME" />, in uporabnikom prepreči, da bi to nastavitev spremenili.
+
+      Nadomestna znaka * in ? je mogoče uporabiti za nadomeščanje zaporedij poljubnih znakov. Znak * nadomešča poljubno število znakov, znak ? pa izbirni posamezen znak, tj. nadomešča nič znakov ali en znak. Ubežni znak je \; če torej želite nadomestiti dejanske znake *, ? ali \, lahko postavite prednje znak \.
+
+      Če to nastavitev omogočite, določen seznam vtičnikov v brskalniku <ph name="PRODUCT_NAME" /> ni nikoli uporabljen. Vtičniki so v »about:plugins« označeni kot onemogočeni in uporabniki jih ne morejo omogočiti.
+
+      Ta pravilnik lahko preglasita pravilnika EnabledPlugins in DisabledPluginsExceptions.
+
+      Če ta pravilnik ni nastavljen, lahko uporabnik uporabi kateri koli vtičnik, nameščen v sistemu, razen vtičnikov, ki so vdelani neposredno v izvorno kodo, nezdružljivi, zastareli ali nevarni.</translation>
 <translation id="1464848559468748897">Nadzira vedenje uporabnikov v večprofilni seji v napravah s sistemom <ph name="PRODUCT_OS_NAME" />.
 
       Če je ta pravilnik nastavljen na »MultiProfileUserBehaviorUnrestricted«, je lahko uporabnik primarni ali sekundarni uporabnik v večprofilni seji.
@@ -300,6 +350,13 @@
 <translation id="1599424828227887013">Omogočanje osamitve spletnih mest za določene izvore v napravah Android</translation>
 <translation id="1608755754295374538">URL-ji, ki jim bo brez poziva dovoljen dostop do naprav za zajem zvoka</translation>
 <translation id="1615221548356595305">Dovoli združevanje povezav HTTP/2 za te gostitelje, tudi če se uporabljajo potrdila odjemalca</translation>
+<translation id="1615855314789673708">Ponuja konfiguracijo orodja wilco DTC (diagnostična storitev in kontrolnik telemetrije).
+
+      Ta pravilnik omogoča ponujanje konfiguracije orodja wilco DTC, ki jo je mogoče uporabiti, če je wilco DTC na voljo v dani napravi in ga omogoča pravilnik. Velikost konfiguracije ne sme presegati 1 MB (1000000 bajtov) in mora biti kodirana v obliki JSON. Upravlja jo orodje wilco DTC. Kriptografska zgoščena vrednost se uporabi za preverjanje integritete prenosa.
+
+      Konfiguracija se prenese in predpomni. Če se spremeni URL ali zgoščena vrednost, se znova prenese.
+
+      Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.</translation>
 <translation id="1617235075406854669">Omogočanje brisanja zgodovine brskalnika in prenosov</translation>
 <translation id="163200210584085447">Vzorci na tem seznamu se bodo primerjali z varnostnim
       izvorom zahtevajočega URL-ja. Če bo najdeno ujemanje, bo dostop
@@ -307,6 +364,11 @@
       ujemanje, bo dostop samodejno zavrnjen. Vzorci z nadomestnimi znaki
       niso dovoljeni.</translation>
 <translation id="1634989431648355062">Dovoli vtičnik <ph name="FLASH_PLUGIN_NAME" /> na teh spletnih mestih</translation>
+<translation id="1653229475925941921">Če je ta pravilnik nastavljen, določa vrsto lupe, ki je omogočena. Če ga nastavite na »Brez«, bo lupa izklopljena.
+
+          Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.
+
+          Če tega pravilnika ne nastavite, je lupa prvotno onemogočena, vendar jo lahko uporabnik kadar koli omogoči.</translation>
 <translation id="1655229863189977773">Nastavi velikost predpomnilnika diska v bajtih</translation>
 <translation id="166427968280387991">Strežnik proxy</translation>
 <translation id="1668836044817793277">Ali naj se samodejno zagnani aplikaciji za kiosk brez zamika dovoli nadzor nad različico sistema <ph name="PRODUCT_OS_NAME" />.
@@ -432,6 +494,9 @@
       Če je ta nastavitev omogočena, bo storitev za zaščito gesel na teh URL-jih zajela prstni odtis gesla in ga uporabila za odkrivanje vnovične uporabe enakega gesla.
       Če je ta nastavitev onemogočena ali ni nastavljena, bo storitev za zaščito gesel prstni odtis gesla zajela samo na naslovu https://accounts.google.com.
       Ta pravilnik je na voljo samo v primerkih s sistemom Windows, ki so pridruženi v domeno <ph name="MS_AD_NAME" />, ali primerkih s sistemom Windows 10 Pro ali Enterprise, ki so včlanjeni v upravljanje naprav.</translation>
+<translation id="1914840757300882918">Če je ta pravilnik nastavljen, gostitelj za preverjanje pristnosti prek RemoteAccessHostTokenValidationUrl uporabi potrdilo odjemalca, ki ga izda CN. Če želite uporabiti poljubno razpoložljivo potrdilo odjemalca, pravilnik nastavite na »*«.
+
+          Ta funkcija je trenutno onemogočena na strani strežnika.</translation>
 <translation id="1919802376548418720">Uporabi pravilnik KDC za delegiranje poverilnic.</translation>
 <translation id="1920046221095339924">Omogočanje upravljane seje v napravi</translation>
 <translation id="1929709556673267855">Posreduje konfiguracije za tiskalnike v podjetjih, vezane na naprave.
@@ -478,6 +543,13 @@
 
       Če je ta pravilnik nastavljen na »true«, poskuša <ph name="PRODUCT_OS_NAME" /> samoposodobitvene pakete prenesti prek HTTP. Če je ta pravilnik nastavljen na »false« ali ni nastavljen, se za prenos samoposodobitvenih paketov uporabi HTTPS.</translation>
 <translation id="199764499252435679">Dovoli posodobitve komponent v izdelku <ph name="PRODUCT_NAME" /></translation>
+<translation id="1997994951395619441">Če to nastavitev omogočite, bo <ph name="PRODUCT_NAME" /> prikazoval vrstico z zaznamki.
+
+      Če to nastavitev onemogočite, vrstica z zaznamki ne bo prikazana.
+
+      Če to nastavitev omogočite ali onemogočite, uporabniki v brskalniku <ph name="PRODUCT_NAME" /> tega ne bodo mogli spremeniti ali preglasiti.
+
+      Če te nastavitve ne določite, se lahko uporabnik odloči, ali bo uporabljal to funkcijo.</translation>
 <translation id="2006530844219044261">Upravljanje porabe</translation>
 <translation id="2014757022750736514">Nadzira delovanje zaslona za prijavo, na katerem se uporabniki prijavijo v račun. Nastavitve vključujejo, kdo se lahko prijavi, katere vrste računov so dovoljene, kateri načini preverjanja pristnosti se uporabljajo ter vključujejo tudi splošno dostopnost, način vnosa in nastavitve jezika.</translation>
 <translation id="201557587962247231">Pogostost nalaganja poročil o stanju naprave</translation>
@@ -497,6 +569,7 @@
 
           Če je ta nastavitev onemogočena, prenos datotek ne bo dovoljen. Če je ta nastavitev omogočena ali ni nastavljena, prenos podatkov ne bo dovoljen.</translation>
 <translation id="2057317273526988987">Dovoli dostop do seznama URL-jev</translation>
+<translation id="2061810934846663491">Nastavitev zahtevanih imen domene za dostop do oddaljenih gostiteljev</translation>
 <translation id="206623763829450685">Določa, katere načine preverjanja pristnosti HTTP podpira <ph name="PRODUCT_NAME" />.
 
           Možne vrednosti so »basic«, »digest«, »ntlm« in »negotiate«. Več vrednosti ločite z vejicami.
@@ -543,6 +616,20 @@
       Če pravilnik ni nastavljen, je privzeta vrednost 0 stopinj in uporabnik
       jo lahko spremeni. V tem primeru se privzeta vrednost ob vnovičnem
       zagonu ne uveljavi znova.</translation>
+<translation id="2138449619211358657">Ta pravilnik sistemu <ph name="PRODUCT_OS_NAME" /> omogoča obhod katerega koli strežnika proxy za preverjanje pristnosti v prestreznih portalih.
+
+      Pravilnik se uveljavi samo, če je nastavljen strežnik proxy (na primer s pravilnikom, z razširitvami ali če ga je nastavil uporabnik v »chrome://settings«).
+
+      Če omogočite to nastavitev, bodo morebitne strani prestreznega portala za preverjanje pristnosti (tj. vse spletne strani od strani za prijavo v prestrezni portal do trenutka, ko brskalnik <ph name="PRODUCT_NAME" /> zazna uspešno povezavo z internetom) prikazane v ločenem oknu, ki prezre vse nastavitve in omejitve pravilnika za trenutnega uporabnika.
+
+      Če to nastavitev onemogočite ali je ne nastavite, bodo morebitne strani prestreznega portala za preverjanje pristnosti prikazane na (običajnem) novem zavihku brskalnika z nastavitvami strežnika proxy trenutnega uporabnika.</translation>
+<translation id="21394354835637379">Omogoča, da določite URL-je, s katerih je dovoljeno nameščati razširitve, aplikacije in teme.
+
+          Z brskalnikom <ph name="PRODUCT_NAME" /> 21 je težje namestiti razširitve, aplikacije in uporabniške skripte, ki niso iz Spletne trgovine Chrome. Prej so uporabniki lahko kliknili povezavo na datoteko *.crx in <ph name="PRODUCT_NAME" /> je po nekaj opozorilih ponudil namestitev datoteke. Od brskalnika <ph name="PRODUCT_NAME" /> 21 naprej pa je treba te datoteke prenesti in povleči na stran z nastavitvami za <ph name="PRODUCT_NAME" />. S to nastavitvijo je mogoče za določene URL-je omogočiti starejši in preprostejši način namestitve.
+
+          Vsak element na tem seznamu je vzorec ujemanja v slogu razširitve (glejte https://developer.chrome.com/extensions/match_patterns). Uporabniki lahko preprosto namestijo elemente s poljubnega URL-ja, ki se ujema z elementom na tem seznamu. Mesto datoteke *.crx in strani, kjer se prenos začne (tj. napotitelj), morajo dovoljevati vzorci s tega seznama.
+
+          Seznam <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> ima prednost pred tem pravilnikom. To pomeni, da razširitve s seznama blokiranih ni mogoče namestiti, čeprav je za namestitev uporabljeno spletno mesto na tem seznamu.</translation>
 <translation id="214901426630414675">Omejitev obojestranskega tiskanja</translation>
 <translation id="2149330464730004005">Omogočanje barvnega tiskanja</translation>
 <translation id="2156132677421487971">Konfiguriranje pravilnikov za napravo <ph name="PRODUCT_NAME" /> – to je funkcija, ki uporabnikom omogoča predvajanje vsebine zavihkov, spletnih mest ali namizja iz brskalnika na oddaljene zaslone ali zvočne sisteme.</translation>
@@ -582,6 +669,14 @@
 
       Ta pravilnik se ne uporablja za aplikacije za kiosk – njihova selitev je opravljena samodejno. Če ta pravilnik ni nastavljen, bo naprava delovala, kot da bi bila izbrana možnost »DisallowArc«..</translation>
 <translation id="2195032660890227692">Ta pravilnik je bil odstranjen v izdelku <ph name="PRODUCT_NAME" /> 68 in ga je zamenjal pravilnik <ph name="ARC_BR_POLICY_NAME" />.</translation>
+<translation id="219720814106081560">Če je ta pravilnik omogočen ali ni nastavljen (privzeto), bo uporabnik pozvan,
+      da dovoli zajem videa, razen za URL-je, nastavljene na seznamu
+      VideoCaptureAllowedUrls, za katere bo zajem dovoljen brez poziva uporabniku.
+
+      Če je ta pravilnik onemogočen, uporabnik ne bo nikoli pozvan, pri čemer bo zajem
+      videa na voljo samo URL-jem, konfiguriranim na seznamu VideoCaptureAllowedUrls.
+
+      Ta pravilnik vpliva na vse vrste videovhodov in ne samo na vgrajeno kamero.</translation>
 <translation id="2201555246697292490">Konfiguracija seznama dovoljenih za izvorno pošiljanje sporočil</translation>
 <translation id="2204753382813641270">Nadzor samodejnega skrivanja police</translation>
 <translation id="2208976000652006649">Parametri za iskalni URL, ki uporablja POST</translation>
@@ -594,6 +689,11 @@
 <translation id="2240879329269430151">Omogoča nastavitev, ali je spletnim mestom dovoljeno prikazovati pojavna okna. Prikazovanje pojavnih oken je mogoče dovoliti ali zavrniti za vsa spletna mesta.
 
          Če ta pravilnik ni nastavljen, bo uporabljen pravilnik »BlockPopups« in uporabnik ga bo lahko spremenil.</translation>
+<translation id="2255326053989409609">Če to nastavitev omogočite, spletnim stranem preprečite dostop do grafičnega procesorja. Spletne strani ne morejo dostopati do API-ja WebGL, vtičniki pa ne morejo uporabiti API-ja Pepper 3D.
+
+      Če to nastavitev onemogočite ali je ne določite, spletnim stranem načeloma dovolite uporabo API-ja WebGL, vtičnikom pa API Pepper 3D. Privzete nastavitve brskalnika lahko še vedno določajo, da je treba za uporabo teh API-jev uporabiti argumente ukazne vrstice.
+
+      Če je pravilnik HardwareAccelerationModeEnabled onemogočen, se pravilnik Disable3DAPIs prezre in je enako, kot če je pravilnik Disable3DAPIs omogočen.</translation>
 <translation id="2258126710006312594">Uporabnikom oddaljenega dostopa dovoli prenos datotek iz gostitelju in v njega</translation>
 <translation id="2265214338421787313">Skrbnik lahko s tem pravilnikom določi, da lahko stran med razkladanjem prikazuje pojavna okna.
 
@@ -762,8 +862,12 @@
       Če omogočite ali onemogočite to nastavitev, je uporabniki ne morejo spremeniti ali preglasiti.
 
       Če ta pravilnik ni nastavljen, bo lahko uporabnik sam izbiral, ali želi uporabiti funkcijo strežnika proxy za stiskanje podatkov.</translation>
+<translation id="257788512393330403">Vnos gesla je obvezen vsakih 6 ur</translation>
 <translation id="2587719089023392205">Nastavi <ph name="PRODUCT_NAME" /> za privzeti brskalnik</translation>
 <translation id="2592091433672667839">Trajanje nedejavnosti, preden se v maloprodajnem načinu na zaslonu za prijavo pokaže ohranjevalnik zaslona</translation>
+<translation id="2592162121850992309">Če je ta pravilnik omogočen ali ni nastavljen, bo strojno pospeševanje omogočeno, razen če je določena funkcija GPE-ja na seznamu blokiranih.
+
+      Če je ta pravilnik onemogočen, bo strojno pospeševanje onemogočeno.</translation>
 <translation id="2596260130957832043">Nadzira, ali je omogočeno preverjanje pristnosti NTLMv2.
 
           Vse novejše različice strežnikov Samba in Windows podpirajo NTLMv2. To onemogočite samo za združljivost s prejšnjimi različicami, saj je v tem primeru zmanjšana varnost preverjanja pristnosti.
@@ -791,6 +895,7 @@
 
           Če ta pravilnik ni nastavljen, bo uporabljen pravilnik »AskGeolocation« in uporabnik ga bo lahko spremenil.</translation>
 <translation id="2647069081229792812">Omogoči ali onemogoči urejanje zaznamkov</translation>
+<translation id="2649896281375932517">Odločijo naj se uporabniki</translation>
 <translation id="2650049181907741121">Dejanje, ki naj se izvede, ko uporabnik zapre pokrov</translation>
 <translation id="2655233147335439767">Določa URL iskalnika, ki se uporablja pri privzetem iskanju. URL mora vsebovati niz »<ph name="SEARCH_TERM_MARKER" />«, ki ga bodo ob času poizvedbe nadomestili izrazi, ki jih išče uporabnik.
 
@@ -819,6 +924,7 @@
 <translation id="268577405881275241">Omogoči funkcijo stiskanja podatkov v strežniku proxy</translation>
 <translation id="2693108589792503178">Konfigurirajte URL za spremembo gesla.</translation>
 <translation id="2706708761587205154">Omogočanje tiskanja samo s kodo PIN</translation>
+<translation id="2710534340210290498">Če je ta pravilnik onemogočen, uporabniki ne bodo mogli zakleniti zaslona (mogoča bo samo odjava iz uporabniške seje). Če je ta nastavitev omogočena ali nastavljena, bodo lahko zaslon zaklenili uporabniki, ki so preverili pristnost z geslom.</translation>
 <translation id="2731627323327011390">Onemogočanje uporabe potrdil sistema <ph name="PRODUCT_OS_NAME" /> aplikacijam ARC</translation>
 <translation id="2742843273354638707">Skrivanje aplikacije Spletna trgovina Chrome in povezave v nogi na novem zavihku s povezavami in v zaganjalniku aplikacij v sistemu <ph name="PRODUCT_OS_NAME" />.
 
@@ -888,6 +994,9 @@
           Če ta pravilnik ni nastavljen ali je onemogočen, se pravilnik KDC v podprtih okoljih prezre in se upošteva samo pravilnik »AuthNegotiateDelegateWhitelist«.
 
           V sistemu Windows se vedno upošteva pravilnik KDC.</translation>
+<translation id="283695852388224413">Če je ta pravilnik nastavljen, se uveljavi konfigurirana največja dovoljena dolžina kode PIN. Vrednost 0 ali manj pomeni brez največje dovoljene dolžine; v tem primeru lahko uporabnik nastavi kodo PIN poljubne dolžine. Če je ta nastavitev manjša od <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" />, vendar večja od 0, je največja dovoljena dolžina enaka najmanjši dovoljeni dolžini.
+
+          Če ta pravilnik ni nastavljen, se ne uveljavi največja dovoljena dolžina.</translation>
 <translation id="2838830882081735096">Prepoved selitve podatkov in ARC-ja</translation>
 <translation id="2839294585867804686">Nastavitve omrežnih naprav za skupno rabo datotek</translation>
 <translation id="2840269525054388612">Določa tiskalnike, ki jih uporabnik lahko uporablja.
@@ -958,6 +1067,17 @@
       Če ta pravilnik ni nastavljen, se predvideva uporaba pravilnika <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
 <translation id="2908277604670530363">Največje dovoljeno število hkratnih povezav s strežnikom proxy</translation>
+<translation id="2948463916588961959">Vsili omogočanje jezikov za preverjanje črkovanja. Neprepoznani jeziki na tem seznamu so prezrti.
+
+      Če omogočite ta pravilnik, je preverjanje črkovanja omogočeno za navedene jezike poleg jezikov, za katere je uporabnik omogočil preverjanje črkovanja.
+
+      Če ne nastavite tega pravilnika ali ga onemogočite, ni sprememb uporabnikovih nastavitev preverjanja črkovanja.
+
+      Če je pravilnik SpellcheckEnabled onemogočen, ta pravilnik nima učinka.
+
+      Če je jezik vključen v ta pravilnik in pravilnik SpellcheckLanguageBlacklist, ima ta pravilnik prednost in jezik za preverjanje črkovanja je omogočen.
+
+      Za zdaj so podprti ti jeziki: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">Omejitve:</translation>
 <translation id="2956777931324644324">Ta pravilnik se ne uporablja od uveljavitve različice brskalnika <ph name="PRODUCT_NAME" /> 36.
 
@@ -966,6 +1086,7 @@
       Ta nastavitev se uporablja, da se razširitev za potrdila, domensko vezana na TLS, omogoči za preskušanje. Ta poskusna nastavitev bo v prihodnosti odstranjena.</translation>
 <translation id="2957506574938329824">Ne dovoli nobenemu spletnemu mestu zahtevanja dostopa do naprav Bluetooth prek API-ja za Web Bluetooth</translation>
 <translation id="2957513448235202597">Vrsta računa za preverjanje pristnosti z razširitvijo <ph name="HTTP_NEGOTIATE" /></translation>
+<translation id="2959469725686993410">Vedno pošlji dostopne točke Wi-Fi v strežnik pri določanju časovnega pasu</translation>
 <translation id="2959898425599642200">Pravila, kdaj se obide proxy</translation>
 <translation id="2960128438010718932">Produkcijski razpored za uveljavljanje nove posodobitve</translation>
 <translation id="2960691910306063964">Omogočanje ali onemogočanje preverjanja pristnosti brez kode PIN za gostitelje za oddaljeni dostop</translation>
@@ -978,12 +1099,25 @@
           Če pravilnik ni nastavljen, se uporabi privzeto trajanje.
 
           Vrednost pravilnika naj bo navedena v milisekundah. Vrednosti morajo biti manjše ali enake kot časovni zamik izklopa zaslona (če je nastavljen) in časovnik zamik nedejavnosti.</translation>
+<translation id="2977997796833930843">Upoštevajte, da je ta pravilnik zastarel in bo v prihodnosti odstranjen.
+
+          Ta pravilnik določa rezervno vrednost za podrobnejša pravilnika <ph name="IDLE_ACTION_AC_POLICY_NAME" /> in <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" />. Če je ta pravilnik nastavljen, se njegova vrednost uporabi, kadar ni nastavljen ustrezen podrobnejši pravilnik.
+
+          Če ta pravilnik ni nastavljen, to ne vpliva na delovanje podrobnejših pravilnikov.</translation>
 <translation id="2987155890997901449">Omogočanje ARC-ja</translation>
 <translation id="2987227569419001736">Nadzor uporabe API-ja za Web Bluetooth</translation>
 <translation id="3016255526521614822">Uvrščanje aplikacij za zapiske, ki so omogočene na zaklenjenem zaslonu sistema <ph name="PRODUCT_OS_NAME" />, na seznam dovoljenih</translation>
 <translation id="3021562480854470924">Število mejnikov, za katere je dovoljena povrnitev</translation>
 <translation id="3023572080620427845">URL datoteke XML, ki vsebuje URL-je, ki naj se naložijo v nadomestnem brskalniku.</translation>
 <translation id="3030000825273123558">Omogoči pošiljanje podatkov</translation>
+<translation id="3033660238345063904">Tu lahko določite URL strežnika proxy.
+
+          Ta pravilnik velja le, če ste v »Izberite, kako določiti nastavitve strežnika proxy« izbrali ročne nastavitve strežnika proxy in če pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" /> ni bil določen.
+
+          Če ste za nastavitve pravilnikov za strežnik proxy izbrali drug način, tega pravilnika ne nastavljajte.
+
+          Več o drugih možnostih in podrobnejše primere najdete na:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">Omogoča nastavitev, ali lahko spletna mesta izvajajo JavaScript. Izvajanje JavaScripta je lahko dovoljeno ali zavrnjeno za vsa spletna mesta.
 
           Če ta pravilnik ni nastavljen, bo omogočen pravilnik »AllowJavaScript«, uporabnik pa ga bo lahko spremenil.</translation>
@@ -1042,10 +1176,18 @@
       Če je pravilnik omogočen ali ni nastavljen, Chromovo čiščenje redno pregleduje, ali je v sistemu neželena programska oprema, in če jo najde, uporabnik prejme poziv, ali jo želi odstraniti. Ročna sprožitev Chromovega čiščenja v nastavitvah chrome://settings je omogočena.
 
       Ta pravilnik je na voljo samo v primerkih s sistemom Windows, ki so pridruženi v domeno <ph name="MS_AD_NAME" />, ali primerkih s sistemom Windows 10 Pro ali Enterprise, ki so včlanjeni v upravljanje naprav.</translation>
+<translation id="3152425128389603870">Naj bo enotno namizje na voljo in privzeto vklopljeno</translation>
 <translation id="3159375329008977062">Uporabniku je omogočen izvoz/uvoz vsebnikov za Crostini prek uporabniškega vmesnika</translation>
 <translation id="3165808775394012744">Ti pravilniki so vključeni tukaj, da jih je mogoče lažje odstraniti.</translation>
 <translation id="316778957754360075">Ta nastavitev se ne uporablja od uveljavitve različice brskalnika <ph name="PRODUCT_NAME" /> 29. Za nastavitev zbirk razširitev/aplikacij, ki gostujejo v organizaciji, se priporoča, da se spletno mesto, na katerem gostujejo paketi CRX, vključi na seznam ExtensionInstallSources in da se na spletno mesto dodajo povezave za neposreden prenos paketov. Zaganjalnik za to stran se lahko ustvari s pravilnikom ExtensionInstallForcelist.</translation>
 <translation id="3171369832001535378">Predloga za ime gostitelja omrežja naprave</translation>
+<translation id="3172512016079904926">Omogoči nameščanje gostiteljev izvornega pošiljanja sporočil na uporabniški ravni.
+
+          Če je ta nastavitev omogočena, <ph name="PRODUCT_NAME" /> dovoli uporabo gostiteljev izvornega pošiljanja sporočil, nameščenih na uporabniški ravni.
+
+          Če ta nastavitev ni omogočena, bo <ph name="PRODUCT_NAME" /> uporabljal samo gostitelje izvornega pošiljanja sporočil, nameščene na sistemski ravni.
+
+          Če ta nastavitev ni nastavljena, bo <ph name="PRODUCT_NAME" /> dovolil uporabo gostiteljev izvornega pošiljanja na uporabniški ravni.</translation>
 <translation id="3185009703220253572">od različice <ph name="SINCE_VERSION" /></translation>
 <translation id="3187220842205194486">Aplikacije za Android ne morejo dobiti dostopa do ključev podjetja. Ta pravilnik nanje ne vpliva.</translation>
 <translation id="3205825995289802549">Povečaj prvo okno brskalnika pri prvem izvajanju</translation>
@@ -1142,6 +1284,13 @@
       Če je ta nastavitev nastavljena na »Izklopljeno« ali ni nastavljena nobena vrednost, <ph name="PRODUCT_NAME" /> v YouTubu ne uveljavi Omejenega načina. Zunanji pravilniki, na primer pravilniki za YouTube, lahko še vedno uveljavijo Omejeni način.</translation>
 <translation id="3428247105888806363">Omogoči omrežno predvidevanje</translation>
 <translation id="3432863169147125747">Nadzira nastavitve tiskanja.</translation>
+<translation id="3434932177006334880">Ta nastavitev se je pred Chromom različice 42 imenovala »EnableWebBasedSignin«, podpora zanjo pa bo v celoti odstranjena v Chromu različice 43.
+
+      Ta nastavitev je koristna za poslovne stranke, ki uporabljajo sisteme enotne prijave, ki še niso združljivi z novim potekom prijave v vrstici.
+      Če to nastavitev omogočite, se uporablja stari potek prijave v spletu.
+      Če to nastavitev onemogočite ali je ne nastavite, bo privzeto uporabljen novi potek prijave v vrstici. Uporabniki lahko še vedno omogočijo stari potek prijave v spletu s to zastavico v ukazni vrstici: »--enable-web-based-signin«.
+
+      Poskusna nastavitev bo odstranjena, ko bo potek prijave v vrstici združljiv z vsemi poteki sistemov enotne prijave.</translation>
 <translation id="3437924696598384725">Omogočanje uporabnikom, da upravljajo povezave VPN</translation>
 <translation id="3459509316159669723">Tiskanje</translation>
 <translation id="3460784402832014830">Določa URL, ki ga iskalnik uporablja za nov zavihek s povezavami.
@@ -1161,6 +1310,12 @@
         Če je ta pravilnik nastavljen, se bo <ph name="PRODUCT_NAME" /> poskusil registrirati in uporabiti povezani pravilnik oblaka za vse profile.
 
         Vrednost tega pravilnika je žeton za včlanitev, ki ga je mogoče pridobiti v konzoli Google Admin console.</translation>
+<translation id="3489247539215560634">Če je ta nastavitev omogočena, si lahko <ph name="PRODUCT_NAME" /> zapomni gesla in jih samodejno ponudi uporabnikom, ko se naslednjič prijavijo v spletno mesto.
+
+          Če je ta nastavitev onemogočena, uporabniki ne morejo shranjevati novih gesel, vendar
+          lahko še vedno uporabljajo že shranjena gesla.
+
+          Če je ta pravilnik omogočen ali onemogočen, ga uporabniki v brskalniku <ph name="PRODUCT_NAME" /> ne morejo spremeniti ali preglasiti. Če ta pravilnik ni nastavljen, je shranjevanje gesel dovoljeno (vendar ga lahko uporabnik izklopi).</translation>
 <translation id="3496296378755072552">Upravitelj gesel</translation>
 <translation id="3500732098526756068">Omogoča nadziranje sprožanja opozorila zaščite gesel. Zaščita gesel opozori uporabnike, kadar na morebitno nevarnih spletnih mestih znova uporabijo zaščiteno geslo.
 
@@ -1179,6 +1334,13 @@
           Ta pravilnik se upošteva samo, če je omogočen pravilnik »DefaultSearchProviderEnabled«.</translation>
 <translation id="350797926066071931">Omogoči Google Prevajalnik</translation>
 <translation id="3512226956150568738">Če je model odjemalske naprave že podpiral ARC, preden je bila zaradi izvajanja ARC-a potrebna selitev na šifriranje ext4, in je omogočen pravilnik »ArcEnabled«, bo možnost delovala kot »AskUser« (vrednost 3). V vseh drugih primerih (če model naprave prej ni podpiral ARC-ja ali če je pravilnik »ArcEnabled« onemogočen) je ta vrednost enakovredna »DisallowArc« (vrednost 0).</translation>
+<translation id="3513655665999652754">Strežnik Quirks Server ponuja konfiguracijske datoteke za posamezne komponente strojne opreme, kot so
+      prikazovalni profili ICC za prilagajanje umerjanja monitorja.
+
+      Če je ta pravilnik nastavljen na »False«, naprava ne bo poskušala
+      vzpostaviti stika s strežnikom Quirks Server in prenesti konfiguracijskih datotek.
+
+      Če je ta pravilnik nastavljen na »True« ali ni konfiguriran, bo <ph name="PRODUCT_OS_NAME" /> samodejno vzpostavil stik s strežnikom Quirks Server in prenesel konfiguracijske datoteke, če so na voljo, ter jih shranil v napravi.  Te datoteke je mogoče na primer uporabiti za izboljšanje kakovosti prikaza priključenih monitorjev.</translation>
 <translation id="3524204464536655762">Ne dovoli nobenemu spletnemu mestu zahtevanja dostopa do naprav USB prek API-ja za WebUSB</translation>
 <translation id="3526752951628474302">Samo enobarvno tiskanje</translation>
 <translation id="3528000905991875314">Omogoči nadomestne strani za napake</translation>
@@ -1207,6 +1369,9 @@
       </translation>
 <translation id="3627678165642179114">Omogoči ali onemogoči spletno storitev preverjanja črkovanja</translation>
 <translation id="3628480121685794414">Omogoči enostransko tiskanje</translation>
+<translation id="3631099945620529777">Če je pravilnik onemogočen, je gumb za končanje procesa v upravitelju opravil onemogočen.
+
+      Če je pravilnik omogočen ali ni konfiguriran, lahko uporabnik konča procese v upravitelju opravil.</translation>
 <translation id="3646859102161347133">Nastavitev vrste lupe</translation>
 <translation id="3653237928288822292">Privzeta ikona iskalnika</translation>
 <translation id="3660510274595679517">
@@ -1221,6 +1386,7 @@
 <translation id="3709266154059827597">Nastavi seznam razširitev, katerih namestitev je prepovedana</translation>
 <translation id="3711895659073496551">Prekinitev</translation>
 <translation id="3715569262675717862">Preverjanje pristnosti glede na potrdila odjemalca</translation>
+<translation id="3734995764843493369">Vnos gesla je obvezen vsak dan (24 ur)</translation>
 <translation id="3736879847913515635">Omogočanje dodajanja oseb v upravitelju uporabnikov</translation>
 <translation id="3738723882663496016">Ta pravilnik določa licenčni ključ <ph name="PLUGIN_VM_NAME" /> za to napravo.</translation>
 <translation id="3748900290998155147">Določa, ali so omogočena zaklepanja prebujanja. Zaklepanja prebujanja lahko zahtevajo razširitve prek API-ja razširitve za upravljanje energije in aplikacije ARC.
@@ -1229,6 +1395,9 @@
 
           Če je ta pravilnik onemogočen, bodo zahteve za zaklepanje prebujanja prezrte.</translation>
 <translation id="3750220015372671395">Blokiraj ustvarjanje ključev na teh spletnih mestih</translation>
+<translation id="375266612405883748">Omeji obseg vrat UDP, ki jih uporablja gostitelj oddaljenega dostopa v tem računalniku.
+
+          Če ta pravilnik ni nastavljen ali je nastavljen na prazno vrednost, bo lahko gostitelj oddaljenega dostopa uporabljal poljubna vrata, ki so na voljo, razen če je pravilnik <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> onemogočen. V tem primeru bo gostitelj oddaljenega dostopa uporabljal vrata UDP v obsegu 12400–12409.</translation>
 <translation id="3756011779061588474">Blokiranje načina za razvijalce</translation>
 <translation id="3758089716224084329">Omogoča nastavitev strežnika proxy, ki ga uporablja <ph name="PRODUCT_NAME" />, in preprečuje uporabnikom spreminjanje nastavitev strežnika proxy.
 
@@ -1305,6 +1474,8 @@
           Vrednost * na seznamu blokiranih pomeni, da so vsi gostitelji izvornega pošiljanja sporočil blokirani in da bodo naloženi samo gostitelji izvornega pošiljanja sporočil, ki so na seznamu dovoljenih.
 
           Na seznamu dovoljenih so privzeto vsi gostitelji izvornega pošiljanja sporočil, vendar če se s pravilnikom vse gostitelje izvornega pošiljanja sporočil uvrsti na seznam blokiranih, se s seznamom dovoljenih lahko ta pravilnik preglasi.</translation>
+<translation id="3835692988507803626">Vsiljeno onemogočanje jezikov za preverjanje črkovanja.</translation>
+<translation id="3837424079837455272">Ta pravilnik nadzira, ali je v sistem <ph name="PRODUCT_OS_NAME" /> mogoče dodati nove uporabnike. Uporabnikom ne preprečuje prijave v dodatne račune za Google znotraj Androida. Če želite to preprečiti, konfigurirajte pravilnik za Android <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> kot del pravilnika <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="384743459174066962">Omogoča nastavitev seznama vzorcev URL-jev, s katerim so določena spletna mesta, ki jim ni dovoljeno odpirati pojavnih oken.
 
           Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena splošna privzeta vrednost iz pravilnika »DefaultPopupsSetting«, kadar je ta nastavljen, ali iz uporabnikove osebne konfiguracije, kadar pravilnik »DefaultImagesSetting« ni nastavljen.</translation>
@@ -1446,13 +1617,50 @@
           Vrednost pravilnika naj bo navedena v milisekundah.</translation>
 <translation id="4105989332710272578">Onemogočanje uveljavljanja pravilnika o preglednosti potrdila za seznam URL-jev</translation>
 <translation id="4121350739760194865">Onemogoči prikaz oglasov za aplikacije na novem zavihku s povezavami.</translation>
+<translation id="4125606414556046117">S tem pravilnikom lahko nastavite sliko za ozadje, prikazano na namizju in na prijavni strani za uporabnika. Pravilnik se nastavi tako, da navedete URL, s katerega lahko <ph name="PRODUCT_OS_NAME" /> prenese sliko za ozadje, in kriptografsko zgoščeno vrednost, ki se uporabi za preverjanje celovitosti prenosa. Slika mora biti v obliki JPEG in njena velikost ne sme presegati 16 MB. URL mora biti dostopen brez preverjanja pristnosti.
+
+      Slika za ozadje se prenese in predpomni. Če se spremeni URL ali zgoščena vrednost, se znova prenese.
+
+      Pravilnik mora biti naveden kot niz, ki izraža URL in zgoščeno vrednost v obliki JSON, skladno s to shemo:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "URL, s katerega se lahko prenese slika za ozadje.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "Zgoščena vrednost SHA-256 slike za ozadje.",
+            "type": "string"
+          }
+        }
+      }
+
+      Če je ta pravilnik nastavljen, <ph name="PRODUCT_OS_NAME" /> prenese in uporabi sliko za ozadje.
+
+      Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.
+
+      Če tega pravilnika ne nastavite, lahko uporabnik izbere sliko, ki bo prikazana na namizju in v ozadju zaslona za prijavo.</translation>
 <translation id="412697421478384751">Omogoči uporabnikom nastavitev šibkih kod PIN za kodo PIN za zaklenjen zaslon.</translation>
 <translation id="4138655880188755661">Časovna omejitev</translation>
 <translation id="4150201353443180367">Prikaz</translation>
 <translation id="4157003184375321727">Pošiljanje podatkov o različici operacijskega sistema in vdelane programske opreme</translation>
 <translation id="4157594634940419685">Omogoči dostop do izvornih tiskalnikov CUPS</translation>
+<translation id="4163705126749612234">Konfigurira potrebna imena domene odjemalcev, ki bodo vsiljena odjemalcem za oddaljeni dostop, in uporabnikom prepreči, da bi jih spremenili.
+
+          Če je ta nastavitev omogočena, se lahko z gostiteljem povežejo samo odjemalci iz ene od navedenih domen.
+
+          Če je ta nastavitev onemogočena ali ni nastavljena, se uporabi privzeti pravilnik za vrsto povezave. Za oddaljeno pomoč to omogoča povezovanje z gostiteljem odjemalcem iz poljubne domene. Za oddaljen dostop kadar koli se lahko poveže samo lastnik gostitelja.
+
+          Ta nastavitev preglasi pravilnik RemoteAccessHostClientDomain, če je na voljo.
+
+          Glejte tudi RemoteAccessHostDomainList.</translation>
 <translation id="4183229833636799228">Privzeta nastavitev za <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="4192388905594723944">URL za preverjanje žetona za preverjanje pristnosti odjemalca za oddaljeni dostop</translation>
+<translation id="4197038214024763371">Če ta pravilnik ni nastavljen ali omogočen, uporabnik lahko uporablja preverjanje črkovanja.
+
+      Če je ta pravilnik onemogočen, uporabnik ne more uporabljati preverjanja črkovanja. Pri tem sta prezrta tudi pravilnika SpellcheckLanguage in SpellcheckLanguageBlacklist.
+      </translation>
 <translation id="4203389617541558220">Omejitev časa delovanja naprave z načrtovanjem samodejnih vnovičnih zagonov.
 
       Če je ta pravilnik nastavljen, določa, kako dolgo lahko deluje naprava, preden se izvede načrtovan samodejni vnovični zagon.
@@ -1474,6 +1682,13 @@
 <translation id="423797045246308574">Omogoča nastavitev seznama vzorcev URL-jev, s katerim so določena mesta, ki smejo uporabljati ustvarjanje ključev. Če je vzorec URL-ja v »KeygenAllowedForUrls«, ta pravilnik preglasi te izjeme.
 
           Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena splošna privzeta vrednost iz pravilnika »DefaultKeygenSetting«, kadar je ta nastavljen, ali iz uporabnikove osebne konfiguracije, kadar pravilnik »DefaultKeygenSetting« ni nastavljen.</translation>
+<translation id="4238997902172035160">Konfigurira imenik, ki ga bo izdelek <ph name="PRODUCT_NAME" /> uporabljal za shranjevanje kopij profilov za gostovanje.
+
+      Če nastavite ta pravilnik, bo izdelek <ph name="PRODUCT_NAME" /> uporabljal naveden imenik za shranjevanje kopije profilov za gostovanje, kadar je pravilnik <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> omogočen. Če je pravilnik <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> onemogočen ali ni nastavljen, se vrednost, shranjena v tem pravilniku, ne uporabi.
+
+      Na https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables si lahko ogledate seznam spremenljivk, ki jih je mogoče uporabiti.
+
+      Če ta pravilnik ni nastavljen, se uporabi privzeta pot za profile za gostovanje.</translation>
 <translation id="4239720644496144453">Predpomnilnik se ne uporablja za aplikacije za Android. Če več uporabnikov namesti enako aplikacijo za Android, bo za vsakega uporabnika znova prenesena.</translation>
 <translation id="4243336580717651045">Omogoča zbiranje anonimiziranih podatkov, ki vključujejo URL-je, v brskalniku <ph name="PRODUCT_NAME" /> in uporabnikom preprečuje spreminjanje te nastavitve.
 
@@ -1528,6 +1743,9 @@
       Z nadomestnim znakom »*« nadomestite poljubno število poljubnih znakov (ali nobenega). Ubežni znak je »\«, zato morate za ujemanje z dejanskima znakoma »*« ali »\« pred njiju dati »\«.
 
       Če ta pravilnik ni nastavljen, so vsi Google Računi v napravi vidni v storitvi <ph name="PRODUCT_NAME" />.</translation>
+<translation id="4360826270668210664">Če je ta pravilnik nastavljen, bo gostitelj za oddaljeni dostop zahteval, da odjemalci pridobijo žeton za preverjanje na tem URL-ju, če želijo vzpostaviti povezavo. Uporabljati ga je treba v povezavi s pravilnikom RemoteAccessHostTokenValidationUrl.
+
+          Ta funkcija je trenutno onemogočena na strani strežnika.</translation>
 <translation id="436581050240847513">Poročanje o omrežnih vmesnikih naprave</translation>
 <translation id="4372704773119750918">Ne dovoli uporabnikom v podjetjih, da so del večkratnega profila (primarnega ali sekundarnega)</translation>
 <translation id="4377599627073874279">Dovoli vsem mestom, da pokažejo vse slike</translation>
@@ -1537,6 +1755,9 @@
 <translation id="4408428864159735559">Seznam vnaprej konfiguriranih omrežnih datotečnih sredstev v skupni rabi.</translation>
 <translation id="4410236409016356088">Omogoči omejevanje omrežne pasovne širine</translation>
 <translation id="441217499641439905">Onemogoči sinhronizacijo z Googlom Drive prek povezav v mobilnih omrežjih v aplikaciji Datoteke za <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="4415603335307944578">Če je ta pravilnik omogočen ali ni nastavljen, bo brskalnik ob prvem zagonu po nadgradnji operacijskega sistema znova prikazal pozdravno stran.
+
+      Če je ta pravilnik onemogočen, brskalnik ob prvem zagonu po nadgradnji operacijskega sistema ne bo znova prikazal pozdravne strani.</translation>
 <translation id="4418726081189202489">Če onemogočite ta pravilnik, izdelku <ph name="PRODUCT_NAME" /> preprečite občasno pošiljanje poizvedb v Googlove storitve zaradi prejemanja točnega časovnega žiga. Te poizvedbe bodo omogočene, če je ta pravilnik omogočen ali ni nastavljen.</translation>
 <translation id="4423597592074154136">Ročna izbira nastavitev proxyja</translation>
 <translation id="4429220551923452215">Omogoči ali onemogoči bližnjico za aplikacije v vrstici z zaznamki.
@@ -1622,11 +1843,25 @@
 <translation id="4557134566541205630">URL novega zavihka s povezavami privzetega iskalnika</translation>
 <translation id="4567137030726189378">Omogočena uporaba orodij za izvajalce</translation>
 <translation id="4578265298946081589">Brez vnovičnega zagona ob odjavi uporabnika.</translation>
+<translation id="4578912515887794133">Če je ta nastavitev omogočena, gostitelj za oddaljeni dostop primerja ime lokalnega uporabnika (s katerim je povezan gostitelj) in ime računa za Google, ki je registriran kot lastnik gostitelja (tj. »janeznovak«, če je lastnik gostitelja račun za Google »janeznovak@example.com«).  Gostitelj za oddaljeni dostop se ne bo zagnal, če se ime lastnika gostitelja razlikuje od imena lokalnega uporabnika, s katerim je povezan gostitelj.  Pravilnik RemoteAccessHostMatchUsername se mora uporabljati skupaj s pravilnikom RemoteAccessHostDomain, da se prav tako uveljavi, da je Google Račun lastnika gostitelja povezan s točno določeno domeno (tj. »example.com«).
+
+          Če je ta nastavitev onemogočena ali ni nastavljena, je mogoče gostitelja za oddaljeni dostop povezati s poljubnim lokalnim uporabnikom.</translation>
 <translation id="4600786265870346112">Omogoči velik kazalec</translation>
 <translation id="4604931264910482931">Konfiguracija seznama blokiranih za izvorno pošiljanje sporočil</translation>
 <translation id="4613508646038788144">Če je pravilnik onemogočen, lahko programska oprema tretjih oseb vstavlja izvedljivo kodo v Chromove procese. Če pravilnik ni nastavljen ali je omogočen, programska oprema tretjih oseb ne more vstavljati izvedljive kode v Chromove procese.</translation>
 <translation id="4617338332148204752">Preskoči preverjanje metaoznak v izdelku <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">Nastavi seznam razširitev, katerih namestitev je dovoljena</translation>
+<translation id="463224920692183755">Določa dejanje, ki se izvede, ko je bil uporabnikov domači imenik ustvarjen s šifriranjem ecryptfs in mora preiti na šifriranje ext4.
+
+      Če ta pravilnik nastavite na »DisallowArc«, bodo aplikacije za Android onemogočene za uporabnika in izvedena ne bo nobena selitev s šifriranja ecryptfs na ext4. Izvajanje aplikacij za Android ne bo preprečeno, če je domači imenik že šifriran s šifriranjem ext4.
+
+      Če ta pravilnik nastavite na »Migrate«, bodo domači imeniki, šifrirani s šifriranjem ecryptfs, samodejno preseljeni na šifriranje ext4 brez zahtevanja soglasja uporabnika.
+
+      Če ta pravilnik nastavite na »Wipe«, bodo domači imeniki, šifrirani s šifriranjem ecryptfs, izbrisani ob prijavi in ustvarjeni bodo novi domači imeniki, šifrirani s šifriranjem ext4. Opozorilo: s tem odstranite uporabnikove lokalne podatke.
+
+      Če ta pravilnik nastavite na »AskUser«, je uporabnikom z domačimi imeniki, šifriranimi s šifriranjem ecryptfs, ponujena selitev.
+
+      Ta pravilnik se ne uporablja za uporabnike kioska. Če ta pravilnik ni nastavljen, bo naprava delovala, kot da bi bila izbrana možnost »DisallowArc«.</translation>
 <translation id="4632343302005518762">Dovoli, da <ph name="PRODUCT_FRAME_NAME" /> obravnava navedene vrste vsebine.</translation>
 <translation id="4632566332417930481">Prepoved uporabe orodij za razvijalce v razširitvah, nameščenih s pravilnikom podjetja, omogočena uporaba orodij za razvijalce v drugih kontekstih</translation>
 <translation id="4633786464238689684">Spremeni privzeti način delovanja zgornje vrstice tipk, da delujejo kot funkcijske tipke.
@@ -1737,15 +1972,54 @@
 <translation id="4986560318567565414">Pot do Chroma za preklop z nadomestnega brskalnika.</translation>
 <translation id="4988291787868618635">Dejanje, ki naj se izvede, ko preteče časovni zamik nedejavnosti</translation>
 <translation id="4995548127349206948">Ali je omogočeno preverjanje pristnosti NTLMv2.</translation>
+<translation id="5030889661505907084">
+      Če je pravilnik nastavljen na »true«, ima v primeru spora s pravilnikom okolja prednost pravilnik oblaka.
+      Če je pravilnik nastavljen na »false« ali ni nastavljen, ima v primeru spora s pravilnikom o oblaku prednost pravilnik o okolju.
+
+      Ta pravilnik je na voljo samo kot okolje.
+      </translation>
 <translation id="5047604665028708335">Omogoči dostop do spletnih mest zunaj paketov vsebine</translation>
 <translation id="5052081091120171147">Če je ta pravilnik omogočen, se zgodovina brskanja uvozi iz trenutnega privzetega brskalnika. Če je omogočen, ta pravilnik vpliva tudi na pogovorno okno za uvoz.
 
      Če je onemogočen, se zgodovina brskanja stran ne uvozi.
 
       Če ni nastavljen, bo uporabnik morda vprašan, ali naj jo uvozi, ali pa bo uvoz izveden samodejno.</translation>
+<translation id="5055312535952606505">Določi nastavitve strežnika proxy za izdelek <ph name="PRODUCT_NAME" />. Te nastavitve strežnika proxy so na voljo tudi za aplikacije ARC.
+
+          Če omogočite to nastavitev, <ph name="PRODUCT_NAME" /> in aplikacije ARC prezrejo vse možnosti, povezane s strežnikom proxy, navedene v ukazni vrstici.
+
+          Če ta pravilnik ni nastavljen, lahko uporabniki sami izberejo nastavitve strežnika proxy.
+
+          Če je nastavljen pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" />, preglasi katere koli posamezne pravilnike <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> in <ph name="PROXY_SERVER_MODE_POLICY_NAME" />.
+
+          V polju <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> lahko določite strežnik proxy, ki naj ga uporablja <ph name="PRODUCT_NAME" /> in uporabnikom prepreči spreminjanje nastavitev strežnika proxy.
+
+          Polje <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> je URL za datoteko .pac strežnika proxy.
+
+          Polje <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> je URL strežnika proxy.
+
+          Polje <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> je seznam gostiteljev strežnika proxy, ki jih <ph name="PRODUCT_NAME" /> obide.
+
+          Polje <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> je zastarelo. Uporablja se polje »ProxyMode«. Omogoča določanje strežnika proxy, ki naj ga uporablja <ph name="PRODUCT_NAME" />, in uporabnikom prepreči spreminjanje nastavitev strežnika proxy.
+
+          Če izberete vrednost »direct« kot »ProxyMode«, strežnik proxy ne bo uporabljen in vsa druga polja bodo prezrta.
+
+          Če izberete vrednost »system« kot »ProxyMode«, bo uporabljen strežnik proxy sistema in vsa druga polja bodo prezrta.
+
+          Če izberete vrednost »auto_detect« kot »ProxyMode«, bodo vsa druga polja prezrta.
+
+          Če izberete vrednost »fixed_serve« kot »ProxyMode, se uporabita polji »ProxyServer« in »ProxyBypassList«.
+
+          Če izberete vrednost »pac_script« kot »ProxyMode, se uporabita polji »ProxyPacUrl« in »ProxyBypassList«.</translation>
 <translation id="5056708224511062314">Izklop lupe</translation>
 <translation id="5058573563327660283">Izbere strategijo za sproščanje prostora na disku med samodejnim čiščenjem (zastarelo)</translation>
 <translation id="5067143124345820993">Seznam odobrenih uporabnikov za prijavo</translation>
+<translation id="5075834892754086022">Če je ta pravilnik nastavljen, se uveljavi najmanjša dovoljena dolžina kode
+          PIN. (Absolutna najmanjša dovoljena kode PIN je 1; manjše vrednosti kot 1
+          se obravnavajo kot 1.)
+
+          Če pravilnik ni nastavljen, se uveljavi najmanjša dovoljena dolžina kode PIN, ki je
+          6-mestna. To je priporočena najmanjša dovoljena dolžina.</translation>
 <translation id="5076274878326940940">Omogoča uporabo privzetega ponudnika iskanja.
 
           Če omogočite to nastavitev, se izvede privzeto iskanje, če uporabnik v naslovni vrstici vnese besedilo, ki ni URL.
@@ -1798,6 +2072,24 @@
       Najmanjši interval je 30 sekund, največji pa 24 ur –
       vrednosti zunaj tega obsega bodo omejene na ta obseg.</translation>
 <translation id="5163002264923337812">Omogoči stari spletni potek prijave</translation>
+<translation id="5168529971295111207">Ta pravilnik je zastarel, namesto njega uporabite ProxyMode.
+
+          Omogoča izbiro strežnika proxy, ki naj ga uporablja <ph name="PRODUCT_NAME" /> in uporabnikom prepreči spreminjanje nastavitev strežnika proxy.
+
+          Ta pravilnik ima vpliv samo, če je onemogočen pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" />.
+
+          Če izberete, da se strežnik proxy nikoli ne uporablja in se vedno vzpostavi neposredna povezava, so vse druge možnosti prezrte.
+
+          Če izberete uporabo sistemskih nastavitev strežnika proxy ali samodejno zaznavanje strežnika proxy, bodo vse druge možnosti prezrte.
+
+          Če izberete ročno nastavitev strežnika proxy, lahko v možnostih »Naslov ali URL strežnika proxy«, »URL datoteke .pac za proxy« in »Seznam pravil za obvod strežnika proxy, ločenih z vejicami« izberete dodatne nastavitve. Za aplikacije ARC je na voljo samo strežnik proxy HTTP z največjo prednostjo.
+
+          Podrobne primere si lahko ogledate tukaj:
+          <ph name="PROXY_HELP_URL" />.
+
+          Če omogočite to nastavitev, <ph name="PRODUCT_NAME" /> prezre vse možnosti, povezane s strežnikom proxy, navedene v ukazni vrstici.
+
+          Če ta pravilnik ni nastavljen, lahko uporabniki sami izberejo nastavitve strežnika proxy.</translation>
 <translation id="5182055907976889880">Konfigurira Google Drive v brskalniku <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="5183383917553127163">Omogoča, da določite, za katere razširitve ne velja seznam prepovedanih.
 
@@ -1846,6 +2138,20 @@
 
       Ta pravilnik je določen v milisekundah.</translation>
 <translation id="523505283826916779">Nastavitve funkcij za ljudi s posebnimi potrebami</translation>
+<translation id="5236882091572996759">Če je vrednost pravilnika nastavljena na »True« ali če pravilnik ni nastavljen, uporabnik ne velja za nedejavnega, če se predvaja zvočni posnetek. S tem se prepreči, da bi se dosegla časovna omejitev nedejavnosti in bi se izvedlo dejanje ob nedejavnosti. Zatemnitev zaslona, izklop zaslona in zaklep zaslona se izvedejo po preteku konfigurirane časovne omejitve ne glede na zvočno dejavnost.
+
+          Če je vrednost pravilnika nastavljena na »False«, uporabnik kljub zvočni dejavnosti velja za nedejavnega.</translation>
+<translation id="5246700266104954355">Ta pravilnik je zastarel. Uporabite pravilnik <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> za nadziranje razpoložljivosti vtičnika za Flash in pravilnik <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> za nadziranje, ali je za odpiranje datotek PDF treba uporabiti vdelan pregledovalnik PDF-jev.
+
+      Določi seznam vtičnikov, ki so omogočeni v brskalniku <ph name="PRODUCT_NAME" />, in uporabnikom prepreči, da bi to nastavitev spremenili.
+
+      Nadomestna znaka * in ? je mogoče uporabiti za nadomeščanje zaporedij poljubnih znakov. Znak * nadomešča poljubno število znakov, znak ? pa izbirni posamezen znak, tj. nadomešča nič znakov ali en znak. Ubežni znak je \; če torej želite nadomestiti dejanske znake *, ? ali \, lahko postavite prednje znak \.
+
+      Določen seznam vtičnikov je v brskalniku <ph name="PRODUCT_NAME" /> vedno uporabljen, če so nameščeni. Vtičniki so v »about:plugins« označeni kot omogočeni in uporabniki jih ne morejo onemogočiti.
+
+      Ta pravilnik preglasi pravilnika DisabledPlugins in DisabledPluginsExceptions.
+
+      Če ta pravilnik ni nastavljen, lahko uporabnik onemogoči kateri koli vtičnik, nameščen v sistemu.</translation>
 <translation id="5247006254130721952">Blokiraj nevarne prenose</translation>
 <translation id="5248863213023520115">Nastavi dovoljenje vrste šifriranja pri zahtevah za vstopnice Kerberos od strežnika <ph name="MS_AD_NAME" />.
 
@@ -1894,6 +2200,7 @@
 
       Sicer bo nastavljen na eno od teh vrednosti: »tls1.2« ali »tls1.3«. Če je nastavljen, <ph name="PRODUCT_NAME" /> ne bo uporabljal različic protokolov SSL/TLS, višjih od navedene različice. Neprepoznane vrednosti bodo prezrte.</translation>
 <translation id="5330684698007383292">Dovoli, da <ph name="PRODUCT_FRAME_NAME" /> obravnava te vrste vsebine.</translation>
+<translation id="5331746669335642668">Pravilnik o oblaku za <ph name="PRODUCT_NAME" /> preglasi pravilnik o okolju.</translation>
 <translation id="5365476955714838841">Parametri ukazne vrstice za nadomestni brskalnik.</translation>
 <translation id="5365946944967967336">V orodni vrstici pokaži gumb »Domov«</translation>
 <translation id="5366745336748853475">Omogoča, da določite seznam vzorcev URL-jev, ki določajo spletna mesta, za katera je potrdilo odjemalca samodejno izbrano na zaslonu za prijavo v okviru, v katerem gostuje potek SAML, če spletno mesto zahteva potrdilo. Primer uporabe je konfiguriranje potrdila v napravi, ki je predloženo SAML IdP.
@@ -1935,6 +2242,14 @@
 <translation id="5405289061476885481">Konfigurira, katere postavitve tipkovnice so dovoljene na zaslonu za prijavo sistema <ph name="PRODUCT_OS_NAME" />.
 
       Če je ta pravilnik nastavljen na seznam identifikatorjev načinov vnosa, so dani načini vnosa na voljo na zaslonu za prijavo. Prvi dani način vnosa je vnaprej izbran. Medtem ko je sklop za uporabnika osredotočen na zaslon za prijavo, je poleg načinov vnosa, ki jih zagotavlja ta pravilnik, na voljo tudi način vnosa, ki ga je uporabnik nazadnje uporabljal. Če ta pravilnik ni nastavljen, se načini vnosa na zaslonu za prijavo izpeljejo iz jezika, v katerem je prikazan zaslon za prijavo. Vrednosti, ki niso veljavni identifikatorji načinov vnosa, bodo prezrte.</translation>
+<translation id="5412057811596122582">Če je ta pravilnik omogočen ali ni nastavljen (privzeto), bo uporabnik pozvan, da
+      dovoli zajem zvoka, razen za URL-je, nastavljene na seznamu
+      AudioCaptureAllowedUrls, za katere bo zajem dovoljen brez poziva uporabniku.
+
+      Če je ta pravilnik onemogočen, uporabnik ne bo nikoli pozvan in bo zajem
+      zvoka na voljo samo URL-jem na seznamu AudioCaptureAllowedUrls.
+
+      Pravilnik velja za vgrajeni mikrofon in vse druge načine zvočnega vnosa.</translation>
 <translation id="5422643441807528365">Licenčni ključ <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423001109873148185">Če je ta pravilnik omogočen, se iskalniki uvozijo iz trenutnega privzetega brskalnika. Če je omogočen, ta pravilnik vpliva tudi na pogovorno okno za uvoz. 
 
@@ -1943,6 +2258,11 @@
       Če ni nastavljen, bo uporabnik morda vprašan, ali naj ga uvozi, ali pa bo uvoz izveden samodejno.</translation>
 <translation id="5423197884968724595">Ime omejitve za Android WebView:</translation>
 <translation id="5424147596523390018">Dovoli vse barvne načine</translation>
+<translation id="5437733496511628148">Če omogočite to nastavitev, preprečite, da bi piškotke nastavljali elementi spletnih strani, ki niso iz domene, navedene v naslovni vrstici brskalnika.
+
+      Če jo onemogočite, dovolite, da piškotke nastavljajo elementi spletnih strani, ki niso iz domene, navedene v naslovni vrstici brskalnika, in uporabnikom preprečite spreminjanje te nastavitve.
+
+      Če ta pravilnik ni nastavljen, bodo piškotki drugih spletnih mest omogočeni, vendar bo lahko uporabnik to spremenil.</translation>
 <translation id="5442026853063570579">Ta pravilnik prav tako nadzira dostop do možnosti za razvijalce za Android. Če ta pravilnik nastavite na »DeveloperToolsDisallowed« (vrednost 2), uporabniki ne morejo dostopati do možnosti za razvijalce. Če ta pravilnik onemogočite ali ga ne nastavite, uporabniki lahko dostopajo do možnosti za razvijalce tako, da se v aplikaciji Nastavitve za Android sedemkrat dotaknejo številke gradnje.</translation>
 <translation id="544342220587994947">Omogoča, da določite seznam vzorcev spletnih naslovov, ki določajo spletna mesta, za katera mora <ph name="PRODUCT_NAME" /> samodejno izbrati potrdilo odjemalca, če ga spletno mesto zahteva.
 
@@ -1970,6 +2290,19 @@
       Če si pravila nasprotujejo, <ph name="PRODUCT_NAME" /> uporablja najbolj podrobno pravilo.</translation>
 <translation id="5475361623548884387">Omogoči tiskanje</translation>
 <translation id="547601067149622666">Ne dovoli oglasov na spletnih mestih z vsiljivimi oglasi</translation>
+<translation id="5483777239978559943">Ta pravilnik je zastarel. Uporabite pravilnik <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> za nadziranje razpoložljivosti vtičnika za Flash in pravilnik <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> za nadziranje, ali je za odpiranje datotek PDF treba uporabiti vdelan pregledovalnik PDF-jev.
+
+      Določa seznam vtičnikov, ki jih lahko uporabnik omogoči ali onemogoči v brskalniku <ph name="PRODUCT_NAME" />.
+
+      Nadomestna znaka * in ? je mogoče uporabiti za nadomeščanje zaporedij poljubnih znakov. Znak * nadomešča poljubno število znakov, znak ? pa izbirni posamezen znak, tj. nadomešča nič znakov ali en znak. Ubežni znak je \; če torej želite nadomestiti dejanske znake *, ? ali \, lahko postavite prednje znak \.
+
+      Če to nastavitev omogočite, je mogoče v brskalniku <ph name="PRODUCT_NAME" /> uporabiti določen seznam vtičnikov. Uporabniki jih lahko omogočijo ali onemogočijo na strani »about:plugins«, tudi če se vtičnik ujema z vzorcem v pravilniku »DisabledPlugins«. Uporabniki lahko omogočijo ali onemogočijo tudi vtičnike, ki se ne ujemajo z nobenim vzorcem na seznamih »DisabledPlugins«, »DisabledPluginsExceptions« in »EnabledPlugins.
+
+      Namen tega pravilnika je omogočiti strog seznam blokiranih vtičnikov, pri čemer so na seznamu »DisabledPlugins« vnosi z nadomestnimi znaki, na primer »onemogoči vse vtičnike» (*) ali »onemogoči vse vtičnike Java» (*Java*), vendar želi skrbnik omogočiti določeno različico, na primer »IcedTea Java 2.3«. Te različice je mogoče navesti v tem pravilniku.
+
+      Ime vtičnika in skupinsko ime vtičnika morata biti izvzeta. Vsaka skupina vtičnikov je v polju »about:plugins« prikazana v ločenem razdelku; v vsakem razdelku je morda več vtičnikov. Vtičnik »Shockwave Flash« na primer spada v skupino »Adobe Flash Player« in obe imeni morata biti navedeni na seznamu izjem, če želite, da je ta vtičnik izvzet s seznama blokiranih vtičnikov.
+
+      Če ta pravilnik ni nastavljen, bodo vsi vtičniki, ki se ujemajo z vzorci na seznamu »DisabledPlugins«, onemogočeni z zaklepanjem in uporabnik jih ne bo mogel omogočiti.</translation>
 <translation id="5499375345075963939">Ta pravilnik je aktiven samo v maloprodajnem načinu.
 
       Ko je vrednost tega pravilnika nastavljena in ni 0, bo trenutno prijavljen uporabnik predstavitvenega načina samodejno odjavljen po določenem času nedejavnosti.
@@ -2005,6 +2338,13 @@
       Če pravilnik ni določen, se URL semen različic ne spremeni.</translation>
 <translation id="5561811616825571914">Samodejni izbor potrdila odjemalcev za ta spletna mesta na zaslonu za prijavo</translation>
 <translation id="5566210228171064229">Omogočanje tiskanja s kodo PIN in brez nje</translation>
+<translation id="556865034069957245">Ta pravilnik nadzira razpoložljivost celozaslonskega načina, v katerem je celoten uporabniški vmesnik za <ph name="PRODUCT_NAME" /> skrit in je vidna samo spletna vsebina.
+
+      Če je ta pravilnik nastavljen na »true« ali ni nastavljen, lahko uporabnik, aplikacije in razširitve z ustreznimi dovoljenji preklopijo v celozaslonski način.
+
+      Če je ta pravilnik nastavljen na »false«, uporabnik ter aplikacije in razširitve ne morejo preklopiti v celozaslonski način.
+
+      V vseh okoljih, razen v sistemu <ph name="PRODUCT_OS_NAME" />, način kioska ni na voljo, ko je celozaslonski način onemogočen.</translation>
 <translation id="556941986578702361">Nadzira samodejno skrivanje police v sistemu <ph name="PRODUCT_OS_NAME" />.
 
       Če je ta pravilnik nastavljen na »AlwaysAutoHideShelf«, se bo polica vedno samodejno skrila.
@@ -2022,6 +2362,11 @@
 <translation id="5581292529942108810">Konfiguriranje pravilnikov o razširitvi za poročanje za Chrome. 
 
       Ta pravilnik se uporablja samo, ko je omogočena razširitev <ph name="CHROME_REPORTING_EXTENSION_NAME" />, računalnik pa je včlanjen v pravilnik <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
+<translation id="5583806683960333345">Če je ta nastavitev omogočena, lahko uporabniki uporabljajo takojšnjo povezavo računalnika z internetom prek mobilnega telefona, s čimer lahko Googlov telefon deli prenos podatkov v mobilnem omrežju z napravo.
+
+      Če je ta nastavitev onemogočena, uporabniki ne morejo uporabljati takojšnje povezave računalnika z internetom prek mobilnega telefona.
+
+      Če ta pravilnik ni nastavljen, funkcija privzeto ni dovoljena za uporabnike, ki jih upravlja podjetje, in je dovoljena za uporabnike, ki niso upravljani.</translation>
 <translation id="5584132346604748282">Nadziranje Googlovih lokacijskih storitev za Android</translation>
 <translation id="5586942249556966598">Ne naredi nič</translation>
 <translation id="5590494712401018042">Določa odstotek, za katerega se prilagodi zakasnitev zatemnitve zaslona, ko je naprava v predstavitvenem načinu.
@@ -2047,6 +2392,19 @@
       OPOMBA: ta pravilnik se uporablja samo za Chrome v Androidu v napravah, ki imajo več kot 1 GB RAM-a. Če želite pravilnik uporabljati v okoljih, ki niso Android, uporabite IsolateOrigins.
       </translation>
 <translation id="5599461642204007579">Nastavitve upravljanja tega: <ph name="MS_AD_NAME" /></translation>
+<translation id="5610104657949692379">Če je pravilnik nastavljen, določa dejanje, ki ga <ph name="PRODUCT_OS_NAME" /> izvede, če uporabnikova nedejavnost doseže trajanje časovnega zamika nedejavnosti, ki ga je mogoče konfigurirati posebej.
+
+          Če pravilnik ni nastavljen, se izvede privzeto dejanje, tj. prekinitev.
+
+          Če se izvede prekinitev, lahko <ph name="PRODUCT_OS_NAME" /> posebej konfigurirate, da pred prekinitvijo zaslon zaklene ali ne.</translation>
+<translation id="5618398258385745432">Povezana nastavitev je bila uporabljena pred uvedbo vnovičnega preverjanja pristnosti ob ogledu gesel. Od takrat nastavitev in posledično ta pravilnik nimata nobenega vpliva na način delovanja Chroma. Trenuten način delovanja Chroma je zdaj enak, kot da bi bil pravilnik nastavljen tako, da onemogoča prikaz nešifriranih gesel na strani z nastavitvami upravitelja gesel. To pomeni, da je na strani z nastavitvami samo nadomestni znak in Chrome geslo prikaže šele, ko uporabnik klikne »Pokaži« (in po vnovičnem preverjanju pristnosti, če je treba). Izvirni opis pravilnika je spodaj.
+
+          Določa, ali lahko uporabnik v upravitelju gesel pokaže nešifrirana gesla.
+
+          Če to nastavitev onemogočite, upravitelj gesel ne dovoli prikaza shranjenih gesel v nešifrirani obliki v oknu upravitelja gesel.
+
+          Če ta pravilnik omogočite ali ga ne nastavite, si lahko uporabniki v upravitelju gesel svoja gesla ogledajo v nešifrirani obliki.</translation>
+<translation id="5620392548325769024">Omogočanje prikaza pozdravne strani ob prvem zagonu brskalnika po nadgradnji operacijskega sistema</translation>
 <translation id="5630352020869108293">Obnovi zadnjo sejo</translation>
 <translation id="5645779841392247734">Dovoli piškotke na teh mestih</translation>
 <translation id="5689430183304951538">Privzeta velikost tiskanih strani</translation>
@@ -2070,6 +2428,7 @@
       Če je ta pravilnik omogočen ali ni nastavljen, bo upravljana seja gosta prevzela delovanje »upravljane seje«, ki odpravlja številne omejitve, ki veljajo za običajne »javne seje«.
 
       Če je ta pravilnik nastavljen, ga uporabniki ne morejo spremeniti ali preglasiti.</translation>
+<translation id="5708969689202733975">Konfiguriranje dovoljenih načinov hitrega odklepanja</translation>
 <translation id="572155275267014074">Nastavitve za Android</translation>
 <translation id="5722934961007828462">Ko je omogočena ta nastavitev, <ph name="PRODUCT_NAME" /> vedno izvede preverjanje preklica strežniških potrdil, ki se uspešno potrdijo in so podpisana s potrdili lokalno nameščenega overitelja.
 
@@ -2078,6 +2437,11 @@
       Če ta pravilnik ni nastavljen ali je nastavljen na »false«, bo <ph name="PRODUCT_NAME" /> uporabil obstoječe nastavitve za preverjanje preklica v spletu.</translation>
 <translation id="5728154254076636808">Omogočanje ustvarjanja kopij podatkov profila izdelka <ph name="PRODUCT_NAME" /> za gostovanje</translation>
 <translation id="5732972008943405952">Uvoz podatkov za samodejno izpolnjevanje obrazcev iz privzetega brskalnika ob prvem zagonu</translation>
+<translation id="5741810844420698449">Če je pravilnik nastavljen, določa dejanje, ki ga <ph name="PRODUCT_OS_NAME" /> izvede, ko uporabnik zapre pokrov naprave.
+
+          Če pravilnik ni nastavljen, se izvede privzeto dejanje, tj. prekinitev.
+
+          Če se izvede prekinitev, lahko <ph name="PRODUCT_OS_NAME" /> posebej konfigurirate, da pred prekinitvijo zaslon zaklene ali ne.</translation>
 <translation id="5765780083710877561">Opis:</translation>
 <translation id="5770738360657678870">Različica za razvijalce (lahko je nestabilna)</translation>
 <translation id="5774856474228476867">Privzeti URL iskalnika za iskanje</translation>
@@ -2272,6 +2636,7 @@
 <translation id="6111936128861357925">Dovoli skrito igro z dinozavrom</translation>
 <translation id="6114416803310251055">zastarelo</translation>
 <translation id="6133088669883929098">Vsem spletnim mestom dovoli uporabo ustvarjanja ključev</translation>
+<translation id="6141402445226505817">Vedno uporabi nenatančno zaznavanje časovnega pasu</translation>
 <translation id="6145799962557135888">Omogoča nastavitev seznama vzorcev URL-jev, s katerim so določena mesta, ki smejo izvajati JavaScript.
 
           Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena splošna privzeta vrednost iz pravilnika »DefaultJavaScriptSetting«, kadar je ta nastavljen, ali iz uporabnikove osebne konfiguracije, kadar pravilnik »DefaultImagesSetting« ni nastavljen.</translation>
@@ -2311,6 +2676,15 @@
 <translation id="6155936611791017817">Nastavitev privzetega stanja velikega kazalca na prijavnem zaslonu</translation>
 <translation id="6157537876488211233">Seznam pravil za obvod proxyja, ločenih z vejico</translation>
 <translation id="6158324314836466367">Ime spletne trgovine podjetja (zastarelo)</translation>
+<translation id="6158817306788002298">Tukaj lahko določite URL datoteke .pac za proxy.
+
+          Ta pravilnik velja le, če ste v »Izberite, kako določiti nastavitve strežnika proxy« izbrali ročne nastavitve strežnika proxy in če pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" /> ni bil določen.
+
+          Če ste za nastavitve pravilnikov za strežnik proxy izbrali drug način, tega pravilnika ne nastavljajte.
+
+          Podrobne primere si lahko ogledate tukaj:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="6178075938488052838">Ta pravilnik nadzira, kdo lahko začne sejo sistema <ph name="PRODUCT_OS_NAME" />. Uporabnikom ne preprečuje prijave v dodatne račune za Google znotraj Androida. Če želite to preprečiti, konfigurirajte pravilnik za Android <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> kot del pravilnika <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="6181608880636987460">Omogoča nastavitev seznama vzorcev URL-jev, ki določa, katerim spletnim mestom je onemogočeno izvajanje vtičnika <ph name="FLASH_PLUGIN_NAME" />.
 
           Če ta pravilnik ni nastavljen, se za vsa spletna mesta uporabi globalna privzeta vrednost iz pravilnika »DefaultPluginsSetting«, kadar je ta pravilnik nastavljen, sicer pa iz osebnih nastavitev uporabnika.</translation>
@@ -2349,6 +2723,17 @@
 <translation id="6281043242780654992">Konfigurira pravilnike za izvorno pošiljanje sporočil. Gostitelji izvornega pošiljanja sporočil s seznama blokiranih ne bodo dovoljeni, razen če bodo uvrščeni na seznam dovoljenih.</translation>
 <translation id="6282799760374509080">Omogočanje ali onemogočanje snemanja zvoka</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">Vsili onemogočanje jezikov za preverjanje črkovanja. Neprepoznani jeziki na tem seznamu so prezrti.
+
+      Če omogočite ta pravilnik, je preverjanje črkovanja onemogočeno za navedene jezike. Uporabnik lahko še vedno omogoči ali onemogoči preverjanje črkovanja za jezike, ki niso na seznamu.
+
+      Če ne nastavite tega pravilnika ali ga onemogočite, ni sprememb uporabnikovih nastavitev preverjanja črkovanja.
+
+      Če je pravilnik SpellcheckEnabled onemogočen, ta pravilnik nima učinka.
+
+      Če je jezik vključen v ta pravilnik in pravilnik SpellcheckLanguage, ima prednost pravilnik SpellcheckLanguage in jezik za preverjanje črkovanja je omogočen.
+
+      Za zdaj so podprti ti jeziki: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">Omogočanje samodokončanja imena domene med prijavo uporabnika</translation>
 <translation id="6315673513957120120">Chrome prikaže opozorilno stran, ko uporabniki prikrmarijo na spletna mesta, na katerih so napake SSL. Uporabnikom je privzeto (ali če je ta pravilnik omogočen) dovoljeno, da s klikom opustijo te strani z opozorilom.
       Če onemogočite ta pravilnik, uporabnikom ni dovoljeno s klikom opustiti katere koli strani z opozorilom.</translation>
@@ -2398,6 +2783,8 @@
 <translation id="6449476513004303784">Uporabnikom ne dovoli upravljanja potrdil</translation>
 <translation id="645425387487868471">Omogoči vsiljeno prijavo za izdelek <ph name="PRODUCT_NAME" /></translation>
 <translation id="6464074037294098618">Omogočanje samodejnega izpolnjevanja za naslove</translation>
+<translation id="6467613372414922590">Dovoli gostitelje izvornega pošiljanja na uporabniški ravni (nameščene brez dovoljenj skrbnika)</translation>
+<translation id="6468980648680553776">Ta pravilnik je zastarel. Uporabite pravilnik RemoteAccessHostClientDomainList.</translation>
 <translation id="6473623140202114570">Konfigurirajte seznam domen, v katerih funkcija varnega brskanja ne bo sprožila opozoril.</translation>
 <translation id="6488627892044759800">Konfigurira vrsto privzete domače strani v brskalniku <ph name="PRODUCT_NAME" /> in uporabnikom preprečuje spreminjanje nastavitve domače strani. Domačo stran lahko nastavite na URL, ki ga določite, ali na nov zavihek s povezavami.
 
@@ -2411,6 +2798,13 @@
 
           Ta pravilnik je na voljo samo v primerkih s sistemom Windows, ki so pridruženi v domeno <ph name="MS_AD_NAME" />, ali primerkih s sistemom Windows 10 Pro ali Enterprise, ki so včlanjeni v upravljanje naprav.</translation>
 <translation id="6491139795995924304">Omogočanje Bluetootha v napravi</translation>
+<translation id="6491872498385040936">Ta pravilnik je zastarel. Premislite o uporabi pravilnika <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, ki preglasi ta pravilnik in omogoča podrobnejše prilagajanje.
+
+      Vsili Zmerno omejeni način v YouTubu in uporabnikom prepreči, da bi to nastavitev spremenili.
+
+      Če je ta nastavitev omogočena, je v YouTubu vedno uveljavljen vsaj Zmerno omejeni način.
+
+      Če je ta nastavitev onemogočena ali ni nastavljena nobena vrednost, <ph name="PRODUCT_NAME" /> ne vsili Omejenega načina v YouTubu. Zunanji pravilniki, na primer pravilniki za YouTube, lahko še vedno uveljavijo Omejeni način.</translation>
 <translation id="6495328383950074966">Konfiguriranje seznama domen, ki jim bo Varno brskanje zaupalo. To pomeni:
       Varno brskanje ne bo preverjalo, ali gre za nevarne vire (npr. lažno predstavljanje, zlonamerna programska oprema ali neželena programska oprema), če se URL-ji ujemajo s temi domenami.
       Storitev zaščite prenosov Varnega brskanja ne bo preverjalo prenosov, ki gostujejo v teh domenah.
@@ -2697,6 +3091,7 @@
       Google lahko te dnevnike prek ID-ja seje poveže z drugimi dnevniki, ki jih zbira sama Googlova storitev, in sicer zaradi lažjega odpravljanja napak.
       </translation>
 <translation id="706669471845501145">Mestom dovoli prikazovanje namiznih obvestil</translation>
+<translation id="7070525176564511548">Vnos gesla je obvezen vsak teden (168 ur)</translation>
 <translation id="7072208053150563108">Hitrost spreminjanja gesla naprave</translation>
 <translation id="7079519252486108041">Blokiraj pojavna okna na teh mestih</translation>
 <translation id="7085803328069945025">Omogoča nastavitev seznama vzorcev URL-jev, ki določa, katerim spletnim mestom je dovoljeno pozvati uporabnike k odobritvi dostopa do naprave USB.
@@ -2729,6 +3124,9 @@
       Če je ta pravilnik onemogočen, je način izvajanja v ozadju onemogočen in ga uporabnik ne more upravljati v nastavitvah brskalnika.
 
       Če ta pravilnik ni nastavljen, je način izvajanja v ozadju na začetku onemogočen in ga uporabnik lahko upravlja v nastavitvah brskalnika.</translation>
+<translation id="7123160381479171745">Določa seznam uporabnikov, ki se lahko prijavijo v napravo. Vnosi so v obliki <ph name="USER_WHITELIST_ENTRY_FORMAT" />, na primer <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Če želite omogočiti poljubne uporabnike v domeni, naj bodo vnosi v obliki <ph name="USER_WHITELIST_ENTRY_WILDCARD" />.
+
+      Če pravilnik ni nastavljen, se lahko prijavijo vsi uporabniki. Če ustvarite nove uporabnike, morate ustrezno nastaviti pravilnik <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" />.</translation>
 <translation id="7123266440503901785"><ph name="PRODUCT_NAME" /> zagotavlja varno posodabljanje in nameščanje razširitev. Kljub temu lahko vsebino nekaterih razširitev, ki gostujejo zunaj Spletne trgovine Chrome, ščitijo samo algoritmi za podpisovanje ali zgoščevanje, ki niso varni, na primer SHA1. Če je ta pravilnik onemogočen, Chrome ne bo dovolil sveže namestitve takšnih razširitev in njihovih posodobitev (dokler razvijalci razširitve ne predelajo z močnejšimi algoritmi). Če je ta pravilnik omogočen, bodo namestitev in posodobitve takšnih razširitev dovoljene.
 
           Če pravilnik ni nastavljen, je privzeto omogočeno delovanje.
@@ -2772,8 +3170,15 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="718956142899066210">Dovoljene vrste povezav za posodobitve</translation>
 <translation id="7194407337890404814">Privzeto ime iskalnika</translation>
+<translation id="7199304109870655950">Konfigurirajte možnosti dostopa v gostitelju za Oddaljeno namizje za Chrome.
+
+      Oddaljeno namizje za Chrome je izvorna storitev, ki se izvaja v ciljnem računalniku, s katero se lahko uporabnik poveže z uporabo aplikacije Oddaljeno namizje za Chrome. Izvorna storitev je zapakirana in se izvaja ločeno od brskalnika <ph name="PRODUCT_NAME" />.
+
+      Ti pravilniki so prezrti, če ni nameščen
+      gostitelj za Oddaljeno namizje za Chrome.</translation>
 <translation id="7202925763179776247">Omogoči omejitve prenosov</translation>
 <translation id="7207095846245296855">Uveljavi Google Varno iskanje</translation>
+<translation id="7211368186050418507">Časovnega pasu nikoli ne zaznaj samodejno</translation>
 <translation id="7216442368414164495">Uporabnikom dovoli prijavo za razširjeno poročanje za Varno brskanje</translation>
 <translation id="7221822638060296742">Omogoča nastavitev spletnih mest, ki jim je dovoljeno samodejno izvajanje vtičnika <ph name="FLASH_PLUGIN_NAME" />. Samodejno izvajanje vtičnika <ph name="FLASH_PLUGIN_NAME" /> je lahko dovoljeno za vsa spletna mesta ali prepovedano za vsa spletna mesta.
 
@@ -2838,6 +3243,11 @@
 
           Če je ta nastavitev onemogočena, ta funkcija ne bo na voljo.</translation>
 <translation id="7275334191706090484">Upravljani zaznamki</translation>
+<translation id="7291084543582732020">Če to nastavitev omogočite, lahko uporabniki uporabljajo funkcijo Smart Lock, če so izpolnjene zahteve za funkcijo.
+
+      Če onemogočite to nastavitev, uporabniki ne smejo uporabljati funkcije Smart Lock.
+
+      Če ta pravilnik ni nastavljen, funkcija privzeto ni dovoljena za uporabnike, ki jih upravlja podjetje, in je dovoljena za uporabnike, ki niso upravljani.</translation>
 <translation id="7295019613773647480">Omogoči zaščitene uporabnike</translation>
 <translation id="7301543427086558500">Določa seznam nadomestnih URL-jev, ki jih je mogoče uporabiti za pridobivanje iskalnih izrazov iz iskalnika. URL-ji morajo vsebovati niz <ph name="SEARCH_TERM_MARKER" />, ki bo uporabljen za pridobivanje iskalnih izrazov.
 
@@ -2895,6 +3305,9 @@
 
       Ta pravilnik se uporablja samo, če je omogočena razširitev <ph name="CHROME_REPORTING_EXTENSION_NAME" />, računalnik pa je včlanjen v pravilnik <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
 <translation id="737655323154569539">Omeji velikost tiskanih strani. Če pravilnik ni nastavljen ali je nabor prazen, ni omejitve.</translation>
+<translation id="7389872682701720082">Če omogočite to nastavitev, se vtičniki, ki niso zastareli, vedno izvedejo.
+
+      Če je ta nastavitev onemogočena ali ni nastavljena, bodo uporabniki morali dati dovoljenje za izvajanje vtičnikov, ki terjajo pooblastitev. To so vtičniki, ki lahko ogrozijo varnost.</translation>
 <translation id="7417972229667085380">Odstotek prilagoditve časovnega zamika nedejavnosti v načinu predstavitve (zastarelo)</translation>
 <translation id="7421483919690710988">Nastavi velikost predpomnilnika medija v bajtih</translation>
 <translation id="7424751532654212117">Seznam izjem za seznam onemogočenih vtičnikov</translation>
@@ -2902,12 +3315,16 @@
 
       Če ta pravilnik ni nastavljen ali je onemogočen, je funkcija <ph name="TLS_FALSE_START" /> omogočena. Če je omogočen, je funkcija <ph name="TLS_FALSE_START" /> onemogočena.</translation>
 <translation id="7433714841194914373">Omogoči Dinamično iskanje</translation>
+<translation id="7434202861148928348">Konfiguriranje imen domene, potrebnih za odjemalce za oddaljeni dostop</translation>
 <translation id="7443616896860707393">Ukazni pozivi HTTP Basic Auth iz več izvorov</translation>
 <translation id="7458437477941640506">Brez povrnitve na ciljno različico, če je različica operacijskega sistema novejša kot ciljna. Onemogočene so tudi posodobitve.</translation>
 <translation id="7464991223784276288">Omejitev piškotkov z ujemajočih se URL-jev na trenutno sejo</translation>
 <translation id="7469554574977894907">Omogoči predloge za iskanje</translation>
 <translation id="7474249562477552702">Ali so dovoljena potrdila, podpisana z algoritmom SHA-1, ki jih izdajo lokalna sidra zaupanja</translation>
 <translation id="7485481791539008776">Pravila za izbiro privzetega tiskalnika</translation>
+<translation id="7485730741952775732">Če je ta pravilnik nastavljen, bo gostitelj za oddaljeni dostop na tem URL-ju preverjal žetone za preverjanje pristnosti odjemalcev za oddaljeni dostop, da lahko sprejme povezave. Uporabljati ga je treba v povezavi s pravilnikom RemoteAccessHostTokenUrl.
+
+          Ta funkcija je trenutno onemogočena na strani strežnika.</translation>
 <translation id="749556411189861380">Poročanje o različici operacijskega sistema in vdelane programske opreme včlanjenih naprav.
 
       Če nastavitev ni nastavljena ali je nastavljena na »True«, včlanjene naprave redno poročajo o različici operacijskega sistema in vdelane programske opreme. Če je nastavitev nastavljena na »False«, se podatki o različici ne poročajo.</translation>
@@ -3007,6 +3424,8 @@
 
       Več informacij o Varnem brskanju je na voljo na strani https://developers.google.com/safe-browsing.</translation>
 <translation id="7643883929273267746">Omejitev računov, ki so vidni v storitvi <ph name="PRODUCT_NAME" /></translation>
+<translation id="7644825865811580663">Če je ta pravilnik omogočen, <ph name="PRODUCT_NAME" /> brezpogojno poveča prvo okno, prikazano pri prvem izvajanju.
+      Če je ta pravilnik onemogočen ali ni konfiguriran, hevristični postopek glede na velikost zaslona določi, ali se prvo prikazano okno poveča.</translation>
 <translation id="7651739109954974365">Določa, ali je podatkovno gostovanje za napravo omogočeno. Če je pravilnik omogočen, je podatkovno gostovanje omogočeno. Če ni nastavljen ali je onemogočen, podatkovno gostovanje ni na voljo.</translation>
 <translation id="7657261947024629645">Optimizacija za učinkovito delovanje.</translation>
 <translation id="7673194325208122247">Časovno obdobje (milisekunde)</translation>
@@ -3020,6 +3439,9 @@
 
           Če je pravilnik »RestoreOnStartup« nastavljen za obnovitev URL-jev iz prejšnje seje, ta pravilnik ne bo upoštevan in piškotki za ta spletna mesta bodo trajno shranjeni.</translation>
 <translation id="7683777542468165012">Dinamična osvežitev pravilnika</translation>
+<translation id="7687943045976362719">Če je ta pravilnik nastavljen, določene vrste vsebine upravlja <ph name="PRODUCT_FRAME_NAME" />.
+
+         Če ta pravilnik ni nastavljen, se za vsa spletna mesta uporabi privzeti upodabljalnik. (Za konfiguriranje privzetega upodabljalnika se morda uporabi pravilnik <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" />.)</translation>
 <translation id="7694807474048279351">Načrtovanje samodejnega vnovičnega zagona po namestitvi posodobitve za <ph name="PRODUCT_OS_NAME" />.
 
       Če je ta pravilnik vklopljen, se načrtuje samodejni vnovični zagon, kadar je potreben za dokončanje postopka posodobitve za <ph name="PRODUCT_OS_NAME" />. Samodejni vnovični zagon se v napravi načrtuje za določeno uro, vendar se lahko odloži do 24 ur, če nekdo trenutno uporablja napravo.
@@ -3059,6 +3481,7 @@
 <translation id="7763614521440615342">Prikaz predlogov vsebine na novem zavihku s povezavami</translation>
 <translation id="7765879851993224640">Omogočanje uporabe prijave s funkcijo Smart Lock.</translation>
 <translation id="7774768074957326919">Uporaba sistemskih nastavitev proxyja</translation>
+<translation id="7777535871204167559">Zunanje naprave za shranjevanje naj bodo samo za branje</translation>
 <translation id="7781069478569868053">Nov zavihek s povezavami</translation>
 <translation id="7788511847830146438">Za profil</translation>
 <translation id="780603170519840350">Onemogoči uveljavljanje zahtev za preglednost potrdil za seznam zgoščevalnih vrednosti subjectPublicKeyInfo.
@@ -3087,6 +3510,11 @@
       Če tega pravilnika ne nastavite, bo <ph name="PRODUCT_NAME" /> uporabil privzeto vrednost 5000 ms.</translation>
 <translation id="7841880500990419427">Najnižja različica TLS-ja za rezervno uporabo</translation>
 <translation id="7842869978353666042">Konfigurira možnosti storitve Google Drive</translation>
+<translation id="7858404742201086014">Če to nastavitev omogočite, se zastareli vtičniki uporabljajo kot običajni.
+
+      Če jo onemogočite, zastareli vtičniki ne bodo uporabljeni in uporabniki ne bodo vprašani za dovoljenje, da se jih izvede.
+
+      Če ta možnost ni nastavljena, bodo uporabniki vprašani za dovoljenje za izvajanje zastarelih vtičnikov.</translation>
 <translation id="787125417158068494">Če je pravilnik nastavljen na »SyncDisabled« ali ni konfiguriran, potrdila sistema <ph name="PRODUCT_OS_NAME" /> niso na voljo za aplikacije ARC.
 
       Če je pravilnik nastavljen na »CopyCaCerts«, so vsa potrdila overitelja potrdil, nameščena s pravilnikom ONC in za katera velja <ph name="WEB_TRUSTED_BIT" />, na voljo za aplikacije ARC.</translation>
@@ -3107,7 +3535,17 @@
 <translation id="793473937901685727">Nastavitev razpoložljivosti potrdil aplikacijam ARC</translation>
 <translation id="7937766917976512374">Omogočanje ali onemogočanje snemanje videoposnetka</translation>
 <translation id="7941975817681987555">Ne predvidevaj omrežnih dejanj v nobeni omrežni povezavi</translation>
+<translation id="7952958573604504839">Ta pravilnik je zastarel in nadomeščen s pravilnikom <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" /> v različici M48. Odstranjen je v različici M54.
+
+      Omogoča omrežno predvidevanje v brskalniku <ph name="PRODUCT_NAME" /> in uporabnikom preprečuje spreminjanje te nastavitve.
+
+      Ta pravilnik ne nadzira le vnaprejšnjega prenosa podatkov DNS, ampak tudi vnaprejšnje povezovanje TCP in SSL ter vnaprejšnje upodabljanje spletnih strani. Ime pravilnika se nanaša na vnaprejšnji prenos podatkov DNS zaradi zgodovinskih razlogov.
+
+      Če to nastavitev omogočite ali onemogočite, je uporabniki v brskalniku <ph name="PRODUCT_NAME" /> ne morejo spremeniti ali preglasiti.
+
+      Če ta pravilnik ni nastavljen, bo to omogočeno, vendar bo lahko uporabnik to spremenil.</translation>
 <translation id="7953256619080733119">Gostitelji ročnih izjem za upravljanega uporabnika</translation>
+<translation id="7958537754689366707">Vnos gesla je obvezen vsakih 12 ur</translation>
 <translation id="7961779417826583251">Onemogoči uveljavljanje preglednosti potrdila za seznam starejših overiteljev potrdil</translation>
 <translation id="7974114691960514888">Ta pravilnik ni več podprt.
           Omogoča uporabo strežnikov STUN in posredovalnih strežnikov pri povezovanju z oddaljenim odjemalcem.
@@ -3118,6 +3556,9 @@
 <translation id="7976157349247117979">Ime cilja za napravo <ph name="PRODUCT_NAME" /></translation>
 <translation id="7980227303582973781">Ni posebnih omejitev</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
+<translation id="798856998567564266">Če omogočite to nastavitev, je zaznamke mogoče dodati, odstraniti ali spremeniti. To je privzeto tudi, če ta pravilnik ni nastavljen.
+
+      Če onemogočite to nastavitev, zaznamkov ni mogoče dodati, odstraniti ali spremeniti. Obstoječi zaznamki so še vedno na voljo.</translation>
 <translation id="7992136759457836904">Omogoči nadziranje, ali je v sistemu OS Chrome dovoljeno izvajanje navideznih računalnikov.
 
       Če je pravilnik omogočen, je v napravi dovoljeno izvajanje navideznih računalnikov.
@@ -3144,6 +3585,20 @@
 <translation id="8050080920415773384">Izvorno tiskanje</translation>
 <translation id="8053580360728293758">Preglasi privzeti barvni način tiskanja. Če način ni na voljo, je ta pravilnik prezrt.</translation>
 <translation id="8059164285174960932">URL, na katerem morajo odjemalci za oddaljeni dostop pridobiti žeton za preverjanje pristnosti</translation>
+<translation id="806280865577636339">Če je pravilnik nastavljen na »true«, so možnosti funkcij za ljudi s posebnimi potrebami vedno prikazane v meniju sistemske vrstice.
+
+          Če je pravilnik nastavljen na »false«, možnosti funkcij za ljudi s posebnimi potrebami niso prikazane v meniju sistemske vrstice.
+
+          Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.
+
+          Če ta pravilnik ni nastavljen, možnosti funkcij za ljudi s posebnimi potrebami niso prikazane v meniju sistemske vrstice, vendar lahko uporabniki nastavijo, da so možnosti funkcij za ljudi s posebnimi potrebami prikazane prek strani z nastavitvami.</translation>
+<translation id="806523868782250975">Konfigurira seznam upravljanih zaznamkov.
+
+      Pravilnik sestavlja seznam zaznamkov, pri čemer je vsak zaznamek slovar s ključema »<ph name="NAME" />« in »<ph name="URL_LABEL" />«, v katerih sta shranjena ime in cilj zaznamka. Mogoče je konfigurirati podmapo, tako da definirate zaznamek brez ključa »<ph name="URL_LABEL" />«, vendar z dodatnim ključem »<ph name="CHILDREN" />«, ki vsebuje seznam zaznamkov, kot so opredeljeni zgoraj (nekateri so prav tako lahko mape). Brskalnik <ph name="PRODUCT_NAME" /> dopolni nepopolne URL-je, kot bi bili poslani prek iskalne vrstice. »<ph name="GOOGLE_COM" />« na primer postane »<ph name="HTTPS_GOOGLE_COM" />«.
+
+      Ti zaznamki so dani v mapo, ki je uporabnik ne more spreminjati, lahko pa izbere, da je na vrstici z zaznamki skrita. Privzeto ime mape je »Managed bookmarks«, vendar ga je mogoče prilagoditi tako, da se na seznam zaznamkov doda slovar s ključem »<ph name="TOPLEVEL_NAME" />« z želenim imenom mape kot vrednostjo.
+
+      Upravljani zaznamki se ne sinhronizirajo z uporabniškim računom in jih razširitve ne morejo spreminjati.</translation>
 <translation id="8078366200175825572">Omogoča nastavitev seznama vzorcev URL-jev, ki določa, katerim spletnim mestom je onemogočeno nastavljanje piškotkov.
 
           Če ta pravilnik ni nastavljen, se za vsa spletna mesta uporabi globalna privzeta vrednost iz pravilnika »DefaultCookiesSetting«, kadar je ta pravilnik nastavljen, sicer pa iz osebnih nastavitev uporabnika.
@@ -3206,6 +3661,9 @@
 
       Če je ta pravilnik onemogočen ali ni nastavljen, se pri prijavi uporabijo navadni profili.</translation>
 <translation id="8158758865057576716">Omogočanje ustvarjanja kopij podatkov profila izdelka <ph name="PRODUCT_NAME" /> za gostovanje.</translation>
+<translation id="8172676363520748127">Če je ta pravilnik omogočen, z bližnjičnimi tipkami ali API-ji razširitev ni mogoče ustvarjati posnetkov zaslona.
+
+      Če je onemogočen ali ni določen, je ustvarjanje posnetkov zaslona dovoljeno.</translation>
 <translation id="817455428376641507">Omogoča dostop do navedenih URL-jev kot izjem za seznam blokiranih URL-jev.
 
       Glede oblike vnosov za ta seznam glejte opis pravilnika za blokirane URL-je.
@@ -3219,6 +3677,7 @@
       Če tega pravilnika ne nastavite, v pravilniku ne bo izjem za seznam blokiranih v pravilniku »URLBlacklist«.</translation>
 <translation id="8176035528522326671">Dovoli poslovnemu uporabniku, da je samo primarni uporabnik z več profili (privzeti način delovanja za uporabnike, ki jih upravlja podjetje)</translation>
 <translation id="8214600119442850823">Konfigurira upravitelja gesel.</translation>
+<translation id="8217516105848565518">Ta pravilnik je zastarel. Uporabite pravilnik RemoteAccessHostDomainList.</translation>
 <translation id="8244525275280476362">Največja zakasnitev za prenos po zavrnitvi preverjanja pravilnika</translation>
 <translation id="8256688113167012935">Nadzira prikaz imena računa na zaslonu za prijavo v sistemu <ph name="PRODUCT_OS_NAME" /> za ustrezen lokalni račun za napravo.
 
@@ -3234,6 +3693,9 @@
 Teh nastavitev ni treba konfigurirati ročno. Za sisteme Windows, macOS in Linux so na voljo predloge, ki jih je mogoče preprosto uporabljati in jih lahko prenesete tukaj: <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" />.
 
 Čeprav priporočamo, da v sistemu Windows pravilnik konfigurirate prek pravilnika skupine, je za primerke sistema Windows, ki so pridruženi v domeno <ph name="MS_AD_NAME" />, še vedno podprta priprava pravilnikov za uporabo prek registra.</translation>
+<translation id="8259592978873597235">Če je pravilnik nastavljen na »True« ali če pravilnik ni nastavljen, uporabnik ne velja za nedejavnega, če se predvaja videoposnetek. S tem se prepreči doseganje časovnega zamika ob nedejavnosti ter časovnega zamika zatemnitve, izklopa zaslona in zaklepa zaslona, s tem pa se preprečijo tudi ustrezna dejanja.
+
+          Če je pravilnik nastavljen na »False«, uporabnik kljub videodejavnosti velja za nedejavnega.</translation>
 <translation id="8264653492961233132">Določa seznam aplikacij in razširitev, ki so nameščene brez obveščanja
           in posegov uporabnika ter jih uporabnik ne more odstraniti ali
           onemogočiti. Vsa dovoljenja, ki jih zahtevajo aplikacije/razširitve,
@@ -3286,6 +3748,7 @@
       Vrednost pravilnika mora biti v milisekundah.</translation>
 <translation id="8339420913453596618">Dvojno preverjanje je onemogočeno</translation>
 <translation id="8344454543174932833">Uvoz zaznamkov privzetega brskalnika ob prvem zagonu</translation>
+<translation id="8357681633047935212">Omejitev dolžine uporabniške seje</translation>
 <translation id="8359734107661430198">Omogočanje API-ja ExampleDeprecatedFeature API do vključno 2. 9. 2008</translation>
 <translation id="8367209241899435947">Omogočeno Chromovo čiščenje v sistemu Windows</translation>
 <translation id="8369602308428138533">Časovni zamik izklopa zaslona, če se napaja iz električnega omrežja</translation>
@@ -3294,6 +3757,13 @@
 
       Če je ta pravilnik onemogočen, statistični podatki ne bodo poslani.
       Če je ta pravilnik omogočen ali ni nastavljen, bodo statistični podatki poslani.</translation>
+<translation id="8380490658357556620">Omogoča uporabo posredovalnih strežnikov, ko oddaljeni odjemalci poskušajo vzpostaviti povezavo s tem računalnikom.
+
+          Če je ta nastavitev omogočena, lahko oddaljeni odjemalci uporabijo posredovalne strežnike za povezovanje s tem računalnikom, tudi ko neposredna povezava ni na voljo (na primer zaradi omejitve s požarnim zidom).
+
+          Če je pravilnik <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> onemogočen, bo ta pravilnik prezrt.
+
+          Če ta pravilnik ni nastavljen, bo nastavitev omogočena.</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.
@@ -3424,6 +3894,7 @@
           Imena strežnikov ločite z vejicami. Nadomestni znaki (*) so dovoljeni.
 
           Če tega pravilnika ne nastavite, <ph name="PRODUCT_NAME" /> poskuša zaznati, ali je strežnik v intranetu, in se šele potem odzove na zahteve IWA. Če je strežnik zaznan kot internet, <ph name="PRODUCT_NAME" /> prezre zahteve IWA, poslane iz tega strežnika.</translation>
+<translation id="8661297125441579970">Prepoved selitve podatkov in ARC-ja.</translation>
 <translation id="8672321184841719703">Ciljna različica za samodejne posodobitve</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8682611302223077049">Omogoči nastavitev časovnega obdobja v milisekundah, v katerem so uporabniki obveščeni, da mora biti brskalnik <ph name="PRODUCT_NAME" /> znova zagnan ali da mora biti naprava <ph name="PRODUCT_OS_NAME" /> znova zagnana za uveljavitev čakajoče posodobitve.
@@ -3462,6 +3933,7 @@
       Če ta nastavitev ni omogočena ali nastavljena, je zgodovino brskanja in zgodovino prenosov mogoče izbrisati
 
       Če je ta nastavitev onemogočena, zgodovine brskanja in zgodovine prenosov ni mogoče izbrisati.</translation>
+<translation id="8757552286070680084">Konfiguracija orodja wilco DTC</translation>
 <translation id="8758831693895931466">Omogočanje obvezne včlanitve v upravljanje v oblaku</translation>
 <translation id="8759829385824155666">Dovoljene vrste šifriranja Kerberos</translation>
 <translation id="8764119899999036911">Določa, ali ustvarjeni SPN za Kerberos temelji na kanoničnem imenu DNS ali na vnesenem izvirnem imenu.
@@ -3469,6 +3941,7 @@
           Če to nastavitev omogočite, bo iskanje CNAME preskočeno in uporabljeno bo vneseno ime strežnika.
 
           Če to nastavitev onemogočite ali jo ne nastavite, bo kanonično ime strežnika določeno z iskanjem CNAME.</translation>
+<translation id="8764477907716150749">Ta pravilnik je namenjen za notranjo uporabo v samem brskalniku <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8765776988041674792">Konfiguriranje URL-ja za spreminjanje gesla (samo sheme HTTP in HTTPS). Storitev za zaščito gesla po prikazu opozorila v brskalniku pošlje uporabnike na ta URL, da spremenijo geslo.
       Če želite, da <ph name="PRODUCT_NAME" /> pravilno zajame prstni odtis novega gesla na tej strani za spreminjanje gesla, poskrbite, da je stran za spremembo gesla skladna s smernicami na naslovu https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3489,6 +3962,26 @@
 <translation id="8833109046074170275">Preverjanje pristnosti prek običajne prijave GAIA</translation>
 <translation id="8838303810937202360"><ph name="PRODUCT_OS_NAME" /> predpomni aplikacije in razširitve za namestitev za več uporabnikov posamezne naprave, tako jih ni treba prenašati znova za posameznega uporabnika.
       Če ta pravilnik ni nastavljen ali je vrednost nižja od 1 MB, bo sistem <ph name="PRODUCT_OS_NAME" /> uporabil privzeto velikost predpomnilnika.</translation>
+<translation id="8851325571441692315">Omogoča izbiro strežnika proxy, ki naj ga uporablja <ph name="PRODUCT_NAME" /> in uporabnikom prepreči spreminjanje nastavitev strežnika proxy.
+
+          Ta pravilnik ima vpliv samo, če pravilnik <ph name="PROXY_SETTINGS_POLICY_NAME" /> ni določen.
+
+          Če izberete, da se strežnik proxy nikoli ne uporablja in se vedno vzpostavi neposredna povezava, so vse druge možnosti prezrte.
+
+          Če izberete sistemske nastavitve strežnika proxy, so vse druge možnosti prezrte.
+
+          Če izberete samodejno zaznavanje strežnika proxy, so vse druge možnosti prezrte.
+
+          Če izberete fiksni način strežnika proxy, lahko v možnostih »Naslov ali URL strežnika proxy« in »Seznam pravil za obvod strežnika proxy, ločenih z vejicami« izberete dodatne nastavitve. Za aplikacije ARC je na voljo samo strežnik proxy HTTP z največjo prednostjo.
+
+          Če za strežnik proxy izberete uporabo skripta .pac, morate v možnosti »URL datoteke .pac za strežnik proxy« navesti URL skripta.
+
+          Podrobne primere si lahko ogledate tukaj:
+          <ph name="PROXY_HELP_URL" />.
+
+          Če omogočite to nastavitev, <ph name="PRODUCT_NAME" /> in aplikacije ARC prezrejo vse možnosti, povezane s strežnikom proxy, navedene v ukazni vrstici.
+
+          Če ta pravilnik ni nastavljen, lahko uporabniki sami izberejo nastavitve strežnika proxy.</translation>
 <translation id="8858642179038618439">Vsiljenje varnega načina v YouTubu</translation>
 <translation id="8860342862142842017">Onemogoči uveljavljanje preglednosti potrdila za seznam zgoščevalnih vrednosti subjectPublicKeyInfo</translation>
 <translation id="8864975621965365890">Ne prikaže poziva za preklop, ki se prikaže, ko se spletno mesto upodablja z <ph name="PRODUCT_FRAME_NAME" />.</translation>
@@ -3578,7 +4071,47 @@
 <translation id="8976248126101463034">Dovoli preverjanje pristnosti »gnubby« za gostitelje za oddaljeni dostop</translation>
 <translation id="8976531594979650914">Uporaba sistemsko privzetega tiskalnika kot privzeti tiskalnik</translation>
 <translation id="8992176907758534924">Nobenemu spletnemu mestu ne dovoli prikaza slik</translation>
+<translation id="9013875414788074110"><ph name="PRODUCT_OS_NAME" /> lahko pri prijavi preverja pristnost v strežniku (če je na voljo internetna povezava) ali z uporabo predpomnjenega gesla (brez internetne povezave).
+
+      Če je ta pravilnik nastavljen na vrednost –1, lahko uporabnik neomejeno potrjuje svojo pristnost brez internetne povezave. Če je pravilnik nastavljen na katero koli drugo vrednost, ta določa časovno obdobje po zadnjem preverjanju pristnosti prek interneta, po katerem se bo moral uporabnik znova prijaviti s preverjanjem pristnosti prek interneta.
+
+      Če tega pravilnika ne nastavite, bo <ph name="PRODUCT_OS_NAME" /> uporabil privzeto časovno omejitev 14 dni, po kateri se bo moral uporabnik ponovno prijaviti s preverjanjem pristnosti prek interneta.
+
+      Ta pravilnik vpliva samo na uporabnike, katerih pristnost je bila preverjena s SAML-jem.
+
+      Vrednost za pravilnik mora biti izražena v sekundah.</translation>
+<translation id="9027787254195333560">S tem pravilnikom lahko nastavite sliko avatarja, ki na zaslonu za prijavo predstavlja uporabnika. Pravilnik se nastavi z določitvijo URL-ja, s katerega lahko operacijski sistem <ph name="PRODUCT_OS_NAME" />prenese sliko za avatar in kriptografsko zgoščeno vrednost za preverjanje celovitosti prenosa. Slika mora biti v obliki JPEG in njena velikost ne sme presegati 512 KB. URL mora biti dostopen brez preverjanja pristnosti.
+
+      Slika za avatar se prenese in shrani v predpomnilnik. Če se spremeni URL ali zgoščena vrednost, se znova prenese.
+
+      Pravilnik mora biti naveden kot niz, ki izraža URL in zgoščeno vrednost v obliki JSON, skladno s to shemo:
+      {
+        "type": "object",
+        "properties": {
+          "url": {
+            "description": "URL, s katerega se lahko prenese slika za avatar.",
+            "type": "string"
+          },
+          "hash": {
+            "description": "Zgoščena vrednost SHA-256 slike za avatar.",
+            "type": "string"
+          }
+        }
+      }
+
+      Če je ta pravilnik nastavljen, <ph name="PRODUCT_OS_NAME" /> prenese in uporabi sliko za avatar.
+
+      Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.
+
+      Če tega pravilnika ne nastavite, lahko uporabnik izbere sliko za avatar, ki ga predstavlja na zaslonu za prijavo.</translation>
 <translation id="9035964157729712237">ID-ji razširitev, ki naj bodo izvzete s seznama prepovedanih</translation>
+<translation id="9039822628127365650">Če je ta pravilnik nastavljen, določa dolžino časa, po katerem je uporabnik samodejno odjavljen, seja pa se konča. Uporabnik je obveščen o preostalem času s časovnikom, prikazanem v sistemski vrstici.
+
+      Če ta pravilnik ni nastavljen, dolžina seje ni omejena.
+
+      Če nastavite ta pravilnik, ga uporabniki ne morejo spremeniti ali preglasiti.
+
+      Vrednost pravilnika mora biti navedena v milisekundah. Vrednosti so v obsegu od 30 sekund do 24 ur.</translation>
 <translation id="9042911395677044526">Omogoča pošiljanje omrežne konfiguracije, ki se uporablja glede na uporabnika, v napravo s sistemom <ph name="PRODUCT_OS_NAME" />. Omrežna konfiguracija je niz v obliki zapisa JSON, kot je določeno z obliko konfiguracije odprtega omrežja, opisane na <ph name="ONC_SPEC_URL" /></translation>
 <translation id="906631898352326790">
       Če je pravilnik omogočen, se bo vsak naveden izvor s
@@ -3592,6 +4125,15 @@
 
       OPOMBA: Ta pravilnik se ne uporablja v sistemu Android. Če želite omogočiti pravilnik IsolateOrigins v Androidu, uporabite nastavitev pravilnika IsolateOriginsAndroid.
       </translation>
+<translation id="9072600218500597787">Konfigurira zahtevana imena domen gostiteljev, ki bodo veljala za gostitelje oddaljenega dostopa, in prepreči uporabnikom njihovo spreminjanje.
+
+          Če je ta nastavitev omogočena, se lahko gostitelji delijo samo z računi, registrirani v enem od določenih imen domene.
+
+          Če je ta nastavitev onemogočena ali ni nastavljena, se lahko gostitelji delijo s poljubnim računom.
+
+          Ta nastavitev preglasi pravilnik RemoteAccessHostDomain, če je na voljo.
+
+          Glejte tudi RemoteAccessHostClientDomainList.</translation>
 <translation id="9077227880520270584">Časovnik za samodejno prijavo lokalnega računa v napravi</translation>
 <translation id="9084985621503260744">Navedite, ali videodejavnost vpliva na upravljanje napajanja</translation>
 <translation id="9088433379343318874">Omogočanje ponudnika vsebine za zaščitene uporabnike</translation>
@@ -3600,6 +4142,30 @@
           Podprto v brskalniku <ph name="PRODUCT_OS_NAME" /> različice 70 in novejših. Pri starejših odjemalcih ta vrednost pomeni, da je povrnitev onemogočena.</translation>
 <translation id="9096086085182305205">Seznam dovoljenih strežnikov za preverjanje pristnosti</translation>
 <translation id="9098553063150791878">Pravilniki za preverjanje pristnosti HTTP</translation>
+<translation id="9103061223348895346">Ta pravilnik nadzira različne nastavitve za strategijo upravljanja energije, ko uporabnik postane nedejaven.
+
+          Obstajajo štiri vrste dejanj:
+          * Če je uporabnik nedejaven toliko časa, kot določa |ScreenDim|, se zaslon zatemni.
+          * Če je uporabnik nedejaven toliko časa, kot določa |ScreenOff|, se zaslon izklopi.
+          * Če je uporabnik nedejaven toliko časa, kot določa |IdleWarning|, se prikaže opozorilno pogovorno okno, ki uporabnika obvesti, da se bo izvedlo dejanje zaradi nedejavnosti.
+          * Če je uporabnik nedejaven toliko časa, kot določa |Idle|, se bo izvedlo dejanje, ki ga določa |IdleAction|.
+
+          Za vsako od navedenih dejanj mora biti zakasnitev navedena v milisekundah, ustrezno dejanje pa se bo sprožilo samo, če je nastavljena vrednost, večja od nič. Če je zakasnitev nastavljena na nič, <ph name="PRODUCT_OS_NAME" /> ne bo izvedel ustreznega dejanja.
+
+          Če za navedene zakasnitve trajanje ni določeno, bo uporabljena privzeta vrednost.
+
+          Upoštevajte, da morajo biti vrednosti za |ScreenDim| manjše ali enake kot vrednosti za |ScreenOff|, vrednosti za |ScreenOff| in |IdleWarning| pa manjše ali enake kot za |Idle|.
+
+          |IdleAction| je lahko eno od štirih dejanj:
+          * |Suspend| (prekinitev)
+          * |Logout| (odjava)
+          * |Shutdown| (zaustavitev)
+          * |DoNothing| (ne naredi ničesar)
+
+          Če vrednost za |IdleAction| ni nastavljena, se bo izvedlo privzeto dejanje, ki je prekinitev.
+
+          Obstajajo tudi ločene nastavitve za napajanje iz električnega omrežja in akumulatorja.
+          </translation>
 <translation id="9105265795073104888">Aplikacijam za Android je dan na voljo samo podnabor nastavitev strežnika proxy. Aplikacije za Android se lahko prostovoljno odločijo, da bodo uporabljale strežnik proxy. V to jih ni mogoče prisiliti.</translation>
 <translation id="9106865192244721694">Omogočanje WebUSB-ja na teh spletnih mestih</translation>
 <translation id="9112727953998243860">Datoteka s konfiguracijami tiskalnikov v podjetjih</translation>
@@ -3647,6 +4213,7 @@
 
           Če ta pravilnik ni nastavljen, je uporabljeno »3« in uporabnik lahko to spremeni.</translation>
 <translation id="9167719789236691545">Onemogoči Google Drive v aplikaciji Datoteke za <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="9185107612228451403">Konfigurira pravilnike, povezane z razširitvami. Uporabnik ne sme namestiti razširitev s seznama blokiranih, razen če so na seznamu dovoljenih. Lahko tudi vsilite brskalniku <ph name="PRODUCT_NAME" />, da samodejno namesti razširitve, tako da jih navedete v pravilniku <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Razširitve, za katere vsilite namestitev, so nameščene ne glede na to, ali so navedene na seznamu blokiranih.</translation>
 <translation id="9187743794267626640">Onemogoči vpenjanje zunanjega pomnilnika</translation>
 <translation id="9197740283131855199">Odstotek prilagoditve zakasnitve zatemnitve zaslona, če je uporabnik dejaven po zatemnitvi</translation>
 <translation id="9200828125069750521">Parametri za slikovni URL, ki uporablja POST</translation>
@@ -3678,8 +4245,22 @@
 <translation id="9217154963008402249">Pogostost omrežnih paketov za spremljanje</translation>
 <translation id="922540222991413931">Konfiguriranje virov za namestitev razširitev, aplikacij in uporabniških skriptov</translation>
 <translation id="924557436754151212">Uvoz shranjenih gesel privzetega brskalnika pri prvem zagonu</translation>
+<translation id="926146562923985266">Ta pravilnik nadzira ukaz za odpiranje URL-jev v brskalniku <ph name="PRODUCT_NAME" /> pri preklopu iz Internet Explorerja.
+
+      Če dodatek za Internet Explorer »Podpora za starejše brskalnike« ni nameščen, ta pravilnik nima vpliva.
+
+      Če ta pravilnik ni nastavljen, Internet Explorer pri zagonu brskalnika <ph name="PRODUCT_NAME" /> iz Internet Explorerja samodejno zazna pot do izvedljive datoteke brskalnika <ph name="PRODUCT_NAME" />.
+
+      Če je ta pravilnik nastavljen, se uporablja za zagon brskalnika <ph name="PRODUCT_NAME" /> pri zagonu brskalnika <ph name="PRODUCT_NAME" /> iz Internet Explorerja.
+
+      Ta pravilnik je mogoče nastaviti na pot do izvedljive datoteke ali na ${chrome} za samodejno zaznavanje Chromove lokacije za namestitev.</translation>
 <translation id="930930237275114205">Nastavi imenik uporabniških podatkov za <ph name="PRODUCT_FRAME_NAME" /></translation>
+<translation id="943865157632139008">Omogoča nastavitev privzetega upodabljalnika HTML-ja, ko je nameščen <ph name="PRODUCT_FRAME_NAME" />.
+          Privzeta nastavitev je, da upodabljanje izvaja gostiteljski brskalnik, vendar lahko to preglasite in določite, da <ph name="PRODUCT_FRAME_NAME" /> privzeto upodablja strani HTML.</translation>
 <translation id="944817693306670849">Nastavitev velikosti predpomnilnika</translation>
+<translation id="966854160628341653">Nadzira, ali <ph name="PRODUCT_OS_NAME" /> omogoča ustvarjanje novih uporabniških računov. Če je ta pravilnik onemogočen, se uporabniki, ki še nimajo računa, ne morejo prijaviti.
+
+      Če je pravilnik omogočen ali ni nastavljen, je mogoče ustvariti nove uporabniške račune, če <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> uporabniku ne preprečuje prijave.</translation>
 <translation id="981346395360763138">Googlove lokacijske storitve so onemogočene</translation>
 <translation id="982497069985795632">Omogočanje preverjanja črkovanja</translation>
 <translation id="991560005425213776">Pošiljanje uporabniškega imena in imena datoteke izvornim tiskalnikom</translation>
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb
index ce7a2cb..dfa9936 100644
--- a/components/policy/resources/policy_templates_sv.xtb
+++ b/components/policy/resources/policy_templates_sv.xtb
@@ -54,6 +54,7 @@
 <translation id="1062011392452772310">Aktivera fjärrattestering för enheten</translation>
 <translation id="1062407476771304334">Ersätt</translation>
 <translation id="1079801999187584280">Tillåt inte använding av Utvecklarverktyg</translation>
+<translation id="1087437665304381368">Den här principen gäller endast utvecklarläget i <ph name="PRODUCT_OS_NAME" />. Om du vill förhindra åtkomst till Androids utvecklaralternativ måste du använda principen <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" />.</translation>
 <translation id="1093082332347834239">Om inställningen är aktiverad körs fjärrhjälpsvärden i en process med behörigheter för <ph name="UIACCESS_PERMISSION_NAME" />. Det innebär att fjärranvändare kan interagera med fönster som öppnats med högre behörighet på den lokala användarens dator.
 
           Om inställningen är inaktiverad eller inte konfigurerad körs fjärrhjälpsvärden i användarens kontext och fjärranvändare kan inte interagera med fönster som öppnats med högre behörighet på datorn.</translation>
@@ -86,6 +87,14 @@
       Om principen inte ställs in kan cachelagrade grupprincipobjekt återanvändas i 25 timmar.
 
       Om principen ställs in på 0 inaktiveras cachelagring av grupprincipobjekt. Observera att detta ökar belastningen på servern eftersom grupprincipobjekt laddas ned igen vid varje principhämtning även om de inte har ändrats.</translation>
+<translation id="1117462881884985156"><ph name="PRODUCT_NAME" /> förbigår proxyservrar för listan över värdenheter som anges här.
+
+          Den här principen används bara om du har valt manuella proxyinställningar i Välj hur inställningar för proxyserver ska anges och om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> inte har ställts in.
+
+          Ange inte den här principen om du har valt något annat läge för inställning av proxyprinciper.
+
+          Mer ingående exempel hittar du på:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Protokollhanterarna som ställs in via den här principen används inte för intent i Android.</translation>
 <translation id="1118093128235245168">Tillåt att webbplatser begär åtkomst till en ansluten USB-enhet</translation>
 <translation id="1128903365609589950">Konfigurerar den katalog som <ph name="PRODUCT_NAME" /> ska använda för att lagra cachade filer på hårddisken.
@@ -130,6 +139,10 @@
           Om principen lämnas utan inställning används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas från principen DefaultImagesSetting om den har ställts in och från användarens egna inställningar i annat fall.
 
           Observera att den här principen felaktigt var aktiverad för Android tidigare, men funktionen har aldrig stötts fullt ut på Android.</translation>
+<translation id="1194005076170619046">Om principen aktiveras visas en stor röd utloggningsknapp i systemfältet medan en session är aktiv och skärmen inte är låst.
+
+      Om principen inaktiveras eller inte används visas ingen stor röd utloggningsknapp i systemfältet.</translation>
+<translation id="1197437816436565375">Det går inte att göra det obligatoriskt för Android-appar att ansluta via en proxy. Android-appar har tillgång till ett urval av proxyinställningarna och kan men måste inte följa dem. I principen <ph name="PROXY_MODE_POLICY_NAME" /> finns mer information.</translation>
 <translation id="1198465924256827162">Hur ofta information om enhetsstatus laddas upp, uttryckt i millisekunder.
 
       Om inget värde anges för principen är standardfrekvensen 3 timmar. Den kortaste
@@ -171,6 +184,13 @@
 <translation id="1327466551276625742">Aktivera uppmaning att konfigurera nätverk om enheten är offline</translation>
 <translation id="1330145147221172764">Aktivera skärmtangentbordet</translation>
 <translation id="13356285923490863">Policynamn</translation>
+<translation id="1347198119056266798">Den här principen är utfasad. Använd <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> och <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> i stället. Den här principen ignoreras om någon av principerna <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> eller <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> (utfasad) är inställda.
+
+      Sökfrågor i Googles webbsökning görs obligatoriskt med SafeSearch aktiverat och användarna förhindras att ändra inställningen. Med den här inställningen blir även Begränsat läge obligatoriskt på YouTube.
+
+      Om du aktiverar den här inställningen är SafeSearch i Google Sök och Begränsat lägre på YouTube alltid aktiva.
+
+      Om du inaktiverar den här inställningen eller inte anger ett värde är SafeSearch på Google Sök och Begränsat läge på YouTube inte obligatoriska.</translation>
 <translation id="1352174694615491349">Den här principen innebär att HTTP/2-anslutningar kombineras när klientcertifikat används. För att kunna kombineras måste värdnamnet för den potentiella nya anslutningen och värdnamnet för en befintlig anslutning stämma överens med ett eller flera mönster som beskrivs i den här principen. Principen är en lista över värdar i filterformatet URLBlacklist: example.com stämmer överens med example.com och alla underdomäner (t. ex. sub.example.com) medan .example.net stämmer exakt överens med example.net.
 
       Kombinationsförfrågningar till olika värdar via anslutningar som använder klientcertifikat kan skapa säkerhets- och sekretessproblem eftersom den befintliga auktoriteten förmedlas till alla förfrågningar även om användaren inte uttryckligen auktoriserade detta. Den här principen är tillfällig och tas bort i en framtida version. Se https://crbug.com/855690.
@@ -178,6 +198,11 @@
       Om den här principen inte anges används standardbeteendet att inte tillåta någon kombinering av HTTP/2-anslutningar för anslutningar som använder klientcertifikat.</translation>
 <translation id="1353966721814789986">Startsidor</translation>
 <translation id="1354424209129232709">Högst:</translation>
+<translation id="1354452738176731363">När principen är inställd på falskt inaktiveras ljudutgångar på enheten när användaren är inloggad.
+
+      Principen påverkar alla typer av ljudutgångar och inte bara de inbyggda högtalarna. Även åtkomst till tillgänglighetsfunktioner med ljud nekas av den här principen. Aktivera inte den här principen om användaren måste använda ett skrämläsningsprogram.
+
+      Om inställningen är inställd på sant eller inte är konfigurerad kan användare använda alla ljudutgångar som stöds på enheten.</translation>
 <translation id="1359553908012294236">Om den här principen är inställd på sant, eller om den inte är konfigurerad, aktiveras gästinloggning i <ph name="PRODUCT_NAME" />. Gästinloggningar är profiler i <ph name="PRODUCT_NAME" /> där alla fönster öppnas i inkognitoläge.
 
       Om principen är inställd på falskt tillåts ingen användning av gästprofiler i <ph name="PRODUCT_NAME" />.</translation>
@@ -222,12 +247,37 @@
       Mer information om säker webbsökning finns på https://developers.google.com/safe-browsing.
 
       Den här principen är bara tillgänglig i Windows-instanser som är kopplade till en <ph name="MS_AD_NAME" />-domän, eller i Windows 10 Pro- eller Enterprise-instanser som är registrerade i enhetshantering.</translation>
+<translation id="1432194160771348078">
+      Anger en lista över appar som installeras obemärkt på inloggningsskärmen,
+      utan att användaren gör något, och som inte kan avinstalleras.
+      Alla behörigheter som begärs beviljas automatiskt, utan att användaren
+      behöver göra något. Det gäller även ytterligare behörigheter som begärs i
+      framtida versioner av appen.
+
+      Observera att tillägg inte får installeras med den här principen av säkerhets- och sekretesskäl. Dessutom installerar enheter på den stabila kanalen endast de appar som finns på vitlistan som hör till <ph name="PRODUCT_NAME" />. Alla objekt som inte uppfyller dessa villkor ignoreras.
+
+      Om en app som tidigare har tvångsinstallerats tas bort från listan avinstalleras den automatiskt av <ph name="PRODUCT_NAME" />.
+
+      Varje post i principen är en sträng som innehåller ett tilläggs-id och en uppdateringsadress avgränsade med semikolon (<ph name="SEMICOLON" />). Ett tilläggs-id är sträng med 32 bokstäver, till exempel den som finns på <ph name="CHROME_EXTENSIONS_LINK" /> i utvecklarläge. Uppdateringsadressen ska peka på ett XML-manifestdokument för uppdatering enligt beskrivningen på <ph name="LINK_TO_EXTENSION_DOC1" />. Observera att uppdateringsadressen som anges i den här principen bara används för den ursprungliga installationen. För senare uppdateringar av tillägget används den uppdateringsadress som anges i tilläggets manifest.
+
+      Exempel: <ph name="EXTENSION_POLICY_EXAMPLE" /> installerar appen <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> från standarduppdateringsadressen för Chrome Web Store. Mer information om att tillhandahålla tillägg finns på: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">Nätverkskonfiguration på enhetsnivå</translation>
 <translation id="1438739959477268107">Standardinställningar för nyckelgenerering</translation>
 <translation id="1454846751303307294">Policyn gör att du kan ställa in en lista med webbadressmönster som anger webbplatser som inte får köra JavaScript.
 
           Om policyn inte anges används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas från policyn DefaultJavaScriptSetting om den har ställts in. Annars används användarens personliga konfiguration.</translation>
 <translation id="1456822151187621582">Windows (<ph name="PRODUCT_OS_NAME" />-klienter):</translation>
+<translation id="1458547592473993238">Den här principen är utfasad. Använd <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> för att styra tillgängligheten av pluginprogrammet Flash och <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> för att styra huruvida det integrerade visningsprogrammet för PDF-filer ska användas för att öppna PDF-filer.
+
+      Anger en lista över pluginprogram som är inaktiverade i <ph name="PRODUCT_NAME" /> och hindrar användare från att ändra den här inställningen.
+
+      Jokertecknen * och ? kan användas för att matcha följder med vilka tecken som helst. * matchar ett godtyckligt antal tecken medan ? specificerar ett enda valfritt tecken, det vill säga matchar noll eller ett tecken. Undantagstecknet är \ så om du vill matcha just tecknen *, ?, eller \ placerar du tecknet \ framför dem.
+
+      Om du aktiverar den här inställningen används aldrig den angivna listan över pluginprogram i <ph name="PRODUCT_NAME" />. Pluginprogrammen markeras som inaktiverade under about:plugins och användare kan inte aktivera dem.
+
+      Observera att denna princip kan åsidosättas av EnabledPlugins och DisabledPluginsExceptions.
+
+      Om principen inte ställs in kan användarna använda alla pluginprogram som har installerats i systemet förutom hårdkodade, inkompatibla, inaktuella eller farliga pluginprogram.</translation>
 <translation id="1464848559468748897">Kontrollera användarbeteendet i en session med flera profiler på <ph name="PRODUCT_OS_NAME" />-enheter.
 
       Om MultiProfileUserBehaviorUnrestricted har angetts som policy kan användaren vara antingen en primär eller en sekundär användare i en session med flera profiler.
@@ -300,6 +350,13 @@
 <translation id="1599424828227887013">Aktivera webbplatsisolering för angivna ursprung på Android-enheter</translation>
 <translation id="1608755754295374538">Webbadresser som ska ges tillgång till ljudinspelningsenheter utan meddelande</translation>
 <translation id="1615221548356595305">TIllåt att HTTP/2-anslutningar kombineras för dessa värdar även när klientcertifikat används</translation>
+<translation id="1615855314789673708">Tillhandahåller en Wilco DTC-konfiguration (styrenhet för diagnostik och telemetri).
+
+      Den här principen tillåter att en Wilco DTC-konfiguration tillhandahålls som kan tillämpas om Wilco DTC är tillgänglig på den angivna enheten och tillåts i principen. Konfigurationens storlek för inte överstiga 1 MB (1 000 000 byte) och måste kodas i JSON. Wilco DTC ansvarar för dess hantering. Den kryptografiska hashen används för att verifiera nedladdningens integritet.
+
+      Konfigurationen laddas ned och cachelagras. Den laddas ned på nytt när webbadressen eller hashen ändras.
+
+      Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.</translation>
 <translation id="1617235075406854669">Aktivera borttagning av webb- och nedladdningshistorik</translation>
 <translation id="163200210584085447">Mönster på den här listan kommer att matchas mot den begärande
       webbadressens säkerhetsursprung. Om det blir en träff får adressen
@@ -307,6 +364,11 @@
       Om det inte blir någon träff nekas åtkomst automatiskt. Mönster
       med jokertecken får inte användas.</translation>
 <translation id="1634989431648355062">Tillåt pluginprogrammet för <ph name="FLASH_PLUGIN_NAME" /> på dessa webbplatser</translation>
+<translation id="1653229475925941921">Om den här principen har angetts bestämmer den vilken typ av skärmförstorare som är aktiverad. Skärmförstoraren inaktiveras om värdet på principen är Ingen.
+
+          Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.
+
+          Om den här principen inte anges är skärmförstoraren inaktiverad från start, men funktionen kan aktiveras av användaren när som helst.</translation>
 <translation id="1655229863189977773">Ange enhetens cachestorlek i byte</translation>
 <translation id="166427968280387991">Proxyserver</translation>
 <translation id="1668836044817793277">Anger om kioskappen som startas automatiskt utan fördröjning får styra vilken version av <ph name="PRODUCT_OS_NAME" /> som används.
@@ -432,6 +494,9 @@
       Om den här inställningen är aktiverad registrerar tjänsten för lösenordsskydd fingeravtryck för lösenord på dessa webbadresser för att identifiera återanvändning av lösenord.
       Om inställningen är inaktiverad eller inte inställd registrerar tjänsten för lösenordsskydd bara fingeravtryck för lösenord på https://accounts.google.com.
       Den här principen är bara tillgänglig i Windows-instanser som är kopplade till en <ph name="MS_AD_NAME" />-domän, eller i Windows 10 Pro- eller Enterprise-instanser som är registrerade i enhetshantering.</translation>
+<translation id="1914840757300882918">Om principen är inställd använder värden ett klientcertifikat med angivet utfärdar-CN vid autentisering gentemot RemoteAccessHostTokenValidationUrl. Om principen är inställd på värdet * kan du använda valfritt tillgängligt klientcertifikat.
+
+          Den här funktionen är för närvarande inaktiverad på serversidan.</translation>
 <translation id="1919802376548418720">Använd KDC-princip för att delegera uppgifter.</translation>
 <translation id="1920046221095339924">Tillåt hanterad session på enheten</translation>
 <translation id="1929709556673267855">Tillhandahåller skrivarkonfigurationer för företagsskrivare som kopplats till enheter.
@@ -478,6 +543,13 @@
 
       Om policyn är inställd på sant kommer <ph name="PRODUCT_OS_NAME" /> att försöka ladda ned betalningar med automatisk uppdatering via HTTP. Om policyn är inställd på falskt eller inte har angetts kommer HTTPS att användas för att ladda ned betalningar med automatisk uppdatering.</translation>
 <translation id="199764499252435679">Aktivera komponentuppdateringar i <ph name="PRODUCT_NAME" /></translation>
+<translation id="1997994951395619441">Ett bokmärkesfält visas i <ph name="PRODUCT_NAME" /> om du aktiverar den här inställningen.
+
+      Om du inaktiverar den här inställningen visas aldrig bokmärkesfältet för användarna.
+
+      Om du aktiverar eller inaktiverar inställningen kan användarna inte ändra eller åsidosätta den i <ph name="PRODUCT_NAME" />.
+
+      Om inställningen inte anges kan användaren välja om funktionen ska användas eller inte.</translation>
 <translation id="2006530844219044261">Energibesparing (DPMS)</translation>
 <translation id="2014757022750736514">Styr hur inloggningsskärmen där användarna loggar in fungerar. Inställningarna gäller bl.a. vem som får logga in, vilka slags konton som är tillåtna, vilka autentiseringsmetoder som ska användas och allmänna inställningar för tillgänglighet, inmatningsmetod och språkkod.</translation>
 <translation id="201557587962247231">Frekvens för antal uppladdningar av statusrapport för enhet</translation>
@@ -497,6 +569,7 @@
 
           När inställningen är inaktiverad får användaren inte överföra filer. När inställningen är aktiverad eller inte har angetts får användaren överföra filer.</translation>
 <translation id="2057317273526988987">Tillåt åtkomst till en lista med webbadresser</translation>
+<translation id="2061810934846663491">Konfigurera de obligatoriska domännamnen för fjärråtkomstvärdar</translation>
 <translation id="206623763829450685">Anger vilka scheman för HTTP-autentisering som stöds av <ph name="PRODUCT_NAME" />.
 
           Möjliga värden är basic, digest, ntlm och negotiate. Avgränsa värdena med komma.
@@ -543,6 +616,20 @@
       Om principen inte har ställts in används standardvärdet 0 grader.
       Användarna kan ändra det när som helst och standardvärdet tillämpas
       i så fall inte på nytt vid omstart.</translation>
+<translation id="2138449619211358657">Med den här principen kan <ph name="PRODUCT_OS_NAME" /> kringgå en proxyserver för autentisering av infångstportaler.
+
+      Den här principen gäller endast om en proxyserver har konfigurerats (till exempel via en princip, av användaren i chrome://settings eller via tillägg).
+
+      Om du aktiverar inställningen kommer autentiseringssidor för en infångstportal (dvs. alla webbsidor som startar från en inloggningssida för en infångstportal tills <ph name="PRODUCT_NAME" /> kan identifiera en internetanslutning) att visas i ett separat fönster och ignorera alla principinställningar och begränsningar för den aktuella användaren.
+
+      Om du inaktiverar inställningen eller inte anger den visas autentiseringssidor för infångstportaler på en (vanlig) ny flik i webbläsaren med den aktuella användarens proxyinställningar.</translation>
+<translation id="21394354835637379">Gör att du kan ange vilka webbadresser som får installera tillägg, appar och teman.
+
+          Från och med <ph name="PRODUCT_NAME" /> 21 blir det svårare att installera tillägg, appar och användarskript som inte kommer från Chrome Web Store. Tidigare kunde användare klicka på en länk till en *CRX-fil och sedan installera filen via <ph name="PRODUCT_NAME" /> efter att några varningar visats. Efter <ph name="PRODUCT_NAME" /> 21 måste sådana filer laddas ned och dras till inställningssidan i <ph name="PRODUCT_NAME" />. Med den här inställningen kan du göra det möjligt för särskilda webbadresser att använda det äldre och enklare installationsflödet.
+
+          Varje objekt i listan motsvarar en matchning i form av ett tillägg (se https://developer.chrome.com/extensions/match_patterns). Användarna kan enkelt installera objekt från alla webbadresser som matchar ett objekt i listan. Både *CRX-filens plats och sidan där objektet laddas ned (dvs. referenten) måste tillåtas enligt matchningsmönstren.
+
+          <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> har företräde framför den här principen. Det innebär att ett tillägg på den svarta listan inte installeras även om det sker från en webbplats på den här listan.</translation>
 <translation id="214901426630414675">Begränsa dubbelsidig utskrift</translation>
 <translation id="2149330464730004005">Aktivera färgutskrift</translation>
 <translation id="2156132677421487971">Konfigurera principer för <ph name="PRODUCT_NAME" />, en funktion med vars hjälp användare kan skicka innehåll på flikar, webbplatser och skrivbordet från webbläsaren till fjärrskärmar och ljudsystem.</translation>
@@ -582,6 +669,14 @@
 
       Den här principen används inte för kioskappar. Dessa migreras automatiskt. Om inget värde anges för principen fungerar enheten som om DisallowArc har valts.</translation>
 <translation id="2195032660890227692">Den här principen togs bort i <ph name="PRODUCT_NAME" /> 68 och ersattes av <ph name="ARC_BR_POLICY_NAME" />.</translation>
+<translation id="219720814106081560">Om principen är aktiverad eller inte konfigurerad (standard) tillfrågas användaren
+      om tillåtelse att spela in video, förutom i fråga om webbadresser som har
+      angetts i listan VideoCaptureAllowedUrls, som ges tillstånd automatiskt.
+
+      När principen är inaktiverad får användaren aldrig någon fråga och bara
+      de webbadresser som har angetts i VideoCaptureAllowedUrls kan spela in video.
+
+      Principen påverkar alla typer av videoingångar och inte bara den inbyggda kameran.</translation>
 <translation id="2201555246697292490">Konfigurera lista över tillåtna värdar för Native Messaging</translation>
 <translation id="2204753382813641270">Kontrollera hur hyllan döljs automatiskt</translation>
 <translation id="2208976000652006649">Parametrar för sökadress som använder POST</translation>
@@ -594,6 +689,11 @@
 <translation id="2240879329269430151">Gör att du kan ange om webbplatser får visa popup-fönster. Du kan tillåta popup-fönster för alla webbplatser eller blockera popup-fönster för alla webbplatser.
 
           Om du inte anger policyn används BlockPopups och inställningen kan ändras av användaren.</translation>
+<translation id="2255326053989409609">Om du aktiverar den här inställningen har webbsidor inte åtkomst till grafikprocessorn (GPU). Webbsidor kan mer specifikt inte använda WebGL API och pluginprogram kan inte använda Pepper 3D API.
+
+      Om du inaktiverar den här inställningen kan webbsidor tillåtas att använda WebGL API och pluginprogram att använda Pepper 3D API. Standardinställningarna i webbläsaren kan fortfarande kräva att kommandoradsargument skickas för att API:er ska kunna användas.
+
+      Om HardwareAccelerationModeEnabled är inställd på falskt ignoreras Disable3DAPIs och det motsvarar att Disable3DAPIs är inställd på sant.</translation>
 <translation id="2258126710006312594">Tillåt fjärranvändare att överföra filer till/från värden</translation>
 <translation id="2265214338421787313">Med den här principen kan administratören ange att en sida får visa popupfönster när den tas bort.
 
@@ -762,8 +862,12 @@
       Om du aktiverar eller inaktiverar inställningen kan användare inte ändra eller åsidosätta inställningen.
 
       Om policyn inte anges kommer proxyfunktionen för datakomprimering kommer användaren att kunna välja om han eller hon vill använda den.</translation>
+<translation id="257788512393330403">Lösenord krävs var sjätte timme</translation>
 <translation id="2587719089023392205">Gör <ph name="PRODUCT_NAME" /> till min standardwebbläsare</translation>
 <translation id="2592091433672667839">Inaktivitetstid innan skärmsläckaren visas på inloggningsskärmen i återförsäljarläge</translation>
+<translation id="2592162121850992309">Om den här principen är inställd på sant eller inte ställs in aktiveras maskinvaruacceleration om inte en viss funktion i grafikprocessorn är svartlistad.
+
+      Om principen är inställd på falskt inaktiveras maskinvaruacceleration.</translation>
 <translation id="2596260130957832043">Styr om NTLMv2 är aktiverat.
 
           Alla nyare versioner av Samba- och Windows-servrar har stöd för NTLMv2. Detta bör bara inaktiveras om det krävs för bakåtkompatibilitet eftersom det gör autentiseringen mindre säker.
@@ -791,6 +895,7 @@
 
           Om policyn inte har angetts används AskGeolocation och användaren kan ändra inställningen.</translation>
 <translation id="2647069081229792812">Aktivera eller inaktivera redigering av bokmärken</translation>
+<translation id="2649896281375932517">Låt användarna bestämma</translation>
 <translation id="2650049181907741121">Åtgärd som ska vidtas när användaren stänger locket</translation>
 <translation id="2655233147335439767">Principen anger webbadressen till sökmotorn som används för standardsökning. Webbadressen ska innehålla strängen <ph name="SEARCH_TERM_MARKER" />, som ersätts av användarens sökord när sökningen utförs.
 
@@ -819,6 +924,7 @@
 <translation id="268577405881275241">Aktivera proxyfunktionen för datakomprimering</translation>
 <translation id="2693108589792503178">Konfigurera webbadressen för ändring av lösenord.</translation>
 <translation id="2706708761587205154">Tillåt bara utskrift med PIN</translation>
+<translation id="2710534340210290498">Om principen är inställd på falskt kan användare inte låsa skärmen (utan endast logga ut från användarsessionen). Om principen är inställd på sant eller inte har angetts kan användare som har autentiserats med ett lösenord låsa skärmen.</translation>
 <translation id="2731627323327011390">Inaktivera användning av <ph name="PRODUCT_OS_NAME" />-certifikat för ARC-appar</translation>
 <translation id="2742843273354638707">Dölj appen Chrome Web Store och länken i sidfoten från den nya fliksidan och startprogrammet för <ph name="PRODUCT_OS_NAME" />.
 
@@ -888,6 +994,9 @@
           Om den här principen saknar inställning eller ställs in på falskt ignoreras KDC-policyn på plattformar som stöds och bara principen AuthNegotiateDelegateWhitelist följs.
 
           KDC-principen följs alltid i Windows.</translation>
+<translation id="283695852388224413">Om principen ställs in tillämpas den konfigurerade maxlängden för pinkoder. Ett värde på 0 eller lägre innebär att det inte finns någon maxlängd. I sådana fall kan användarna ange hur långa pinkoder som helst. Om inställningen har ett värde som är lägre än <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> men större än 0, är maxlängden samma som minimilängden.
+
+          Om ingen inställning görs för principen tillämpas ingen maxlängd.</translation>
 <translation id="2838830882081735096">Tillåt inte datamigrering och ARC</translation>
 <translation id="2839294585867804686">Inställningar för Network File Share</translation>
 <translation id="2840269525054388612">Anger vilka skrivare som får användas.
@@ -958,6 +1067,17 @@
       Om inget värde anges för principen används <ph name="PRINTERS_ALLOW_ALL" />.
       </translation>
 <translation id="2908277604670530363">Högsta antalet samtidiga anslutningar till proxyservern</translation>
+<translation id="2948463916588961959">Aktivera alltid språk för stavningskontroll. Okända språk i listan ignoreras.
+
+      När principen är aktiverad aktiveras stavningskontroll på de angivna språken, utöver de språk som användaren har aktiverat stavningskontroll för.
+
+      Om principen inte ställs in eller inaktiveras gäller användarens inställningar för stavningskontroll som de är.
+
+      Om principen SpellcheckEnabled har inaktiverats har den här principen ingen funktion.
+
+      Om ett språk är inkluderat i både den här principen och principen SpellcheckLanguageBlacklist har den här principen företräde och språket för stavningskontroll aktiveras.
+
+      För närvarande stöds följande språk: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="2952347049958405264">Begränsningar:</translation>
 <translation id="2956777931324644324">Den här policyn har gäller inte för version 36 och senare av <ph name="PRODUCT_NAME" />.
 
@@ -966,9 +1086,11 @@
       Inställningen används för att aktivera domänbundna TLS-certifikattillägg för testning. De experimentella inställningarna tas bort framöver.</translation>
 <translation id="2957506574938329824">Tillåt inte att webbplatser kan begära att få tillgång till Bluetooth-enheter via Web Bluetooth API</translation>
 <translation id="2957513448235202597">Kontotyp för autentisering av <ph name="HTTP_NEGOTIATE" /></translation>
+<translation id="2959469725686993410">Skicka alltid Wi-Fi-åtkomstpunkter till servern medan tidszon fastställs</translation>
 <translation id="2959898425599642200">Regler för proxybypass</translation>
 <translation id="2960128438010718932">Lanseringsschemat för att tillämpa en ny uppdatering</translation>
 <translation id="2960691910306063964">Aktivera eller inaktivera autentisering utan pinkod för fjärråtkomstvärdar</translation>
+<translation id="2972261849442778817">Fråga användaren om han eller hon vill migrera eller om migrering ska hoppas över och ARC inte tillåtas.</translation>
 <translation id="2976002782221275500">Anger efter hur lång tid utan åtgärd från användaren som skärmen ska dämpas när enheten drivs av batteriet.
 
           Om den här policyn är inställd på ett värde som är större än noll anger den efter hur lång tids inaktivitet som <ph name="PRODUCT_OS_NAME" /> dämpar skärmen.
@@ -978,12 +1100,25 @@
           Om den här policyn inte ställs in används en standardtid.
 
           Policyns värde anges i millisekunder. Värdena måste vara mindre än eller lika med skärmavstängningstiden (om den har ställts in) och inaktivitetstiden.</translation>
+<translation id="2977997796833930843">Observera att den här principen har fasats ut och kommer att tas bort.
+
+          Den här principen utgör ett alternativt värde för de mer specifika principerna <ph name="IDLE_ACTION_AC_POLICY_NAME" /> och <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" />. Om principen är inställd används dess värde om respektive mer specifika princip inte har angetts.
+
+          När den här principen inte har angetts påverkas inte de mer specifika principerna.</translation>
 <translation id="2987155890997901449">Aktivera ARC</translation>
 <translation id="2987227569419001736">Kontrollera användningen av Web Bluetooth API</translation>
 <translation id="3016255526521614822">Ange anteckningsappar som är tillåtna på låsskärmen i <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="3021562480854470924">Antalet återställningspunkter som tillåts</translation>
 <translation id="3023572080620427845">Webbadress till en XML-fil som innehåller webbadresser att läsa in i en alternativ webbläsare.</translation>
 <translation id="3030000825273123558">Aktivera statistikrapportering</translation>
+<translation id="3033660238345063904">Här kan du ange webbadressen till proxyservern.
+
+          Den här principen används bara om du har valt manuella proxyinställningar i Välj hur inställningar för proxyserver ska anges och om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> inte har ställts in.
+
+          Ange inte den här principen om du har valt något annat läge för inställning av proxyprinciper.
+
+          Du hittar fler alternativ och mer detaljerade exempel på:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="3034580675120919256">Policyn gör att du kan ange om webbplatser får köra JavaScript. Du kan tillåta JavaScript på alla webbplatser eller blockera JavaScript på alla webbplatser.
 
           Om policyn inte anges används AllowJavaScript och användaren kan ändra inställningen.</translation>
@@ -1042,10 +1177,18 @@
       Om principen är aktiverad eller inte inställd alls genomsöker Chrome Cleanup systemet efter oönskade program regelbundet. Om något upptäcks blir användaren tillfrågad om det ska tas bort. Det går att aktivera Chrome Cleanup manuellt från chrome://settings.
 
       Den här principen är bara tillgänglig i Windows-instanser som är kopplade till en <ph name="MS_AD_NAME" />-domän, eller i Windows 10 Pro- eller Enterprise-instanser som är registrerade i enhetshantering.</translation>
+<translation id="3152425128389603870">Gör enhetligt skrivbord tillgängligt och aktivera det som standard</translation>
 <translation id="3159375329008977062">Användaren kan exportera/importera Crostini-behållare via gränssnittet</translation>
 <translation id="3165808775394012744">Dessa principer finns med här för att göra dem lättare att ta bort.</translation>
 <translation id="316778957754360075">Den här inställningen finns inte med i version 29 av <ph name="PRODUCT_NAME" /> och senare. Det rekommenderade sättet att konfigurera tillägg/appsamlingar som värdlagras hos företaget är att ta med platsen där CRX-paketen finns på listan ExtensionInstallSources och infoga direkta nedladdningslänkar till paketen på en webbsida. Det går att skapa ett startprogram för den aktuella webbsidan med hjälp av principen ExtensionInstallForcelist.</translation>
 <translation id="3171369832001535378">Mall för enhetens värdnamn i nätverket</translation>
+<translation id="3172512016079904926">Gör att Native Messaging-värdar kan installeras på användarnivå.
+
+          Om inställningen är aktiverad tillåter <ph name="PRODUCT_NAME" /> Native Messaging-värdar som installerats på användarnivå.
+
+          Om inställningen är inaktiverad använder <ph name="PRODUCT_NAME" /> bara Native Messaging-värdar som installerats på systemnivå.
+
+          Om inställningen inte anges tillåter <ph name="PRODUCT_NAME" /> Native Messaging-värdar på användarnivå.</translation>
 <translation id="3185009703220253572">sedan version <ph name="SINCE_VERSION" /></translation>
 <translation id="3187220842205194486">Android-appar kan inte ges tillgång till företagsnycklar. Den här principen gäller inte dem.</translation>
 <translation id="3205825995289802549">Maximera det först visade fönstret första gången som webbläsaren körs</translation>
@@ -1142,6 +1285,13 @@
       Med inställningen Av eller om inget värde anges är begränsat läge på YouTube inte obligatoriskt i <ph name="PRODUCT_NAME" />. Däremot kan det fortfarande finnas externa principer, till exempel principer för YouTube, som gör begränsat läge obligatoriskt.</translation>
 <translation id="3428247105888806363">Aktivera nätverksförslag</translation>
 <translation id="3432863169147125747">Styr utskriftsinställningar.</translation>
+<translation id="3434932177006334880">Den här inställningen hette EnableWebBasedSignin före Chrome 42 och stöd för den tas bort helt i Chrome 43.
+
+      Den här inställningen är praktisk för företagskunder som använder SSO-lösningar som inte är kompatibla med det nya direktinloggningsflödet ännu.
+      Om du aktiverar den här inställningen används det gamla webbaserade inloggningsflödet.
+      Om du inaktiverar inställningen eller lämnar den utan ett värde används det nya direktinloggningsflödet som standard. Användarna kan fortfarande aktivera det gamla webbaserade inloggningsflödet med kommandoradsflaggan --enable-web-based-signin.
+
+      Inställningen är experimentell och kommer att tas bort i framtiden när alla SSO-inloggningsflöden stöds fullt ut vid direktinloggning.</translation>
 <translation id="3437924696598384725">Tillåt att användaren hanterar VPN-anslutningar</translation>
 <translation id="3459509316159669723">Skriva ut</translation>
 <translation id="3460784402832014830">Anger webbadressen som en sökmotor använder för att tillhandahålla en ny fliksida.
@@ -1161,6 +1311,12 @@
         Om principen används försöker <ph name="PRODUCT_NAME" /> registrera sig själv och tillämpa tillhörande molnprinciper på alla profiler.
 
         Värdet för principen är en registreringstoken som kan hämtas från Google Administratörskonsol.</translation>
+<translation id="3489247539215560634">Om den här inställningen är aktiverad kan användarna låta <ph name="PRODUCT_NAME" /> spara lösenord och ange dem automatiskt nästa gång de loggar in på en webbplats.
+
+          Om inställningen är inaktiverad kan användare inte spara nya lösenord, men de
+          kan fortfarande använda lösenord som har sparats vid tidigare tillfällen.
+
+          Om den här principen är aktiverad eller inaktiverad kan användarna varken ändra eller åsidosätta den i <ph name="PRODUCT_NAME" />. Om principen inte är inställd går det att spara lösenord (men användare kan stänga av detta).</translation>
 <translation id="3496296378755072552">Lösenordshanteraren</translation>
 <translation id="3500732098526756068">Låter dig styra vad som ska utlösa en varning från lösenordsskyddet. Lösenordsskyddet varnar användarna om de återanvänder ett skyddat lösenord på en webbplats som kan vara misstänkt.
 
@@ -1179,6 +1335,13 @@
           Policyn följs endast om policyn DefaultSearchProviderEnabled är aktiverad.</translation>
 <translation id="350797926066071931">Aktivera Översätt</translation>
 <translation id="3512226956150568738">Om klientmodellen hade stöd för ARC redan innan det blev nödvändigt att migrera till ext4 för att köra ARC och om principen ArcEnabled är inställd på sant fungerar det här alternativet som AskUser (värde 3). I alla andra fall (om enhetsmodellen inte hade stöd för ARC tidigare eller om principen ArcEnabled är inställd på falskt) är det här värdet likvärdigt med DisallowArc (värde 0).</translation>
+<translation id="3513655665999652754">Quirks-servern tillhandahåller maskinvaruspecifika konfigurationsfiler, t.ex.
+      ICC-bildskärmsprofiler som används för färgkalibrering av skärmen.
+
+      När principen är inställd på falskt försöker enheten inte kontakta
+      Quirks-servern för att ladda ned konfigurationsfiler.
+
+      Om principen är inställd på sant eller om den inte har konfigurerats kommer <ph name="PRODUCT_OS_NAME" /> automatiskt att kontakta Quirks-servern och ladda ned konfigurationsfiler (i mån av tillgång) och spara dem på enheten.  Sådana filer kan till exempel användas för att förbättra visningskvaliteten på anslutna skärmar.</translation>
 <translation id="3524204464536655762">Tillåt inte att någon webbplats begär åtkomst till USB-enheter via WebUSB API</translation>
 <translation id="3526752951628474302">Endast utskrift i svartvitt</translation>
 <translation id="3528000905991875314">Aktivera alternativa felsidor</translation>
@@ -1207,6 +1370,9 @@
       </translation>
 <translation id="3627678165642179114">Aktivera eller inaktivera webbtjänsten för stavningskontroll</translation>
 <translation id="3628480121685794414">Aktivera enkelsidig utskrift</translation>
+<translation id="3631099945620529777">När principen ställs in på falskt är knappen Avsluta aktivitet inaktiverad i Aktivitetshanteraren.
+
+      När principen ställs in sant eller inte har konfigurerats kan användaren avsluta aktiviteter i Aktivitetshanteraren.</translation>
 <translation id="3646859102161347133">Ange typen av skärmförstorare</translation>
 <translation id="3653237928288822292">Ikon för standardsökleverantör</translation>
 <translation id="3660510274595679517">
@@ -1221,6 +1387,7 @@
 <translation id="3709266154059827597">Konfigurera svartlista för tilläggsinstallation</translation>
 <translation id="3711895659073496551">Stäng av</translation>
 <translation id="3715569262675717862">Autentisering utifrån klientcertifikat</translation>
+<translation id="3734995764843493369">Lösenord krävs varje dag (24 timmar)</translation>
 <translation id="3736879847913515635">Gör att en person kan läggas till i användarhanteraren</translation>
 <translation id="3738723882663496016">Den här principen anger licensnyckeln för <ph name="PLUGIN_VM_NAME" /> på den här enheten.</translation>
 <translation id="3748900290998155147">Anger om processlås är tillåtna. Tillägg kan begära processlås via tilläggs-API:et för energibesparing och via ARC-appar.
@@ -1229,6 +1396,9 @@
 
           Om principen är inställd på falskt ignoreras begäran om processlås.</translation>
 <translation id="3750220015372671395">Blockera nyckelgenerering på dessa webbplatser</translation>
+<translation id="375266612405883748">Begränsar UDP-portintervallet som används av värden för fjärråtkomst på den här datorn
+
+          Om principen inte har angetts, eller om den har angetts som en tom sträng, får värden för fjärråtkomst använda vilken tillgänglig port som helst, såvida inte principen <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> har inaktiverats. I så fall används UDP-portar inom intervallet 12400–12409 av värden för fjärråtkomst.</translation>
 <translation id="3756011779061588474">Blockera utvecklarläget</translation>
 <translation id="3758089716224084329">Med den här principen kan du ange vilken proxyserver som används av <ph name="PRODUCT_NAME" /> och förhindra att användare ändrar sina proxyinställningar.
 
@@ -1305,6 +1475,8 @@
           Om svarta listan har värdet * betyder det att alla värdar för Native Messaging är otillåtna och att endast de som står med på vitlistan läses in.
 
           Som standard är alla värdar för Native Messaging tillåtna, men om alla sådana värdar har satts på svarta listan av en princip kan du åsidosätta den principen med hjälp av vitlistan.</translation>
+<translation id="3835692988507803626">Inaktivera alltid språk för stavningskontroll</translation>
+<translation id="3837424079837455272">Den här principen styr om det går att lägga till nya användare i <ph name="PRODUCT_OS_NAME" />. Den hindrar inte användarna från att logga in med andra Google-konton i Android. Om du vill förhindra detta ska du konfigurera den Android-specifika principen <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> som en del av <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="384743459174066962">Policyn gör att du kan ange en lista med webbadressmönster som anger webbplatser som inte får öppna popupfönster.
 
           Om policyn inte anges används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas från policyn DefaultPopupsSetting om den har angetts, eller från användarens personliga konfiguration om den inte har det.</translation>
@@ -1446,13 +1618,50 @@
           Policyns värde anges i millisekunder.</translation>
 <translation id="4105989332710272578">Inaktivera tillämpning av Certifikattransparens för en lista med webbadresser</translation>
 <translation id="4121350739760194865">Förhindra att appkampanjer visas på den nya fliksidan</translation>
+<translation id="4125606414556046117">Med den här principen kan du konfigurera bakgrundsbilden som visas på skrivbordet och på inloggningsskärmen för användaren. Principen anges genom att webbadressen som <ph name="PRODUCT_OS_NAME" /> kan ladda ned bakgrundsbilden från anges och att en kryptografisk hash används för att verifiera nedladdningens integritet. Bilden måste vara i JPEG-format och filstorleken får inte överskrida 16 MB. Det måste gå att komma åt webbadressen utan autentisering.
+
+      Bakgrundsbilden laddas ned och lagras i cacheminnet. Den laddas ned på nytt när webbadressen eller hashen ändras.
+
+      Principen ska anges som en sträng som anger webbadressen och hashen i JSON-format, enligt följande schema:
+      {
+        "typ": "objekt",
+        "egenskaper": {
+          "webbadress": {
+            "beskrivning": "Webbadressen som bakgrundsbilden kan laddas ned från.",
+            "typ": "sträng"
+          },
+          "hash": {
+            "beskrivning": "SHA-256-hashen för bakgrundsbilden.",
+            "typ": "sträng"
+          }
+        }
+      }
+
+      Om principen ställs in laddar <ph name="PRODUCT_OS_NAME" /> ned och använder bakgrundsbilden.
+
+      Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.
+
+      Om principen inte anges kan användaren välja en bild som ska visas på skrivbordet och på inloggningsskärmen.</translation>
 <translation id="412697421478384751">Tillåt att användare anger en osäker pinkod till låsskärmen</translation>
 <translation id="4138655880188755661">Tidsgräns</translation>
 <translation id="4150201353443180367">Skärm</translation>
 <translation id="4157003184375321727">Rapportera version av operativsystem och fast programvara</translation>
 <translation id="4157594634940419685">Tillåt åtkomst till lokala CUPS-skrivare</translation>
+<translation id="4163705126749612234">Konfigurerar vilket klientdomännamn som fjärråtkomstklienter måste använda och hindrar användare från att ändra det.
+
+          Om inställningen är aktiverad kan endast klienter från den angivna domänen ansluta till värden.
+
+          Om inställningen är inaktiverad eller inte angiven gäller standardprincipen för den här anslutningstypen. Vid fjärrhjälp kan klienter från alla domäner ansluta till värden; vid fjärråtkomst när som helst kan endast värdens ägare ansluta.
+
+          Den här inställningen åsidosätter RemoteAccessHostClientDomain.
+
+          Se även RemoteAccessHostDomainList.</translation>
 <translation id="4183229833636799228">Standardinställning för <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="4192388905594723944">Webbadress för validering av autentiseringstoken för fjärråtkomstklient</translation>
+<translation id="4197038214024763371">Om den här principen är aktiverad eller utan inställning är stavningskontroll tillgänglig för användaren.
+
+      Om principen har inaktiverats är stavningskontroll inte tillgänglig för användaren. Dessutom ignoreras principerna SpellcheckLanguage och SpellcheckLanguageBlacklist när den här principen är inaktiverad.
+      </translation>
 <translation id="4203389617541558220">Begränsa enhetens drifttid genom att schemalägga automatiska omstarter.
 
       När den här principen är aktiverad anger den hur länge enheten kan vara igång innan den startas om automatiskt.
@@ -1474,6 +1683,13 @@
 <translation id="423797045246308574">Policyn gör att du kan ange en lista med webbadressmönster som anger vilka webbplatser som inte får använda nyckelgenerering. Om ett webbadressmönster har policyn KeygenAllowedForUrls åsidosätts dessa undantag av policyn.
 
           Om policyn inte anges används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas antingen från policyn DefaultKeygenSetting om den har angetts, eller från användarens personliga konfiguration om den inte har det.</translation>
+<translation id="4238997902172035160">Konfigurerar katalogen där <ph name="PRODUCT_NAME" /> ska lagra roamingkopian av profilerna.
+
+      Om den här principen ställs in lagrar <ph name="PRODUCT_NAME" /> roamingkopian av profilerna i den angivna katalogen förutsatt att principen <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> har aktiverats. Om principen <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> har inaktiverats eller inte ställs in används inte värdet som har lagrats i principen.
+
+      På https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables finns en lista över de variabler som kan användas.
+
+      Om den här principen inte anges används standardroamingprofilens sökväg.</translation>
 <translation id="4239720644496144453">Cacheminnet används inte för Android-appar. Om flera användare installerar samma Android-app laddas den ned på nytt varje gång.</translation>
 <translation id="4243336580717651045">Aktivera insamling av anonymiserad data kopplad till webbadresser i <ph name="PRODUCT_NAME" /> och förhindra att användarna ändrar inställningen.
 
@@ -1528,6 +1744,9 @@
       Använd jokertecknet * för att matcha noll eller flera godtyckliga tecken. Som undantagstecken används \, så om du vill matcha de faktiska tecknen * eller \ skriver du ett \ framför dem.
 
       Om du inte anger den här principen är alla Google-konton synliga i <ph name="PRODUCT_NAME" />.</translation>
+<translation id="4360826270668210664">Om den här principen är inställd kräver fjärråtkomstvärden autentisering av klienter för att de ska kunna erhålla en autentiseringstoken från webbadressen och kunna ansluta. Måste användas i tillsammans med RemoteAccessHostTokenValidationUrl.
+
+          Den här funktionen är för närvarande inaktiverad på serversidan.</translation>
 <translation id="436581050240847513">Rapporteringsgränssnitt för nätverk med enheter</translation>
 <translation id="4372704773119750918">Tillåt inte att företagsanvändare ingår i multiprofiler (primärt eller sekundärt)</translation>
 <translation id="4377599627073874279">Tillåt att alla bilder visas på alla webbplatser</translation>
@@ -1537,6 +1756,9 @@
 <translation id="4408428864159735559">Lista med förkonfigurerade filresurser i nätverket.</translation>
 <translation id="4410236409016356088">Aktivera begränsning av bandbredden i nätverket</translation>
 <translation id="441217499641439905">Inaktivera Google Drive över mobilanslutningar i appen Filer i <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="4415603335307944578">Om principen är inställd på sant eller inte har konfigurerats visas välkomstsidan på nytt i webbläsaren när den startas för första gången efter en uppgradering av operativsystemet.
+
+      Om principen är inställd på falskt visas inte välkomstsidan på nytt i webbläsaren när den startas för första gången efter en uppgradering av operativsystemet.</translation>
 <translation id="4418726081189202489">Om principen är inställd på falskt förhindras att sökfrågor skickas från <ph name="PRODUCT_NAME" /> till en Google-server för att hämta en korrekt tidsstämpel. Dessa sökfrågor aktiveras om principen är inställd på sant eller inte inställd alls.</translation>
 <translation id="4423597592074154136">Ange proxyinställningar manuellt</translation>
 <translation id="4429220551923452215">Aktiverar eller inaktiverar genvägen Appar i bokmärkesfältet.
@@ -1622,11 +1844,25 @@
 <translation id="4557134566541205630">Webbadress för standardsökleverantören av ny fliksida</translation>
 <translation id="4567137030726189378">Tillåt användning av utvecklarverktygen</translation>
 <translation id="4578265298946081589">Starta inte om när användaren loggar ut.</translation>
+<translation id="4578912515887794133">Om den här inställningen är aktiverad jämför fjärråtkomstvärden namnet på den lokala användaren (som värden är kopplad till) med namnet på det Google-konto som registrerats som ägare till värden (dvs. andersandersson om värden ägs av Google-kontot andersandersson@example.com).  Fjärråtkomstvärden startar inte om namnet på ägaren till värden skiljer sig från namnet på den lokala användaren som värden är kopplad till.  Principen RemoteAccessHostMatchUsername ska användas tillsammans med RemoteAccessHostDomain så att Google-kontot som tillhör ägaren till värden kopplas till en viss domän (dvs. example.com).
+
+          Om den här inställningen är inaktiverad eller inte har angetts kan fjärråtkomstvärden kopplas till vilken lokal användare som helst.</translation>
 <translation id="4600786265870346112">Aktivera den stora markören</translation>
 <translation id="4604931264910482931">Konfigurera svarta listan för Native Messaging</translation>
 <translation id="4613508646038788144">Om principen är inställd på falskt är det tillåtet för programvara från tredje part att injicera körbar kod i Chrome-processer. Om principen har lämnats utan inställning eller ställts in på sant blockeras injicering av körbar kod i Chome-processer från tredjepartsprogram.</translation>
 <translation id="4617338332148204752">Hoppa över kontroll av metataggar i <ph name="PRODUCT_FRAME_NAME" /></translation>
 <translation id="4625915093043961294">Konfigurera vitlista för tilläggsinstallation</translation>
+<translation id="463224920692183755">Anger vilken åtgärd som ska vidtas när användarens hemkatalog skapades med ecryptfs-kryptering och måste flyttas över till ext4-kryptering.
+
+      Om principen ställs in på DisallowArc inaktiveras Android-appar för användaren och ingen migrering från ecryptfs-kryptering till ext4-kryptering utförs. Android-appar kan fortfarande köras när hemkatalogen har ext4-kryptering.
+
+      Om Migrate ställs in för principen migreras ecryptfs-krypterade hemkataloger automatiskt till ext4-kryptering vid inloggning utan att användaren tillfrågas.
+
+      Om Wipe ställs in för principen raderas ecryptfs-krypterade hemkataloger vid inloggning och nya ext4-krypterade hemkataloger skapas i stället. Varning! Åtgärden raderar lokal data för användaren.
+
+      Om AskUser ställs in för principen blir användare med ecryptfs-krypterade hemkataloger tillfrågade om du vill migrera dem.
+
+      Principen gäller inte användare av offentliga miljöer. Om principen inte ställs in utför enheten samma åtgärd som om DisallowArc valdes.</translation>
 <translation id="4632343302005518762">Tillåt att <ph name="PRODUCT_FRAME_NAME" /> hanterar innehållstyperna som anges</translation>
 <translation id="4632566332417930481">Tillåt inte användning av utvecklarverktygen i tillägg som har installerats via en företagsprincip. Tillåt användning av utvecklarverktygen i andra sammanhang.</translation>
 <translation id="4633786464238689684">Ändrar standardbeteendet för tangenter på den översta raden till funktionstangenter.
@@ -1737,15 +1973,54 @@
 <translation id="4986560318567565414">Sökväg till Chrome för att byta från den alternativa webbläsaren.</translation>
 <translation id="4988291787868618635">Åtgärd som ska vidtas när inaktivitetstiden har gått</translation>
 <translation id="4995548127349206948">Om autentisering med NTLMv2 har aktiverats eller inte</translation>
+<translation id="5030889661505907084">
+      Om den här principen är inställd på sant har molnprinciper företräde om de är i konflikt med plattformens principer.
+      Om den här principen är inställd på falskt eller inte är konfigurerad har plattformens principer företräde om de är i konflikt med molnprinciper.
+
+      Denna princip är endast tillgänglig som plattform.
+      </translation>
 <translation id="5047604665028708335">Tillåt åtkomst till webbplatser utanför innehållspaket</translation>
 <translation id="5052081091120171147">Om den här policyn är aktiverad gör den att webbhistoriken måste importeras från den nuvarande standardwebbläsaren. Den påverkar då även importfönstret.
 
       Om den är inaktiverad importeras ingen webbhistorik.
 
       Om den inte anges kan användaren få välja om import ska göras, eller så kan import göras automatiskt.</translation>
+<translation id="5055312535952606505">Konfigurerar proxyinställningarna för <ph name="PRODUCT_NAME" />. Dessa proxyinställningar blir också tillgängliga för ARC-appar.
+
+          Om du aktiverar inställningen ignorerar <ph name="PRODUCT_NAME" /> och ARC-appar alla proxyrelaterade alternativ som har angetts i kommandoraden.
+
+          Om den här principen inte anges kan användarna välja sina egna proxyinställningar.
+
+          Om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> är inställd åsidosätts alla följande principer: <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> och <ph name="PROXY_SERVER_MODE_POLICY_NAME" />.
+
+          I fältet <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> kan du ange vilken proxyserver som används av <ph name="PRODUCT_NAME" /> och förhindra att användarna ändrar proxyinställningarna.
+
+          Fältet <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> är en webbadress till en PAC-proxyfil.
+
+          Fältet <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> är en webbadress till proxyservern.
+
+          Fältet <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> är en lista över proxyvärdar som kringgås av <ph name="PRODUCT_NAME" />.
+
+          Fältet <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> har fasats ut till förmån för fältet ProxyMode. I det kan du ange vilken proxyserver som används av <ph name="PRODUCT_NAME" /> och förhindra att användarna ändrar proxyinställningarna.
+
+          Om du väljer värdet direct för ProxyMode används aldrig proxyservrar och alla andra fält ignoreras.
+
+          Om du väljer värdet system för ProxyMode används systemets proxy och alla andra fält ignoreras.
+
+          Om du väljer värdet auto_detect för ProxyMode ignoreras alla andra fält.
+
+          Om du väljer värdet fixed_server för ProxyMode används fälten ProxyServer och ProxyBypassList.
+
+          Om du väljer värdet pac_script för ProxyMode används fälten ProxyPacUrl och ProxyBypassList.</translation>
 <translation id="5056708224511062314">Skärmförstoraren är inaktiverad</translation>
 <translation id="5058573563327660283">Välj den strategi som används för att frigöra diskutrymme under automatisk rensning (utfasad)</translation>
 <translation id="5067143124345820993">Vitlista för användarinloggning</translation>
+<translation id="5075834892754086022">Om principen ställs in tillämpas den konfigurerade minimilängden för
+      pinkoder. (Det lägsta antalet siffror en pinkod för bestå av är 1. Alla värden lägre än 1
+          behandlas som 1.)
+
+          Om principen inte är inställd tillämpas en minimilängd på 6 siffror för
+          pinkoder. Detta är den rekommenderade minimilängden.</translation>
 <translation id="5076274878326940940">Aktiverar användning av en standardsökmotor.
 
           Om du aktiverar den här inställningen görs en standardsökning när användaren skriver text som inte är en webbadress i sökfältet.
@@ -1798,6 +2073,24 @@
       värdet är 30 sekunder och det högsta 24 timmar. Värden som är
       högre eller lägre än så ändras till det högsta eller lägsta tillåtna värdet.</translation>
 <translation id="5163002264923337812">Aktivera den gamla webbaserade inloggningen</translation>
+<translation id="5168529971295111207">Den här principen är utfasad. Använd ProxyMode i stället.
+
+          Med den här principen anger du vilken proxyserver som ska användas av <ph name="PRODUCT_NAME" /> och förhindrar att användarna ändrar proxyinställningarna.
+
+          Den här principen gäller endast om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> inte har angetts.
+
+          Om du väljer att aldrig använda en proxyserver och alltid ansluta direkt ignoreras alla andra alternativ.
+
+          Om du väljer att använda systemets proxyinställningar eller identifiera proxyserver automatiskt ignoreras alla andra alternativ.
+
+          Om du väljer manuella proxyinställningar kan du ange fler alternativ i Proxyserverns adress eller webbadress, Webbadress till en PAC-proxyfil och Kommaavgränsad lista med regler för proxybypass. ARC-appar kan bara använda den HTTP-proxyserver som har högst prioritet.
+
+          Mer detaljerade exempel finns på:
+          <ph name="PROXY_HELP_URL" />.
+
+          Om du aktiverar inställningen ignorerar <ph name="PRODUCT_NAME" /> alla proxyrelaterade alternativ som har angetts på kommandoraden.
+
+          Om den här principen inte anges kan användarna välja sina egna proxyinställningar.</translation>
 <translation id="5182055907976889880">Konfigurera Google Drive i <ph name="PRODUCT_OS_NAME" />.</translation>
 <translation id="5183383917553127163">Innebär att du kan ange vilka tillägg som inte omfattas av svartlistan.
 
@@ -1848,6 +2141,20 @@
 
       Principens värde anges i millisekunder.</translation>
 <translation id="523505283826916779">Inställningar för tillgänglighet</translation>
+<translation id="5236882091572996759">Om principen är inställd på sant eller inte alls inställd räknas det inte som att användaren är inaktiv så länge ljud spelas upp. Detta förhindrar att inaktivitetstiden uppnås och att någon åtgärd vidtas. Däremot utförs skärmdämpning, skärmavstängning och skärmlåsning efter den inställda tiden oberoende av ljudaktivitet.
+
+          Om principen är inställd på falskt förhindrar inte ljudaktivitet att användaren räknas som inaktiv.</translation>
+<translation id="5246700266104954355">Den här principen är utfasad. Använd <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> för att styra tillgängligheten av pluginprogrammet Flash och <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> för att styra huruvida det integrerade visningsprogrammet för PDF-filer ska användas för att öppna PDF-filer.
+
+      Anger en lista över pluginprogram som är aktiverade i <ph name="PRODUCT_NAME" /> och hindrar användare från att ändra den här inställningen.
+
+      Jokertecknen * och ? kan användas för att matcha följder med vilka tecken som helst. * matchar ett godtyckligt antal tecken medan ? specificerar ett enda valfritt tecken, det vill säga matchar noll eller ett tecken. Undantagstecknet är \ så om du vill matcha just tecknen *, ?, eller \ placerar du tecknet \ framför dem.
+
+      Den angivna listan över pluginprogram används alltid i <ph name="PRODUCT_NAME" /> om de är installerade. Pluginprogrammen markeras som aktiverade under about:plugins och användare kan inte inaktivera dem.
+
+      Observera att den princip åsidosätter både DisabledPlugins och DisabledPluginsExceptions.
+
+      Om principen inte ställs in kan användarna inaktivera alla pluginprogram som är installerade på systemet.</translation>
 <translation id="5247006254130721952">Blockera farliga nedladdningar</translation>
 <translation id="5248863213023520115">Anger krypteringstyper som tillåts vid Kerberos-begäranden från en <ph name="MS_AD_NAME" />-server.
 
@@ -1896,6 +2203,7 @@
 
       I annat fall kan den anges till värdena tls1.2 eller tls1.3. När ett värde har angetts används inte versioner av SSL/TLS som är tidigare än den angivna versionen av <ph name="PRODUCT_NAME" />. Ett värde som inte känns igen ignoreras.</translation>
 <translation id="5330684698007383292">Tillåt att <ph name="PRODUCT_FRAME_NAME" /> hanterar följande innehållstyper</translation>
+<translation id="5331746669335642668">Molnprincipen för <ph name="PRODUCT_NAME" /> åsidosätter plattformens princip.</translation>
 <translation id="5365476955714838841">Kommandoradsparametrar för den alternativa webbläsaren.</translation>
 <translation id="5365946944967967336">Visa hemknappen i verktygsfältet</translation>
 <translation id="5366745336748853475">Låter dig ange en lista med webbadressmönster som anger webbplatser för vilka ett klientcertifikat väljs automatiskt på inloggningsskärmen i den ram som står värd för SAML-flödet, om webbplatsen kräver ett certifikat. Ett möjligt användningsområde är att konfigurera ett certifikat för hela enheten som ska uppvisas för SAML-identitetsleverantören.
@@ -1936,6 +2244,14 @@
 <translation id="5405289061476885481">Konfigurerar vilka tangentbordslayouter som är tillåtna på inloggningsskärmen i <ph name="PRODUCT_OS_NAME" />.
 
       Om en lista med identifierare för inmatningsmetoder har angetts för principen blir de angivna inmatningsmetoderna tillgängliga på inloggningsskärmen. Den inmatningsmetod som anges först blir standardvärde. När fokus ligger på ett användarfält på inloggningsskärmen blir användarens äldsta inmatningsmetod tillgänglig förutom de inmatningsmetoder som angetts i principen. Om principen inte har ställts in styrs valet av inmatningsmetoder av vilken språkkod som används för inloggningsskärmen. Ogiltiga värden som inte identifierar någon inmatningsmetod ignoreras.</translation>
+<translation id="5412057811596122582">Om principen är aktiverad eller inte konfigurerad (standard) tillfrågas användaren
+      om tillåtelse att spela in ljud, förutom i fråga om webbadresser som har 
+      angetts i listan AudioCaptureAllowedUrls, som ges tillstånd automatiskt.
+
+      När principen är inaktiverad får användaren aldrig någon fråga och bara
+      de webbadresser som har angetts i AudioCaptureAllowedUrls kan spela in ljud.
+
+      Principen påverkar alla typer av ljudingångar och inte bara den inbyggda mikrofonen.</translation>
 <translation id="5422643441807528365">Licensnyckel för <ph name="PLUGIN_VM_NAME" /></translation>
 <translation id="5423001109873148185">Om den här policyn är aktiverad tvingar den sökmotorer att importeras från standardwebbläsaren. Policyn påverkar också dialogrutan för import.
 
@@ -1944,6 +2260,11 @@
       Om policyn inte är inställd kan användaren tillfrågas om importen ska göras eller inte, eller så kan importen göras automatiskt.</translation>
 <translation id="5423197884968724595">Begränsningsnamn för Android WebView:</translation>
 <translation id="5424147596523390018">Tillåt alla färginställningar</translation>
+<translation id="5437733496511628148">Om du aktiverar den här inställningen kan cookies inte sparas av webbsideelement som inte tillhör den domän som står i webbläsarens adressfält.
+
+      Om du inaktiverar inställningen kan cookies sparas av webbsideelement som inte tillhör den domän som står i webbläsarens adressfält och användarna kan inte ändra inställningen.
+
+      Om den här principen inte ställs in är funktionen aktiverad, men användaren kan ändra den.</translation>
 <translation id="5442026853063570579">Den här principen styr även åtkomsten till Androids utvecklaralternativ. Om DeveloperToolsDisallowed (värde 2) anges för principen kan användarna inte öppna utvecklaralternativen. Om ett annat värde anges eller värdet lämnas tomt kan användarna öppna utvecklaralternativen genom att trycka sju gånger på versionsnumret i appen Inställningar i Android.</translation>
 <translation id="544342220587994947">Med den här principen kan du ange en lista med webbadressmönster som anger för vilka webbplatser ett klientcertifikat ska väljas automatiskt i <ph name="PRODUCT_NAME" />, om webbplatsen kräver ett certifikat.
 
@@ -1971,6 +2292,19 @@
       Om reglerna motsäger varandra använder <ph name="PRODUCT_NAME" /> den mest specifika regeln.</translation>
 <translation id="5475361623548884387">Aktivera utskrift</translation>
 <translation id="547601067149622666">Tillåt inte annonser på webbplatser med påträngande annonser</translation>
+<translation id="5483777239978559943">Den här principen är utfasad. Använd <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" /> för att styra tillgängligheten av pluginprogrammet Flash och <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" /> för att styra huruvida det integrerade visningsprogrammet för PDF-filer ska användas för att öppna PDF-filer.
+
+      Anger en lista över pluginprogram som användaren kan aktivera eller inaktivera i <ph name="PRODUCT_NAME" />.
+
+      Jokertecknen * och ? kan användas för att matcha följder med vilka tecken som helst. * matchar ett godtyckligt antal tecken medan ? specificerar ett enda valfritt tecken, det vill säga matchar noll eller ett tecken. Undantagstecknet är \ så om du vill matcha just tecknen *, ?, eller \ placerar du tecknet \ framför dem.
+
+      Om du aktiverar den här inställningen kan den angivna listan med pluginprogram användas i <ph name="PRODUCT_NAME" />. Användare kan aktivera eller inaktivera dem i about:plugins även om pluginprogrammet också matchar ett mönster i DisabledPlugins. Användare kan också aktivera och inaktivera plugin-program som inte matchar några fönster i DisabledPlugins, DisabledPluginsExceptions och EnabledPlugins.
+
+      Syftet med den här principen är att möjliggöra strikt svartlistning av pluginprogram om listan DisabledPlugins innehåller jokerposter som disable all plugins '*' eller disable all Java plugins *Java* men administratören vill aktivera en viss version som IcedTea Java 2.3. Den specifika versionen kan anges i den här principen.
+
+      Observera att både pluginprogrammets namn och grupp måste undantas. Varje plugingrupp visas i en separat del i about:plugins. Varje del kan innehålla ett eller flera pluginprogram. Pluginprogrammet Shockwave Flash tillhör gruppen Adobe Flash Player och båda namnen måste matcha något i undantagslistan om det pluginprogrammet ska undantas från svartlistan.
+
+      Om den här principen inte ställs in inaktiveras alla pluginprogram som matchar mönstren i DisabledPlugins och de kan inte aktiveras av användaren.</translation>
 <translation id="5499375345075963939">Policyn är endast aktiv i återförsäljarläge.
 
       När värdet för den här policyn är angiven och inte är 0 kommer den nuvarande inloggade demoanvändaren att loggas ut automatiskt när en viss tid av inaktivitet har gått.
@@ -2006,6 +2340,13 @@
       Om den inte anges ändras inte webbadressen för startvärdet för Variations.</translation>
 <translation id="5561811616825571914">Välj klientcertifikat automatiskt för dessa webbplatser på inloggningsskärmen</translation>
 <translation id="5566210228171064229">Tillåt utskrift både med och utan pinkod</translation>
+<translation id="556865034069957245">Den här principen styr helskärmsläget där alla användargränssnitt för <ph name="PRODUCT_NAME" /> döljs och endast webbinnehåll är synligt.
+
+      Om principen är inställd på sant eller inte konfigurerad kan användare, appar och tillägg med relevant behörighet välja helskärmsläget.
+
+      Om principen är inställd på falskt kan varken användare, appar eller tillägg välja helskärmsläget.
+
+      På alla plattformar förutom <ph name="PRODUCT_OS_NAME" /> är kioskläget inte tillgängligt när helskärmsläget är inaktiverat.</translation>
 <translation id="556941986578702361">Kontrollera hur <ph name="PRODUCT_OS_NAME" />-hyllan döljs automatiskt.
 
       Om policyn har angetts till AlwaysAutoHideShelf döljs alltid hyllan automatiskt.
@@ -2023,6 +2364,11 @@
 <translation id="5581292529942108810">Konfigurera principer som gäller tillägget Chrome Reporting Extension.
 
       Principen träder bara i kraft när tillägget <ph name="CHROME_REPORTING_EXTENSION_NAME" /> har aktiverats och enheten har registrerats med <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
+<translation id="5583806683960333345">Om den här inställningen är aktiverad kan användare använda direktinternetdelning, vilket innebär att de kan dela mobildata från Google-mobiler andra enheter.
+
+      Om den här inställningen inaktiveras kan användare inte använda direktinternetdelning.
+
+      Om principen inte ställs in är den som standard inaktiverad för företagshanterade användare men aktiverad för användare som inte hanteras.</translation>
 <translation id="5584132346604748282">Styr Googles platstjänster för Android</translation>
 <translation id="5586942249556966598">Gör ingenting</translation>
 <translation id="5590494712401018042">Anger den procentsats med vilken fördröjningen av skärmdämpningen ändras när enheten är i presentationsläge.
@@ -2048,6 +2394,19 @@
       OBS! Den här principen gäller bara Chrome på Android på enheter med mer än 1 GB RAM. Använd SitePerProcess om du vill tillämpa principen på andra plattformar än Android.
       </translation>
 <translation id="5599461642204007579">Inställningar för hantering med <ph name="MS_AD_NAME" /></translation>
+<translation id="5610104657949692379">Om den här principen är inställd anger den vilken åtgärd som ska vidtas av <ph name="PRODUCT_OS_NAME" /> om användaren är inaktiv så lång tid som anges av inaktivitetstiden, som ställs in separat.
+
+          Om principen inte ställs in vidtas standardåtgärden som är att enheten stängs av.
+
+          Om åtgärden är att enheten ska stängas av kan <ph name="PRODUCT_OS_NAME" /> konfigureras separat så att skärmen låses eller inte låses innan enheten stängs av.</translation>
+<translation id="5618398258385745432">Inställningen som hör ihop med den här principen användes innan vi införde systemet med att göra om autentiseringen efter att lösenorden visats. Sedan dess har inställningen – och därmed principen – inte haft någon inverkan på hur Chrome fungerar. Nu fungerar Chrome som om principen vore inställd på att inaktivera visning i klartext av lösenord på lösenordshanterarens inställningssida. Det innebär att det bara finns en platshållare på inställningssidan, och lösenordet visas bara i Chrome om användaren klickar på Visa (och gör om autentiseringen i tillämpliga fall). Den ursprungliga beskrivningen av principen följer nedan.
+
+          Styr om användaren kan visa lösenord i klartext i lösenordshanteraren.
+
+          Om du inaktiverar den här inställningen går det inte att visa sparade lösenord i klartext i lösenordshanteraren.
+
+          Om du aktiverar principen eller om den inte konfigureras kan användarnas lösenord visas i klartext i lösenordshanteraren.</translation>
+<translation id="5620392548325769024">Gör att välkomstsidan visas när webbläsaren startas för första gången efter en uppgradering av operativsystemet</translation>
 <translation id="5630352020869108293">Återställ den senaste sessionen</translation>
 <translation id="5645779841392247734">Tillåt cookies på dessa webbplatser</translation>
 <translation id="5689430183304951538">Standardinställning för pappersformat vid utskrift</translation>
@@ -2071,6 +2430,7 @@
       Om principen är inställd på sant eller lämnas utan inställning fungerar en hanterad gästsession som en så kallad hanterad session, vilket häver många av de begränsningar som gäller för vanliga offentliga sessioner.
 
       Om principen har ställts in kan användaren inte ändra eller åsidosätta den.</translation>
+<translation id="5708969689202733975">Konfigurera tillåtna snabbupplåsningslägen</translation>
 <translation id="572155275267014074">Android-inställningar</translation>
 <translation id="5722934961007828462">När den här inställningen är aktiverad kommer <ph name="PRODUCT_NAME" /> alltid att utföra kontroller för återkallning av servercertifikat som valideras och signeras av lokalt installerade CA-certifikat.
 
@@ -2079,6 +2439,11 @@
       Om ingen inställning görs för principen eller om den har värdet falskt använder <ph name="PRODUCT_NAME" /> de befintliga inställningarna för kontroller för återkallning online.</translation>
 <translation id="5728154254076636808">Aktivera framställningen av roamingkopior för profiluppgifterna för <ph name="PRODUCT_NAME" /></translation>
 <translation id="5732972008943405952">Importera formuläruppgifter för Autofyll från standardwebbläsaren första gången den körs</translation>
+<translation id="5741810844420698449">När den här principen är inställd anger den åtgärden som vidtas av <ph name="PRODUCT_OS_NAME" /> när användaren stänger enhetens lock.
+
+          Om principen inte ställs in vidtas standardåtgärden som är att enheten stängs av.
+
+          Om åtgärden är att enheten ska stängas av kan <ph name="PRODUCT_OS_NAME" /> konfigureras separat så att skärmen låses eller inte låses innan enheten stängs av.</translation>
 <translation id="5765780083710877561">Beskrivning:</translation>
 <translation id="5770738360657678870">Kanal för utvecklare (kan vara instabil)</translation>
 <translation id="5774856474228476867">Sökadress för standardsökleverantör</translation>
@@ -2274,6 +2639,7 @@
 <translation id="6111936128861357925">Tillåt påskäggsspelet med dinosaurier</translation>
 <translation id="6114416803310251055">föråldrad</translation>
 <translation id="6133088669883929098">Tillåt alla webbplatser att använda nyckelgenerering</translation>
+<translation id="6141402445226505817">Använd alltid ungefärlig tidszonsangivelse</translation>
 <translation id="6145799962557135888">Policyn gör att du kan ange en lista med webbadressmönster som anger webbplatser som får köra JavaScript.
 
           Om policyn inte anges används den globala standardpolicyn för alla webbplatser. Standardvärdet hämtas från policyn DefaultJavaScriptSetting om den har angetts eller användarens personliga konfiguration om den inte har det.</translation>
@@ -2313,6 +2679,15 @@
 <translation id="6155936611791017817">Ange standardläget för den stora markören på inloggningsskärmen</translation>
 <translation id="6157537876488211233">Kommaavgränsad lista med regler för proxybypass</translation>
 <translation id="6158324314836466367">Namn på företagets webbutik (föråldrat)</translation>
+<translation id="6158817306788002298">Här kan du ange en webbadress till en PAC-proxyfil.
+
+          Den här principen används bara om du har valt manuella proxyinställningar i Välj hur inställningar för proxyserver ska anges och om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> inte har ställts in.
+
+          Ange inte den här principen om du har valt något annat läge för inställning av proxyprinciper.
+
+          Mer detaljerade exempel finns på:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="6178075938488052838">Den här principen styr vem som kan starta en session i <ph name="PRODUCT_OS_NAME" />. Den hindrar inte användarna från att logga in med andra Google-konton i Android. Om du vill förhindra detta ska du konfigurera den Android-specifika principen <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> som en del av <ph name="ARC_POLICY_POLICY_NAME" />.</translation>
 <translation id="6181608880636987460">Låter dig ange en lista med webbadressmönster som definierar på vilka webbplatser pluginprogrammet för <ph name="FLASH_PLUGIN_NAME" /> inte får köras.
 
           Om den här principen inte anges används det globala standardvärdet för alla webbplatser. Värdet hämtas antingen från principen DefaultPluginsSetting, om den har ställts in, eller från användarens egna inställningar.</translation>
@@ -2351,6 +2726,17 @@
 <translation id="6281043242780654992">Konfigurerar principer för Native Messaging. Om en värd för Native Messaging står på svarta listan är den förbjuden såvida den inte står på vitlistan.</translation>
 <translation id="6282799760374509080">Tillåta eller neka ljudinspelning</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">Inaktivera alltid språk för stavningskontroll. Okända språk i listan ignoreras.
+
+      När principen är aktiverad inaktiveras stavningskontroll på de angivna språken. Användarna kan fortfarande aktivera eller inaktivera stavningskontroll på språk som inte finns i listan.
+
+      Om principen inte ställs in eller inaktiveras gäller användarens inställningar för stavningskontroll som de är.
+
+      Om principen SpellcheckEnabled har inaktiverats har den här principen ingen funktion.
+
+      Om ett språk är inkluderat i både den här principen och i principen SpellcheckLanguage, har principen SpellcheckLanguage företräde och språket för stavningskontroll aktiveras.
+
+      För närvarande stöds följande språk: af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">Aktivera autoslutför av domännamn vid användarinloggning</translation>
 <translation id="6315673513957120120">Chrome visar en varningssida när användare besöker webbplatser med SSL-fel. Som standardinställning eller om den här principen är inställd på sant ges användare möjligheten att klicka sig förbi dessa varningssidor.
       Om principen är inställd på falskt hindras användare från att klicka sig förbi varningssidor.</translation>
@@ -2400,6 +2786,8 @@
 <translation id="6449476513004303784">Tillåt inte användarna att hantera certifikat</translation>
 <translation id="645425387487868471">Aktivera tvingad inloggning för <ph name="PRODUCT_NAME" /></translation>
 <translation id="6464074037294098618">Aktivera autofyll för adresser</translation>
+<translation id="6467613372414922590">Tillåt Native Messaging-värdar på användarnivå (installerade utan administratörsbehörighet).</translation>
+<translation id="6468980648680553776">Den här principen är utfasad. Använd RemoteAccessHostClientDomainList i stället.</translation>
 <translation id="6473623140202114570">Konfigurera listan över domäner där Säker webbsökning inte utlöser varningar.</translation>
 <translation id="6488627892044759800">Konfigurerar typen av standardstartsida i <ph name="PRODUCT_NAME" /> och förhindrar att användarna ändrar inställningarna för startsidan. Startsidan kan ställas in på en webbadress som du anger eller på sidan Ny flik.
 
@@ -2413,6 +2801,13 @@
 
           Den här principen är bara tillgänglig i Windows-instanser som är kopplade till en <ph name="MS_AD_NAME" />-domän, eller i Windows 10 Pro- eller Enterprise-instanser som är registrerade i enhetshantering.</translation>
 <translation id="6491139795995924304">Tillåt Bluetooth på enheten</translation>
+<translation id="6491872498385040936">Den här principen är utfasad. Använd hellre <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />, som åsidosätter den här principen och ger större nyanseringsmöjligheter.
+
+      Gör begränsat läge på YouTube obligatoriskt och förhindrar att användarna ändrar inställningen.
+
+      När inställningen har aktiverats är som minst medelbegränsat läge alltid obligatoriskt på YouTube.
+
+      Om inställningen inaktiveras eller om inget värde anges är begränsat läge på YouTube inte obligatoriskt i <ph name="PRODUCT_NAME" />. Däremot kan det fortfarande finnas externa principer, till exempel principer för YouTube, som gör begränsat läge obligatoriskt.</translation>
 <translation id="6495328383950074966">Konfigurera listan med domäner som Säker webbsökning litar på. Det betyder följande:
       Säker webbsökning kontrollerar inte om det finns skadliga resurser (t. ex. lösenordsfiske, skadliga program eller oönskade program) om en webbadress matchar dessa domäner.
       Nedladdningsskyddet i Säker webbsökning kontrollerar inte nedladdningar som görs från dessa domäner.
@@ -2699,6 +3094,7 @@
       Google kan koppla loggarna via ett sessions-id till andra loggar som samlats in av Google-tjänsten. Detta är avsiktligt för att underlätta felsökningen.
       </translation>
 <translation id="706669471845501145">Tillåt att webbplatser visar aviseringar på skrivbordet</translation>
+<translation id="7070525176564511548">Lösenord krävs varje vecka (168 timmar)</translation>
 <translation id="7072208053150563108">Ändringsfrekvens för datorns lösenord</translation>
 <translation id="7079519252486108041">Blockera popup-fönster på dessa webbplatser</translation>
 <translation id="7085803328069945025">Låter dig ange med hjälp av en lista med webbadressmönster vilka webbplatser som får begära åtkomstbehörighet till en USB-enhet.
@@ -2731,6 +3127,9 @@
       Om policyn är inställd på falskt inaktiveras bakgrundsläget och det kan inte ändras av användaren i webbläsarinställningarna.
 
       Om policyn inte ställs in är bakgrundsläget inaktiverat från början och kan ändras av användaren i webbläsarinställningarna.</translation>
+<translation id="7123160381479171745">Definierar listan över användare som får logga in på enheten. Poster har formatet <ph name="USER_WHITELIST_ENTRY_FORMAT" />, till exempel <ph name="USER_WHITELIST_ENTRY_EXAMPLE" />. Om du vill att användare ska kunna logga in på en domän helt godtyckligt använder du poster i formatet <ph name="USER_WHITELIST_ENTRY_WILDCARD" />.
+
+      Om principen inte är konfigurerad finns inga begränsningar för vilka användare som får logga in. Observera att principen <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> fortfarande måste vara korrekt konfigurerad för att det ska gå att skapa nya användare.</translation>
 <translation id="7123266440503901785">Med <ph name="PRODUCT_NAME" /> installeras och uppdateras tillägg på ett säkert sätt. Däremot kanske vissa tillägg utanför Chrome Web Store bara skyddas av osäkra signeringsalgoritmer eller hash-tekniker som SHA1. När den här principen är inaktiverad går det inte att nyinstallera eller uppdatera sådana tillägg i Chrome (förrän utvecklaren har skrivit om tillägget så att säkrare algoritmer används). När principen är aktiverad tillåts installation och uppdateringar av sådana tillägg.
 
           Om ingen inställning har angetts är principen aktiverad som standard.
@@ -2774,8 +3173,15 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="718956142899066210">Anslutningstyper som tillåts för uppdateringar</translation>
 <translation id="7194407337890404814">Standardsökleverantörens namn</translation>
+<translation id="7199304109870655950">Konfigurera alternativ för fjärråtkomst i värden för Chrome Remote Desktop.
+
+      Värden för Chrome Remote Desktop är en inbyggd tjänst som körs på målenheten och som en användare kan ansluta till via appen Chrome Remote Desktop.  Den inbyggda tjänsten paketeras och körs åtskilt från <ph name="PRODUCT_NAME" />.
+
+      Dessa principer ignoreras om värden
+      för Chrome Remote Desktop inte har installerats.</translation>
 <translation id="7202925763179776247">Tillåt nedladdningsbegränsningar</translation>
 <translation id="7207095846245296855">Tvinga fram användning av Google SafeSearch</translation>
+<translation id="7211368186050418507">Identifiera aldrig tidszon automatiskt</translation>
 <translation id="7216442368414164495">Tillåt användare att välja utökad rapportering i Säker webbsökning</translation>
 <translation id="7221822638060296742">Gör att du kan ange om webbplatser får köra pluginprogrammet <ph name="FLASH_PLUGIN_NAME" /> automatiskt. Du kan tillåta att pluginprogrammet <ph name="FLASH_PLUGIN_NAME" /> körs automatiskt för alla webbplatser eller inte får köras för några webbplatser.
 
@@ -2839,6 +3245,11 @@
 
           Om inställningen inaktiveras kommer inte funktionen att vara tillgänglig.</translation>
 <translation id="7275334191706090484">Hanterade bokmärken</translation>
+<translation id="7291084543582732020">Om du aktiverar den här inställningen ges användare tillstånd att använda Smart Lock om kraven för funktionen är uppfyllda.
+
+      Om du inaktiverar inställningen ges användare inte tillstånd att använda Smart Lock.
+
+      Om principen inte ställs in är den som standard inaktiverad för företagshanterade användare men aktiverad för användare som inte hanteras.</translation>
 <translation id="7295019613773647480">Aktivera kontrollerade användare</translation>
 <translation id="7301543427086558500">Anger en lista med alternativa webbadresser som kan användas för att extrahera sökord från sökmotorn. Webbadresserna ska innehålla strängen <ph name="SEARCH_TERM_MARKER" />, som används för att extrahera sökorden.
 
@@ -2896,6 +3307,9 @@
 
       Principen träder bara i kraft när tillägget <ph name="CHROME_REPORTING_EXTENSION_NAME" /> har aktiverats och enheten har registrerats med <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />.</translation>
 <translation id="737655323154569539">Begränsar pappersformatet för utskrift. Om principen har lämnats utan inställning eller är inställd på en tom lista används ingen begränsning.</translation>
+<translation id="7389872682701720082">Om du aktiverar den här inställningen kan pluginprogram som inte är inaktuella alltid köras.
+
+      Om inställningen är inaktiverad eller inte inställd får användaren välja om pluginprogram som kräver auktorisering ska få köras eller inte. Den här typen av pluginprogram kan utgöra en säkerhetsrisk.</translation>
 <translation id="7417972229667085380">Procentsatsen med vilken fördröjningen vid dödtid skalanpassas i presentationsläge (föråldrad)</translation>
 <translation id="7421483919690710988">Ange medieenhetens cachestorlek i byte</translation>
 <translation id="7424751532654212117">Lista med undantag till listan med inaktiverade plugin-program</translation>
@@ -2903,12 +3317,16 @@
 
       Om principen inte har konfigurerats eller har ställts in på falskt aktiveras f<ph name="TLS_FALSE_START" />. Om principen har ställts in på sant inaktiveras <ph name="TLS_FALSE_START" />.</translation>
 <translation id="7433714841194914373">Aktivera Instant</translation>
+<translation id="7434202861148928348">Konfigurera de obligatoriska domännamnen för fjärråtkomstklienter</translation>
 <translation id="7443616896860707393">Frågor vid korsursprungs-HTTP med basauktorisering</translation>
 <translation id="7458437477941640506">Återställ inte till målversionen om versionen av operativsystemet är nyare. Uppdateringar har även inaktiverats.</translation>
 <translation id="7464991223784276288">Begränsa cookies från matchande webbadresser till den aktuella sessionen</translation>
 <translation id="7469554574977894907">Aktivera sökförslag</translation>
 <translation id="7474249562477552702">Om SHA-1-signerade certifikat som utfärdats av lokala tillitsankare tillåts eller inte</translation>
 <translation id="7485481791539008776">Skrivarens standardurvalsregler</translation>
+<translation id="7485730741952775732">Om den här principen är inställd använder värden för fjärråtkomst den här webbadressen för att verifiera autentiseringstoken från fjärråtkomstklienter vid godkännande av anslutningar. Måste användas tillsammans med RemoteAccessHostTokenUrl.
+
+          Den här funktionen är för närvarande inaktiverad på serversidan.</translation>
 <translation id="749556411189861380">Rapportera versionsinformation om operativsystem och fast programvara på registrerade enheter.
 
       Om ingen inställning görs eller om principen anges som True kommer versionsinformation om operativsystemet och den fasta programvaran regelbundet att skickas från registrerade enheter. Om principen anges som False kommer versionsinformationen inte att skickas.</translation>
@@ -3008,6 +3426,8 @@
 
       Mer information om Säker webbläsning finns på https://developers.google.com/safe-browsing.</translation>
 <translation id="7643883929273267746">Begränsa vilka konton som är synliga i <ph name="PRODUCT_NAME" /></translation>
+<translation id="7644825865811580663">Om principen är inställd på sant maximeras alltid det första fönstret av <ph name="PRODUCT_NAME" /> första gången den körs.
+      Om principen är inställd på falskt eller inte konfigurerad baseras beslutet om huruvida det första fönstret som visas ska maximeras på skärmens storlek.</translation>
 <translation id="7651739109954974365">Avgör om dataroaming ska vara tillåtet för enheten. Om värdet är sant är dataroaming tillåten. Om policyn inte är konfigurerad eller om värdet är falskt är dataroaming inte tillåten.</translation>
 <translation id="7657261947024629645">Optimera för prestanda.</translation>
 <translation id="7673194325208122247">Tidsperiod (millisekunder)</translation>
@@ -3021,6 +3441,9 @@
 
           Om principen RestoreOnStartup är inställd på att återställa webbadresser från tidigare sessioner ignoreras den här principen och cookies sparas permanent för de webbplatserna.</translation>
 <translation id="7683777542468165012">Dynamisk policyuppdatering</translation>
+<translation id="7687943045976362719">Om den här principen ställs in hanteras de angivna innehållstyperna av <ph name="PRODUCT_FRAME_NAME" />.
+
+          Om ingen principen inte ställs in används standardrenderaren för alla webbplatser. (Standardrenderaren kan konfigureras med hjälp av principen <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" />.)</translation>
 <translation id="7694807474048279351">Schemalägg en automatisk omstart efter uppdatering av <ph name="PRODUCT_OS_NAME" />.
 
       När den här principen är sann schemaläggs en automatisk omstart när <ph name="PRODUCT_OS_NAME" /> har uppdaterats och en omstart krävs för att slutföra processen. Omstarten schemaläggs omedelbart man kan fördröjas i upp till 24 timmar om någon använder enheten.
@@ -3060,6 +3483,7 @@
 <translation id="7763614521440615342">Visa förslag på innehåll på sidan Ny flik</translation>
 <translation id="7765879851993224640">Tillåt inloggning med Smart Lock</translation>
 <translation id="7774768074957326919">Använd systemets proxyinställningar</translation>
+<translation id="7777535871204167559">Behandla externa lagringsenheter som skrivskyddade</translation>
 <translation id="7781069478569868053">Sidan Ny flik</translation>
 <translation id="7788511847830146438">Per profil</translation>
 <translation id="780603170519840350">Inaktiverar kraven för certifikattransparens för subjectPublicKeyInfo-hashvärden.
@@ -3089,6 +3513,11 @@
       Om policyn inte anges använder <ph name="PRODUCT_NAME" /> standardvärdet 5 000 millisekunder.</translation>
 <translation id="7841880500990419427">Lägsta TLS-version som kan användas som alternativ</translation>
 <translation id="7842869978353666042">Konfigurera alternativ för Google Drive</translation>
+<translation id="7858404742201086014">Om du aktiverar den här inställningen används inaktuella pluginprogram som vanliga pluginprogram.
+
+      Om du inaktiverar den här inställningen går det inte att använda inaktuella plugin-program och användarna tillfrågas inte om tillåtelse att köra dem.
+
+      Om du inte anger inställningen får användarna välja om de vill köra inaktuella pluginprogram.</translation>
 <translation id="787125417158068494">Om principen är inställd på SyncDisabled eller inte har konfigurerats blir inga certifikat i <ph name="PRODUCT_OS_NAME" /> tillgängliga för ARC-appar.
 
       Om principen är inställd på CopyCaCerts blir alla CA-certifikat som installerats via ONC med <ph name="WEB_TRUSTED_BIT" /> tillgängliga för ARC-appar.</translation>
@@ -3109,7 +3538,17 @@
 <translation id="793473937901685727">Ange om certifikat ska vara tillgängliga för ARC-appar</translation>
 <translation id="7937766917976512374">Tillåta eller neka videoinspelning</translation>
 <translation id="7941975817681987555">Förutsäg inte nätverksåtgärder för någon nätverksanslutning</translation>
+<translation id="7952958573604504839">Den här principen har fasats ut till förmån för <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" /> i M48 och tagits bort i M54.
+
+      Aktiverar nätverksförutsägelse i <ph name="PRODUCT_NAME" /> och förhindrar att användarna ändrar inställningen.
+
+      Detta styr inte bara DNS-förhämtning utan också TCP- och SSL-föranslutning och förrendering av webbsidor. Principens namn refererar till DNS-förhämtning av historiska skäl.
+
+      Om du aktiverar eller inaktiverar den här inställningen kan användarna inte ändra eller åsidosätta den i <ph name="PRODUCT_NAME" />.
+
+      Om principen inte anges är funktionen aktiverad, men den kan ändras av användarna.</translation>
 <translation id="7953256619080733119">Värdar för hanterade användares manuella undantag</translation>
+<translation id="7958537754689366707">Lösenord krävs var tolfte timme</translation>
 <translation id="7961779417826583251">Inaktivera tillämpning av certifikattransparens för en lista med äldre certifikatutfärdare</translation>
 <translation id="7974114691960514888">Policyn stöds inte längre.
           Gör att STUN och reläservrar kan användas för att ansluta till en fjärrklient.
@@ -3120,6 +3559,9 @@
 <translation id="7976157349247117979">Namn på <ph name="PRODUCT_NAME" />-mål</translation>
 <translation id="7980227303582973781">Inga särskilda begränsningar</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
+<translation id="798856998567564266">Om du aktiverar den här inställningen kan bokmärken läggas till, tas bort eller ändras. Detta är även standardinställningen för när principen inte är inställd.
+
+      Om du inaktiverar den här inställningen går det inte att lägga till, ta bort eller ändra bokmärken. Befintliga bokmärken kan fortfarande användas.</translation>
 <translation id="7992136759457836904">Styr om virtuella maskiner får köras eller inte i Chrome OS.
 
       Om principen är inställd på sant får virtuella maskiner köras på enheten.
@@ -3146,6 +3588,20 @@
 <translation id="8050080920415773384">Integrerad utskrift</translation>
 <translation id="8053580360728293758">Åsidosätter standardinställningen för färgutskrift. Om alternativet inte är tillgängligt ignoreras principen.</translation>
 <translation id="8059164285174960932">Webbadress där fjärråtkomstklienter erhåller sin autentiseringstoken</translation>
+<translation id="806280865577636339">Om principen är inställd på sant visas alltid tillgänglighetsalternativ i systemfältsmenyn.
+
+          Om principen är inställd på falskt visas aldrig tillgänglighetsalternativ i systemfältsmenyn.
+
+          Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.
+
+          Om du inte ställer in principen visas inte tillgänglighetsalternativ i systemfältsmenyn, men användaren kan välja att tillgänglighetsalternativen ska visas via sidan för inställningar.</translation>
+<translation id="806523868782250975">Konfigurerar en lista över hanterade bokmärken.
+
+      Principen är en lista över bokmärken och varje bokmärke är en ordlista som innehåller nycklarna <ph name="NAME" /> och <ph name="URL_LABEL" /> som har bokmärkets namn och mål som värden. Det går att konfigurera en undermapp genom att ange ett bokmärke utan nyckeln <ph name="URL_LABEL" /> men med en extra nyckel, <ph name="CHILDREN" />, som i sig innehåller en lista över bokmärken enligt definitionen ovan (varav några kan vara mappar, och så vidare). <ph name="PRODUCT_NAME" /> kompletterar ofullständiga webbadresser som om de skickats via adressfältet – <ph name="GOOGLE_COM" /> blir till exempel <ph name="HTTPS_GOOGLE_COM" />.
+
+      Bokmärkena läggs i en mapp som inte kan ändras av användarna (men användare kan välja att dölja den från bokmärkesfältet). Mappens namn är som standard Hanterade bokmärken, men det kan anpassas om du lägger till en ordlista som innehåller nyckeln <ph name="TOPLEVEL_NAME" /> i listan över bokmärken. Ange det önskade mappnamnet som värde.
+
+      Hanterade bokmärken synkroniseras inte till användarkontot och kan inte ändras av tillägg.</translation>
 <translation id="8078366200175825572">Låter dig ange en lista med webbadressmönster som styr vilka webbplatser som inte får spara cookies.
 
           Om principen lämnas utan inställning används det globala standardvärdet för alla webbplatser. Standardvärdet hämtas från principen DefaultCookiesSetting om den har ställts in och från användarens egna inställningar i annat fall.
@@ -3208,6 +3664,9 @@
 
       Om policyn är inaktiverad eller inte inställd aktiveras vanliga profiler vid inloggning.</translation>
 <translation id="8158758865057576716">Aktivera framställningen av roamingkopior för profiluppgifterna för <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8172676363520748127">Om principen aktiveras går det inte att ta skärmdumpar med kortkommandon eller API:er för tillägg.
+
+      Om principen inaktiveras eller inte anges är det tillåtet att ta skärmdumpar.</translation>
 <translation id="817455428376641507">Tillåter åtkomst till de webbadresser som anges, som undantag till svartlistan för webbadresser.
 
       Formatet för poster i listan beskrivs i policyn för svartlistade webbadresser.
@@ -3221,6 +3680,7 @@
       Om den här policyn inte anges görs inga undantag från policyn URLBlacklist.</translation>
 <translation id="8176035528522326671">Tillåt en företagsanvändare att vara enbart primär flerprofilsanvändare (standardbeteendet för företagshanterade användare)</translation>
 <translation id="8214600119442850823">Konfigurerar lösenordshanteraren.</translation>
+<translation id="8217516105848565518">Den här principen är utfasad. Använd RemoteAccessHostDomainList i stället.</translation>
 <translation id="8244525275280476362">Längsta fördröjning av hämtning efter en ogiltigförklarad policy</translation>
 <translation id="8256688113167012935">Kontrollerar hur kontonamnet <ph name="PRODUCT_OS_NAME" /> visas på inloggningssidan för motsvarande lokala konto på enheten.
 
@@ -3236,6 +3696,9 @@
 Du behöver inte konfigurera de här inställningarna manuellt. Lättanvända mallar för Windows, Mac och Linux kan laddas ned från <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" />.
 
 Det rekommenderade sättet att konfigurera principer på när du använder Windows är via grupprincipobjekt, men att göra det via registret stöds för Windows-instanser som har fogats till en <ph name="MS_AD_NAME" />-domän.</translation>
+<translation id="8259592978873597235">Om den här principen är inställd på sant eller inte alls är inställd räknas det inte som att användaren är inaktiv så länge video spelas upp. Detta förhindrar att inaktivitetstid, skärmdämpningstid, skärmavstängningstid och skärmlåstid nås och att motsvarande åtgärder vidtas.
+
+          Om principen är inställd på falskt förhindrar inte videoaktivitet att användaren räknas som inaktiv.</translation>
 <translation id="8264653492961233132">Anger en lista med appar och tillägg som installeras tyst, utan att
           användaren gör något, och som användaren inte kan avinstallera
           eller inaktivera. Alla behörigheter som apparna eller tilläggen behöver
@@ -3287,6 +3750,7 @@
       Policyns värde anges i millisekunder.</translation>
 <translation id="8339420913453596618">Tvåfaktorsautentisering har inaktiverats</translation>
 <translation id="8344454543174932833">Importera bokmärken från standardwebbläsaren första gången den körs</translation>
+<translation id="8357681633047935212">Begränsa längden på användarsessioner</translation>
 <translation id="8359734107661430198">Aktivera API:et ExampleDeprecatedFeature sedan 2008-09-02.</translation>
 <translation id="8367209241899435947">Aktivera Chrome Cleanup i Windows</translation>
 <translation id="8369602308428138533">Skärmavstängningstid när enheten är ansluten till elnätet</translation>
@@ -3295,6 +3759,13 @@
 
       Om principen är inställd på falskt rapporteras ingen sådan statistik.
       Om principen är inställd på sant eller saknar inställning rapporteras statistiken.</translation>
+<translation id="8380490658357556620">Reläserveranvändning aktiveras när fjärrklienter försöker etablera en anslutning till datorn.
+
+          Om inställningen har aktiverats kan fjärrklienten använda reläservrar för att ansluta till datorn när det inte går att ansluta direkt (t.ex. på grund av begränsningar i brandväggen).
+
+          Observera att den här principen ignoreras om principen <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> har inaktiverats.
+
+          Om ingen inställning görs för principen aktiveras inställningen.</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.
@@ -3426,6 +3897,7 @@
           Avgränsa flera servernamn med kommatecken. Jokertecken (*) tillåts.
 
           Om du inte ställer in den här principen kommer <ph name="PRODUCT_NAME" /> att försöka identifiera om en server finns i intranätet och endast då kommer den att svara på IWA-förfrågningar. Om en server identifieras som internet kommer IWA-förfrågningar därifrån att ignoreras av <ph name="PRODUCT_NAME" />.</translation>
+<translation id="8661297125441579970">Tillåt inte datamigrering och ARC.</translation>
 <translation id="8672321184841719703">Målversion för automatisk uppdatering</translation>
 <translation id="867410340948518937">U2F (Universal Second Factor)</translation>
 <translation id="8682611302223077049">Gör att du kan ställa in i millisekunder under hur lång tid in som användare aviseras om att <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" />-enheten måste startas om när en uppdatering väntar.
@@ -3464,6 +3936,7 @@
       Om inställningen är aktiverad eller inte angiven kan webb- och hämtningshistoriken tas bort.
 
       Om inställningen är inaktiverad kan webb- och hämtningshistoriken inte tas bort.</translation>
+<translation id="8757552286070680084">Wilco DTC-konfiguration</translation>
 <translation id="8758831693895931466">Aktivera obligatorisk registrering för molnhantering</translation>
 <translation id="8759829385824155666">Tillåtna typer av Kerberos-kryptering</translation>
 <translation id="8764119899999036911">Anger om  Kerberos SPN som genererades baseras på det kanoniska DNS-namnet eller det namn som angavs från början.
@@ -3471,6 +3944,7 @@
           Om du aktiverar inställningen hoppas CNAME-sökningen över och servernamnet som angavs används.
 
           Om du inaktiverar inställningen eller inte anger den avgörs serverns kanoniska namn av en CNAME-sökning.</translation>
+<translation id="8764477907716150749">Den här principen är endast avsedd för intern användning av <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8765776988041674792">Konfigurera webbadress för lösenordsbyte (endast HTTP- och HTTPS-protokoll). Tjänsten för lösenordsskydd hänvisar användare till denna webbadress för att byta lösenord efter att en varning visats i webbläsaren.
       För att <ph name="PRODUCT_NAME" /> ska kunna registrera fingeravtrycket för det nya lösenordet korrekt på sidan för lösenordsbyte måste sidan följa riktlinjerna på https://www.chromium.org/developers/design-documents/create-amazing-password-forms.
 
@@ -3491,6 +3965,26 @@
 <translation id="8833109046074170275">Autentisering via standardflödet för GAIA</translation>
 <translation id="8838303810937202360"><ph name="PRODUCT_OS_NAME" /> sparar appar och tillägg i cacheminnet vid installation av flera användare som delar enhet. På detta sätt laddas de inte ned för varje användare enskilt.
       Om policyn inte konfigureras eller om värdet är lägre än 1 MB används den cachestorlek som är standard i <ph name="PRODUCT_OS_NAME" />.</translation>
+<translation id="8851325571441692315">Med den här principen anger du vilken proxyserver som ska användas av <ph name="PRODUCT_NAME" /> och förhindrar att användarna ändrar proxyinställningarna.
+
+          Den här principen gäller endast om principen <ph name="PROXY_SETTINGS_POLICY_NAME" /> inte har angetts.
+
+          Om du väljer att aldrig använda en proxyserver och alltid ansluta direkt ignoreras alla andra alternativ.
+
+          Om du väljer att använda systemets proxyinställningar ignoreras alla andra alternativ.
+
+          Om du väljer att identifiera proxyservern automatiskt ignoreras alla andra alternativ.
+
+          Om du väljer läget för fast serverproxy kan du ange fler alternativ i fälten Proxyserverns adress eller webbadress och Kommaavgränsad lista med regler för proxybypass. ARC-appar kan bara använda den HTTP-proxyserver som har högst prioritet.
+
+          Om du väljer att använda ett PAC-proxyskript måste du ange webbadressen till skriptet i fältet Webbadress till en PAC-proxyfil.
+
+          Mer detaljerade exempel finns på:
+          <ph name="PROXY_HELP_URL" />.
+
+          Om du aktiverar den här inställningen ignorerar <ph name="PRODUCT_NAME" /> och ARC-appar alla proxyrelaterade alternativ som anges i kommandoraden.
+
+          Om den här principen inte anges kan användarna välja sina egna proxyinställningar.</translation>
 <translation id="8858642179038618439">Tvinga fram Säkert läge på YouTube</translation>
 <translation id="8860342862142842017">Inaktivera tillämpning av certifikattransparens för en lista med subjectPublicKeyInfo-hashvärden</translation>
 <translation id="8864975621965365890">Ser till att avvisningsmeddelandet som visas när en webbplats renderas av <ph name="PRODUCT_FRAME_NAME" /> inte visas.</translation>
@@ -3579,7 +4073,47 @@
 <translation id="8976248126101463034">Tillåt gnubby-autentisering för fjärråtkomstvärdar</translation>
 <translation id="8976531594979650914">Använd systemets standardskrivare som standard</translation>
 <translation id="8992176907758534924">Tillåt inte att bilder visas på någon webbplats</translation>
+<translation id="9013875414788074110">Under inloggningen kan <ph name="PRODUCT_OS_NAME" /> verifiera mot en server (online) eller använda ett cachat lösenord (offline).
+
+      När den här principen är inställd på värdet -1 kan användaren verifieras offline i oändlighet. När den här principen är inställd på ett annat värde anges tidslängden sedan den senaste onlineverifieringen efter vilken användaren måste använda onlineverifieringen igen.
+
+      Om ingen principen inte ställs in använder <ph name="PRODUCT_OS_NAME" /> en standardtid på 14 dagar efter vilka användaren måste använda onlineverifieringen igen.
+
+      Den här principen påverkar endast användare som verifieras via SAML.
+
+      Principens värde ska anges i sekunder.</translation>
+<translation id="9027787254195333560">Med den här principen kan du konfigurera den avatarbild som representerar användaren på inloggningsskärmen. Du kan ställa in principen genom att ange en webbadress från vilken <ph name="PRODUCT_OS_NAME" /> kan ladda ned avatarbilden och en kryptografisk hash som används för att verifiera nedladdningens integritet. Bilden måste vara i JPEG-format och får inte vara större än 512 kB. Det måste gå att komma åt webbadressen utan autentisering.
+
+      Avatarbilden laddas ned och cachelagras. Den laddas ned på nytt när webbadressen eller hashen ändras.
+
+      Principen ska anges som en sträng som anger webbadressen och hashen i JSON-format, enligt följande schema:
+      {
+        "typ": "objekt",
+        "egenskaper": {
+          "webbadress": {
+            "beskrivning": "Webbadressen som avatarbilden kan laddas ned från.",
+            "typ": "sträng"
+          },
+          "hash": {
+            "beskrivning": "SHA-256-hashen för avatarbilden.",
+            "typ": "sträng"
+          }
+        }
+      }
+
+      Om principen ställs in laddar <ph name="PRODUCT_OS_NAME" /> ned och använder avatarbilden.
+
+      Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.
+
+      Om principen inte anges kan användaren välja en avatarbild som representerar honom eller henne på inloggningsskärmen.</translation>
 <translation id="9035964157729712237">Tilläggs-ID:n att undanta från svartlistan</translation>
+<translation id="9039822628127365650">När den här principen är inställd anges den tidsrymd efter vilken användaren loggas ut automatisk och sessionen avslutas. Användaren meddelas om den återstående tiden med en nedräkningstimer som visas i systemfältet.
+
+      När principen inte är inställd begränsas inte sessionslängden.
+
+      Om du ställer in den här principen kan användare inte ändra eller åsidosätta den.
+
+      Principens värde ska anges i millisekunder. Värden ska anges inom ett intervall från 30 sekunder till 24 timmar.</translation>
 <translation id="9042911395677044526">Tillåter att en pushad nätverkskonfiguration används per användare på en <ph name="PRODUCT_OS_NAME" />-enhet. Nätverkskonfigurationen är en JSON-formaterad sträng som definieras av formatet för öppen nätverkskonfiguration som beskrivs på <ph name="ONC_SPEC_URL" /></translation>
 <translation id="906631898352326790">
       Om principen aktiveras körs alla namngivna ursprung,
@@ -3593,6 +4127,15 @@
 
       OBS! Den här principen gäller inte Android. Om du vill aktivera SitePerProcess på Android använder du principen SitePerProcessAndroid.
       </translation>
+<translation id="9072600218500597787">Konfigurerar vilket värddomännamn som fjärråtkomstvärdar måste använda och hindrar användare från att ändra det.
+
+          Om inställningen är aktiverad kan värdar endast delas via konton som är registrerade på det angivna domännamnet.
+
+          Om inställningen är inaktiverad eller inte angiven kan värdar delas via vilka konton som helst.
+
+          Den här inställningen åsidosätter RemoteAccessHostDomain, om den används.
+
+          Se även RemoteAccessHostClientDomainList.</translation>
 <translation id="9077227880520270584">Timer för automatisk inloggning av lokalt konto på enheten</translation>
 <translation id="9084985621503260744">Ange om videoaktivitet påverkar energihanteringen</translation>
 <translation id="9088433379343318874">Aktiverar den kontrollerade användarens innehållsleverantör</translation>
@@ -3601,6 +4144,30 @@
           Stöds i version 70 eller senare av <ph name="PRODUCT_OS_NAME" />. I äldre klienter än så innebär det här värdet att återställning inaktiveras.</translation>
 <translation id="9096086085182305205">Vitlista för autentiseringsserver</translation>
 <translation id="9098553063150791878">Princip för HTTP-autentisering</translation>
+<translation id="9103061223348895346">Den här principen styr flera energisparinställningar när användaren är inaktiv.
+
+          Det finns fyra typer av åtgärder:
+          * Skärmen tonas ned om användaren är inaktiv under så lång tid som anges av |ScreenDim|.
+          * Skärmen stängs av om användaren är inaktiv under så lång tid som anges av |ScreenOff|.
+          * En varning om att angiven åtgärd vid inaktivitet kommer att vidtas visas i en dialogruta om användaren är inaktiv under så lång tid som anges av |IdleWarning|.
+          * Åtgärden som anges av |IdleAction| genomförs om användaren är inaktiv under så lång tid som anges av |Idle|.
+
+          För var och en av ovanstående åtgärder ska fördröjningen anges i millisekunder och den måste ha ett värde högre än noll för att motsvarande åtgärd ska utlösas. Om fördröjningen har ställts in på noll vidtas inte motsvarande åtgärd av <ph name="PRODUCT_OS_NAME" />.
+
+          För var och en av ovanstående fördröjningar används ett standardvärde när tidslängden inte har angetts.
+
+          Observera att |ScreenDim|-värdena kommer att skäras ned för att vara mindre än eller lika med |ScreenOff|, |ScreenOff| och |IdleWarning| skäras ned för att vara mindre än eller lika med |Idle|.
+
+          |IdleAction| kan vara en av fyra möjliga åtgärder:
+          * |Suspend|
+          * |Logout|
+          * |Shutdown|
+          * |DoNothing|
+
+          När |IdleAction| inte har angetts vidtas standardåtgärden, dvs. viloläget startas.
+
+          Det finns även separata ström- och batteriinställningar.
+          </translation>
 <translation id="9105265795073104888">Bara ett urval av konfigurationsalternativen för proxyserver är tillgängliga för Android-appar. De kan men måste inte använda proxyn. Det går inte att göra inställningen obligatorisk för dem.</translation>
 <translation id="9106865192244721694">Tillåt WebUSB på dessa webbplatser</translation>
 <translation id="9112727953998243860">Konfigurationsfil för företagsskrivare</translation>
@@ -3648,6 +4215,7 @@
 
           Om principen inte anges används 3 och användaren kan ändra inställningen.</translation>
 <translation id="9167719789236691545">Inaktivera Drive i appen Filer i <ph name="PRODUCT_OS_NAME" /></translation>
+<translation id="9185107612228451403">Konfigurerar principer för tillägg. Användaren tillåts inte installera svartlistade tillägg såvida de inte också står på vitlistan. Du kan även tvinga <ph name="PRODUCT_NAME" /> att installera tillägg automatiskt genom att ange dem i <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />. Tillägg med tvingande installation installeras även om de står på den svarta listan.</translation>
 <translation id="9187743794267626640">Inaktivera montering av extern lagring</translation>
 <translation id="9197740283131855199">Procentsats med vilken fördröjningen av dämpningen av skärmen ska skalanpassas om användaren gör något efter dämpningen</translation>
 <translation id="9200828125069750521">Parametrar för bildwebbadresser som använder POST</translation>
@@ -3679,8 +4247,22 @@
 <translation id="9217154963008402249">Frekvens för nätverkspaket för övervakning</translation>
 <translation id="922540222991413931">Konfigurera installationskällor för tillägg, appar och användarskript</translation>
 <translation id="924557436754151212">Importera sparade lösenord från standardwebbläsaren första gången den körs</translation>
+<translation id="926146562923985266">Den här principen styr vilket kommando som används för att öppna webbadresser i <ph name="PRODUCT_NAME" /> när användaren byter från Internet Explorer.
+
+      Om tillägget Stöd för äldre webbläsare för Internet Explorer inte är installerat har den här principen ingen funktion.
+
+      Om den här principen saknar inställning identifierar Internet Explorer automatiskt <ph name="PRODUCT_NAME" />s egna körbara sökväg när <ph name="PRODUCT_NAME" /> startas från Internet Explorer.
+
+      När den här principen är inställd används den för att starta <ph name="PRODUCT_NAME" /> när <ph name="PRODUCT_NAME" /> startas från Internet Explorer.
+
+      Den här principen kan ställas in på en körbar filsökväg, eller på ${chrome} för att identifiera Chromes installationsplats automatiskt.</translation>
 <translation id="930930237275114205">Ange katalog för användardata i <ph name="PRODUCT_FRAME_NAME" /></translation>
+<translation id="943865157632139008">Innebär att du kan konfigurera standardrenderare för HTML när <ph name="PRODUCT_FRAME_NAME" /> är installerat.
+          Standardinställningen är att låta värdwebbläsaren utföra renderingen, men du kan välja att åsidosätta detta och låta <ph name="PRODUCT_FRAME_NAME" /> rendera HTML-sidor som standard.</translation>
 <translation id="944817693306670849">Ange storlek för diskcache</translation>
+<translation id="966854160628341653">Avgör om det går att skapa nya användarkonton i <ph name="PRODUCT_OS_NAME" />. Om principen är inställd på falskt kan användare utan konto inte logga in.
+
+      Om principen är inställd på sant eller inte är konfigurerad kan nya användarkonton skapas under förutsättning att <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> inte förhindrar att användaren loggar in.</translation>
 <translation id="981346395360763138">Googles platstjänster har inaktiverats</translation>
 <translation id="982497069985795632">Aktivera stavningskontroll</translation>
 <translation id="991560005425213776">Skicka användarnamn och filnamn till lokala skrivare</translation>
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb
index 90e4cec..4376907 100644
--- a/components/policy/resources/policy_templates_te.xtb
+++ b/components/policy/resources/policy_templates_te.xtb
@@ -17,13 +17,13 @@
 <translation id="102492767056134033">స్క్రీన్‌పై కీబోర్డ్ యొక్క డిఫాల్ట్ స్థితిని లాగిన్ స్క్రీన్‌లో సెట్ చేయండి</translation>
 <translation id="1027000705181149370">లాగిన్ సమయంలో SAML IdP ద్వారా సెట్ చేయబడిన ప్రామాణీకరణ కుక్కీలను వినియోగదారు ప్రొఫైల్‌కు బదిలీ చేయాలో లేదో పేర్కొంటుంది.
 
-      వినియోగదారు లాగిన్ సమయంలో SAML IdP ద్వారా ప్రామాణీకరించినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు ముందుగా తాత్కాలిక ప్రొఫైల్‌లో రాయ‌బడతాయి. ప్రామాణీకరణ స్థితిని మున్ముందు అలాగే ఉంచడానికి ఈ కుక్కీలను వినియోగదారు ప్రొఫైల్‌కు బదిలీ చేయవచ్చు.
+      వినియోగదారు లాగిన్ సమయంలో SAML IdP ద్వారా ప్రామాణీకరించినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు ముందుగా తాత్కాలిక ప్రొఫైల్‌లో వ్రాయబడతాయి. ప్రామాణీకరణ స్థితిని మున్ముందు అలాగే ఉంచడానికి ఈ కుక్కీలను వినియోగదారు ప్రొఫైల్‌కు బదిలీ చేయవచ్చు.
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు వినియోగదారు లాగిన్ సమయంలో SAML IdPపై ప్రామాణీకరించే ప్రతిసారి వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు వినియోగదారు లాగిన్ సమయంలో SAML IdPపై ప్రామాణీకరించే ప్రతిసారి వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలివేసినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు వినియోగదారు పరికరంలో మొదటిసారి లాగిన్ చేసినప్పుడు మాత్రమే వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలివేసినప్పుడు, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు వినియోగదారు పరికరంలో మొదటిసారి లాగిన్ చేసినప్పుడు మాత్రమే వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.
 
-      ఈ విధానం ప్రభావం, పరికర నమోదు డొమైన్‍కు సరిపోలే డొమైన్ వినియోగదారుల పైన మాత్రమే ఉంటుంది. మిగిలిన అందరు వినియోగదారుల కోసం- IdP ద్వారా సెట్ చేయబడిన కుక్కీలు, వినియోగదారు పరికరంలో మొదటిసారి లాగిన్ చేసినప్పుడు మాత్రమే వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.</translation>
+      ఈ విధానం ప్రభావం పరికర నమోదు డొమైన్‍కు సరిపోలే డొమైన్ వినియోగదారుల పైన మాత్రమే ఉంటుంది. మిగిలిన అందరు వినియోగదారుల కోసం, IdP ద్వారా సెట్ చేయబడిన కుక్కీలు వినియోగదారు పరికరంలో మొదటిసారి లాగిన్ చేసినప్పుడు మాత్రమే వారి ప్రొఫైల్‌కు బదిలీ చేయబడతాయి.</translation>
 <translation id="1029052664284722254">వినియోగదారు సైన్ అవుట్ చేసినప్పుడు పరికరం తప్పనిసరిగా రీబూట్ అయ్యేలా చేయండి</translation>
 <translation id="1030120600562044329"><ph name="PRODUCT_NAME" />కి సంబంధించిన వినియోగ, క్రాష్ డేటాను Googleకు అనామకంగా నివేదించడం ప్రారంభిస్తుంది, అలాగే ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నిరోధిస్తుంది.
 
@@ -48,13 +48,13 @@
       'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుంటే, గణాంకాలు నివేదించబడతాయి.</translation>
 <translation id="1046484220783400299">పరిమిత సమయం పాటు నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫారమ్ ఫీచ‌ర్‌ల‌ను ప్రారంభించండి</translation>
 <translation id="1047128214168693844">వినియోగదారుల యొక్క నిజ స్థానాన్ని ట్రాక్ చేయడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
-<translation id="1049138910114524876"><ph name="PRODUCT_OS_NAME" /> సైన్-ఇన్ స్క్రీన్‌లో అమలు చేయబడిన లొకేల్‌ను కాన్ఫిగర్ చేస్తుంది.
+<translation id="1049138910114524876"><ph name="PRODUCT_OS_NAME" /> సైన్-ఇన్ స్క్రీన్‌లో అమలు చేయాల్సిన లొకేల్‌ను కాన్ఫిగర్ చేస్తుంది.
 
-      ఈ విధానాన్ని సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ ఎల్లప్పుడూ ఈ విధానం యొక్క మొదటి విలువ (విధానం ఫార్వార్డ్ అనుకూలత కోసం జాబితా లాగా నిర్వచించబడుతుంది) ద్వారా అందించబడే లొకేల్‌లో ప్రదర్శించబడుతుంది.  ఈ విధానాన్ని సెట్ చేయకుంటే లేదా ఖాళీ జాబితాకు సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ చివరి వినియోగదారు సెషన్ యొక్క లొకేల్‌లో ప్రదర్శించబడుతుంది.  ఈ విధానాన్ని చెల్లని లొకేల్ విలువకు సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ డిఫాల్ట్ లొకేల్‌లో (ప్రస్తుతం, en-US) ప్రదర్శించబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ ఎప్పుడూ ఈ విధానం యొక్క మొదటి విలువ (విధానం ఫార్వర్డ్ అనుకూలత కోసం జాబితా లాగా నిర్వచించబడుతుంది) ద్వారా అందించబడే లొకేల్‌లో ప్రదర్శించబడుతుంది. ఈ విధానాన్ని సెట్ చేయకుంటే లేదా ఖాళీ జాబితాకు సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ చివరి వినియోగదారు సెషన్ యొక్క లొకేల్‌లో ప్రదర్శించబడుతుంది. ఈ విధానాన్ని చెల్లని లొకేల్ విలువకు సెట్ చేస్తే, సైన్-ఇన్ స్క్రీన్ డిఫాల్ట్ లొకేల్‌లో (ప్రస్తుతం, en-US) ప్రదర్శించబడుతుంది.</translation>
 <translation id="1062011392452772310">పరికరం కోసం రిమోట్ ధృవీకరణను ప్రారంభించండి</translation>
 <translation id="1062407476771304334">భర్తీ చేయి</translation>
 <translation id="1079801999187584280">డెవలపర్ సాధనాల వినియోగాన్ని నిరాకరించండి</translation>
-<translation id="1087437665304381368">ఈ విధానం <ph name="PRODUCT_OS_NAME" /> డెవలపర్ మోడ్‌ని మాత్రమే నియంత్రిస్తుంది. మీరు Android డెవలపర్ ఎంపికలకు యాక్సెస్‌ను నిరోధించాలనుకుంటే, మీరు <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> విధానాన్ని సెట్ చేయాలి.</translation>
+<translation id="1087437665304381368">ఈ విధానం <ph name="PRODUCT_OS_NAME" /> డెవలపర్ మోడ్‌ను మాత్రమే నియంత్రిస్తుంది. Android డెవలపర్ ఎంపికలకు యాక్సెస్‌ను నిరోధించాలని మీరు అనుకుంటే, <ph name="DEVELOPER_TOOLS_DISABLED_POLICY_NAME" /> విధానాన్ని సెట్ చేయాలి.</translation>
 <translation id="1093082332347834239">ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, రిమోట్ సహాయక హోస్ట్ <ph name="UIACCESS_PERMISSION_NAME" /> అనుమతులతో కూడిన ప్రక్రియలో అమలు చేయబడుతుంది.  దీని వలన స్థానిక వినియోగదారు యొక్క డెస్క్‌టాప్‌పై ఉన్న నిర్వాహక సామర్థ్య విండోలతో రిమోట్ వినియోగదారులు పరస్పర చర్య చేయగలుగుతారు.
 
           ఈ సెట్టింగ్‌ను నిలిపివేసినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారు సందర్భానుసారం రిమోట్ సహాయక హోస్ట్ అమలు చేయబడుతుంది. రిమోట్ వినియోగదారులు డెస్క్‌టాప్‌పై ఉన్న నిర్వాహక సామర్థ్య విండోలతో పరస్పర చర్య చేయలేరు.</translation>
@@ -87,15 +87,23 @@
       విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, కాష్ చేసిన GPOలను గరిష్ఠంగా 25 గంటల వరకు పునర్వినియోగించవచ్చు.
 
       విధానాన్ని 0కి సెట్ చేస్తే, GPO కాషింగ్ ఆఫ్ చేయబడుతుంది. ప్రతి విధానం పొందుతున్నప్పుడు, ఎలాంటి మార్పు లేకపోయినా GPOలు పదేపదే డౌన్‌లోడ్ కావడం వలన, ఇది సర్వర్‌పై భారం పెంచుతుందని గుర్తుంచుకోండి.</translation>
-<translation id="1117535567637097036">ఈ విధానం ప్రకారం సెట్ చేసిన ప్రోటోకాల్ హ్యాండ్లర్‌లు Android ఇంటెంట్‌లను నిర్వహిస్తున్నప్పుడు ఉపయోగించబడవు.</translation>
+<translation id="1117462881884985156">ఇక్కడ అందించిన హోస్ట్‌ల జాబితా కోసం ప్రాక్సీని <ph name="PRODUCT_NAME" /> విస్మరిస్తుంది.
+
+          మీరు 'ప్రాక్సీ సర్వర్ సెట్టింగ్‌లను ఎలా పేర్కొనాలో ఎంచుకోండి' ఎంపికలో మాన్యువల్ ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకున్నప్పుడు మరియు <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని పేర్కొననప్పుడు మాత్రమే ఈ విధానం ప్రభావవంతమవుతుంది.
+
+          మీరు ప్రాక్సీ విధానాలను సెట్ చేయడానికి మరేదైనా ఇతర మోడ్‌ను ఎంచుకొని ఉంటే, మీరు ఈ విధానాన్ని సెట్ చేయకుండా అలాగే వదిలిపెట్టాలి.
+
+          మరిన్ని ఎంపికలు మరియు వివరణాత్మక ఉదాహరణల కోసం, ఈ లింక్‌ను సందర్శించండి:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="1117535567637097036">ఈ విధానం ప్రకారం సెట్ చేసిన ప్రోటోకాల్ హ్యాండ్లర్‌లు Android ఉద్దేశ్యాలను నిర్వహిస్తున్నప్పుడు ఉపయోగించబడవు.</translation>
 <translation id="1118093128235245168">కనెక్ట్ చేయబడిన USB పరికరానికి యాక్సెస్‌ను అందించాల్సిందిగా వినియోగదారును అభ్యర్థించడానికి సైట్‌లను అనుమతిస్తుంది</translation>
 <translation id="1128903365609589950">డిస్క్‌లో కాష్ చేసిన ఫైల్‌లను నిల్వ చేయడం కోసం <ph name="PRODUCT_NAME" /> ఉపయోగించే డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు '--disk-cache-dir' ఫ్లాగ్‌ను పేర్కొన్నా లేదా పేర్కొనకపోయినా అందించబడిన డైరెక్టరీని <ph name="PRODUCT_NAME" /> ఉపయోగిస్తుంది. <ph name="PRODUCT_NAME" /> దాని కంటెంట్‌‌లను నిర్వహించే కారణంగా డేటా నష్టాన్ని లేదా ఇతర ఊహించని ఎర్రర్‌లను నివారించడానికి ఈ విధానాన్ని వాల్యూమ్ మూల డైరెక్టరీకి లేదా ఇతర ప్రయోజనాల కోసం ఉపయోగించే డైరెక్టరీకి సెట్ చేయకూడదు.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు '--disk-cache-dir' ఫ్లాగ్‌ను పేర్కొన్నా, పేర్కొనకపోయినా, అందించబడిన డైరెక్టరీని <ph name="PRODUCT_NAME" /> ఉపయోగిస్తుంది. <ph name="PRODUCT_NAME" /> దాని కంటెంట్‌‌లను నిర్వహిస్తుంది కాబట్టి, డేటా నష్టాన్ని లేదా ఇతర ఊహించని ఎర్రర్‌లను నివారించడానికి ఈ విధానాన్ని వాల్యూమ్ మూల డైరెక్టరీకి లేదా ఇతర ప్రయోజనాల కోసం ఉపయోగించే డైరెక్టరీకి సెట్ చేయకూడదు.
 
-      ఉపయోగించదగిన చరాంశాల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్‌ను చూడండి.
+      ఉపయోగించదగిన వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్ చూడండి.
 
-      ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే, డిఫాల్ట్ కాష్ డైరెక్టరీ ఉపయోగించబడుతుంది. వినియాగదారు దీన్ని '--disk-cache-dir' ఆదేశ లైన్‌ ఫ్లాగ్‌తో అధిగ‌మించ‌గ‌లుగుతారు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, డిఫాల్ట్ కాష్ డైరెక్టరీ ఉపయోగించబడుతుంది, వినియాగదారు దీనిని '--disk-cache-dir' ఆదేశ పంక్తి ఫ్లాగ్‌తో భర్తీ చేయగలుగుతారు.</translation>
 <translation id="113521240853905588"><ph name="PRODUCT_OS_NAME" /> ప్రాధాన్య భాషలుగా ఉపయోగించగల భాషలను కాన్ఫిగర్ చేస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేసినట్లయితే, ఈ విధానంలోని భాషల జాబితాలో ఉన్న ఒక భాషను మాత్రమే వినియోగదారు ప్రాధాన్య భాషల జాబితాకు జోడించగలరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా ఖాళీ జాబితాకు సెట్ చేస్తే, వినియోగదారు ఏ భాషలను అయినా ప్రాధాన్యమైనవిగా సెట్ చేయవచ్చు. ఈ విధానాన్ని చెల్లని విలువలను కలిగిన జాబితాకు సెట్ చేస్తే, చెల్లుబాటు కాని అన్ని విలువలు విస్మరించబడతాయి. ఈ విధానంలో అనుమతించని కొన్ని భాషలను ముందుగానే ప్రాధాన్య భాషల జాబితాకు వినియోగదారు జోడించినట్లయితే, అవి తీసివేయబడతాయి. ఈ విధానంలో అనుమతించని భాషలలో ఒకదానిని ప్రదర్శించే విధంగా వినియోగదారు ముందుగానే <ph name="PRODUCT_OS_NAME" />ని కాన్ఫిగర్ చేసినట్లయితే, వినియోగదారు తర్వాతి సారి సైన్ ఇన్ చేసినప్పుడు ప్రదర్శన భాష అనుమతి ఉన్న UI భాషకు మార్చబడుతుంది. లేకుంటే, ఈ విధానం పేర్కొన్న మొదటి చెల్లుబాటు అయ్యే విలువకు <ph name="PRODUCT_OS_NAME" /> మార్చబడుతుంది లేదా ఈ విధానంలో కేవలం చెల్లుబాటు కాని విలువలు మాత్రమే ఉన్నట్లయితే ఫాల్‌బ్యాక్ లొకేల్‌కి (ప్రస్తుతం en-US) మార్చబడుతుంది.</translation>
@@ -103,7 +111,7 @@
 ఈ విధానం అమలు చేస్తే, వినియోగదారు ఈ విధానం పేర్కొన్న ఇన్‌పుట్ పద్ధతుల నుండి  మాత్రమే ఒకదాన్ని ఎంపిక చేసుకోగలుగుతారు. ఈ విధానాన్ని అమలు చేయకపోయినా లేక ఖాళీ జాబితాను సెట్ చేసినా, మద్దతు కలిగిన అన్ని ఇన్‌పుట్ పద్ధతులను వినియోగదారు ఉపయోగించగలుగుతారు. ఒకవేళ ప్రస్తుత ఇన్‌పుట్ పద్ధతి ఈ విధానంలో అనుమతించబడకపోతే, ఇన్‌పుట్ పద్ధతి హార్డ్‌వేర్ కీబోర్డు లేఅవుట్‌కు (అనుమతించబడితే) లేక ఈ జాబితాలోని చెల్లుబాటు అయ్యే మొదటి నమోదుకు మార్చబడుతుంది. ఈ జాబితాలోని అన్ని చెల్లుబాటు కాని లేదా మద్దతులేని ఇన్‌పుట్ పద్దతులు విస్మరించబడతాయి.</translation>
 <translation id="1138294736309071213">ఈ విధానం రిటైల్ మోడ్‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      రిటైల్ మోడ్‌లోని పరికరం కోసం సైన్-ఇన్ స్క్రీన్‌లో స్క్రీన్ సేవర్‌ను చూపించడానికి ముందు వ్యవధిని నిర్ధారిస్తుంది.
+      రిటైల్ మోడ్‌లోని పరికరం కోసం సైన్-ఇన్ స్క్రీన్‌లో స్క్రీన్ సేవర్‌ను చూపించడానికి ముందు వేచి ఉండాల్సిన వ్యవధిని నిర్ధారిస్తుంది.
 
       విధానం విలువను తప్పనిసరిగా మిల్లీ సెకన్లలలో పేర్కొనాలి.</translation>
 <translation id="1141767714195601945">ఈ విధానం Chrome కోసం Internet Explorer నుండి ఆదేశ-పంక్తి పారామీటర్‌లను నియంత్రిస్తుంది.
@@ -133,11 +141,10 @@
 <translation id="1194005076170619046">ప్రారంభిస్తే, సెషన్ యాక్టివ్‌గా ఉన్నప్పుడు మరియు స్క్రీన్ లాక్ చేయనప్పుడు, సిస్టమ్ ట్రేలో పెద్ద ఎర్రటి లాగ్‌అవుట్ బటన్ చూపబడుతుంది.
 
 నిలిపివేస్తే లేదా పేర్కొనకపోతే, సిస్టమ్ ట్రేలో పెద్ద ఎర్రటి లాగ్‌అవుట్ బటన్ చూపబడదు.</translation>
-<translation id="1197437816436565375">మీరు ప్రాక్సీని ఉపయోగించడానికి Android యాప్‌లను నిర్బంధించలేరు. ప్రాక్సీ సెట్టింగ్‌ల ఉపసమితి Android యాప్‌లకు అందుబాటులో ఉంచబడింది, ప్రాధాన్యత ఇవ్వడానికి అవి దీన్ని స్వచ్ఛందంగా ఎంచుకోవచ్చు. మరిన్ని వివరాల కోసం <ph name="PROXY_MODE_POLICY_NAME" /> విధానాన్ని చూడండి.</translation>
+<translation id="1197437816436565375">మీరు ప్రాక్సీని ఉపయోగించేలా Android యాప్‌లను నిర్బంధించలేరు. ప్రాక్సీ సెట్టింగ్‌ల ఉపసమితి Android యాప్‌లకు అందుబాటులో ఉంచబడింది, దీనికి ప్రాధాన్యత ఇచ్చేలా ఆయా యాప్‌లు స్వచ్ఛందంగా ఎంచుకోవచ్చు. మరిన్ని వివరాల కోసం <ph name="PROXY_MODE_POLICY_NAME" /> విధానాన్ని చూడండి.</translation>
 <translation id="1198465924256827162">పరికరం స్థితి అప్‌లోడ్‌లు ఎంత తరచుగా పంపబడతాయి, మిల్లీసెకన్లలో.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ ఫ్రీక్వెన్సీ 3 గంటలు ఉంటుంది. అనుమతించే
-      కనిష్ట ఫ్రీక్వెన్సీ 60 సెకన్లు ఉంటుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ ఫీక్వెన్సీ 3 గంటలు ఉంటుంది. అనుమతించే కనిష్ట ఫీక్వెన్సీ 60 సెకన్లు ఉంటుంది.</translation>
 <translation id="1204263402976895730">ప్రారంభించబడిన ఎంటర్‌ప్రైజ్ ప్రింటర్‌లు</translation>
 <translation id="1219695476179627719">పరికరం ఇప్పటికే తర్వాతి వెర్షన్‌పై నడుస్తుంటే, అది <ph name="DEVICE_TARGET_VERSION_PREFIX_POLICY_NAME" /> ద్వారా సెట్ చేయబడిన వెర్షన్‌కు తిరిగి వెళ్లాలా? లేదా? అని నిర్దేశిస్తుంది.
       RollbackDisabled డిఫాల్ట్‌‌గా ఉంటుంది.</translation>
@@ -162,9 +169,9 @@
 <translation id="1257550411839719984">డిఫాల్ట్ డౌన్‌లోడ్ డైరెక్టరీని సెట్ చేయండి</translation>
 <translation id="1265053460044691532">SAML ద్వారా ప్రామాణీకరించబడిన వినియోగదారు ఆఫ్‌లైన్‌లో లాగిన్ చేయగల సమయాన్ని పరిమితం చేయండి</translation>
 <translation id="1290634681382861275">USB, బ్లూటూత్, విధానం రీఫ్రెష్, డెవలపర్ మోడ్, ఇతర వాటితో సహా వివిధ సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
-<translation id="1291880496936992484">హెచ్చరిక: 52వ వెర్షన్‌ తర్వాత (సుమారు సెప్టెంబర్ 2016) RC4 <ph name="PRODUCT_NAME" /> నుండి పూర్తిగా తీసివేయబడుతుంది, ఆపై ఈ విధానం పని చేయడం ఆపివేయబడుతుంది.
+<translation id="1291880496936992484">హెచ్చరిక: 52వ వెర్షన్ తర్వాత (సుమారు సెప్టెంబర్ 2016), <ph name="PRODUCT_NAME" /> నుండి RC4 పూర్తిగా తీసివేయబడుతుంది, ఆపై ఈ విధానం పని చేయడం ఆగిపోతుంది.
 
-      విధానాన్ని సెట్ చేయకుంటే లేదా తప్పుకు సెట్ చేస్తే, అప్పుడు TLSలోని RC4 సైఫర్ సూట్‌లు ప్రారంభించబడవు. లేదా కాలం చెల్లిన సర్వర్‌తో అనుకూలతను అలాగే కలిగి ఉండటానికి దీన్ని ఒప్పుకు సెట్ చేయవచ్చు. ఇది విరామ సమయ కొలత ప్రమాణం మరియు సర్వర్‌ను మళ్లీ కాన్ఫిగర్ చేయాలి.</translation>
+      విధానాన్ని సెట్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేస్తే, అప్పుడు TLSలోని RC4 సైఫర్ సూట్‌లు ప్రారంభించబడవు. లేదా కాలం చెల్లిన సర్వర్‌తో అనుకూలతను అలాగే కలిగి ఉండటానికి దీనిని 'ఒప్పు'గా సెట్ చేయవచ్చు. ఇది ఒక తాత్కాలిక పరిష్కారం మాత్రమే, సర్వర్‌ను మళ్లీ కాన్ఫిగర్ చేయాల్సి ఉంటుంది.</translation>
 <translation id="1297182715641689552">.pac ప్రాక్సీ స్క్రిప్ట్‌ను ఉపయోగించండి</translation>
 <translation id="1304973015437969093">ఎక్స్‌టెన్ష‌న్‌/యాప్‌ IDలు మరియు అప్‌డేట్‌ URLలు నిశ్శబ్దంగా ఇన్‌స్టాల్ చేయ‌బ‌డాలి</translation>
 <translation id="1307454923744766368">భద్రతా పరిమితులు వర్తించని అసురక్షిత మూలాలు లేదా
@@ -174,13 +181,13 @@
 <translation id="1327466551276625742">ఆఫ్‌లైన్‌లో ఉన్నప్పుడు నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌ను ప్రారంభించండి</translation>
 <translation id="1330145147221172764">స్క్రీన్‌లో కీబోర్డ్‌ను ప్రారంభించండి</translation>
 <translation id="13356285923490863">విధానం పేరు</translation>
-<translation id="1347198119056266798">ఈ విధానం నిలిపివేయబడింది, దయచేసి బదులుగా <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> మరియు <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />ను ఉపయోగించండి. <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> లేదా (నిలిపివేయబడిన) <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> విధానాలను సెట్ చేస్తే ఈ విధానం విస్మరించబడుతుంది.
+<translation id="1347198119056266798">ఈ విధానం నిలిపివేయబడింది, బదులుగా <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" /> మరియు <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />లను దయచేసి ఉపయోగించండి. <ph name="FORCE_GOOGLE_SAFE_SEARCH_POLICY_NAME" />, <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> లేదా (నిలిపివేయబడిన) <ph name="FORCE_YOUTUBE_SAFETY_MODE_POLICY_NAME" /> విధానాలను సెట్ చేస్తే ఈ విధానం విస్మరించబడుతుంది.
 
-Google వెబ్ శోధనలో సురక్షిత శోధనను యాక్టివేట్‌గా ఉంచి ప్రశ్నలు శోధించేలా నిర్బంధిస్తుంది. వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది. ఈ సెట్టింగ్ YouTubeలో మధ్యస్థ పరిమిత మోడ్‌ను కూడా నిర్బంధిస్తుంది.
+Google వెబ్ శోధనలో సురక్షిత శోధనను యాక్టివ్‌గా ఉంచి ప్రశ్నలు వెతికేలా నిర్బంధిస్తుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది. ఈ సెట్టింగ్ YouTubeలో మధ్యస్థ పరిమిత మోడ్‌ను కూడా నిర్బంధిస్తుంది.
 
-మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, Google శోధనలో సురక్షిత శోధన, YouTubeలో మధ్యస్థ పరిమిత మోడ్ ఎల్లప్పుడూ యాక్టివ్‌గా ఉంటాయి.
+మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, Google శోధనలో సురక్షిత శోధన మరియు YouTubeలో మధ్యస్థ పరిమిత మోడ్ ఎప్పుడూ యాక్టివ్‌గా ఉంటాయి.
 
-మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా ఏ విలువ సెట్ చేయకపోతే, Google శోధనలోని సురక్షిత శోధన, YouTubeలోని పరిమిత మోడ్ అమలు చేయబడవు.</translation>
+మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా ఏ విలువ సెట్ చేయకపోతే, Google శోధనలోని సురక్షిత శోధన మరియు YouTubeలోని పరిమిత మోడ్ అమలు చేయబడవు.</translation>
 <translation id="1352174694615491349">ఈ విధానం క్లయింట్ సర్టిఫికెట్‌లు ఉపయోగంలో ఉన్నప్పుడు HTTP/2 కనెక్షన్ ఏకమయ్యేలా చేస్తుంది. ఒక పద్ధతిలో ఏకం చేయడానికి, వీలైన కొత్త కనెక్షన్ హోస్ట్‌పేరు మరియు ఇప్పటికే ఉన్న కనెక్షన్ యొక్క పాత హోస్ట్‌పేరు రెండూ కూడా ఈ విధానంలో వివరించిన ఒకటి లేదా అంతకన్నా ఎక్కువ నమూనాలతో తప్పక సరిపోలాల్సి ఉంటుంది. ఈ విధానం URLBlacklist ఫిల్టర్ ఫార్మాట్‌ను ఉపయోగిస్తున్న హోస్ట్‌ల జాబితాను కలిగి ఉంటుంది: "example.com" అనేది "example.com"కు సరిపోలుతుంది మరియు దాని అన్ని ఉపడొమైన్‌లు (ఉదాహరణకు "sub.example.com"), అయితే ఏది ఏమైనా ".example.net" అనేది "example.net"తో ఖచ్చితంగా సరిపోలేలా ఉండాలి.
 
       క్లయింట్ సర్టిఫికేట్‌లను ఉపయోగించే కనెక్షన్‌లపై విభిన్న హోస్ట్‌లకు ఏకీకరణ అభ్యర్ధనలు చేయడం మూలంగా భద్రత మరియు గోప్యతా సమస్యలు ఉత్పన్నం కావచ్చు, ఎందుకంటే వినియోగదారు ఈ అధికారాన్ని అధికారికంగా ఆమోదించకపోయినప్పటికీ, అన్ని అభ్యర్థనలకు పరిసర అధికారం తెలియజేయబడుతుంది. ఈ విధానం తాత్కాలికమైనది మరియు భవిష్యత్తు విడుదలలో తీసివేయబడుతుంది. Https://crbug.com/855690 చూడండి.
@@ -188,14 +195,14 @@
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, క్లయింట్ సర్టిఫికెట్‌లను ఉపయోగించి ఏ ఒక్క HTTP/2 కనెక్షన్‌ ఏకీరించలేని డిఫాల్ట్ ప్రవర్తన ఉపయోగించబడుతుంది.</translation>
 <translation id="1353966721814789986">స్టార్ట్‌అప్ పేజీలు</translation>
 <translation id="1354424209129232709">గరిష్టం:</translation>
-<translation id="1354452738176731363">ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వినియోగదారు లాగిన్ చేసినప్పుడు పరికరంలో ఆడియో అవుట్‌పుట్ అందుబాటులో ఉండదు.
+<translation id="1354452738176731363">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారు లాగిన్ చేసినప్పుడు పరికరంలో ఆడియో అవుట్‌పుట్ అందుబాటులో ఉండదు.
 
-ఈ విధానం అంతర్గత స్పీకర్‌లనే కాకుండా ఆడియో అవుట్‌పుట్ యొక్క అన్ని రకాలను ప్రభావితం చేస్తుంది. ఈ విధానం వలన ఆడియోను యాక్సెస్‌ చేయగల ఫీచర్‌లు అడ్డగించబడతాయి. వినియోగదారుకు స్క్రీన్ రీడర్ అవసరమైతే ఈ విధానాన్ని ప్రారంభించవద్దు.
+ఈ విధానం అంతర్గత స్పీకర్‌లనే కాకుండా అన్ని రకాల ఆడియో అవుట్‌పుట్‌లను ప్రభావితం చేస్తుంది. ఈ విధానం వలన ఆడియో యాక్సెస్ సౌలభ్య ఫీచర్‌లు కూడా నిరోధించబడతాయి. వినియోగదారుకు స్క్రీన్ రీడర్ అవసరమైతే ఈ విధానాన్ని ప్రారంభించవద్దు.
 
-ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే వినియోగదారులు వారి పరికరంలో అన్ని మద్దతు ఉన్న ఆడియో అవుట్‌పుట్‌లను ఉపయోగించవచ్చు.</translation>
-<translation id="1359553908012294236">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_NAME" /> అతిథి లాగిన్‌లను అనుమతిస్తుంది. అతిథి లాగిన్‌లు అంటే అన్ని విండోలు అజ్ఞాత మోడ్‌లో ఉండే <ph name="PRODUCT_NAME" /> ప్రొఫైల్‌లు.
+ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే వినియోగదారులు వారి పరికరంలో అన్ని మద్దతు ఉన్న ఆడియో అవుట్‌పుట్‌లను ఉపయోగించవచ్చు.</translation>
+<translation id="1359553908012294236">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_NAME" /> అతిథి లాగిన్‌లను అనుమతిస్తుంది. అతిథి లాగిన్‌లు అంటే అన్ని విండోలు అజ్ఞాత మోడ్‌లో ఉండే <ph name="PRODUCT_NAME" /> ప్రొఫైల్‌లు.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> అతిథి ప్రొఫైల్‌లు ప్రారంభం కావ‌డానికి అనుమతించదు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> అతిథి ప్రొఫైల్‌లు ప్రారంభించడానికి అనుమతించదు.</translation>
 <translation id="1363275621236827384">హార్డ్‌వేర్ ప్రొఫైల్‌ల కోసం Quirks Serverకు ప్రశ్నలను ప్రారంభించు</translation>
 <translation id="1363612796557848469">ఈ విధానం స్క్రీన్ సందర్భాన్ని యాక్సెస్ చేయడానికి, సమాచారాన్ని సర్వర్‌కు పంపడానికి Google అసిస్టెంట్‌కు అనుమతి మంజూరు చేస్తుంది.
       ఒకవేళ విధానాన్ని ప్రారంభిస్తే, స్క్రీన్ సందర్భాన్ని యాక్సెస్ చేయడానికి Google అసిస్టెంట్ అనుమతించబడుతుంది.
@@ -238,58 +245,58 @@
 
       ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్‌తో అనుబంధితమైన Windows సందర్భాలు లేదా పరికర నిర్వహణ కోసం నమోదైన Windows 10 Pro లేదా Enterprise సందర్భాలలో మాత్రమే అందుబాటులో ఉంటుంది.</translation>
 <translation id="1432194160771348078">
-      లాగిన్ స్క్రీన్‌లో వినియోగదారు ప్రమేయం లేకుండా నిశ్శబ్దంగా ఇన్‌స్టాల్ అయ్యే మరియు తిరిగి అన్‌ఇన్‌స్టాల్ చేయడం సాధ్యపడని యాప్‌ల జాబితాను పేర్కొంటుంది. యాప్‌లు అభ్యర్థించే అన్ని అనుమతులు వినియోగదారు ప్రమేయం లేకుండానే పరిపూర్ణంగా మంజూరు చేయబడతాయి. అలాగే యాప్ యొక్క భవిష్యత్తు వెర్షన్‌లు అభ్యర్థించే ఏవైనా అదనపు అనుమతులు ఇవ్వబడతాయి.
+      లాగిన్ స్క్రీన్‌లో వినియోగదారు ప్రమేయం లేకుండా నిశ్శబ్దంగా ఇన్‌స్టాల్ అయ్యే మరియు తిరిగి అన్‌ఇన్‌స్టాల్ చేయడం సాధ్యపడని యాప్‌ల జాబితాను పేర్కొంటుంది. యాప్‌లు అభ్యర్థించే అన్ని అనుమతులు వినియోగదారు ప్రమేయం లేకుండానే పరిపూర్ణంగా మంజూరు చేయబడతాయి, అలాగే యాప్ యొక్క భవిష్యత్తు వెర్షన్‌లు అభ్యర్థించే ఏవైనా అదనపు అనుమతులు ఇవ్వబడతాయి.
 
-భద్రతా మరియు గోప్యతా కారణాల కోసం ఈ విధానం ఉపయోగించి ఎక్స్‌టెన్ష‌న్‌లను ఇన్‌స్టాల్ చేయడం అనుమతించబడదు. అంతేగాక, స్థిరమైన ఛానెల్‌లో పరికరాలు <ph name="PRODUCT_NAME" />లో సమూహం చేయబడిన వైట్‌లిస్ట్‌లోని యాప్‌లను మాత్రమే ఇన్‌స్టాల్ చేస్తాయి. ఈ షరతులకు అనుగుణంగా లేనివి విస్మరించబడతాయి.
+భద్రతా మరియు గోప్యతా కారణాల దృష్ట్యా ఈ విధానాన్ని ఉపయోగించి ఎక్స్‌టెన్షన్‌లను ఇన్‌స్టాల్ చేయడం అనుమతించబడదు. అంతేగాక, స్థిరమైన ఛానెల్‌లో పరికరాలు <ph name="PRODUCT_NAME" />లో గ్రూప్ చేయబడిన వైట్‌లిస్ట్‌‌లో యాప్‌లను మాత్రమే ఇన్‌స్టాల్ చేస్తాయి. ఈ షరతులకు అనుగుణంగా లేని ఏ అంశాలు అయినా విస్మరించబడతాయి.
 
 ఇంతకుముందు నిర్బంధంగా ఇన్‌స్టాల్ చేసిన యాప్ ఈ జాబితా నుండి తీసివేయబడితే అది <ph name="PRODUCT_NAME" /> ద్వారా ఆటోమేటిక్‌గా అన్‌ఇన్‌స్టాల్ చేయబడుతుంది.
 
-విధానం యొక్క ప్రతి జాబితా అంశం సెమీకోలన్ (<ph name="SEMICOLON" />) ద్వారా వేరు చేయబడిన ఎక్స్‌టెన్ష‌న్‌ ID మరియు "అప్‌డేట్" URLలను కలిగి ఉండే స్ట్రింగ్. ఉదా. డెవలపర్ మోడ్‌లో ఉన్నప్పుడు <ph name="CHROME_EXTENSIONS_LINK" />లో కనుగొనబడే 32-అక్షరాల స్ట్రింగ్‌నే ఎక్స్‌టెన్ష‌న్‌ ID అంటారు. <ph name="LINK_TO_EXTENSION_DOC1" />లో వివరించినట్లుగా "అప్‌డేట్" URL అనేది అప్‌డేట్ మానిఫెస్ట్ XML పత్రాన్ని సూచించాలి. ఈ విధానంలో సెట్ చేసిన "అప్‌డేట్" URL ప్రాథమిక ఇన్‌స్టాలేషన్ కోసం మాత్రమే ఉపయోగించబడుతుందని; ఎక్స్‌టెన్ష‌న్‌ యొక్క తర్వాతి అప్‌డేట్‌లు ఎక్స్‌టెన్ష‌న్‌ మానిఫెస్ట్‌‍లో సూచించిన అప్‌డేట్ URLను వినియోగిస్తాయని గమనించండి.
+విధానం యొక్క ప్రతి జాబితా అంశం సెమీకోలన్ (<ph name="SEMICOLON" />) ద్వారా వేరు చేయబడిన ఎక్స్‌టెన్షన్ ID మరియు "అప్‌డేట్" URLలను కలిగి ఉండే స్ట్రింగ్. ఉదా. డెవలపర్ మోడ్‌లో ఉన్నప్పుడు <ph name="CHROME_EXTENSIONS_LINK" />లో కనుగొనబడే 32-అక్షరాల స్ట్రింగ్‌నే ఎక్స్‌టెన్షన్ ID అంటారు. <ph name="LINK_TO_EXTENSION_DOC1" />లో వివరించినట్లుగా, "అప్‌డేట్" URL అనేది అప్‌డేట్ మానిఫెస్ట్ XML పత్రాన్ని సూచించాలి. ఈ విధానంలో సెట్ చేసిన "అప్‌డేట్" URL ప్రారంభ ఇన్‌స్టలేషన్ కోసం మాత్రమే ఉపయోగించబడుతుందని; ఎక్స్‌టెన్షన్ యొక్క తర్వాతి అప్‌డేట్‌లు ఎక్స్‌టెన్షన్ మానిఫెస్ట్‌‍లో సూచించిన అప్‌డేట్ URLను వినియోగిస్తాయని గమనించండి.
 
-ఉదాహరణకు, <ph name="EXTENSION_POLICY_EXAMPLE" /> ప్రామాణిక Chrome వెబ్ స్టోర్ "అప్‌డేట్" URL నుండి <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> యాప్‌ను ఇన్‌స్టాల్ చేస్తుంది. ఎక్స్‌టెన్ష‌న్‌లను హోస్ట్ చేయడం గురించి మరింత సమాచారం కోసం, ఈ లింక్‌ను చూడండి: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
+ఉదాహరణకు, <ph name="EXTENSION_POLICY_EXAMPLE" /> ప్రామాణిక Chrome వెబ్ స్టోర్ "అప్‌డేట్" URL నుండి <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" />యాప్‌ను ఇన్‌స్టాల్ చేస్తుంది. ఎక్స్‌టెన్షన్‌లను హోస్ట్ చేయడం గురించి మరింత సమాచారం కోసం, ఈ లింక్‌ను చూడండి: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation>
 <translation id="1435659902881071157">పరికరం-స్థాయి నెట్‌వర్క్ కాన్ఫిగరేషన్</translation>
 <translation id="1438739959477268107">డిఫాల్ట్ కీ జెనరేటర్ సెట్టింగ్</translation>
-<translation id="1454846751303307294">మిమ్మల్ని JavaScriptను అమలు చేయడానికి అనుమతించని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేసేందుకు అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుంటే, 'DefaultJavaScriptSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.</translation>
+<translation id="1454846751303307294">మిమ్మల్ని JavaScriptను అమలుచేయడానికి అనుమతించని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేసేందుకు అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే 'DefaultJavaScriptSetting'ను సెట్ చేస్తే దాని నుండి లేదా ఇతరత్రా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌లకు ఉపయోగించబడుతుంది.</translation>
 <translation id="1456822151187621582">Windows (<ph name="PRODUCT_OS_NAME" /> క్లయింట్‌లు):</translation>
-<translation id="1458547592473993238">ఈ విధానం నిలిపివేయబడింది. దయచేసి Flash ప్లగిన్ యొక్క అందుబాటును నియంత్రించడానికి <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />‌ను, అలాగే PDF ఫైల్‌లను తెరిచేందుకు ఏకీకరించిన PDF వ్యూయర్‌‌ను ఉపయోగించాలా లేదా అనేది నియంత్రించడానికి <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" />‌ను ఉపయోగించండి.
+<translation id="1458547592473993238">ఈ విధానం నిలిపివేయబడింది. Flash ప్లగిన్ అందుబాటును నియంత్రించడానికి, <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />ను మరియు PDF ఫైల్‌లను తెరిచేందుకు ఏకీకరించిన PDF వ్యూయర్‌ను ఉపయోగించాలా లేదా అనేది నియంత్రించడానికి దయచేసి <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" />ను ఉపయోగించండి.
 
 <ph name="PRODUCT_NAME" />లో ఆపివేయబడిన ప్లగిన్‌ల జాబితాను పేర్కొంటుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చడాన్ని నిరోధిస్తుంది.
-     
-స్వతంత్ర అక్షరాల క్రమాలను సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?'ని ఉపయోగిస్తారు. స్వతంత్రమైన చాలా అక్షరాలను '*' పేర్కొంటుంది మరియు '?' ఐచ్చిక ఒక అక్షరాన్ని పేర్కొంటుంది. అంటే సున్నా లేదా ఒక అక్షరాన్ని మాత్రమే పేర్కొంటుంది. '\' ఎస్కేప్ అక్షరం కాబట్టి '*', '?', లేదా '\' కనుగొనడానికి మీరు వాటి ముందు '\' ఉపయోగించవచ్చు.
+   
+స్వతంత్ర అక్షరాల క్రమాలను సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?'ని ఉపయోగిస్తారు. స్వతంత్రమైన చాలా అక్షరాలను '*' పేర్కొంటుంది మరియు '?' ఐచ్చిక ఒక అక్షరాన్ని పేర్కొంటుంది, అనగా సున్నా లేదా ఒక అక్షరాన్ని మాత్రమే పేర్కొంటుంది. '\' ఎస్కేప్ అక్షరం కాబట్టి '*', '?', లేదా '\' కనుగొనడానికి మీరు వాటి ముందు '\' ఉపయోగించవచ్చు.
 
-మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, పేర్కొనబడిన ప్లగిన్‌ల జాబితా ఎప్పుడు <ph name="PRODUCT_NAME" />లో ఉపయోగించబడదు. ప్లగిన్‌లు 'about:plugins'లో ఆపివేయబడిన వాటిగా గుర్తించబడతాయి మరియు వినియోగదారులు వాటిని ప్రారంభించలేరు.
+మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, పేర్కొనబడిన ప్లగిన్‌ల జాబితా ఎప్పటికీ <ph name="PRODUCT_NAME" />లో ఉపయోగించబడదు. ప్లగిన్‌లు 'about:plugins'లో ఆపివేయబడినవాటిగా గుర్తించబడతాయి, వినియోగదారులు వాటిని ప్రారంభించలేరు.
 
-ఈ విధానం EnabledPlugins మరియు DisabledPluginsExceptions ద్వారా అధిగ‌మించ‌బ‌డుతుంద‌ని గుర్తుంచుకోండి.
+ఈ విధానం EnabledPlugins మరియు DisabledPluginsExceptions ద్వారా భర్తీ చేయబడుతుందని గుర్తుంచుకోండి.
 
-ఈ విధానం సెట్ చేయకపోతే, వినియోగదారు సిస్టమ్‌లో ఇన్‌స్టాల్ చేయబడిన హార్డ్-కోడ్ చేయబడినటువంటి, అనుకూలం కాని, గడువు ముగిసిన లేదా ప్రమాదకరమైన ప్లగ్ఇన్‌‌లు కాకుండా ఏ ప్లగ్ఇన్‌‌ను అయినా ఉపయోగించవచ్చు.</translation>
-<translation id="1464848559468748897"><ph name="PRODUCT_OS_NAME" /> పరికరాల్లో బహుళ ప్రొఫైల్ సెషన్‌లో వినియోగదారు ప్రవర్తనను నియంత్రించండి.
+ఈ విధానం సెట్ చేయకుండా వదిలి పెట్టినది అయితే వినియోగదారు సిస్టమ్‌లో ఇన్‌స్టాల్ చేయబడిన హార్డ్-కోడ్ చేయబడిన అనుకూలం కాని, గడువు ముగిసిన లేదా ప్రమాదకరమైన ప్లగిన్‌లు కాకుండా ఏ ప్లగిన్‌ను అయినా ఉపయోగించవచ్చు.</translation>
+<translation id="1464848559468748897"><ph name="PRODUCT_OS_NAME" /> పరికరాలలో బహుళ ప్రొఫైల్ సెషన్‌లో వినియోగదారు ప్రవర్తనను నియంత్రించండి.
 
-      ఈ విధానం 'MultiProfileUserBehaviorUnrestricted'కు సెట్ చేయబడితే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో ప్రాథమిక లేదా రెండవ వినియోగదారుగా ఉండవచ్చు.
+      ఈ విధానాన్ని 'MultiProfileUserBehaviorUnrestricted'కు సెట్ చేస్తే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో ప్రాథమిక లేదా రెండవ వినియోగదారుగా ఉండవచ్చు.
 
-      ఈ విధానం 'MultiProfileUserBehaviorMustBePrimary'కి సెట్ చేయబడితే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో ప్రాథమిక వినియోగదారుగా మాత్రమే ఉండవచ్చు.
+      ఈ విధానాన్ని 'MultiProfileUserBehaviorMustBePrimary'కు సెట్ చేస్తే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో ప్రాథమిక వినియోగదారుగా మాత్రమే ఉండవచ్చు.
 
-      ఈ విధానం 'MultiProfileUserBehaviorNotAllowed'కు సెట్ చేయబడితే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో భాగం కాకపోవచ్చు.
+      ఈ విధానాన్ని 'MultiProfileUserBehaviorNotAllowed'కు సెట్ చేస్తే, వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో భాగం కాకపోవచ్చు.
 
-      మీరు ఈ సెట్టింగ్‌ను సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ సెట్టింగ్‌ను సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో సైన్ ఇన్ చేసి ఉన్నప్పుడు సెట్టింగ్ మార్చబడితే, సెషన్‌లో ఉన్న వినియోగదారులందరూ వారి సంబంధిత సెట్టింగ్‌లకు అనుగుణంగా ఎంచుకోబడతారు. వినియోగదారుల్లో ఎవరైనా సెషన్‌లో ఉండటానికి అనుమతించబడకపోతే సెషన్ ముగుస్తుంది.
+      వినియోగదారు బహుళ ప్రొఫైల్ సెషన్‌లో సైన్ ఇన్ చేసి ఉన్నప్పుడు సెట్టింగ్ మార్చబడితే, సెషన్‌లో ఉన్న వినియోగదారులందరూ వారి సంబంధిత సెట్టింగ్‌లకు అనుగుణంగా ఎంచుకోబడతారు. వినియోగదారులలో ఎవరైనా సెషన్‌లో ఉండటానికి అనుమతించబడకపోతే సెషన్ ముగుస్తుంది.
 
-      విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఎంటర్‌ప్రైజ్-నిర్వాహక వినియోగదారులకు డిఫాల్ట్ విలువ అయిన 'MultiProfileUserBehaviorMustBePrimary' వర్తిస్తుంది. నిర్వహించబడని వినియోగదారుల కోసం 'MultiProfileUserBehaviorUnrestricted' ఉపయోగించబడుతుంది.</translation>
+      విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఎంటర్‌ప్రైజ్-నిర్వాహక వినియోగదారులకు డిఫాల్ట్ విలువ అయిన 'MultiProfileUserBehaviorMustBePrimary' వర్తిస్తుంది మరియు నిర్వహించబడని వినియోగదారుల కోసం 'MultiProfileUserBehaviorUnrestricted' ఉపయోగించబడుతుంది.</translation>
 <translation id="1465619815762735808">ప్లే చెయ్యడానికి క్లిక్ చెయ్యండి</translation>
-<translation id="1468307069016535757">లాగిన్ స్క్రీన్‌లో అధిక కాంట్రాస్ట్ మోడ్ యాక్సెస్ సౌలభ్య ఫీచర్‌ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి.
+<translation id="1468307069016535757">లాగిన్ స్క్రీన్‌లో అధిక కాంట్రాస్ట్ మోడ్ యాక్సెస్ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు అధిక కాంట్రాస్ట్ మోడ్ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు అధిక కాంట్రాస్ట్ మోడ్ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు అధిక కాంట్రాస్ట్ మోడ్ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు అధిక కాంట్రాస్ట్ మోడ్ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు అధిక కాంట్రాస్ట్ మోడ్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీన్ని తాత్కాలికంగా అధిగ‌మించ‌వ‌చ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్‌లో కొత్త‌ది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో యాక్టివ్‌గా లేనప్పుడు డిఫాల్ట్ పునరుద్ధరించబడుతుంది.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు అధిక కాంట్రాస్ట్ మోడ్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీనిని తాత్కాలికంగా భర్తీ చేయవచ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు, లాగిన్ స్క్రీన్‌లో కొత్తది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు డిఫాల్ట్ పునరుద్ధరించబడుతుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు అధిక కాంట్రాస్ట్ మోడ్ నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా అధిక కాంట్రాస్ట్ మోడ్‌ను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారుల మధ్య అలాగే కొనసాగుతుంది.</translation>
-<translation id="1468707346106619889">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, ఏకీకృత డెస్క్‌టాప్ అనుమతించబడుతుంది మరియు
-      డిఫాల్ట్‌గా ప్రారంభించబడుతుంది. దీని వల్ల యాప్‌లు బహుళ డిస్‌ప్లేల్లో కనిపించేలా
-      అనుమతించబడతాయి. డిస్‌ప్లే సెట్టింగ్‌లలో దాని ఎంపికను తీసివేయడం ద్వారా, వినియోగదారు, నిర్దిష్ట డిస్‌ప్లేలకు ఏకీకృత డెస్క్‌టాప్‌ను నిలిపివేయవచ్చు.
-      విధానం తప్పున‌కు సెట్ చేసినా లేదా అసలు సెట్ చేయకపోయినా, ఏకీకృత డెస్క్‌టాప్
-      నిలిపివేయబడుతుంది. ఈ సందర్భంలో వినియోగదారు, ఫీచర్‌ను ప్రారంభించలేరు.</translation>
+<translation id="1468707346106619889">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, ఏకీకృత డెస్క్‌టాప్ అనుమతించబడుతుంది మరియు
+      డిఫాల్ట్‌గా ప్రారంభించబడుతుంది, దీని వల్ల యాప్‌లు బహుళ డిస్‌ప్లేలలో కనిపించేలా
+      అనుమతించబడతాయి. వేర్వేరు డిస్‌ప్లేలు ఉండే వాటికి ఏకీకృత డెస్క్‌టాప్‌ను నిలిపివేయడానికి, డిస్‌ప్లే సెట్టింగ్‌లలో దాని ఎంపికను వినియోగదారులు తీసివేయవచ్చు.
+
+      విధానాన్ని 'తప్పు'గా సెట్ చేసినా లేదా అసలు సెట్ చేయకపోయినా, ఏకీకృత డెస్క్‌టాప్ నిలిపివేయబడుతుంది. ఈ సందర్భంలో, ఈ ఫీచర్‌ను వినియోగదారు ప్రారంభించలేరు.</translation>
 <translation id="1474273443907024088">TLS తప్పు ప్రారంభాన్ని నిలిపివేస్తుంది</translation>
 <translation id="1477934438414550161">TLS 1.2</translation>
 <translation id="1502843533062797703">మూడవ పక్షం సాఫ్ట్‌వేర్ చొప్పింపు బ్లాకింగ్‌ను ప్రారంభించండి</translation>
@@ -307,7 +314,7 @@
 <translation id="152657506688053119">డిఫాల్ట్ శోధన ప్రదాత కోసం ప్రత్యామ్నాయ URLల జాబితా</translation>
 <translation id="1530812829012954197">హోస్ట్ బ్రౌజర్‌లో ఎల్లప్పుడు కింది URL విధానాలను రెండర్ చేయి</translation>
 <translation id="1541170838458414064">ముద్రణ పేజీ పరిమాణాన్ని పరిమితం చేయండి</translation>
-<translation id="1553684822621013552">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినప్పుడు, వినియోగదారు కోసం ARC ప్రారంభించబడుతుంది
+<translation id="1553684822621013552">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, వినియోగదారు కోసం ARC ప్రారంభించబడుతుంది
       (అదనపు విధాన సెట్టింగ్‌ల తనిఖీలకు లోబడి, ప్రస్తుత వినియోగదారు సెషన్‌లో
       తాత్కాలిక మోడ్ లేదా బహుళ సైన్-ఇన్ ప్రారంభించబడి ఉంటే ARC ఇప్పటికీ
       అందుబాటులో ఉండదు).
@@ -326,11 +333,18 @@
 
       ఈ విధానాన్ని తప్పు అని సెట్ చేస్తే వినియోగదారులు కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను ఎంచుకుని Google సర్వర్‌లకు పంపకుండా అడ్డుకోబడతారు. ఈ సెట్టింగ్‌ను ఒప్పు అని సెట్ చేసినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను సురక్షిత బ్రౌజింగ్‌కు పంపడానికి అనుమతించబడతారు, తద్వారా ప్రమాదకరమైన యాప్‌లు మరియు సైట్‌లను గుర్తించడంలో సహాయపడతారు.
 
-      సురక్షిత బ్రౌజింగ్ గురించిన మరింత సమాచారం కోసం https://developers.google.com/safe-browsing చూడండి.</translation>
+      సురక్షిత బ్రౌజింగ్ గురించి మరింత సమాచారం కోసం https://developers.google.com/safe-browsing చూడండి.</translation>
 <translation id="1583248206450240930"><ph name="PRODUCT_FRAME_NAME" />ను డిఫాల్ట్‌గా ఉపయోగించు</translation>
 <translation id="1599424828227887013">Android పరికరాల్లో పేర్కొనబడిన ప్రారంభ స్థానాల కోసం సైట్‌ను వేరు చేసే ప్రక్రియను ప్రారంభించండి</translation>
 <translation id="1608755754295374538">ప్రాంప్ట్ చేయబడకుండా ఆడియో క్యాప్చర్ పరికరాలకు యాక్సెస్ మంజూరు చేయబడే URLలు</translation>
 <translation id="1615221548356595305">ఈ హోస్ట్‌లు క్లయింట్ సర్టిఫికెట్‌లను ఉపయోగిస్తున్నప్పటికీ కూడా HTTP/2 కనెక్షన్‌ల ఏకీకరణకు అనుమతించవచ్చు</translation>
+<translation id="1615855314789673708">Wilco DTC (సమస్య విశ్లేషణలు మరియు టెలీమెట్రీ కంట్రోలర్) కాన్ఫిగరేషన్‌ని అందిస్తుంది.
+
+      అందించిన పరికరంలో wilco DTC అందుబాటులో ఉండి, విధానం అనుమతిస్తే, wilco DTC కాన్ఫిగరేషన్‌ని అందించడానికి ఈ విధానం అనుమతిస్తుంది. కాన్ఫిగరేషన్ యొక్క పరిమాణం 1MB (1000000 బైట్‌లు) కంటే ఎక్కువ ఉండకూడదు మరియు తప్పక JSONలో ఎన్‌కోడ్ చేయాలి. దీనిని నిర్వహించడం wilco DTC బాధ్యత. డౌన్‌లోడ్ యొక్క సమగ్రతను ధృవీకరించడం కోసం క్రిప్టోగ్రఫిక్ హ్యాష్ ఉపయోగించబడుతుంది.
+
+      కాన్ఫిగరేషన్ డౌన్‌లోడ్ చేయబడింది మరియు కాష్ చేయబడింది. URL లేదా హ్యాష్ మారినప్పుడు ఇది తిరిగి డౌన్‌లోడ్ అవుతుంది.
+
+      ఈ విధానాన్ని మీరు సెట్ చేస్తే, దీనిని వినియోగదారు భర్తీ చేయలేరు.</translation>
 <translation id="1617235075406854669">బ్రౌజర్ మరియు డౌన్‌లోడ్ చరిత్ర తొలగింపును ప్రారంభించండి</translation>
 <translation id="163200210584085447">ఈ జాబితాలోని నమూనాలు అభ్యర్థిస్తున్న URL భద్రతా
       మూలాధారంతో సరిపోల్చబడతాయి.  సరిపోలినది కనుగొనబడితే, వీడియో సంగ్రహణ పరికరాలకు 
@@ -340,20 +354,20 @@
 <translation id="1634989431648355062">ఈ సైట్‌లలో <ph name="FLASH_PLUGIN_NAME" /> ప్లగ్ఇన్‌‌ను అనుమతించు</translation>
 <translation id="1653229475925941921">ఈ విధానాన్ని సెట్ చేస్తే, ఇది ప్రారంభించబడే స్క్రీన్ మాగ్నిఫైయర్ రకాన్ని నియంత్రిస్తుంది. విధానాన్ని "ఏదీ కాదు"కు సెట్ చేయడం వలన స్క్రీన్ మాగ్నిఫైయర్ నిలిపివేయబడుతుంది.
 
-మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, స్క్రీన్ మాగ్నిఫైయర్ ప్రాథమికంగా నిలిపివేయబడుతుంది కానీ వినియోగదారు ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, స్క్రీన్ మాగ్నిఫైయర్ ప్రారంభంలో నిలిపివేయబడుతుంది కానీ దీనిని ఎప్పుడైనా వినియోగదారు ప్రారంభించవచ్చు.</translation>
 <translation id="1655229863189977773">డిస్క్ కాష్ పరిమాణాన్ని బైట్‌ల‌లో సెట్ చేయండి</translation>
 <translation id="166427968280387991">ప్రాక్సీ సర్వర్</translation>
-<translation id="1668836044817793277"><ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించడం కోసం సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్‌ను అనుమతించాలా వద్దా అనే దాన్ని నిర్ణయిస్తుంది.
+<translation id="1668836044817793277"><ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించడం కోసం సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్‌ను అనుమతించాలా వద్దా అనేదాన్ని నిర్ణయిస్తుంది.
 
-      సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్‌ మానిఫెస్ట్‌లో required_platform_versionను పేర్కొనడం ద్వారా <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించడానికి దాన్ని అనుమతించాలా వద్దా మరియు దీన్ని ఆటో అప్‌డేట్ టార్గెట్‌ వెర్షన్‌ ప్రీఫిక్స్‌గా ఉపయోగించాలా వద్దా అనే వాటిని ఈ విధానం నియంత్రిస్తుంది.
+      సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్ మానిఫెస్ట్‌లో required_platform_versionను పేర్కొనడం ద్వారా <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించడానికి దానిని అనుమతించాలా వద్దా మరియు దీనిని స్వీయ అప్‌డేట్ లక్ష్య వెర్షన్ ప్రీఫిక్స్‌గా ఉపయోగించాలా వద్దా అనేవాటిని ఈ విధానం నియంత్రిస్తుంది.
 
-      విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్‌ యొక్క required_platform_version మానిఫెస్ట్ కీ విలువ ఆటో అప్‌డేట్ టార్గెట్‌ వెర్షన్‌ ప్రీఫిక్స్‌గా ఉపయోగించబడుతుంది.
+      విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, సున్నా జాప్యంతో స్వయం ప్రారంభిత కియోస్క్ యాప్ యొక్క required_platform_version మానిఫెస్ట్ కీ విలువ స్వీయ అప్‌డేట్ లక్ష్య వెర్షన్ ప్రీఫిక్స్‌గా ఉపయోగించబడుతుంది.
 
-      విధానాన్ని కాన్ఫిగర్ చేయకపోతే లేదా తప్పున‌కు సెట్ చేస్తే, required_platform_version మానిఫెస్ట్ కీ విస్మరించబడుతుంది. ఆటో అప్‌డేట్ సాధారణంగా కొనసాగుతుంది.
+      విధానాన్ని కాన్ఫిగర్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేస్తే, required_platform_version మానిఫెస్ట్ కీ విస్మరించబడుతుంది మరియు స్వీయ అప్‌డేట్ సాధారణంగా కొనసాగుతుంది.
 
-      హెచ్చరిక: సాఫ్ట్‌వేర్ అప్‌డేట్‌లను, కీలకమైన భద్రతా పరిష్కారాలను పొందనివ్వకుండా పరికరాన్ని నిరోధించ‌వ‌చ్చు. కనుక <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ యొక్క నియంత్రణ అధికారాన్ని కియోస్క్ యాప్‌న‌కు కేటాయించడం సమర్థనీయం కాదు. <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌కు నియంత్రణ అధికారాన్ని కేటాయించడం వినియోగదారులను ఇబ్బందులకు గురిచేయవచ్చు.</translation>
+      హెచ్చరిక: సాఫ్ట్‌వేర్ అప్‌డేట్‌లు మరియు కీలకమైన భద్రతా పరిష్కారాలను పొందనివ్వకుండా పరికరాన్ని నిరోధిస్తుంది, కనుక <ph name="PRODUCT_OS_NAME" /> వెర్షన్ యొక్క నియంత్రణ అధికారాన్ని కియోస్క్ యాప్‌నకు కేటాయించడం సమర్థనీయం కాదు. <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌కు నియంత్రణ అధికారాన్ని కేటాయించడం వినియోగదారులను ఇబ్బందులకు గురిచేయవచ్చు.</translation>
 <translation id="1675002386741412210">లో మద్దతిస్తుంది:</translation>
 <translation id="1689963000958717134"><ph name="PRODUCT_OS_NAME" /> పరికరం యొక్క వినియోగదారులందరికీ వర్తించేలా నెట్‌వర్క్ కాన్ఫిగరేషన్‌ను అందించడానికి అనుమతిస్తుంది. నెట్‌వర్క్ కాన్ఫిగరేషన్ అనేది <ph name="ONC_SPEC_URL" />లో వివరించిన విధంగా ఓపెన్ నెట్‌వర్క్ కాన్ఫిగరేషన్ ఫార్మాట్ ద్వారా నిర్వచించిన JSON-ఫర్మాటింగ్ స్ట్రింగ్</translation>
 <translation id="1708496595873025510">వ్యత్యాసాల సీడ్‌ను పొందడంలో పరిమితిని సెట్ చేయండి</translation>
@@ -384,7 +398,7 @@
 
       విధానాన్ని <ph name="PRODUCT_OS_NAME" /> సేవా నిబంధనలను డౌన్‌లోడ్ చేయగల URLకు సెట్ చేయాలి. సేవా నిబంధనలు MIME రకం వచనం/సాదా అందించబడిన విధంగా సాదా వచనంగా ఉండాలి. మార్కప్ అనుమతించబడదు.</translation>
 <translation id="1750315445671978749">అన్ని డౌన్‌లోడ్‌లను బ్లాక్ చేయి</translation>
-<translation id="1781356041596378058">అలాగే, ఈ విధానం Android డెవలపర్ ఎంపికలకు కూడా యాక్సెస్‌ను నియంత్రిస్తుంది. మీరు ఈ విధానాన్ని ఒప్పుకి సెట్ చేస్తే, వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయలేరు. మీరు ఈ విధానాన్ని తప్పుకి సెట్ చేసినా లేదా ఏదీ సెట్ చేయకపోయినా, Android సెట్టింగ్‌ల యాప్‌లో బిల్డ్ సంఖ్యపై ఏడుసార్లు నొక్కడం ద్వారా వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయగలరు.</translation>
+<translation id="1781356041596378058">అలాగే, ఈ విధానం Android డెవలపర్ ఎంపికలకు కూడా యాక్సెస్‌ను నియంత్రిస్తుంది. మీరు ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయలేరు. మీరు ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినా లేదా ఏదీ సెట్ చేయకపోయినా, Android సెట్టింగ్‌ల యాప్‌లో బిల్డ్ సంఖ్యపై ఏడుసార్లు నొక్కడం ద్వారా వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయగలరు.</translation>
 <translation id="1793346220873697538">డిఫాల్ట్ పిన్ ముద్రణను నిలిపివేయండి</translation>
 <translation id="1797233582739332495">పునఃప్రారంభం అవసరమని సూచించే పునరావృత ప్రాంప్ట్‌ను వినియోగదారుకు చూపండి</translation>
 <translation id="1798559516913615713">GPO కాష్ కాలవ్యవధి</translation>
@@ -414,7 +428,7 @@
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, తక్షణ శోధన అభ్యర్థన GET పద్ధతిని ఉపయోగించి పంపబడుతుంది.
 
-          'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
+          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం గౌరవించబడుతుంది.</translation>
 <translation id="1852294065645015766">మీడియా స్వీయ ప్లేని అనుమతించండి</translation>
 <translation id="1857152770025485173">ఈ విధానం నిరోధిత జాబితా URLలలోని వెబ్ పేజీలను లోడ్ చేయనివ్వకుండా వినియోగదారులను నిరోధిస్తుంది. నిరోధిత జాబితా ఏయే URLలను నిరోధించాలో పేర్కొనే URL ఆకృతుల జాబితాను అందిస్తుంది.
 
@@ -427,15 +441,15 @@
       M73 నుండి, మీరు 'javascript://*' URLలను బ్లాక్ చేయవచ్చు. అయితే, ఇది చిరునామా బార్‌లో (లేదా, ఉదాహరణకు, బుక్‌మార్క్‌లెట్‌లలో) టైప్ చేసిన JavaScriptని మాత్రమే ప్రభావితం చేస్తుంది. పేజీలోని అంతర్గత JavaScript URLలు డైనమిక్‌గా లోడ్ అయ్యే డేటా ఉన్నంత వరకు, అవి ఈ విధానానికి లోబడి ఉండవని గుర్తుంచుకోండి. ఉదాహరణకు, మీరు 'example.com/abc'ని బ్లాక్ చేస్తే, 'example.com' పేజీ ఇప్పటికీ 'example.com/abc'ని XMLHTTPRequest ద్వారా లోడ్ చేయగలుగుతుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, URL ఏదీ బ్రౌజర్ నిరోధిత జాబితాలో ఉంచబడదు.</translation>
-<translation id="1859859319036806634">హెచ్చరిక: TLS వెర్షన్‌ ఫాల్‌బ్యాక్ వెర్షన్‌ 52 (సుమారు సెప్టెంబర్ 2016) తర్వాత <ph name="PRODUCT_NAME" /> నుండి తీసివేయబడుతుంది మరియు ఈ విధానం ఆపై పని చేయడం ఆగిపోతుంది.
+<translation id="1859859319036806634">హెచ్చరిక: TLS వెర్షన్ ఫాల్‌బ్యాక్ వెర్షన్ 52 తర్వాత (సుమారు సెప్టెంబర్ 2016) <ph name="PRODUCT_NAME" /> నుండి తీసివేయబడుతుంది, ఈ విధానం ఆపై పని చేయడం ఆగిపోతుంది.
 
-      TLS కనెక్షన్ ఏర్పాటు విఫలమైనప్పుడు, <ph name="PRODUCT_NAME" /> HTTPS సర్వర్‌‌లో బగ్‌లపై పని చేసేందుకు మునుపు తక్కువ TLS వెర్షన్‌‌తో కనెక్షన్‌ను మళ్లీ ప్రయత్నించి ఉంటుంది. ఈ ఫాల్‌బ్యాక్ ప్రాసెస్ ఆపివేయబడే వెర్షన్‌‌ను ఈ సెట్టింగ్ కాన్ఫిగర్ చేస్తుంది. సర్వర్ వెర్షన్‌ బదలాయింపు సరిగ్గా (అంటే, కనెక్షన్‌ను ఆపివేయకుండా) నిర్వహిస్తే, ఈ సెట్టింగ్ వర్తించదు. ఫలితంగా ఏర్పడే కనెక్షన్ తప్పనిసరిగా ఇప్పటికీ SSLVersionMinకి అనుకూలంగా ఉండాలి.
+      TLS కనెక్షన్ ఏర్పాటు విఫలమైనప్పుడు, <ph name="PRODUCT_NAME" /> HTTPS సర్వర్‌లలో బగ్‌లపై పని చేసేందుకు మునుపు తక్కువ TLS వెర్షన్‌తో కనెక్షన్‌ను మళ్లీ ప్రయత్నించి ఉంటుంది. ఈ ఫాల్‌బ్యాక్ ప్రాసెస్ ఆపివేయబడే వెర్షన్‌ను ఈ సెట్టింగ్ కాన్ఫిగర్ చేస్తుంది. సర్వర్ వెర్షన్ బదలాయింపు సరిగ్గా (అంటే, కనెక్షన్‌ను ఆపివేయకుండా) నిర్వహిస్తే, ఈ సెట్టింగ్ వర్తించదు. ఫలితంగా ఏర్పడే కనెక్షన్ తప్పనిసరిగా ఇప్పటికీ SSLVersionMinకు అనుకూలంగా ఉండాలి.
 
-      ఈ విధానాన్ని కాన్ఫిగర్ చేయకుంటే లేదా దీన్ని "tls1.2"కు సెట్ చేస్తే, అప్పుడు <ph name="PRODUCT_NAME" /> ఈ ఫాల్‌బ్యాక్‌ను నిర్వహించదు. ఇది పాత TLS వెర్షన్‌‌ల కోసం మద్దతును నిలిపివేయదు, వెర్షన్‌‌లను సరిగ్గా బదలాయించలేని బగ్గీ సర్వర్‌‌లో మాత్రమే <ph name="PRODUCT_NAME" /> పని చేయవచ్చని గుర్తుంచుకోండి.
+      ఈ విధానాన్ని కాన్ఫిగర్ చేయకుంటే లేదా దీనిని "tls1.2"కు సెట్ చేస్తే, అప్పుడు <ph name="PRODUCT_NAME" /> ఈ ఫాల్‌బ్యాక్‌ను నిర్వహించదు. ఇది పాత TLS వెర్షన్‌లకు మద్దతును నిలిపివేయదు, వెర్షన్‌లను సరిగ్గా బదలాయించలేని బగ్గీ సర్వర్‌లలో <ph name="PRODUCT_NAME" /> పని చేయగలదా లేదా అన్నది మాత్రమే నిర్ణయిస్తుందని గుర్తుంచుకోండి.
 
-      లేకుంటే, బగ్గీ సర్వర్‌కు అనుకూలత తప్పనిసరిగా ఉండేలా చూసుకోవాలంటే, ఈ విధానాన్ని "tls1.1"కు సెట్ చేయవచ్చు. ఇది విరామ సమయ ప్రమాణం మరియు వేగంగా సర్వర్ సమస్య పరిష్కరించబడుతుంది.</translation>
-<translation id="1864269674877167562">ఈ విధానాన్ని ఖాళీ స్ట్రింగ్‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ విధాన సమయంలో ఆటోకంప్లీట్‌ ఎంపికను చూపదు.
-      ఈ విధానాన్ని డొమైన్ పేరును సూచించే స్ట్రింగ్‌కు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ చేసే సమయంలో డొమైన్ పేరు ఎక్స్‌టెన్ష‌న్‌ పేర్కొనాల్సిన శ్రమ లేకుండా కేవలం వారి వినియోగదారు పేరు మాత్రమే టైప్ చేసే వీలు కల్పిస్తూ ఆటోకంప్లీట్‌ ఎంపికను చూపుతుంది.  వినియోగదారు ఈ డొమైన్ పేరు ఎక్స్‌టెన్ష‌న్‌ను అధిగ‌మించ‌గ‌లుగుతారు.</translation>
+      లేకుంటే, బగ్గీ సర్వర్‌కు అనుకూలత తప్పనిసరిగా ఉండేలా చూసుకోవాలంటే, ఈ విధానాన్ని "tls1.1"కు సెట్ చేయవచ్చు. ఇది ఒక తాత్కాలిక పరిష్కారం మాత్రమే, సర్వర్ సమస్యను వీలైనంత త్వరగా పరిష్కరించాల్సి ఉంటుంది.</translation>
+<translation id="1864269674877167562">ఈ విధానాన్ని ఖాళీ వాక్యానికి సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ విధాన సమయంలో స్వీయపూర్తి ఎంపికను చూపదు.
+      ఈ విధానాన్ని డొమైన్ పేరును సూచించే వాక్యానికి సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ చేసే సమయంలో డొమైన్ పేరు ఎక్స్‌టెన్షన్ పేర్కొనాల్సిన శ్రమ లేకుండా కేవలం వారి వినియోగదారు పేరు మాత్రమే టైప్ చేసే వీలు కల్పిస్తూ స్వీయపూర్తి ఎంపికను చూపుతుంది. వినియోగదారు ఈ డొమైన్ పేరు ఎక్స్‌టెన్షన్‌ను భర్తీ చేయగలుగుతారు.</translation>
 <translation id="1864382791685519617"><ph name="PRODUCT_NAME" />లో నెట్‌వర్క్ సూచనను ప్రారంభించడంతో పాటు, ఆ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నిరోధిస్తుంది.
 
     ఇది వెబ్ పేజీల యొక్క DNS ప్రి-ఫెచింగ్‌తో పాటు TCP మరియు SSL పూర్వ కనెక్షన్ మరియు పూర్వ అమలును కూడా నియంత్రిస్తుంది.
@@ -462,32 +476,32 @@
       ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, ఆపై పాస్‌వర్డ్ రక్షణ సేవ పాస్‌వర్డ్ పునర్వినియోగ గుర్తింపు ప్రయోజనం కోసం ఈ URLలలో పాస్‌వర్డ్ వేలిముద్రను క్యాప్చర్ చేస్తుంది.
       ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకుండా వదిలిపెడితే, ఆపై పాస్‌వర్డ్ రక్షణ సేవ కేవలం పాస్‌వర్డ్ వేలిముద్రను https://accounts.google.comలో క్యాప్చర్ చేస్తుంది.
       ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్‌తో అనుబంధితమైన Windows సందర్భాలు లేదా పరికర నిర్వహణ కోసం నమోదైన Windows 10 Pro లేదా Enterprise సందర్భాలలో మాత్రమే అందుబాటులో ఉంటుంది.</translation>
-<translation id="1914840757300882918">ఈ విధానాన్ని సెట్ చేస్తే, హోస్ట్ RemoteAccessHostTokenValidationUrlకు ప్రామాణీకరించడానికి ఇచ్చిన జారీదారు CNతో క్లయింట్ ప్రమాణపత్రాన్ని ఉపయోగిస్తుంది. ఏదైనా అందుబాటులో ఉన్న క్లయింట్ ప్రమాణపత్రాన్ని ఉపయోగించడానికి దాన్ని "*"కి సెట్ చేయండి.
+<translation id="1914840757300882918">ఈ విధానాన్ని సెట్ చేస్తే, హోస్ట్ RemoteAccessHostTokenValidationUrlకు ప్రామాణీకరించడానికి ఇచ్చిన జారీదారు CNతో క్లయింట్ సర్టిఫికెట్‌ను ఉపయోగిస్తుంది. ఏదైనా అందుబాటులో ఉన్న క్లయింట్ సర్టిఫికెట్‌ను ఉపయోగించడానికి దానిని "*"కు సెట్ చేయండి.
 
 ఈ ఫీచర్ ప్రస్తుతం సర్వర్ తరపున నిలిపివేయబడింది.</translation>
 <translation id="1919802376548418720">ఆధారాలను కేటాయించడం కోసం KDC విధానాన్ని ఉపయోగిస్తుంది.</translation>
 <translation id="1920046221095339924">పరికరంలో నిర్వహించబడిన సెషన్‌ను అనుమతించండి</translation>
 <translation id="1929709556673267855">పరికరాలకు అనుకూలంగా ఉండే ఎంటర్‌ప్రైజ్ ప్రింటర్‌ల కోసం కాన్ఫిగరేషన్‌లను అందిస్తుంది.
 
-      <ph name="PRODUCT_OS_NAME" /> పరికరాలకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి ఈ విధానం మిమ్మల్ని అనుమతిస్తుంది.  ఫార్మాట్ అన్నది NativePrinters నిఘంటువును అనుసరించి ఉండాలి. వైట్‌లిస్టింగ్ లేదా బ్లాక్‌లిస్టింగ్ కోసం ఒక్కో ప్రింటర్‌కు అదనంగా అవసరమైన "id" లేదా "guid" ఫీల్డ్ కూడా ఉండాలి.
+      <ph name="PRODUCT_OS_NAME" /> పరికరాలకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి ఈ విధానం మిమ్మల్ని అనుమతిస్తుంది. ఫార్మాట్ అన్నది NativePrinters నిఘంటువును అనుసరించి ఉండాలి, వైట్‌లిస్టింగ్ లేదా బ్లాక్‌లిస్టింగ్ కోసం ఒక్కో ప్రింటర్ కోసం అదనంగా అవసరమైన "id" లేదా "guid" ఫీల్డ్ కూడా ఉండాలి.
 
-      ఫైల్ పరిమాణం 5MB మించకూడదు, అది JSONలో ఎన్‌కోడ్ అయ్యి ఉండాలి.  ఒక అంచనా ప్రకారం చూస్తే, ఇంచుమించుగా 21,000 ప్రింటర్‌లను కలిగి ఉండే ఫైల్ 5MB పరిమాణం కలిగిన ఫైల్‌గా ఎన్‌కోడ్ అవుతుంది.  డౌన్‌లోడ్‌ను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్ ఉపయోగించబడుతుంది.
+      ఫైల్ పరిమాణం 5MB మించకూడదు, JSONలో ఎన్‌కోడ్ అయి ఉండాలి. ఒక అంచనా ప్రకారం చూస్తే, ఇంచుమించుగా 21,000 ప్రింటర్‌లు ఉండే ఫైల్‌ను ఎన్‌కోడ్ చేస్తే, అది 5MB పరిమాణం ఉన్న ఫైల్ అవుతుంది. డౌన్‌లోడ్ సమగ్రతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్ ఉపయోగించబడుతుంది.
 
-      ఫైల్ డౌన్‌లోడ్ చేయబడి, కాష్ చేయబడింది. URL లేదా హ్యాష్ మారిన ప్ర‌తిసారి ఇది తిరిగి డౌన్‌లోడ్ అవుతుంది.
+      ఫైల్ డౌన్‌లోడ్ చేయబడి, కాష్ చేయబడుతుంది. URL లేదా హ్యాష్ మారిన ప్రతిసారీ ఇది తిరిగి డౌన్‌లోడ్ అవుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ప్రింటర్ కాన్ఫిగరేషన్‌ల కోసం ఫైల్‌ను డౌన్‌లోడ్ చేసి, <ph name="DEVICE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_PRINTERS_WHITELIST" /> మరియు <ph name="DEVICE_PRINTERS_BLACKLIST" /> ప్రకారంగా ప్రింటర్‌లను అందుబాటులో ఉంచుతుంది.
+      ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ప్రింటర్ కాన్ఫిగరేషన్‌ల కోసం ఫైల్‌ను డౌన్‌లోడ్ చేసి, <ph name="DEVICE_PRINTERS_ACCESS_MODE" />, <ph name="DEVICE_PRINTERS_WHITELIST" /> మరియు <ph name="DEVICE_PRINTERS_BLACKLIST" />ల ప్రకారం ప్రింటర్‌లను అందుబాటులో ఉంచుతుంది.
 
-      వినియోగదారులు వారి వ్యక్తిగత పరికరాల్లో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు.  ఇది వేర్వేరు వినియోగదారుల యొక్క ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
+      వినియోగదారులు వారి వ్యక్తిగత పరికరాలలో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు. ఇది వేర్వేరు వినియోగదారుల ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
 
-      ఈ విధానం <ph name="BULK_PRINTERS_POLICY" />కు ఏకీకృతంగా ఉంటుంది.
+      ఈ విధానం <ph name="BULK_PRINTERS_POLICY" />కి ఏకీకృతంగా ఉంటుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకుంటే, పరికర ప్రింటర్‌లు ఉండవు మరియు ఇతర <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> విధానాలు విస్మరించబడతాయి.
+      ఈ విధానాన్ని సెట్ చేయకుంటే, పరికర ప్రింటర్‌లు ఉండవు, ఇతర <ph name="DEVICE_PRINTERS_POLICY_PATTERN" /> విధానాలు విస్మరించబడతాయి.
       </translation>
 <translation id="193259052151668190">వేరు చేయగల USB పరికరాల అనుమతి జాబితా</translation>
 <translation id="1933378685401357864">వాల్‌పేపర్ చిత్రం</translation>
 <translation id="1956493342242507974"><ph name="PRODUCT_OS_NAME" />లోని లాగిన్ స్క్రీన్‌లో పవర్ నిర్వహణను కాన్ఫిగర్ చేయండి.
 
-      ఈ విధానం లాగిన్ స్క్రీన్ చూపబడుతున్న సమయంలో కొంత కాలవ్యవధి వరకు వినియోగదారు కార్యకలాపం లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> ఎలా ప్రవర్తించాలో కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. విధానం బహుళ సెట్టింగ్‌లను నియంత్రిస్తుంది. వాటి ప్రత్యేక అర్థవిచారాలు మరియు విలువ పరిధుల కోసం, సెషన్‌లో పవర్ నిర్వహణను నియంత్రించే సంబంధిత విధానాలను చూడండి. ఇవి మాత్రమే ఈ విధానాల్లోని వ్యత్యాసాలు:
+      ఈ విధానం లాగిన్ స్క్రీన్ చూపబడుతున్న సమయంలో కొంత కాలవ్యవధి వరకు వినియోగదారు కార్యకలాపం లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> ఎలా ప్రవర్తించాలో కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. విధానం బహుళ సెట్టింగ్‌లను నియంత్రిస్తుంది. వాటి ప్రత్యేక ఫార్మాట్‌లు మరియు విలువ పరిధుల కోసం, సెషన్‌లో పవర్ నిర్వహణను నియంత్రించే సంబంధిత విధానాలను చూడండి. ఇవి మాత్రమే ఈ విధానాలలోని వ్యత్యాసాలు:
       * ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు తీసుకునే చర్యలు లేదా మూత మూసివేత సెషన్‌కు ముగింపు కాకపోవచ్చు.
       * AC పవర్‌పై అమలవుతున్నప్పుడు షట్ డౌన్ చేయడం అనేది ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు తీసుకునే డిఫాల్ట్ చర్య.
 
@@ -502,14 +516,14 @@
 <translation id="1960840544413786116">subjectAlternativeName పొడిగింపు లేని స్థానిక విశ్వసనీయ యాంకర్‌ల ద్వారా మంజూరు చేయబడిన ప్రమాణపత్రాలను అనుమతించాలో లేదో నిశ్చయించండి</translation>
 <translation id="1962273523772270623">Google సేవల నుండి WebRTC ఈవెంట్ లాగ్‌ల సేకరణను అనుమతించండి</translation>
 <translation id="1964634611280150550">అజ్ఞాత మోడ్ నిలిపివేయబడింది</translation>
-<translation id="1964802606569741174">ఈ విధానం Android YouTube యాప్ మీద‌ ఎలాంటి ప్రభావాన్ని చూపదు. YouTubeలో సురక్షిత మోడ్ అమలు చేయదలిస్తే, Android YouTube యాప్ ఇన‌స్ట‌లేష‌న్‌ అనుమతించకూడదు.</translation>
-<translation id="1969212217917526199">రిమోట్ యాక్సెస్ హోస్ట్ డీబగ్ బిల్డ్‌లలో విధానాలను భర్తీ చేస్తుంది.
+<translation id="1964802606569741174">ఈ విధానం Android YouTube యాప్‌పై ఎలాంటి ప్రభావాన్ని చూపదు. YouTubeలో సురక్షిత మోడ్ అమలు చేయదలిస్తే, Android YouTube యాప్ ఇన్‌స్టాలేషన్ అనుమతించకూడదు.</translation>
+<translation id="1969212217917526199">రిమోట్ యాక్సెస్ హోస్ట్ డీబగ్ బిల్డ్‌లలోని విధానాలను భర్తీ చేస్తుంది.
 
           విలువ విధాన విలువ మ్యాపింగ్‌లకు విధానం పేరు యొక్క JSON నిఘంటువు లాగా అన్వయించబడుతుంది.</translation>
 <translation id="1969808853498848952">ప్రమాణీకరణ అవసరమైన ప్లగ్ఇన్‌లను ఎల్లప్పుడూ అమలు చేయండి (విస్మరించబడింది)</translation>
-<translation id="1988371335297483117"><ph name="PRODUCT_OS_NAME" />లోని ఆటో-అప్‌డేట్‌ పేలోడ్‌లను HTTPS బదులుగా HTTP ద్వారా డౌన్‌లోడ్ చేయవచ్చు. ఇది HTTP డౌన్‌లోడ్‌ల యొక్క పారదర్శక HTTP కాషింగ్‌ను అనుమతిస్తుంది.
+<translation id="1988371335297483117"><ph name="PRODUCT_OS_NAME" />లోని స్వీయ-అప్‌డేట్‌ పేలోడ్‌లను HTTPS బదులుగా HTTP ద్వారా డౌన్‌లోడ్ చేయవచ్చు. ఇది HTTP డౌన్‌లోడ్‌ల యొక్క పారదర్శక HTTP కాషింగ్‌ను అనుమతిస్తుంది.
 
-      ఈ విధానాన్ని ఒప్పునకు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ఆటో-అప్‌డేట్‌ పేలోడ్‌లను HTTP ద్వారా డౌన్‌లోడ్ చేయడానికి ప్రయత్నిస్తుంది. విధానాన్ని తప్పునకు సెట్ చేసినా లేదా సెట్ చేయకుండా వదిలివేసినా, ఆటో-అప్‌డేట్‌ పేలోడ్‌లను డౌన్‌లోడ్ చేయడానికి HTTPS ఉపయోగించబడుతుంది.</translation>
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> స్వీయ-అప్‌డేట్‌ పేలోడ్‌లను HTTP ద్వారా డౌన్‌లోడ్ చేయడానికి ప్రయత్నిస్తుంది. విధానాన్ని 'తప్పు'గా సెట్ చేసినా లేదా సెట్ చేయకుండా వదిలివేసినా, స్వీయ-అప్‌డేట్‌ పేలోడ్‌లను డౌన్‌లోడ్ చేయడానికి HTTPS ఉపయోగించబడుతుంది.</translation>
 <translation id="199764499252435679"><ph name="PRODUCT_NAME" />లో అంతర్భాగం అప్‌డేట్‌లను ప్రారంభించండి</translation>
 <translation id="1997994951395619441">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, <ph name="PRODUCT_NAME" /> ఒక బుక్‌మార్క్ బార్‌ను చూపుతుంది.
 
@@ -524,14 +538,14 @@
 <translation id="2017301949684549118">నిశ్శబ్దంగా ఇన్‌స్టాల్ చేయవలసిన వెబ్ యాప్‌ల URLలు.</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>
+<translation id="203096360153626918">ఈ విధానం Android యాప్‌లపై ఎలాంటి ప్రభావాన్ని చూపదు. ఈ విధానాన్ని <ph name="FALSE" />కు సెట్ చేసినప్పటికీ అవి పూర్తి స్క్రీన్ మోడ్‌లో ప్రవేశించగలవు.</translation>
 <translation id="2043770014371753404">నిలిపివేయబడిన ఎంటర్‌ప్రైజ్ ప్రింటర్‌లు</translation>
 <translation id="2050629715135525072">క్లయింట్, హోస్ట్ మధ్య ఫైల్‌లను బదిలీ చేయడం కోసం రిమోట్ యాక్సెస్ హోస్ట్‌కు కనెక్ట్ అయిన వినియోగదారు సామర్థ్యాన్ని నియంత్రిస్తుంది. ఇది ఫైల్ బదిలీకి మద్దతు ఇవ్వని రిమోట్ సహాయక కనెక్షన్‌లకు వర్తించదు.
 
@@ -540,7 +554,7 @@
 <translation id="2061810934846663491">రిమోట్ యాక్సెస్ హోస్ట్‌ల కోసం అవసరమైన డొమైన్ పేర్లను కాన్ఫిగర్ చేస్తుంది</translation>
 <translation id="206623763829450685"><ph name="PRODUCT_NAME" /> మద్దతు ఇచ్చే HTTP ప్రామాణీకరణ స్కీమ్‌లను పేర్కొంటుంది.
 
-          సంభావ్య విలువలు 'basic', 'digest', 'ntlm' మరియు 'negotiate'. బహుళ విలువలను కామాలతో వేరు చేయండి.
+          సాధ్యమయ్యే విలువలు 'basic', 'digest', 'ntlm' మరియు 'negotiate'. బహుళ విలువలను కామాలతో వేరు చేయండి.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, మొత్తం నాలుగు స్కీమ్‌లు ఉపయోగించబడతాయి.</translation>
 <translation id="2067011586099792101">కంటెంట్ ప్యాక్‌లకు వెలుపల ఉన్న సైట్‌లకు యాక్సెస్‌ను బ్లాక్ చేయండి</translation>
@@ -555,13 +569,13 @@
 <translation id="2107601598727098402">
         ఈ విధానం M72లో నిలిపివేయబడుతుంది. దయచేసి దానికి బదులుగా CloudManagementEnrollmentTokenని ఉపయోగించండి.
         </translation>
-<translation id="2111016292707172233"><ph name="PRODUCT_NAME" /> కంటెంట్ వీక్షణలో వెతకడానికి నొక్కండి ఫీచర్ లభ్యతను ప్రారంభిస్తుంది.
+<translation id="2111016292707172233"><ph name="PRODUCT_NAME" /> కంటెంట్ వీక్షణలో 'వెతకడానికి నొక్కండి' ఫీచర్ లభ్యతను ప్రారంభిస్తుంది.
 
-      మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, వినియోగదారుకు వెతకడానికి నొక్కండి ఫీచర్ అందుబాటులో ఉంటుంది మరియు వారు ఫీచర్‌ను ఆన్ లేదా ఆఫ్ చేయడాన్ని ఎంచుకోగలరు.
+      మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, వినియోగదారుకు 'వెతకడానికి నొక్కండి' ఫీచర్ అందుబాటులో ఉంటుంది, వారు ఈ ఫీచర్‌ను ఆన్ లేదా ఆఫ్ చేయడాన్ని ఎంచుకోగలరు.
 
-      మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వెతకడానికి నొక్కండి ఫీచర్ పూర్తిగా నిలిపివేయబడుతుంది.
+      మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, 'వెతకడానికి నొక్కండి' ఫీచర్ పూర్తిగా నిలిపివేయబడుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, దాన్ని ప్రారంభించి ఉండటంతో సమానం, ఎగువ వివరణను చూడండి.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, దానిని ప్రారంభించి ఉండటంతో సమానం, ఎగువ వివరణను చూడండి.</translation>
 <translation id="2113068765175018713">ఆటోమేటిక్‌గా రీబూట్ చేయడం ద్వారా పరికరం యొక్క గరిష్ట సమయాన్ని పరిమితం చేయండి</translation>
 <translation id="2116790137063002724">వినియోగదారులను గుర్తించడానికి ఉపయోగించగల OS లాగిన్, <ph name="PRODUCT_NAME" /> ప్రొఫైల్ లాగిన్, <ph name="PRODUCT_NAME" /> ప్రొఫైల్ పేరు, <ph name="PRODUCT_NAME" /> ప్రొఫైల్ పాత్ మరియు <ph name="PRODUCT_NAME" /> అమలు చేయగలిగే పాత్ లాంటి సమాచారాన్ని నివేదించాలో లేదో ఈ విధానం నియంత్రిస్తుంది.
 
@@ -573,17 +587,14 @@
 <translation id="2127599828444728326">ఈ సైట్‌లలో ప్రకటనలను అనుమతించు</translation>
 <translation id="2131902621292742709">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు స్క్రీన్ మసక ఆలస్యం</translation>
 <translation id="2134437727173969994">స్క్రీన్ లాక్ చేయడానికి అనుమతి</translation>
-<translation id="2137064848866899664">ఈ విధానం సెట్ చేయబడితే, ప్రతి డిస్‌ప్లే, రీబూట్ చేసే ప్రతిసారి
-      మరియు విధానం విలువ మారిన తర్వాత కనెక్ట్ చేయబడే మొదటిసారి నిర్దిష్ట‌
-      ఓరియంటేష‌న్‌కు తిప్పబడుతుంది. వినియోగదారులు లాగిన్ చేసిన తర్వాత
-      సెట్టింగ్‌ల పేజీ ద్వారా డిస్‌ప్లే భ్రమణాన్ని మార్చవచ్చు. కానీ వారి సెట్టింగ్ తదుపరి
-రీబూట్ సమయంలో విధానం విలువ ద్వారా అధిగ‌మించ‌బ‌డుతుంది.
+<translation id="2137064848866899664">ఈ విధానాన్ని సెట్ చేస్తే, రీబూట్ చేసే ప్రతిసారి
+      మరియు విధానం విలువ మారిన తర్వాత కనెక్ట్ చేయబడే మొదటిసారి, ప్రతి డిస్‌ప్లే కూడా పేర్కొన్న ఓరియంటేషన్‌కు తిప్పబడుతుంది. వినియోగదారులు లాగిన్ చేసిన తర్వాత
+      సెట్టింగ్‌ల పేజీ ద్వారా డిస్‌ప్లే భ్రమణాన్ని మార్చవచ్చు, కానీ వారి సెట్టింగ్ తర్వాతి
+       రీబూట్ సమయంలో విధానం విలువ ద్వారా భర్తీ చేయబడుతుంది.
 
-      ఈ విధానం ప్రాథమిక మరియు అన్ని ప్రత్యామ్నాయ డిస్‌ప్లేలకు వర్తిస్తుంది.
+      ఈ విధానం ప్రాథమిక డిస్‌ప్లేతో పాటు అన్ని ప్రత్యామ్నాయ డిస్‌ప్లేలకు వర్తిస్తుంది.
 
-      ఈ విధానం సెట్ చేయబడకపోతే, డిఫాల్ట్ విలువ 0 డిగ్రీలుగా ఉంటుంది మరియు వినియోగదారు
-      దీన్ని స్వేచ్ఛగా మార్చవచ్చు. ఈ సందర్భంలో, డిఫాల్ట్ విలువ పునఃప్రారంభ సమయంలో
-      మళ్లీ వర్తింపజేయబడదు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే, డిఫాల్ట్ విలువ 0 డిగ్రీలుగా ఉంటుంది, వినియోగదారు దీనిని స్వేచ్ఛగా మార్చవచ్చు. ఈ సందర్భంలో, డిఫాల్ట్ విలువ పునఃప్రారంభ సమయంలో మళ్లీ వర్తింపజేయబడదు.</translation>
 <translation id="2138449619211358657">ఈ విధానం <ph name="PRODUCT_OS_NAME" />ని క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ కోసం ఏదైనా ప్రాక్సీని బైపాస్ చేయడానికి అనుమతిస్తుంది.
 
       ఈ విధానం ప్రాక్సీ, కాన్ఫిగర్ అయినప్పుడు మాత్రమే ప్రభావం చూపుతుంది (ఉదాహరణకు, విధానం ద్వారా, వినియోగదారు ద్వారా chrome://settingsలో లేదా ఎక్స్‌టెన్షన్‌ల ద్వారా).
@@ -591,13 +602,13 @@
       మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, ప్రస్తుత వినియోగదారు కోసం అన్ని విధానం సెట్టింగ్‌లను మరియు నియంత్రణలను విస్మరించి వేరే విండోలో ఏవైనా క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ పేజీలు ప్రదర్శించబడతాయి (అంటే <ph name="PRODUCT_NAME" />విజయవంతమైన ఇంటర్నెట్ కనెక్షన్‌ని గుర్తించే వరకు క్యాప్టివ్ పోర్టల్ సైన్ ఇన్ పేజీతో ప్రారంభమయ్యే అన్ని వెబ్ పేజీలు).
 
       మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, ఏవైనా క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ పేజీలు ప్రస్తుత వినియోగదారు ప్రాక్సీ సెట్టింగ్‌లను ఉపయోగించి (సాధారణ) కొత్త బ్రౌజర్ ట్యాబ్‌లో చూపబడతాయి.</translation>
-<translation id="21394354835637379">ఎక్స్‌టెన్ష‌న్‌లను, యాప్‌లను మరియు థీమ్‌లను ఇన్‌స్టాల్ చేయడానికి అనుమతించవలసిన URLలను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
+<translation id="21394354835637379">ఎక్స్‌టెన్షన్‌లు, యాప్‌లు మరియు థీమ్‌లను ఇన్‌స్టాల్ చేయడానికి అనుమతించవలసిన URLలను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-<ph name="PRODUCT_NAME" /> యొక్క 21వ వెర్షన్ నుండి, Chrome వెబ్ స్టోర్ వెలుపల నుండి ఎక్స్‌టెన్షన్‌లు, యాప్‌లు మరియు వినియోగదారు స్క్రిప్ట్‌లను ఇన్‌స్టాల్ చేయడం మరింత కష్టతరం. మునుపు, వినియోగదారులు *.crx ఫైల్‌కు లింక్‌పై క్లిక్ చేస్తే, <ph name="PRODUCT_NAME" /> కొన్ని హెచ్చరికల తర్వాత ఫైల్‌ను ఇన్‌స్టాల్ చేసే అవకాశాన్ని అందిస్తుంది. <ph name="PRODUCT_NAME" /> 21 తర్వాత, ఇటువంటి ఫైల్‌లు తప్పనిసరిగా డౌన్‌లోడ్ చేయబడతాయి. ఆపై <ph name="PRODUCT_NAME" /> సెట్టింగ్‌ల పేజీకి లాగబడతాయి. నిర్దిష్ట URLలు- పాత, సులభమైన ఇన్‌స్టాలేషన్ విధానాన్ని కలిగి ఉండటానికి ఈ సెట్టింగ్ అనుమతిస్తుంది.
+<ph name="PRODUCT_NAME" /> యొక్క 21వ వెర్షన్ నుండి, Chrome వెబ్ స్టోర్ వెలుపల నుండి ఎక్స్‌టెన్షన్‌లు, యాప్‌లు మరియు వినియోగదారు స్క్రిప్ట్‌లను ఇన్‌స్టాల్ చేయడం మరింత కష్టతరం అవుతుంది. మునుపు, వినియోగదారులు *.crx ఫైల్‌కు లింక్‌పై క్లిక్ చేస్తే, <ph name="PRODUCT_NAME" /> కొన్ని హెచ్చరికల తర్వాత ఫైల్‌ను ఇన్‌స్టాల్ చేసే అవకాశాన్ని అందిస్తుంది. <ph name="PRODUCT_NAME" /> 21వ వెర్షన్ తర్వాత, ఇటువంటి ఫైల్‌లు తప్పనిసరిగా డౌన్‌లోడ్ చేయబడతాయి, ఆపై <ph name="PRODUCT_NAME" /> సెట్టింగ్‌ల పేజీకి లాగబడతాయి. నిర్దిష్ట URLలకు పాత, సులభమైన ఇన్‌స్టాలేషన్ విధానాన్ని ఈ సెట్టింగ్ అనుమతిస్తుంది.
 
-ఈ జాబితాలోని ప్రతి అంశం ఒక ఎక్స్‌టెన్ష‌న్‌-శైలి సరిపోలిక నమూనా (http://code.google.com/chrome/extensions/match_patterns.htmlను చూడండి). వినియోగదారులు ఈ జాబితాలో అంశానికి సరిపోలే అంశాలను ఏ URL నుండి అయినా సులభంగా ఇన్‌స్టాల్ చేయగలుగుతారు. *.crx ఫైల్ మరియు డౌన్‌లోడ్ ప్రారంభమైన పేజీ రెండింటి స్థానాన్ని (అంటే సిఫార్సు చేసిన వారు) ఈ నమూనాలు తప్పనిసరిగా అనుమతించాలి. ExtensionInstallBlacklist ఈ విధానం కంటే ముందే వర్తించబడుతుంది.
+ఈ జాబితాలోని ప్రతి అంశం ఒక ఎక్స్‌టెన్షన్‌-శైలి సరిపోలిక నమూనా (http://code.google.com/chrome/extensions/match_patterns.html చూడండి). వినియోగదారులు ఈ జాబితాలో అంశానికి సరిపోలే అంశాలను ఏ URL నుండి అయినా సులభంగా ఇన్‌స్టాల్ చేయగలుగుతారు. *.crx ఫైల్ మరియు డౌన్‌లోడ్ ప్రారంభమైన పేజీ రెండింటి స్థానాన్ని (అనగా రిఫరర్) ఈ నమూనాలు తప్పనిసరిగా అనుమతించాలి. ExtensionInstallBlacklist ఈ విధానం కంటే ముందే వర్తించబడుతుంది.
 
-ఈ విధానంపై <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> ప్రాధాన్యతను కలిగి ఉంటుంది. అంటే, బ్లాక్‌లిస్ట్‌లోని ఎక్స్‌టెన్ష‌న్‌, ఈ జాబితాలోని సైట్‌లోనిది అయినప్పటికీ ఇన్‌స్టాల్ చేయబడదు.</translation>
+<ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> ఈ విధానంపై ప్రాధాన్యతను కలిగి ఉంటుంది. అంటే, బ్లాక్‌లిస్ట్‌‌లోని ఎక్స్‌టెన్షన్ ఈ జాబితాలోని సైట్‌లోనిది అయినప్పటికీ, అది ఇన్‌స్టాల్ చేయబడదు.</translation>
 <translation id="214901426630414675">ముద్రణ డ్యూప్లెక్స్ మోడ్‌ని పరిమితం చేయండి</translation>
 <translation id="2149330464730004005">రంగు ముద్రణను ప్రారంభించండి</translation>
 <translation id="2156132677421487971"><ph name="PRODUCT_NAME" /> కోసం విధానాలను కాన్ఫిగర్ చేస్తుంది. ఈ ఫీచ‌ర్‌ సహాయంతో వినియోగదారులు బ్రౌజర్ నుండి ట్యాబ్‌లు, సైట్‌లు లేదా డెస్క్‌టాప్ కంటెంట్‌లను- రిమోట్ డిస్‌ప్లేలు మరియు సౌండ్ సిస్టమ్‌లకు పంపగలుగుతారు.</translation>
@@ -605,21 +616,21 @@
 <translation id="2168397434410358693">AC శక్తితో అమలవుతున్నప్పుడు నిష్క్రియ ఆలస్యం</translation>
 <translation id="217013996107840632">ప్రత్యామ్నాయ బ్రౌజర్ నుండి మార్చడం కోసం ఆదేశ పంక్తి పారామీటర్‌లు.</translation>
 <translation id="2170233653554726857">WPAD ఆప్టిమైజేషన్‌ను ప్రారంభించండి</translation>
-<translation id="2176565653304920879">ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు విధానం సెట్టింగ్ విలువను బట్టి క్రింది మార్గాల్లో ఒక విధంగా ఉంటుంది:
+<translation id="2176565653304920879">ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఆటోమేటిక్ సమయ మండలి గుర్తింపు విధానం సెట్టింగ్ విలువను బట్టి కింది మార్గాలలో ఒక విధంగా ఉంటుంది:
 
-      TimezoneAutomaticDetectionUsersDecideకి సెట్ చేస్తే, వినియోగదారులు chrome://settingsలో సాధారణ నియంత్రణలను ఉపయోగించి ఆటోమేటిక్‌ సమయ మండలి గుర్తింపును నియంత్రించగలుగుతారు.
+      TimezoneAutomaticDetectionUsersDecideకు సెట్ చేస్తే, వినియోగదారులు chrome://settingsలో సాధారణ నియంత్రణలను ఉపయోగించి ఆటోమేటిక్ సమయ మండలి గుర్తింపును నియంత్రించగలుగుతారు.
 
-      TimezoneAutomaticDetectionDisabledకి సెట్ చేస్తే, chrome://settingsలో ఆటోమేటిక్‌ సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు ఎల్లప్పుడూ ఆఫ్‌లో ఉంటుంది.
+      TimezoneAutomaticDetectionDisabledకు సెట్ చేస్తే, chrome://settingsలో ఆటోమేటిక్ సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్ సమయ మండలి గుర్తింపు ఎప్పుడూ ఆఫ్‌లో ఉంటుంది.
 
-      TimezoneAutomaticDetectionIPOnlyకి సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు ఎల్లప్పుడూ ఆన్‌లో ఉంటుంది. సమయ మండలి గుర్తింపు స్థానాన్ని నిశ్చయించడానికి కేవలం IP ఆధారిత పద్ధతిని ఉపయోగిస్తుంది.
+      TimezoneAutomaticDetectionIPOnlyకు సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్ సమయ మండలి గుర్తింపు ఎప్పుడూ ఆన్‌లో ఉంటుంది. సమయ మండలి గుర్తింపు స్థానాన్ని నిశ్చయించడానికి కేవలం IP ఆధారిత పద్ధతిని ఉపయోగిస్తుంది.
 
-      TimezoneAutomaticDetectionSendWiFiAccessPointsకి సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు ఎల్లప్పుడూ ఆన్‌లో ఉంటుంది. స్పష్టమైన సమయ మండలి గుర్తింపు కోసం అందుబాటులోని WiFi యాక్సెస్‌ పాయింట్‌ల జాబితా ఎల్లప్పుడూ భౌగోళిక స్థాన API సర్వర్‌కి పంపబడుతుంది.
+      TimezoneAutomaticDetectionSendWiFiAccessPointsకు సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్ సమయ మండలి గుర్తింపు ఎప్పుడూ ఆన్‌లో ఉంటుంది. స్పష్టమైన సమయ మండలి గుర్తింపు కోసం అందుబాటులోని WiFi యాక్సెస్ పాయింట్‌ల జాబితా ఎప్పుడూ భౌగోళిక స్థాన API సర్వర్‌కు పంపబడుతుంది.
 
-      TimezoneAutomaticDetectionSendAllLocationInfoకి సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు ఎల్లప్పుడూ ఆన్‌లో ఉంటుంది. స్పష్టమైన సమయ మండలి గుర్తింపు కోసం స్థాన సమాచారం (WiFi యాక్సెస్‌-పాయింట్‌లు, చేరుకోదగిన సెల్ టవర్‌లు, GPS వంటివి) సర్వర్‌కు పంపబడుతుంది.
+      TimezoneAutomaticDetectionSendAllLocationInfoకు సెట్ చేస్తే, chrome://settingsలో సమయ మండలి నియంత్రణలు నిలిపివేయబడతాయి. ఆటోమేటిక్ సమయ మండలి గుర్తింపు ఎప్పుడూ ఆన్‌లో ఉంటుంది. స్పష్టమైన సమయ మండలి గుర్తింపు కోసం స్థాన సమాచారం (WiFi యాక్సెస్‌-పాయింట్‌లు, చేరుకోదగిన సెల్ టవర్‌లు, GPS వంటివి) సర్వర్‌కు పంపబడుతుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుంటే, ఇది TimezoneAutomaticDetectionUsersDecide సెట్ చేసినట్లు వ్యవహరిస్తుంది.
 
-      SystemTimezone విధానాన్ని సెట్ చేస్తే, ఇది ఈ విధానాన్ని భర్తీ చేస్తుంది. ఈ సందర్భంలో ఆటోమేటిక్‌ సమయ మండలి గుర్తింపు పూర్తిగా నిలిపివేయబడుతుంది.</translation>
+      SystemTimezone విధానాన్ని సెట్ చేస్తే, ఇది ఈ విధానాన్ని భర్తీ చేస్తుంది. ఈ సందర్భంలో ఆటోమేటిక్ సమయ మండలి గుర్తింపు పూర్తిగా నిలిపివేయబడుతుంది.</translation>
 <translation id="2178899310296064282">YouTubeలో కనీసం మధ్యస్థ పరిమిత మోడ్‌ను అమలు చేయండి</translation>
 <translation id="2182291258410176649">బ్యాకప్‌ను ప్రారంభించి, పునరుద్ధరించాలో లేదో వినియోగదారు నిర్ణయిస్తారు</translation>
 <translation id="2183294522275408937">త్వరిత అన్‌లాక్‌ను ఉపయోగించడం కొనసాగించేందుకు లాక్ స్క్రీన్ పాస్‌వర్డ్ నమోదును ఎంత తరచుగా అభ్యర్థించాలో ఈ సెట్టింగ్ నియంత్రిస్తుంది. లాక్ స్క్రీన్‌‌లోకి ప్రవేశించిన ప్రతిసారి, చివరి పాస్‌వర్డ్ నమోదు ఈ సెట్టింగ్ కంటే ఎక్కువైతే, లాక్ స్క్రీన్‌లోకి ప్రవేశించినప్పుడు త్వరిత అన్‌లాక్ అందుబాటులో ఉండదు. ఈ కాలవ్యవధిలో వినియోగదారులు లాక్ స్క్రీన్‌పై ఉండవలసి ఉంటుంది. వినియోగదారు తప్పు పాస్‌వర్డ్ నమోదు చేసిన తదుపరి సారి లేదా లాక్ స్క్రీన్‌కు తిరిగి నమోదు చేసినప్పుడు ఏది ముందుగా జరిగితే అప్పుడు పాస్‌వర్డ్ అభ్యర్థించబడుతుంది.
@@ -627,19 +638,20 @@
           ఈ సెట్టింగ్ కాన్ఫిగర్ చేస్తే, త్వరిత అన్‌లాక్‌ను ఉపయోగించే వినియోగదారులు ఈ సెట్టింగ్‌పై ఆధారపడి లాక్ స్క్రీన్‌లో వారి పాస్‌వర్డ్‌లను నమోదు చేయమని అభ్యర్థించబడతారు.
 
           ఈ సెట్టింగ్ కాన్ఫిగర్ చేయకుంటే, త్వరిత అన్‌లాక్‌ను ఉపయోగిస్తున్న వినియోగదారులు లాక్ స్క్రీన్‌లో వారి పాస్‌వర్డ్‌ను ప్రతి రోజూ నమోదు చేయమని అభ్యర్థించబడతారు.</translation>
-<translation id="2194470398825717446">ఈ విధానం M61లో నిలిపివేయబడింది, దయచేసి బదులుగా EcryptfsMigrationStrategyని ఉపయోగించండి.
+<translation id="2194470398825717446">ఈ విధానం M61లో నిలిపివేయబడింది, బదులుగా దయచేసి EcryptfsMigrationStrategyను ఉపయోగించండి.
 
       ecryptfsతో పాటు అందించబడిన మరియు ext4 ఎన్‌క్రిప్షన్‌కు మార్పిడి అవసరమైన పరికరం ఎలా ప్రవర్తించాలో నిర్దేశిస్తుంది.
 
-      మీరు ఈ విధానాన్ని 'DisallowArc'కు సెట్ చేసినట్లయితే, పరికరంలోని వినియోగదారులందరికి Android యాప్‌లు  నిలిపివేయబడతాయి (ఇప్పటికే ext4 ఎన్‌క్రిప్షన్ ఉన్నవి కూడా). ఏ వినియోగదారులకు కూడా ecryptfs నుండి ext4 ఎన్‌క్రిప్షన్‌కు మార్పిడి అందించబడదు.
+      మీరు ఈ విధానాన్ని 'DisallowArc'కు సెట్ చేసినట్లయితే, పరికరంలోని వినియోగదారులందరికి Android యాప్‌లు నిలిపివేయబడతాయి (ఇప్పటికే ext4 ఎన్‌క్రిప్షన్ ఉన్నవి కూడా), అంతే కాక ఏ వినియోగదారులకు కూడా ecryptfs నుండి ext4 ఎన్‌క్రిప్షన్‌కు మార్పిడి అందించబడదు.
 
-      మీరు ఈ విధానాన్ని 'AllowMigration'కు సెట్ చేసినట్లయితే, ecryptfs హోమ్ డైరెక్టరీలను కలిగిన వినియోగదారులు, వీటిని అవసరానికి తగ్గట్లు ext4 ఎన్‌క్రిప్షన్‌కు మార్చగలరు (ప్రస్తుతానికి అయితే పరికరంలో Android N అందుబాటులోకి వచ్చినప్పుడు).
+      మీరు ఈ విధానాన్ని 'AllowMigration'కు సెట్ చేసినట్లయితే, ecryptfs హోమ్ డైరెక్టరీలను కలిగిన వినియోగదారులు వీటిని అవసరానికి తగ్గట్లు ext4 ఎన్‌క్రిప్షన్‌కు మార్చగలరు (ప్రస్తుతానికి అయితే పరికరంలో Android N అందుబాటులోకి వచ్చినప్పుడు).
 
-      కియోస్క్ యాప్‌లకు ఈ విధానం వర్తించదు - ఇవి ఆటోమేటిక్‌గా తరలించబడతాయి. ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపివేసినట్లయితే, 'DisallowArc'ను ఎంచుకున్నట్లు పరికరం ప్రవర్తిస్తుంది.</translation>
+      కియోస్క్ యాప్‌లకు ఈ విధానం వర్తించదు - ఇవి ఆటోమేటిక్‌గా తరలించబడతాయి. ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపివేసినట్లయితే, 'DisallowArc'ని ఎంచుకున్నట్లు పరికరం ప్రవర్తిస్తుంది.</translation>
 <translation id="2195032660890227692">ఈ విధానం <ph name="PRODUCT_NAME" /> 68లో తీసివేయబడింది మరియు <ph name="ARC_BR_POLICY_NAME" /> ద్వారా భర్తీ చేయబడింది.</translation>
-<translation id="219720814106081560">ప్రారంభిస్తే లేదా కాన్ఫిగర్ చేయకపోతే (డిఫాల్ట్), ప్రాంప్ట్ చేయబడకుండా యాక్సెస్‌ మంజూరు అయ్యే VideoCaptureAllowedUrls జాబితాలో కాన్ఫిగర్ చేయబడిన URLల కోసం మినహా వీడియో క్యాప్చర్ యాక్సెస్‌ కోసం వినియోగదారు ప్రాంప్ట్ చేయబడతారు.
+<translation id="219720814106081560">ప్రారంభిస్తే లేదా కాన్ఫిగర్ చేయకపోతే (డిఫాల్ట్), ప్రాంప్ట్ చేయబడకుండా యాక్సెస్ మంజూరు అయ్యే VideoCaptureAllowedUrls జాబితాలో కాన్ఫిగర్ చేయబడిన URLల కోసం మినహా వీడియో క్యాప్చర్ యాక్సెస్ కోసం వినియోగదారు ప్రాంప్ట్ చేయబడతారు.
+
       
-ఈ విధానాన్ని నిలిపివేసినప్పుడు, వినియోగదారు ఎప్పటికీ ప్రాంప్ట్ చేయబడరు మరియు వీడియో క్యాప్చర్ VideoCaptureAllowedUrlsలో కాన్ఫిగర్ చేయబడిన URLలకు మాత్రమే అందుబాటులో ఉంటుంది.
+ఈ విధానాన్ని నిలిపివేసినప్పుడు, వినియోగదారు ఎప్పటికీ ప్రాంప్ట్ చేయబడరు, VideoCaptureAllowedUrlsలో కాన్ఫిగర్ చేయబడిన URLలకు మాత్రమే, వీడియో క్యాప్చర్ అందుబాటులో ఉంటుంది.
 
 ఈ విధానం అంతర్గత కెమెరాను మాత్రమే కాకుండా అన్ని రకాల వీడియో ఇన్‌పుట్‌లను ప్రభావితం చేస్తుంది.</translation>
 <translation id="2201555246697292490">స్థానిక సందేశ పద్ధతి వైట్‌లిస్ట్‌ను కాన్ఫిగర్ చేయండి</translation>
@@ -651,7 +663,7 @@
 <translation id="2223598546285729819">డిఫాల్ట్ ప్రకటన సెట్టింగ్</translation>
 <translation id="2231817271680715693">మొదటి అమలులోనే డిఫాల్ట్ బ్రౌజర్ నుండి బ్రౌజింగ్ చరిత్రను దిగుమతి చేయి</translation>
 <translation id="2236488539271255289">స్థానిక డేటాను సెట్ చేయడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
-<translation id="2240879329269430151">వెబ్‌సైట్‌లు పాప్-అప్‌లు చూపడానికి అనుమతించాలా? లేదా? అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. పాప్‌అప్‌లను ప్రదర్శించడానికి అన్ని వెబ్‌సైట్‌లను అనుమతించవచ్చు లేదా నిరాకరించవచ్చు. ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే, 'BlockPopups' ఉపయోగించబడుతుంది మరియు దీన్ని వినియోగదారు మార్చగలుగుతారు.</translation>
+<translation id="2240879329269430151">వెబ్‌సైట్‌లు పాప్-అప్‌లు చూపడానికి అనుమతించాలో, లేదో అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. పాప్‌అప్‌లను ప్రదర్శించడానికి అన్ని వెబ్‌సైట్‌లను అనుమతించవచ్చు లేదా నిరాకరించవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, 'BlockPopups' ఉపయోగించబడుతుంది, దీనిని వినియోగదారు మార్చగలుగుతారు.</translation>
 <translation id="2255326053989409609">ఈ సెట్టింగ్‌ను ప్రారంభించడం వ‌ల్ల‌ వెబ్ పేజీలు గ్రాఫిక్స్ ప్రాసెసింగ్ యూనిట్‌ను (GPU) యాక్సెస్‌ చేయకుండా నిరోధించబడతాయి. ప్రత్యేకించి, వెబ్ పేజీలు WebGL APIని యాక్సెస్‌ చేయలేవు. ప్లగిన్‌లు పెప్పర్ 3డి APIని ఉపయోగించలేవు.
 
 ఈ సెట్టింగ్‌ను ఆపివేయడం లేదా సెట్ చేయకుండా వ‌దిలేస్తే, WebGL APIని ఉపయోగించడానికి వెబ్ పేజీల‌ను, పెప్పర్ 3డి APIని ఉపయోగించడానికి ప్లగిన్‌ల‌ను అనుమ‌తించే అవ‌కాశం ఉంది. ఈ APIలను ఉపయోగించడానికి అనుమ‌తించేందుకు బ్రౌజర్‌ యొక్క డిఫాల్ట్ సెట్టింగ్‌లకు క‌మాండ్ లైన్ ఆర్గ్యుమెంట్స్ పాస్ కావ‌డం ఇప్పటికీ అవసరం.
@@ -668,25 +680,25 @@
 
       https://www.chromestatus.com/feature/5989473649164288ని చూడండి.</translation>
 <translation id="2269319728625047531">సైన్-ఇన్ చేస్తున్న సమయంలో సింక్ సమ్మతిని ప్రదర్శించడం ప్రారంభిస్తుంది</translation>
-<translation id="2274864612594831715">ఈ విధానం వర్చువల్ కీబోర్డ్‌ను ప్రారంభించడాన్ని ChromeOSలో ఇన్‌పుట్ పరికరం లాగా కాన్ఫిగర్ చేస్తుంది. వినియోగదారులు ఈ విధానాన్ని అధిగ‌మించ‌లేరు.
+<translation id="2274864612594831715">వర్చువల్ కీబోర్డ్‌ను ChromeOSలో ఇన్‌పుట్ పరికరం లాగా ప్రారంభించడాన్ని ఈ విధానం కాన్ఫిగర్ చేస్తుంది. వినియోగదారులు ఈ విధానాన్ని భర్తీ చేయలేరు.
 
-      విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, ఆన్-స్క్రీన్ వర్చువల్ కీబోర్డ్ ఎల్లప్పుడూ ప్రారంభించబడే ఉంటుంది.
+      విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, ఆన్-స్క్రీన్ వర్చువల్ కీబోర్డ్ ఎప్పుడూ ప్రారంభించబడే ఉంటుంది.
 
-      తప్పున‌కు సెట్ చేస్తే, ఆన్-స్క్రీన్ వర్చువల్ కీబోర్డ్ ఎల్లప్పుడూ నిలిపివేయబడే ఉంటుంది.
+      'తప్పు'గా సెట్ చేస్తే, ఆన్-స్క్రీన్ వర్చువల్ కీబోర్డ్ ఎప్పుడూ నిలిపివేయబడే ఉంటుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేసి ఉంటే, వినియోగదారు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు. అయితే, వినియోగదారులు ఇప్పటికీ ఈ విధానం నియంత్రించే వర్చువల్ కీబోర్డ్‌కు ప్రాధాన్యత ఇచ్చే ఆన్-స్క్రీన్ కీబోర్డ్ యాక్సెస్‌ను ప్రారంభించగలుగుతారు/నిలిపివేయగలుగుతారు. ఆన్-స్క్రీన్ కీబోర్డ్ యాక్సెస్‌ను నియంత్రించడం కోసం |VirtualKeyboardEnabled| విధానాన్ని చూడండి.
+      మీరు ఈ విధానాన్ని సెట్ చేసి ఉంటే, వినియోగదారు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు. అయితే, వినియోగదారులు ఇప్పటికీ ఈ విధానం నియంత్రించే వర్చువల్ కీబోర్డ్‌కు ప్రాధాన్యత ఇచ్చే ఆన్-స్క్రీన్ కీబోర్డ్ యాక్సెస్‌ను ప్రారంభించగలుగుతారు/నిలిపివేయగలుగుతారు. ఆన్-స్క్రీన్ కీబోర్డ్ యాక్సెస్‌ను నియంత్రించడం కోసం |VirtualKeyboardEnabled| విధానాన్ని చూడండి.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఆన్-స్క్రీన్ కీబోర్డ్ ప్రారంభంలో నిలిపివేయబడుతుంది. కానీ వినియోగదారు దాన్ని ఎప్పుడైనా ప్రారంభించవచ్చు. కీబోర్డ్‌ను ఎప్పుడు ప్రదర్శించాలో నిర్ణయించడానికి సమస్య పరిష్కార నియమాలను కూడా ఉపయోగించవచ్చు.</translation>
-<translation id="228659285074633994">AC శక్తితో అమలు అవుతున్నప్పుడు ఒక హెచ్చరిక డైలాగ్ చూపబడిన తర్వాత వినియోగదారు ఇన్‌పుట్ లేకుండా ఉండే సమయ నిడివిని పేర్కొంటుంది.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఆన్-స్క్రీన్ కీబోర్డ్ ప్రారంభంలో నిలిపివేయబడుతుంది కానీ వినియోగదారు దానిని ఎప్పుడైనా ప్రారంభించవచ్చు. కీబోర్డ్‌ను ఎప్పుడు ప్రదర్శించాలో నిర్ణయించడానికి సమస్య పరిష్కార నియమాలను కూడా ఉపయోగించవచ్చు.</translation>
+<translation id="228659285074633994">AC పవర్‌తో అమలు అవుతున్నప్పుడు ఒక హెచ్చరిక డైలాగ్ చూపబడిన తర్వాత వినియోగదారు ఇన్‌పుట్ లేకుండా సమయ నిడివిని పేర్కొంటుంది.
 
-          ఈ విధానం సెట్ చేయబడినప్పుడు, ఇది ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడటానికి సిద్ధంగా ఉందని వినియోగదారుకు తెలియజేస్తున్న హెచ్చరిక డైలాగ్‌ను <ph name="PRODUCT_OS_NAME" /> చూపడానికి ముందు వినియోగదారు తప్పనిసరిగా ఇన్‌యాక్టివ్‌గా ఉండాల్సిన సమయ నిడివిని పేర్కొంటుంది.
+          ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడటానికి సిద్ధంగా ఉందని వినియోగదారుకు తెలియజేస్తున్న హెచ్చరిక డైలాగ్‌ను <ph name="PRODUCT_OS_NAME" /> చూపడానికి ముందు వినియోగదారు తప్పనిసరిగా ఇన్‌యాక్టివ్‌గా ఉండాల్సిన సమయ నిడివిని ఇది పేర్కొంటుంది.
 
           ఈ విధానాన్ని సెట్ చేయకపోతే, హెచ్చరిక డైలాగ్ చూపబడదు.
 
-          విధాన విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యానికి తక్కువగా లేదా సమానంగా అమర్చబడ్డాయి.</translation>
+          విధాన విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యానికి తక్కువగా లేదా సమానంగా అమర్చబడతాయి.</translation>
 <translation id="2292084646366244343">అక్షరక్రమ ఎర్రర్‌లను పరిష్కరించడంలో సహాయం చేయడానికి <ph name="PRODUCT_NAME" /> Google వెబ్ సేవను ఉపయోగించగలదు. ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, అప్పుడు ఈ సేవ ఎప్పుడూ ఉపయోగించబడుతుంది. ఈ సెట్టింగ్‌ను నిలిపివేస్తే, అప్పుడు ఈ సేవ ఎప్పటికీ ఉపయోగించబడదు.
 
-      అక్షరక్రమ తనిఖీని ఇప్పటికీ డౌన్‌లోడ్ చేయబడిన నిఘంటువును ఉపయోగించి అమలు చేయవచ్చు; ఆన్‌లైన్ సేవ యొక్క వినియోగాన్ని మాత్రమే ఈ విధానం నియంత్రిస్తుంది.
+      అక్షరక్రమ తనిఖీని ఇప్పటికీ డౌన్‌లోడ్ చేయబడిన నిఘంటువును ఉపయోగించి అమలు చేయవచ్చు; ఈ విధానం ఆన్‌లైన్ సేవ యొక్క వినియోగాన్ని మాత్రమే నియంత్రిస్తుంది.
 
       ఈ సెట్టింగ్‌ను కాన్ఫిగర్ చేయకపోతే వినియోగదారులు అక్షరక్రమ తనిఖీ సేవను ఉపయోగించాలో లేదో ఎంచుకోవచ్చు.</translation>
 <translation id="2294283832646774959">ప్రింటర్‌ల జాబితాను కాన్ఫిగర్ చేస్తుంది.
@@ -694,17 +706,17 @@
       నిర్వాహకులు తమ వినియోగదారులకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి
       ఈ విధానం అనుమతిస్తుంది.
 
-      <ph name="PRINTER_DISPLAY_NAME" /> మరియు <ph name="PRINTER_DESCRIPTION" /> ప్రింటర్ ఎంపికను సులభతరం చేయడం కోసం అనుకూలీకరించగల స్ట్రింగ్‌ల‌ను కలిగి ఉంటాయి. <ph name="PRINTER_MANUFACTURER" /> మరియు <ph name="PRINTER_MODEL" /> తుది వినియోగదారులకు ప్రింటర్ గుర్తింపును సులభతరం చేస్తాయి. అవి తయారీదారు బ్రాండ్ పేరును, ప్రింటర్ మోడల్‌ను సూచిస్తాయి. <ph name="PRINTER_URI" /> అనేది <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> మరియు <ph name="URI_QUEUE" />తో సహా క్లయింట్ కంప్యూటర్ నుండి చేరుకోగలిగే చిరునామా అయి ఉండాలి. <ph name="PRINTER_UUID" /> అనేది ఐచ్ఛికం. అందిస్తే, అది <ph name="ZEROCONF_DISCOVERY" /> ప్రింటర్‌ల నకిలీనీ తీసివేయడంలో సహాయపడడానికి ఉపయోగించబడుతుంది.
+      <ph name="PRINTER_DISPLAY_NAME" /> మరియు <ph name="PRINTER_DESCRIPTION" />లో ప్రింటర్ ఎంపికను సులభతరం చేయడం కోసం అనుకూలీకరించగల వాక్యాలు ఉంటాయి. <ph name="PRINTER_MANUFACTURER" /> మరియు <ph name="PRINTER_MODEL" /> తుది వినియోగదారులకు ప్రింటర్ గుర్తింపును సులభతరం చేస్తాయి. అవి తయారీదారు బ్రాండ్ పేరు మరియు ప్రింటర్ మోడల్‌ను సూచిస్తాయి. <ph name="PRINTER_URI" /> అనేది <ph name="URI_SCHEME" />, <ph name="URI_PORT" /> మరియు <ph name="URI_QUEUE" />తో సహా క్లయింట్ కంప్యూటర్ నుండి చేరుకోగలిగే చిరునామా అయి ఉండాలి. <ph name="PRINTER_UUID" /> అనేది ఐచ్ఛికం. అందిస్తే, అది <ph name="ZEROCONF_DISCOVERY" /> ప్రింటర్‌ల నకిలీనీ తీసివేయడంలో సహాయపడడానికి ఉపయోగించబడుతుంది.
 
-      <ph name="PRODUCT_NAME" /> మద్దతు గల ప్రింటర్‌ను సూచించే స్ట్రింగ్‌ల‌లో ఒక దానికి తప్పక <ph name="PRINTER_EFFECTIVE_MODEL" /> సరిపోలాలి. ప్రింటర్ కోసం సరైన PPDని గుర్తించడానికి, ఇన్‌స్టాల్ చేయడానికి స్ట్రింగ్‌ ఉపయోగించబడుతుంది. https://support.google.com/chrome?p=noncloudprintలో మరింత సమాచారం పొందవచ్చు.
+      <ph name="PRODUCT_NAME" /> మద్దతు గల ప్రింటర్‌ను సూచించే వాక్యాలలో ఒకదానికి తప్పక <ph name="PRINTER_EFFECTIVE_MODEL" /> సరిపోలాలి. ప్రింటర్ కోసం సరైన PPDని గుర్తించడానికి మరియు ఇన్‌స్టాల్ చేయడానికి వాక్యం ఉపయోగించబడుతుంది. https://support.google.com/chrome?p=noncloudprintలో మరింత సమాచారం పొందవచ్చు.
 
-      ప్రింటర్ మొదటి వినియోగం తర్వాత ప్రింటర్ సెటప్ పూర్తవుతుంది.  ప్రింటర్‌ను ఉపయోగించే వరకు PPDలు డౌన్‌లోడ్ చేయబడవు.  ఆ సమయం తర్వాత, తరచూ ఉపయోగించే PPDలు కాష్ చేయబడతాయి.
+      ప్రింటర్ యొక్క మొదటి వినియోగం తర్వాత ప్రింటర్ సెటప్ పూర్తవుతుంది. ప్రింటర్‌ను ఉపయోగించే వరకు PPDలు డౌన్‌లోడ్ చేయబడవు. ఆ సమయం తర్వాత, తరచూ ఉపయోగించే PPDలు కాష్ చేయబడతాయి.
 
-      వినియోగదారులు వారి వ్యక్తిగత పరికరాల్లో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు.  ఇది వేర్వేరు వినియోగదారుల ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
+      వినియోగదారులు వారి వ్యక్తిగత పరికరాలలో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు. ఇది వేర్వేరు వినియోగదారుల ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
 
-      Active Directory నిర్వాహిత‌ పరికరాల కోసం, ఈ విధానం Active Directory మెషిన్‌ పేరు లేదా దాని స‌బ్‌స్ట్రింగ్‌కు <ph name="MACHINE_NAME_VARIABLE" /> విస్తరణ మద్దతిస్తుంది. ఉదాహరణకు, మెషిన్‌ పేరు <ph name="MACHINE_NAME_EXAMPLE" /> అయితే, ఆపై <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> అనేది 6వ స్థానం తర్వాతి నుండి ప్రారంభమై 4 అక్షరాలు ఉంటుంది, అంటే <ph name="MACHINE_NAME_PART_EXAMPLE" />. స్థానం శూన్య ఆధారితమని గుర్తుంచుకోండి.
+      Active Directory నిర్వహిత పరికరాల కోసం, ఈ విధానం Active Directory మెషీన్ పేరు లేదా దాని ఉపవాక్యానికి <ph name="MACHINE_NAME_VARIABLE" /> విస్తరణ మద్దతిస్తుంది. ఉదాహరణకు, మెషీన్ పేరు <ph name="MACHINE_NAME_EXAMPLE" /> అయితే, ఆపై <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> అనేది 6వ స్థానం తర్వాత నుండి ప్రారంభమై 4 అక్షరాలు ఉంటుంది, అంటే <ph name="MACHINE_NAME_PART_EXAMPLE" />. స్థానం శూన్య ఆధారితమని గుర్తుంచుకోండి.
       </translation>
-<translation id="2294382669900758280">ఈ విధానాన్ని <ph name="TRUE" />కు సెట్ చేసినప్పటికీ Android యాప్‌ల‌లో వీడియో ప్లే చేయడం పరిగణనలోకి తీసుకోబడదు.</translation>
+<translation id="2294382669900758280">ఈ విధానాన్ని <ph name="TRUE" />కు సెట్ చేసినప్పటికీ Android యాప్‌లలో వీడియో ప్లే చేయడం పరిగణనలోకి తీసుకోబడదు.</translation>
 <translation id="2298647742290373702"><ph name="PRODUCT_NAME" />లో డిఫాల్ట్ కొత్త ట్యాబ్ పేజీని కాన్ఫిగర్ చేస్తుంది.</translation>
 <translation id="2299220924812062390">ప్రారంభించబడిన ప్లగ్‌ఇన్‌ల జాబితాని పేర్కొను</translation>
 <translation id="2303795211377219696">క్రెడిట్ కార్డ్‌ల కోసం స్వీయపూరింపును ప్రారంభించండి</translation>
@@ -713,7 +725,7 @@
 
       'స్టార్ట‌ప్‌లోని చర్య' లో 'URLల జాబితాను తెరువు' ఎంచుకునే వరకు 'స్టార్ట‌ప్‌లో తెరవడానికి URLల' యొక్క కంటెంట్ జాబితా విస్మ‌రించ‌బడుతుంది.</translation>
 <translation id="2327252517317514801">G Suite యాక్సెస్ చేయడానికి అనుమతించే డొమైన్‌లను నిర్వచించండి</translation>
-<translation id="237494535617297575">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలిపెడితే, అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది. గ్లోబల్ డిఫాల్ట్ విలువ సెట్ చేయబడి ఉంటే 'DefaultNotificationsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
+<translation id="237494535617297575">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెడితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ అనేది, 'DefaultNotificationsSetting' విధానం నుండి (సెట్ చేయబడి ఉంటే) లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
 <translation id="2386362615870139244">స్క్రీన్‌ను సాధారణ స్థితికి తీసుకువచ్చే లాక్‌లను అనుమతించండి</translation>
 <translation id="2411817661175306360">పాస్‌వర్డ్ రక్షణ హెచ్చరిక ఆఫ్‌లో ఉంది</translation>
 <translation id="2411919772666155530">ఈ సైట్‌లలో ప్రకటనలను నిరోధించండి</translation>
@@ -744,9 +756,9 @@
       విధానాన్ని తప్పున‌కు సెట్ చేస్తే లేదా అసలు సెట్ చేయకపోతే, ఈవెంట్‌లు లాగ్ చేయబడవు.</translation>
 <translation id="244317009688098048">స్వీయ-లాగిన్ కోసం బెయిల్అవుట్ షార్ట్‌కట్‌ను ప్రారంభించండి.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా ఒప్పున‌కు సెట్ చేస్తే మరియు పరికర-స్థానిక ఖాతాను సున్నా-ఆలస్యపు స్వీయ-లాగిన్‌కు కాన్ఫిగర్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> స్వీయ-లాగిన్‌ను తప్పించి, లాగిన్ స్క్రీన్‌ను చూపడం కోసం కీబోర్డ్ షార్ట్‌కట్ Ctrl+Alt+Sను ఆమోదిస్తుంది.
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'ఒప్పు'గా సెట్ చేసి, పరికర-స్థానిక ఖాతాను సున్నా-ఆలస్యపు స్వీయ-లాగిన్‌కు కాన్ఫిగర్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> స్వీయ-లాగిన్‌ను తప్పించి, లాగిన్ స్క్రీన్‌ను చూపడం కోసం కీబోర్డ్ షార్ట్‌కట్ Ctrl+Alt+Sను ఆమోదిస్తుంది.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, సున్నా-ఆలస్యపు స్వీయ-లాగిన్ (కాన్ఫిగర్ చేసి ఉంటే) తప్పించబడదు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, సున్నా-ఆలస్యపు స్వీయ-లాగిన్ (కాన్ఫిగర్ చేసి ఉంటే) తప్పించబడదు.</translation>
 <translation id="2454228136871844693">స్థిరత్వం కోసం ఆప్టిమైజ్ చేయండి.</translation>
 <translation id="2463365186486772703">అప్లికేషన్ లొకేల్</translation>
 <translation id="2466131534462628618">క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ ప్రాక్సీని విస్మరిస్తుంది</translation>
@@ -756,25 +768,25 @@
  ఈ ఫిల్టర్ URLలను అశ్లీలమైనవా కాదా అని వర్గీకరించడానికి Google సురక్షిత శోధన APIను ఉపయోగిస్తుంది .
  ఈ విధానాన్ని కాన్ఫిగర్ చేయకపోయినా లేక "అశ్లీలమైన సైట్‌లను ఫిల్టర్ చేయవద్దు" అని సెట్ చేసి ఉన్నా సైట్‌లు ఫిల్టర్ అవ్వవు.  
  ఈ విధానం "అగ్ర అశ్లీల సైట్‌లను ఫిల్టర్ చేయి" అని సెట్ చేసి ఉంటే అశ్లీలమైనవిగా వర్గీకరించబడిన సైట్‌లు ఫిల్టర్ చేయబడతాయి.</translation>
-<translation id="2486371469462493753">జాబితా చేసిన URLలకు ప్రమాణపత్రం పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
+<translation id="2486371469462493753">జాబితా చేసిన URLలకు సర్టిఫికెట్ పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
 
-      ఈ విధానం పేర్కొన్న URLల్లో హోస్ట్ పేర్ల ప్రమాణపత్రాలను ప్రమాణపత్రం పారదర్శకత ద్వారా బహిరంగపరచకుండా అనుమతిస్తుంది. ఇది పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని అవిశ్వసనీయమైన ప్రమాణపత్రాలను ఉపయోగించడానికి అనుమతిస్తుంది, కానీ దీని వలన ఆ హోస్ట్‌ల కోసం తప్పుగా జారీ చేసిన ప్రమాణపత్రాలను గుర్తించడం కష్టమవుతుంది.
+      పేర్కొన్న URLలలో హోస్ట్ పేర్ల సర్టిఫికెట్‌లను సర్టిఫికెట్ పారదర్శకత ద్వారా బహిరంగపరచకుండా ఈ విధానం అనుమతిస్తుంది. పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని అవిశ్వసనీయమైన సర్టిఫికెట్‌లను ఉపయోగించడానికి ఇది అనుమతిస్తుంది, అయితే దీని వలన ఆ హోస్ట్‌ల కోసం తప్పుగా జారీ చేసిన సర్టిఫికెట్‌లను గుర్తించడం కష్టమవుతుంది.
 
-      URL నమూనా https://www.chromium.org/administrators/url-blacklist-filter-format ప్రకారం ఆకృతీకరించబడుతుంది. అయితే, పేర్కొన్న హోస్ట్ పేరు కోసం ప్రమాణపత్రాలు స్కీమ్, పోర్ట్ లేదా పథం వంటి అంశాలపై ఆధారపడకుండా చెల్లుబాటు అయ్యే కారణంగా, కేవలం URL యొక్క హోస్ట్ పేరు భాగం మాత్రమే పరిగణించబడుతుంది. వైల్డ్‌కార్డ్ హోస్ట్‌లకు మద్దతు ఉండదు.
+      URL నమూనా https://www.chromium.org/administrators/url-blacklist-filter-format ప్రకారం ఫార్మాట్ చేయబడుతుంది. అయితే, పేర్కొన్న హోస్ట్ పేరు కోసం సర్టిఫికెట్‌లు స్కీమ్, పోర్ట్ లేదా పాత్ వంటి అంశాలపై ఆధారపడకుండా చెల్లుబాటు అయ్యే కారణంగా, కేవలం URL యొక్క హోస్ట్ పేరు భాగం మాత్రమే పరిగణించబడుతుంది. వైల్డ్‌కార్డ్ హోస్ట్‌లకు మద్దతు ఉండదు.
 
-      ఈ విధానాన్ని సెట్ చేయకుంటే, ప్రమాణపత్రం పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా ప్రమాణపత్రం, ప్రమాణపత్రం పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే, సర్టిఫికెట్ పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా సర్టిఫికెట్, సర్టిఫికెట్ పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో, అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
 <translation id="2488010520405124654">ఆఫ్‌లైన్‌లో ఉన్నప్పుడు నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌ను ప్రారంభించండి.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా ఒప్పున‌కు సెట్ చేస్తే మరియు పరికర-స్థానిక ఖాతా సున్నా ఆలస్యపు స్వీయ-లాగిన్ కోసం కాన్ఫిగర్ చేయబడితే మరియు పరికరం ఇంటర్నెట్‌కు యాక్సెస్‌ను కలిగి ఉండకపోతే, <ph name="PRODUCT_OS_NAME" /> నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌ను చూపుతుంది.
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'ఒప్పు'గా సెట్ చేస్తే మరియు పరికర-స్థానిక ఖాతా సున్నా ఆలస్యపు స్వీయ-లాగిన్ కోసం కాన్ఫిగర్ చేయబడి, పరికరానికి ఇంటర్నెట్ యాక్సెస్ లేకపోతే, <ph name="PRODUCT_OS_NAME" /> నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌ను చూపుతుంది.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌కు బదులుగా ఎర్ర‌ర్‌ సందేశం ప్రదర్శించబడుతుంది.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, నెట్‌వర్క్ కాన్ఫిగరేషన్ ప్రాంప్ట్‌కు బదులుగా ఎర్రర్ సందేశం ప్రదర్శించబడుతుంది.</translation>
 <translation id="2498238926436517902">అరను ఎల్లప్పుడూ స్వయంచాలకంగా దాచు</translation>
-<translation id="2514328368635166290">డిఫాల్ట్ శోధన ప్రదాత యొక్క ఇష్టమైన చిహ్నం URLను పేర్కొంటుంది. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, శోధన ప్రదాతకు చిహ్నం ఉండదు. ఈ విధానం 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే పరిగణించబడుతుంది.</translation>
-<translation id="2516600974234263142"><ph name="PRODUCT_NAME" />లో ముద్రించడాన్ని ప్రారంభిస్తుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది.
+<translation id="2514328368635166290">డిఫాల్ట్ శోధన ప్రొవైడర్ యొక్క ఇష్టమైన చిహ్నం URLను పేర్కొంటుంది. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, శోధన ప్రొవైడర్‌కు చిహ్నం ఉండదు. ఈ విధానం 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే పరిగణించబడుతుంది.</translation>
+<translation id="2516600974234263142"><ph name="PRODUCT_NAME" />లో ముద్రించడాన్ని ప్రారంభిస్తుంది, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది.
 
       ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు ముద్రించవచ్చు.
 
-      ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" /> నుండి ముద్రించలేరు. రెంచ్ మెను, ఎక్స్‌టెన్షన్‌లు, JavaScript యాప్‌లు మొదలైన వాటిలో ముద్రణ నిలిపివేయబడుతుంది. ముద్రించేటప్పుడు <ph name="PRODUCT_NAME" />ను దాటవేసే ప్లగిన్‌ల నుండి ముద్రించడం ఇప్పటికీ సాధ్యపడుతుంది. ఉదాహరణకు, నిర్దిష్ట Flash యాప్‌లు వాటి సందర్భ మెనూలో ఈ విధానం వర్తించని ముద్రణ ఎంపికను కలిగి ఉంటాయి.</translation>
+      ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" /> నుండి ముద్రించలేరు. రెంచ్ మెనూ, ఎక్స్‌టెన్షన్‌లు, JavaScript యాప్‌లు మొదలైన వాటిలో ముద్రణ నిలిపివేయబడుతుంది. ముద్రించేటప్పుడు <ph name="PRODUCT_NAME" />ను దాటవేసే ప్లగిన్‌ల నుండి ముద్రించడం ఇప్పటికీ సాధ్యపడుతుంది. ఉదాహరణకు, కొన్ని Flash యాప్‌లలోని సందర్భ మెనూలోని ముద్రణ ఎంపికకు ఈ విధానం వర్తించదు.</translation>
 <translation id="2518231489509538392">ఆడియో ప్లే కావడాన్ని అనుమతిస్తుంది</translation>
 <translation id="2521581787935130926">బుక్‌మార్క్ బార్‌లో యాప్‌ల షార్ట్‌కట్‌ను చూపండి</translation>
 <translation id="2529659024053332711">ప్రారంభంలో ప్రవర్తనను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
@@ -798,59 +810,59 @@
 <translation id="2548572254685798999">సురక్షిత బ్రౌజింగ్‌కి సంబంధించిన వివరాలను నివేదించడం</translation>
 <translation id="2550593661567988768">సింప్లెక్స్ ముద్రణ మాత్రమే</translation>
 <translation id="2552966063069741410">సమయ మండలి</translation>
-<translation id="2562339630163277285">తక్షణ ఫలితాలను అందించడానికి ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URL <ph name="SEARCH_TERM_MARKER" /> అనే స్ట్రింగ్‌ను కలిగి ఉంటుంది, ఇది ప్రశ్న సమయంలో వినియోగదారు అప్పటివరకు నమోదు చేసిన వచనంతో అధిగ‌మిస్తుంది.
+<translation id="2562339630163277285">తక్షణ ఫలితాలను అందించడానికి ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URLలో <ph name="SEARCH_TERM_MARKER" /> అనే స్ట్రింగ్ ఉండాలి, ప్రశ్న సమయంలో, వినియోగదారు అప్పటివరకు నమోదు చేసిన వచనాన్ని ఈ స్ట్రింగ్ భర్తీ చేస్తుంది.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, తక్షణ శోధన ఫలితాలు ఏవీ అందించబడవు.
 
           Google తక్షణ ఫలితాల URLను ఇలా పేర్కొనవచ్చు: <ph name="GOOGLE_INSTANT_SEARCH_URL" />.
 
           'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం పరిగణించబడుతుంది.</translation>
-<translation id="2569647487017692047">ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> బ్లూటూత్‌ను నిలిపివేస్తుంది. వినియోగదారు దాన్ని తిరిగి ప్రారంభించలేరు.
+<translation id="2569647487017692047">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> బ్లూటూత్‌ను నిలిపివేస్తుంది, వినియోగదారు దానిని తిరిగి ప్రారంభించలేరు.
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినా లేదా సెట్ చేయకపోయినా, వినియోగదారు వారికి నచ్చినట్లుగా బ్లూటూత్‌ను ప్రారంభించగలరు లేదా నిలిపివేయగలరు.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినా, సెట్ చేయకపోయినా, వినియోగదారు వారికి నచ్చినట్లుగా బ్లూటూత్‌ను ప్రారంభించగలరు లేదా నిలిపివేయగలరు.
 
-      ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
       బ్లూటూత్‌ను ప్రారంభించిన తర్వాత, మార్పులు పనిచేయడానికి తప్పనిసరిగా లాగ్ అవుట్ చేసి, తిరిగి లాగ్ ఇన్ చేయాలి (బ్లూటూత్‌ను నిలిపివేస్తున్నప్పుడు ఈ చర్య అవసరం లేదు).</translation>
-<translation id="2571066091915960923">డేటా కుదింపు ప్రాక్సీని ప్రారంభించండి లేదా నిలిపివేయండి. ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధించండి.
+<translation id="2571066091915960923">డేటా కుదింపు ప్రాక్సీని ప్రారంభించండి లేదా నిలిపివేయండి, ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధించండి.
 
-      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా నిలిపివేసినా, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా నిలిపివేసినా, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డేటా కుదింపు ప్రాక్సీ ఫీచర్‌ను ఉపయోగించాలో లేదో నిర్ణయించుకోవడానికి వినియోగ‌దారుకు ఇది అందుబాటులో ఉంటుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డేటా కుదింపు ప్రాక్సీ ఫీచర్‌ను ఉపయోగించాలో లేదో నిర్ణయించుకోవడానికి వినియోగదారుకు ఇది అందుబాటులో ఉంటుంది.</translation>
 <translation id="257788512393330403">పాస్‌వర్డ్ నమోదు ప్రతి ఆరు గంటలకు అవసరమవుతుంది</translation>
 <translation id="2587719089023392205"><ph name="PRODUCT_NAME" />ని డిఫాల్ట్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="2592091433672667839">రీటైల్ మోడ్‌లో ఉన్నప్పుడు, ఎంత సేపు ఇన్‌యాక్టివ్‌గా ఉంటే సైన్-ఇన్ స్క్రీన్‌లో స్క్రీన్ సేవర్‌ను చూపాలో నిర్ణయిస్తుంది</translation>
-<translation id="2592162121850992309">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, నిర్దిష్ట GPU ఫీచర్‌ను నిరోధిత జాబితాలో చేర్చితే మినహా ఇంకే సందర్భంలో అయినా హార్డ్‌వేర్ వేగవృద్ధి ప్రారంభించబడుతుంది.
+<translation id="2592162121850992309">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, నిర్దిష్ట GPU ఫీచర్‌ను బ్లాక్‌లిస్ట్‌‌లో చేర్చితే మినహా ఇంకే సందర్భంలో అయినా హార్డ్‌వేర్ వేగవృద్ధి ప్రారంభించబడుతుంది.
 
 ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, హార్డ్‌వేర్ వేగవృద్ధి నిలిపివేయబడుతుంది.</translation>
-<translation id="2596260130957832043">NTLMv2 ప్రారంభించాలో లేదో నియంత్రిస్తుంది.
+<translation id="2596260130957832043">NTLMv2ను ప్రారంభించాలో లేదో నియంత్రిస్తుంది.
 
-          సర్వర్‌ల యొక్క అన్ని ఇటీవలి వెర్షన్‌లు NTLMv2కు మద్దతిస్తాయి. మునుపటి అనుకూలతకు మాత్రమే దీనిని నిలిపివేయాలి మరియు భద్రతా ప్రామాణీక‌ర‌ణ‌ తగ్గుతుంది. 
+          Samba మరియు Windows సర్వర్‌ల ఇటీవలి వెర్షన్‌లన్నీ NTLMv2కు మద్దతిస్తాయి. మునుపటి అనుకూలత కోసం మాత్రమే దీనిని నిలిపివేయాలి, తద్వారా భద్రతా ప్రమాణీకరణ తగ్గుతుంది. 
 
-          ఈ విధానం సెట్ కాకపొతే, డిఫాల్ట్‌గా ఒప్పు అవుతుంది మరియు NTLMv2 ప్రారంభించబడుతుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకపొతే, డిఫాల్ట్ అనేది 'ఒప్పు'గా పరిగణించబడుతుంది, NTLMv2 ప్రారంభించబడుతుంది.</translation>
 <translation id="2604182581880595781">నెట్‌వర్క్ ఫైల్ షేరింగ్‌ సంబంధిత విధానాలను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="2623014935069176671">ప్రారంభ వినియోగదారు కార్యకలాపం కోసం వేచి ఉండండి</translation>
 <translation id="262740370354162807">పత్రాలను <ph name="CLOUD_PRINT_NAME" />కు సమర్పించడాన్ని ప్రారంభిస్తుంది</translation>
 <translation id="2627554163382448569">ఎంటర్‌ప్రైజ్ ప్రింటర్‌ల కోసం కాన్ఫిగరేషన్‌లను అందిస్తుంది.
 
-      <ph name="PRODUCT_OS_NAME" /> పరికరాలకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి ఈ విధానం మిమ్మల్ని అనుమతిస్తుంది.  ఫార్మాట్ అన్నది NativePrinters నిఘంటువును అనుసరించి ఉండాలి. వైట్‌లిస్టింగ్ లేదా బ్లాక్‌లిస్టింగ్ కోసం ఒక్కో ప్రింటర్‌కు అదనంగా అవసరమైన "id" లేదా "guid" ఫీల్డ్ కూడా ఉండాలి.
+      <ph name="PRODUCT_OS_NAME" /> పరికరాలకు ప్రింటర్ కాన్ఫిగరేషన్‌లను అందించడానికి ఈ విధానం మిమ్మల్ని అనుమతిస్తుంది. ఫార్మాట్ అన్నది NativePrinters నిఘంటువును అనుసరించి ఉండాలి, వైట్‌లిస్టింగ్ లేదా బ్లాక్‌లిస్టింగ్ కోసం ఒక్కో ప్రింటర్ కోసం అదనంగా అవసరమైన "id" లేదా "guid" ఫీల్డ్ కూడా ఉండాలి.
 
-       ఫైల్ పరిమాణం 5MB మించకూడదు మరియు JSONలో ఎన్‌కోడ్ అయ్యి ఉండాలి.  ఒక అంచనా ప్రకారం చూస్తే, ఇంచుమించుగా 21,000 ప్రింటర్‌లను కలిగి ఉండే ఫైల్ 5MB పరిమాణం కలిగిన ఫైల్‌గా ఎన్‌కోడ్ అవుతుంది. డౌన్‌లోడ్‌ను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్ ఉపయోగించబడుతుంది.
+       ఫైల్ పరిమాణం 5MB మించకూడదు, JSONలో ఎన్‌కోడ్ అయి ఉండాలి. ఒక అంచనా ప్రకారం చూస్తే, ఇంచుమించుగా 21,000 ప్రింటర్‌లను కలిగి ఉండే ఫైల్‌ను ఎన్‌కోడ్ చేస్తే, దాని పరిమాణం 5MB అవుతుంది. డౌన్‌లోడ్ సమగ్రతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్ ఉపయోగించబడుతుంది.
 
-      ఫైల్ డౌన్‌లోడ్ అయింది. కాష్ చేయబడింది. URL లేదా హ్యాష్ మారిన ప్ర‌తిసారి ఇది తిరిగి డౌన్‌లోడ్ అవుతుంది.
+      ఫైల్ డౌన్‌లోడ్ చేయబడి, కాష్ చేయబడుతుంది. URL లేదా హ్యాష్ మారిన ప్రతిసారీ ఇది తిరిగి డౌన్‌లోడ్ అవుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ప్రింటర్ కాన్ఫిగరేషన్‌ల కోసం ఫైల్‌ను డౌన్‌లోడ్ చేస్తుంది. <ph name="BULK_PRINTERS_ACCESS_MODE" />, <ph name="BULK_PRINTERS_WHITELIST" /> మరియు <ph name="BULK_PRINTERS_BLACKLIST" /> ప్రకారంగా ప్రింటర్‌లను అందుబాటులో ఉంచుతుంది.
+      ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ప్రింటర్ కాన్ఫిగరేషన్‌ల కోసం ఫైల్‌ను డౌన్‌లోడ్ చేసి <ph name="BULK_PRINTERS_ACCESS_MODE" />, <ph name="BULK_PRINTERS_WHITELIST" /> మరియు <ph name="BULK_PRINTERS_BLACKLIST" />ల ప్రకారం ప్రింటర్‌లను అందుబాటులో ఉంచుతుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని అధిగ‌మించ‌లేరు.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని భర్తీ చేయలేరు.
 
-      వినియోగదారులు వారి వ్యక్తిగత పరికరాల్లో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు.  ఇది వేర్వేరు వినియోగదారుల యొక్క ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
+      వినియోగదారులు వారి వ్యక్తిగత పరికరాలలో ప్రింటర్‌లను కాన్ఫిగర్ చేసే విషయంలో ఈ విధానం ఎలాంటి ప్రభావం చూపదు. ఇది వేర్వేరు వినియోగదారుల ప్రింటర్‌ల కాన్ఫిగరేషన్‌కు అదనపు తోడుగా ఉండేలా ఉద్దేశించినది.
       </translation>
 <translation id="2633084400146331575">మాటల ద్వారా అభిప్రాయాన్ని ప్రారంభించు</translation>
-<translation id="2646290749315461919">వినియోగదారుల భౌతిక స్థానాన్ని వెబ్‌సైట్‌లు ట్రాక్ చేయగలిగేలా వాటిని అనుమతించాలా వద్దా అనేది సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. వినియోగదారుల భౌతిక స్థానాన్ని ట్రాక్ చేయడం అనేది డిఫాల్ట్‌‌గా అనుమతించవచ్చు, డిఫాల్ట్‌గా నిరాకరించవచ్చు లేదా ఒక వెబ్‌సైట్ భౌతిక స్థానాన్ని అభ్యర్థించిన ప్రతిసారీ వినియోగదారును అడిగేలా సెట్ చేయవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'AskGeolocation' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
+<translation id="2646290749315461919">వెబ్‌సైట్‌లను వినియోగదారుల భౌతిక స్థానాన్ని ట్రాక్ చేయడానికి అనుమతించాలా వద్దా అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. వినియోగదారుల భౌతిక స్థానాన్ని ట్రాక్ చేయడం అనేది డిఫాల్ట్‌‌గా అనుమతించవచ్చు, డిఫాల్ట్‌గా నిరాకరించవచ్చు లేదా ఏదైనా వెబ్‌సైట్ భౌతిక స్థానాన్ని అభ్యర్థించిన ప్రతిసారి, వినియోగదారును అడిగేలా సెట్ చేయవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'AskGeolocation' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలుగుతారు.</translation>
 <translation id="2647069081229792812">బుక్‌మార్క్ సవరణను ప్రారంభించండి లేదా నిలిపివేయండి</translation>
 <translation id="2649896281375932517">వినియోగదారులను నిర్ణయించుకోనివ్వండి</translation>
 <translation id="2650049181907741121">వినియోగదారు మూతను మూసివేసినప్పుడు తీసుకోవలసిన చర్య</translation>
-<translation id="2655233147335439767">డిఫాల్ట్ శోధనను చేస్తున్నప్పుడు ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URL '<ph name="SEARCH_TERM_MARKER" />' అనే స్ట్రింగ్‌ను కలిగి ఉంటుంది, ఇది ప్రశ్న సమయంలో వినియోగదారు శోధించే పదాలతో అధిగ‌మించ‌బ‌డుతుంది.
+<translation id="2655233147335439767">డిఫాల్ట్ శోధనను చేస్తున్నప్పుడు ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URLలో '<ph name="SEARCH_TERM_MARKER" />' అనే స్ట్రింగ్ ఉండాలి, ప్రశ్న సమయంలో వినియోగదారు వెతికే పదాలను ఇది భర్తీ చేస్తుంది.
 
           Google శోధన URLను ఇలా పేర్కొనవచ్చు: <ph name="GOOGLE_SEARCH_URL" />.
 
@@ -869,11 +881,11 @@
   ఒకవేళ విధానం కాన్ఫిగర్ చేయబడకపోతే, వినియోగదారు ఈ సెట్టింగ్‌ను మార్చగలుగుతారు.
       </translation>
 <translation id="2672012807430078509">SMB మౌంట్‌ల కోసం ప్రమాణీకరణ ప్రోటోకాల్ లాగా NTLMని ప్రారంభించడాన్ని నియంత్రిస్తుంది</translation>
-<translation id="267596348720209223">శోధన ప్రదాత ద్వారా మద్దతు ఉన్న అక్షర ఎన్‌కోడింగ్‌లను పేర్కొంటుంది. ఎన్‌కోడింగ్‌లు అంటే UTF-8 GB2312 మరియు ISO-8859-1 వంటి కోడ్ పేజీ పేర్లు. అవి అందించబడిన క్రమంలో ప్రయత్నించబడతాయి. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, UTF-8 డిఫాల్ట్ ఉపయోగించబడుతుంది. ఈ విధానం కేవలం 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడితేనే పరిగణించబడుతుంది.</translation>
+<translation id="267596348720209223">శోధన ప్రొవైడర్ మద్దతిచ్చే అక్షర ఎన్‌కోడింగ్‌లను పేర్కొంటుంది. ఎన్‌కోడింగ్‌లు అంటే UTF-8 GB2312 మరియు ISO-8859-1 వంటి కోడ్ పేజీ పేర్లు. అవి అందించబడిన క్రమంలో ప్రయత్నించబడతాయి. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, UTF-8 డిఫాల్ట్ ఉపయోగించబడుతుంది. 'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభిస్తే మాత్రమే, ఈ విధానం పరిగణించబడుతుంది.</translation>
 <translation id="268577405881275241">డేటా కుదింపు ప్రాక్సీ ఫీచర్‌ని ప్రారంభించండి</translation>
 <translation id="2693108589792503178">పాస్‌వర్డ్‌‌ను మార్చే URLను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="2706708761587205154">కేవలం పిన్‌తో మాత్రమే ముద్రణను అనుమతించండి</translation>
-<translation id="2710534340210290498">ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వినియోగదారులు స్క్రీన్‌ను లాక్ చేయలేరు (వినియోగదారు సెషన్ నుండి సైన్ అవుట్ చేయడం మాత్రమే సాధ్యమవుతుంది). ఈ సెట్టింగ్‌ను ఒప్పున‌కు సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, పాస్‌వర్డ్ కలిగి ఉండే వినియోగదారులు స్క్రీన్‌ను లాక్ చేయగలరు.</translation>
+<translation id="2710534340210290498">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారులు స్క్రీన్‌ను లాక్ చేయలేరు (వినియోగదారు సెషన్ నుండి సైన్ అవుట్ చేయడం మాత్రమే సాధ్యమవుతుంది). ఈ సెట్టింగ్‌ను 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, పాస్‌వర్డ్ ఉన్న వినియోగదారులు స్క్రీన్‌ను లాక్ చేయగలరు.</translation>
 <translation id="2731627323327011390">ARC యాప్‌లకు <ph name="PRODUCT_OS_NAME" /> స‌ర్టిఫికెట్‌ల వినియోగాన్ని నిలిపివేయండి</translation>
 <translation id="2742843273354638707">కొత్త ట్యాబ్ పేజీ మరియు <ph name="PRODUCT_OS_NAME" /> యాప్ లాంచర్‌లో Chrome వెబ్ స్టోర్ యాప్‌ను మరియు ఫుటర్ లింక్‌ను దాచిపెడుతుంది.
 
@@ -914,19 +926,19 @@
 <translation id="2799297758492717491">URL నమూనాల వైట్‌లిస్ట్‌లో మీడియా స్వీయ ప్లేని అనుమతించండి</translation>
 <translation id="2801230735743888564">పరికరం ఆఫ్‌లైన్‌లో ఉన్నప్పుడు డైనోసార్ ఈస్టర్ ఎగ్ గేమ్ ఆడటానికి వినియోగదారులను అనుమతిస్తుంది.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, పరికరం ఆఫ్‌లైన్‌లో ఉన్నప్పుడు వినియోగదారులు డైనోసార్ ఈస్టర్ ఎగ్ గేమ్ ఆడలేరు. ఈ సెట్టింగ్‌ను ఒప్పున‌కు సెట్ చేస్తే, వినియోగదారులు డైనోసార్ గేమ్‌ను ఆడటానికి అనుమతించబడతారు. ఈ విధానాన్ని సెట్ చేయకుంటే, వినియోగదారులు డైనోసార్ ఈస్టర్ ఎగ్ గేమ్‌ను నమోదు చేయబడిన Chrome OSలో ఆడటానికి అనుమతించబడరు. కానీ ఇతర పరిస్థితుల్లో దీన్ని ఆడటానికి అనుమతించబడతారు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, పరికరం ఆఫ్‌లైన్‌లో ఉన్నప్పుడు వినియోగదారులు డైనోసార్ ఈస్టర్ ఎగ్ గేమ్ ఆడలేరు. ఈ సెట్టింగ్‌ను 'ఒప్పు'గా సెట్ చేస్తే, వినియోగదారులు డైనోసార్ గేమ్‌ను ఆడటానికి అనుమతించబడతారు. ఈ విధానాన్ని సెట్ చేయకుంటే, వినియోగదారులు డైనోసార్ ఈస్టర్ ఎగ్ గేమ్‌ను నమోదు చేయబడిన Chrome OSలో ఆడటానికి అనుమతించబడరు, కానీ ఇతర పరిస్థితులలో దీనిని ఆడటానికి అనుమతించబడతారు.</translation>
 <translation id="2802085784857530815">ఎంటర్‌ప్రైజ్-యేతర ప్రింటర్‌లను యాక్సెస్ చేయడానికి వినియోగదారులను అనుమతించాలో లేదో నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది
 
       విధానాన్ని ఒప్పు అని సెట్ చేసినట్లయితే లేదా అస్సలు సెట్ చేయనట్లయితే, వినియోగదారులు తమ స్వంత స్థానిక ప్రింటర్‌లను జోడించగలరు, కాన్ఫిగర్ చేయగలరు మరియు వాటిని ఉపయోగించి ముద్రించగలరు.
 
-      విధానాన్ని తప్పు అని సెట్ చేసినట్లయితే, వినియోగదారులు తమ స్వంత స్థానిక ప్రింటర్‌లను జోడించలేరు మరియు కాన్ఫిగర్ చేయలేరు. వారు మునుపు కాన్ఫిగర్ చేయబడిన స్థానిక ప్రింటర్‌లు వేటినైనా ఉపయోగించి కూడా ముద్రించలేరు.
+      విధానాన్ని తప్పు అని సెట్ చేసినట్లయితే, వినియోగదారులు తమ స్వంత స్థానిక ప్రింటర్‌లను జోడించలేరు, కాన్ఫిగర్ చేయలేరు. మునుపు కాన్ఫిగర్ చేయబడిన స్థానిక ప్రింటర్‌లు వేటినైనా ఉపయోగించి కూడా వారు ముద్రించలేరు.
       </translation>
 <translation id="2805707493867224476">పాప్-అప్‌లను చూపించడానికి అన్ని సైట్‌లను అనుమతించు</translation>
 <translation id="2808013382476173118">రిమోట్ క్లయింట్‌లు ఈ మెషీన్‌కు కనెక్షన్‌ను ఏర్పాటు చేయడానికి ప్రయత్నిస్తున్నప్పుడు STUN సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది.
 
-          ఈ సెట్టింగ్ ప్రారంభించబడితే, అప్పుడు ఈ మెషీన్‌లు ఫైర్‌వాల్‌ ద్వారా వేరు చేయబడినప్పటికీ రిమోట్ క్లయింట్‌లు వాటిని గుర్తించగలుగుతాయి మరియు వాటికి కనెక్ట్ అవుతాయి.
+          ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, అప్పుడు ఈ మెషీన్‌లు ఫైర్‌వాల్‌ ద్వారా వేరు చేయబడినప్పటికీ రిమోట్ క్లయింట్‌లు వాటిని గుర్తించగలుగుతాయి, వాటికి కనెక్ట్ అవుతాయి.
 
-          ఈ సెట్టింగ్ నిలిపివేయబడితే మరియు అవుట్‌గోయింగ్ UDP కనెక్షన్‌లు ఫైర్‌వాల్ ద్వారా ఫిల్టర్ చేయబడితే, అప్పుడు ఈ మెషీన్ స్థానిక నెట్‌వర్క్‌లోని క్లయింట్ మెషీన్‌ల నుండి మాత్రమే కనెక్షన్‌లను అనుమతిస్తుంది.
+          ఈ సెట్టింగ్‌ను నిలిపివేసి, అవుట్‌గోయింగ్ UDP కనెక్షన్‌లు ఫైర్‌వాల్ ద్వారా ఫిల్టర్ చేయబడితే, అప్పుడు ఈ మెషీన్ స్థానిక నెట్‌వర్క్‌లోని క్లయింట్ మెషీన్‌ల నుండి మాత్రమే కనెక్షన్‌లను అనుమతిస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, సెట్టింగ్ ప్రారంభించబడుతుంది.</translation>
 <translation id="2813281962735757923"><ph name="PRODUCT_OS_NAME" /> పరికరం అప్‌డేట్‌లను ఆటోమేటిక్‌గా తనిఖీ చేయకుండా నిరోధించే సమయ వ్యవధులను ఈ విధానం నియంత్రిస్తుంది.
@@ -938,21 +950,21 @@
 <translation id="2824715612115726353">అజ్ఞాత మోడ్‌ని ప్రారంభించు</translation>
 <translation id="2836621397261130126"><ph name="KERBEROS" /> టిక్కెట్‌లను కేటాయించాలో లేదో నిర్ణయించడం కోసం KDC విధానం ప్రకారం ఆమోదం పొందడం అవసరమో కాదో నియంత్రిస్తుంది.
 
-          ఈ విధానం ఒప్పు అని సెట్ చేస్తే, KDC విధానం ప్రకారం ఆమోదాన్ని HTTP ప్రమాణీకరణ గౌరవిస్తుంది, అంటే KDC సేవా టిక్కెట్‌లో <ph name="OK_AS_DELEGATE" /> అని సెట్ చేస్తే మాత్రమే Chrome ఆధారాలను కేటాయిస్తుంది. మరింత సమాచారం కోసం, దయచేసి https://tools.ietf.org/html/rfc5896.htmlను చూడండి. సేవ తప్పక 'AuthNegotiateDelegateWhitelist' విధానానికి కూడా సరిపోలాలి.
+          ఈ విధానాన్ని ఒప్పు అని సెట్ చేస్తే, KDC విధానం ప్రకారం ఆమోదాన్ని HTTP ప్రామాణీకరణ గౌరవిస్తుంది, అంటే KDC, <ph name="OK_AS_DELEGATE" />ను సేవా టిక్కెట్‌లో సెట్ చేస్తే మాత్రమే Chrome ఆధారాలను కేటాయిస్తుంది. మరింత సమాచారం కోసం, దయచేసి https://tools.ietf.org/html/rfc5896.htmlను చూడండి. సేవ 'AuthNegotiateDelegateWhitelist' విధానానికి కూడా తప్పక సరిపోలాలి.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా తప్పు అని సెట్ చేస్తే, మద్దతు ఉన్న ప్లాట్‌ఫామ్‌లలో KDC విధానం విస్మరించబడుతుంది, కేవలం 'AuthNegotiateDelegateWhitelist' విధానం మాత్రమే గౌరవించబడుతుంది.
 
           Windowsలో ఎల్లప్పుడూ KDC విధానం గౌరవించబడుతుంది.</translation>
-<translation id="283695852388224413">విధానం సెట్ చేయబడితే, కాన్ఫిగర్ చేయబడిన PIN యొక్క గ‌రిష్ఠ‌ అంకెల పరిమితి అమలు చేయబడుతుంది. విలువ 0 లేదా తక్కువ ఉంటే గ‌రిష్ఠ‌ అంకెల పరిమితి ఉండదు; ఆ సందర్భంలో వినియోగదారు ఎంత పొడవాటి PINను అయినా సెట్ చేసుకోవచ్చు. ఈ సెట్టింగ్ <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> కంటే తక్కువ ఉండి, 0 కంటే పెద్దది అయితే, గ‌రిష్ఠ‌ అంకెల పరిమితి క‌నిష్ఠ‌ అంకెల పరిమితికి సమానంగా ఉంటుంది.
+<translation id="283695852388224413">విధానాన్ని సెట్ చేస్తే, కాన్ఫిగర్ చేయబడిన PIN యొక్క గరిష్ట అంకెల పరిమితి అమలు చేయబడుతుంది. విలువ 0 లేదా తక్కువ ఉంటే గరిష్ట అంకెల పరిమితి ఉండదు; ఆ సందర్భంలో వినియోగదారు ఎంత పొడవాటి PIN అయినా సెట్ చేసుకోవచ్చు. ఈ సెట్టింగ్ <ph name="PIN_UNLOCK_MINIMUM_LENGTH_POLICY_NAME" /> కంటే తక్కువ ఉండి, 0 కంటే పెద్దది అయితే, గరిష్ట అంకెల పరిమితి కనిష్ట అంకెల పరిమితికి సమానంగా ఉంటుంది.
           
-విధానం సెట్ చేయకపోతే, గ‌రిష్ఠ‌ అంకెల పరిమితి అమలు చేయబడదు.</translation>
+విధానం సెట్ చేయకపోతే, గరిష్ట అంకెల పరిమితి అమలు చేయబడదు.</translation>
 <translation id="2838830882081735096">డేటా బదిలీ మరియు ARCని అనుమతించకండి</translation>
 <translation id="2839294585867804686">నెట్‌వర్క్ ఫైల్ షేరింగ్‌ సెట్టింగ్‌లు</translation>
 <translation id="2840269525054388612">వినియోగదారు ఉపయోగించగల ప్రింటర్‌లను పేర్కొంటుంది.
 
       <ph name="DEVICE_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_WHITELIST" />ను ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది
 
-      ఈ విధానాన్ని ఉపయోగించినట్లయితే, ఈ విధానంలో ఉన్న విలువలకు సరిపోలిన idలను కలిగిన ప్రింటర్‌లు మాత్రమే వినియోగ‌దారుకు అందుబాటులో ఉంటాయి. idలు తప్పనిసరిగా <ph name="DEVICE_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
+      ఈ విధానాన్ని ఉపయోగించినట్లయితే, ఈ విధానంలో ఉన్న విలువలకు సరిపోలిన idలను కలిగిన ప్రింటర్‌లు మాత్రమే వినియోగదారుకు అందుబాటులో ఉంటాయి. idలు తప్పనిసరిగా <ph name="DEVICE_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
       </translation>
 <translation id="2842152347010310843">స్వీయ ప్లే ఎల్లప్పుడూ ఆన్ చేసి ఉండే URL ఆకృతుల వైట్‌లిస్ట్‌ను నియంత్రిస్తుంది.
 
@@ -993,7 +1005,7 @@
 <translation id="2890645751406497668">పేర్కొనబడిన విక్రేత మరియు ఉత్పత్తి IDలతో USB పరికరాలకు కనెక్ట్ చేయడానికి ఈ సైట్‌లకు అనుమతిని ఆటోమేటిక్‌గా మంజూరు చేయండి.</translation>
 <translation id="2892414556511568464">ముద్రణ డూప్లెక్స్ మోడ్‌ను నియంత్రిస్తుంది. సెట్ చేయని విధానం మరియు ఖాళీ సెట్‌లు పరిమితి లేనివిగా పరిగణించబడతాయి.</translation>
 <translation id="2893546967669465276">నిర్వహణ సర్వర్‌కు సిస్టమ్ లాగ్‌లను పంపుతుంది</translation>
-<translation id="2899002520262095963">Android యాప్‌లు ఈ విధానం ద్వారా సెట్ చేయబడిన నెట్‌వర్క్ కాన్ఫిగరేషన్‌లు మరియు CA ప్రమాణపత్రాలను ఉపయోగించవచ్చు, కానీ కొన్ని కాన్ఫిగరేషన్ ఎంపికలకు యాక్సెస్ కలిగి ఉండవు.</translation>
+<translation id="2899002520262095963">ఈ విధానం ద్వారా సెట్ చేసిన నెట్‌వర్క్ కాన్ఫిగరేషన్‌లు మరియు CA సర్టిఫికెట్‌లను Android యాప్‌లు ఉపయోగించవచ్చు, కానీ కొన్ని కాన్ఫిగరేషన్ ఎంపికలను యాక్సెస్ చేయలేవు.</translation>
 <translation id="290002216614278247">క్లయింట్ సమయం లేదా రోజులోని వినియోగ కోటా ఆధారంగా వినియోగదారు సెషన్‌ని లాక్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
           |time_window_limit| వినియోగదారు సెషన్ లాక్ చేయాల్సిన రోజువారీ విండోని పేర్కొంటుంది. మేము వారంలో ప్రతిరోజుకి ఒక నిబంధనకు మాత్రమే మద్దతు ఇస్తాము, కాబట్టి |entries| శ్రేణి పరిమాణంలో 0-7 మధ్య ఉండవచ్చు. |starts_at| మరియు |ends_at| విండో పరిమితిలో ప్రారంభం మరియు ముగింపుగా ఉన్నాయి, |ends_at| అనేది |starts_at| కంటే చిన్నదిగా ఉన్నట్లైతే |time_limit_window| తర్వాతి రోజు ముగుస్తుందని అర్థం. |last_updated_millis| అనేది ఈ నమోదుని చివరిసారిగా అప్‌డేట్ చేసిన UTC సమయ ముద్ర, సమయ ముద్ర పూర్ణాంకంగా సరిపోదు కాబట్టి ఇది స్ట్రింగ్‌గా పంపబడుతుంది.
@@ -1016,10 +1028,21 @@
       ఈ విధానం సెట్ చేయకపోతే, <ph name="PRINTERS_ALLOW_ALL" /> పరిగణించబడుతుంది.
       </translation>
 <translation id="2908277604670530363">ప్రాక్సీ సర్వర్‌కు సమకాలిక కనెక్షన్‌ల గరిష్ట సంఖ్య</translation>
-<translation id="2952347049958405264">పరిమితులు:</translation>
-<translation id="2956777931324644324">ఈ విధానం <ph name="PRODUCT_NAME" /> వెర్షన్ 36 నుండి నిలిపివేయబడింది.
+<translation id="2948463916588961959">అక్షరదోష తనిఖీ భాషలను నిర్బంధంగా ప్రారంభిస్తుంది. ఆ జాబితాలో ఉన్న గుర్తించని భాషలు విస్మరించబడతాయి.
 
-      TLS డొమైన్-బౌండ్ సర్టిఫికెట్‌ల ఎక్స్‌టెన్షన్ ప్రారంభించబడాలో లేదో పేర్కొంటుంది.
+      మీరు ఈ విధానాన్ని ప్రారంభిస్తే, వినియోగదారు అక్షరదోష తనిఖీని ప్రారంభించిన భాషలతో పాటు పేర్కొనబడిన భాషల కోసం కూడా అక్షరదోష తనిఖీ ప్రారంభించబడుతుంది.
+
+      ఒకవేళ మీరు ఈ విధానాన్ని సెట్ చేయకపోతే లేదా దీనిని నిలిపివేస్తే, వినియోగదారు అక్షరదోష తనిఖీ ప్రాధాన్యతలలో మార్పు ఉండదు.
+
+      SpellcheckEnabled విధానాన్ని నిలిపివేస్తే, ఈ విధానం ప్రభావం చూపదు.
+
+      ఒక భాష ఈ విధానం మరియు SpellcheckLanguageBlacklist విధానం రెండింటిలోనూ ఉంటే, ఈ విధానానికి ప్రాధాన్యత ఇవ్వబడుతుంది మరియు అక్షరదోష తనిఖీ ప్రారంభించబడుతుంది.
+
+      ప్రస్తుతానికి మద్దతు ఉన్న భాషలు : af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
+<translation id="2952347049958405264">పరిమితులు:</translation>
+<translation id="2956777931324644324">ఈ విధానం <ph name="PRODUCT_NAME" /> వెర్షన్ 36 నుండి విరమించబడింది.
+
+      TLS డొమైన్-బౌండ్ సర్టిఫికెట్‌ల ఎక్స్‌టెన్షన్‌ను ప్రారంభించాలో లేదో పేర్కొంటుంది.
 
       పరీక్షించడం కోసం TLS డొమైన్-బౌండ్ సర్టిఫికెట్‌ల ఎక్స్‌టెన్షన్‌ను ప్రారంభించడానికి ఈ సెట్టింగ్ ఉపయోగించబడుతుంది. ఈ ప్రయోగాత్మక సెట్టింగ్ భవిష్యత్తులో తీసివేయబడుతుంది.</translation>
 <translation id="2957506574938329824">వెబ్ బ్లూటూత్ API ద్వారా బ్లూటూత్ పరికరాలకు యాక్సెస్‌ను అభ్యర్థించడానికి సైట్ దేనినీ అనుమతించవద్దు</translation>
@@ -1028,27 +1051,36 @@
 <translation id="2959898425599642200">ప్రాక్సీ బైపాస్ నియమాలు</translation>
 <translation id="2960128438010718932">కొత్త అప్‌డేట్‌ను వర్తింపజేయడానికి స్టేజింగ్ షెడ్యూల్</translation>
 <translation id="2960691910306063964">రిమోట్ యాక్సెస్ హోస్ట్‌ల కోసం PIN రహిత ప్రామాణీకరణను ప్రారంభిస్తుంది లేదా నిలిపివేస్తుంది</translation>
-<translation id="2976002782221275500">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ కాంతి త‌గ్గుతుందో పేర్కొంటుంది.
+<translation id="2972261849442778817">తరలించాలనుకుంటున్నారా లేదా తరలింపుని రద్దు చేసి, ARCని నిరాకరించాలనుకుంటున్నారా అని వినియోగదారుని అడగండి.</translation>
+<translation id="2976002782221275500">బ్యాటరీ పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ మసకబారుతుందో పేర్కొంటుంది.
 
-          ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను కాంతి త‌గ్గించ‌డానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
+          ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను మసకబార్చడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
-          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు యాక్టివ్‌గా లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను మసకగా చేయదు.
+          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను మసకబార్చదు.
 
           ఈ విధానాన్ని సెట్ చేయనప్పుడు, డిఫాల్ట్ సమయం ఉపయోగించబడుతుంది.
 
-          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు, స్క్రీన్ ఆఫ్ ఆలస్యం (సెట్ చేస్తే) మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువగా లేదా సమానంగా ఉండేలా అమర్చబడతాయి.</translation>
-<translation id="2977997796833930843">ఈ విధానం విస్మరించబడిందని మరియు భవిష్యత్తులో తీసివేయబడుతుందని గుర్తుంచుకోండి.
+          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు స్క్రీన్ ఆఫ్ ఆలస్యం (సెట్ చేస్తే) మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువగా లేదా సమానంగా ఉండేలా అమర్చబడతాయి.</translation>
+<translation id="2977997796833930843">ఈ విధానం విస్మరించబడిందని, భవిష్యత్తులో తీసివేయబడుతుందని గుర్తుంచుకోండి.
 
-ఈ విధానం మరింత-నిర్దిష్ట <ph name="IDLE_ACTION_AC_POLICY_NAME" /> మరియు <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> విధానాల కోసం ఫాల్‌బ్యాక్ విలువను అందిస్తుంది. ఈ విధానాన్ని సెట్ చేస్తే, సంబంధిత మరింత-నిర్దిష్ట విధానం సెట్ చేయబడకపోతే దీని విలువ ఉపయోగించబడుతుంది.
+ఈ విధానం మరింత-నిర్దిష్టమైన <ph name="IDLE_ACTION_AC_POLICY_NAME" /> మరియు <ph name="IDLE_ACTION_BATTERY_POLICY_NAME" /> విధానాల కోసం ఫాల్‌బ్యాక్ విలువను అందిస్తుంది. ఈ విధానాన్ని సెట్ చేస్తే, సంబంధిత మరింత-నిర్దిష్ట విధానం సెట్ చేయబడకపోతే దీని విలువ ఉపయోగించబడుతుంది.
 
-ఈ విధానాన్ని సెట్ చేయనప్పుడు, మరింత-నిర్దిష్ట విధానాల యొక్క ప్రవర్తన ప్రభావితం కాదు.</translation>
+ఈ విధానాన్ని సెట్ చేయనప్పుడు, మరింత-నిర్దిష్ట విధానాల ప్రవర్తన ప్రభావితం కాదు.</translation>
 <translation id="2987155890997901449">ARCని ప్రారంభించండి</translation>
 <translation id="2987227569419001736">వెబ్ బ్లూటూత్ API వినియోగాన్ని నియంత్రించండి</translation>
 <translation id="3016255526521614822"><ph name="PRODUCT_OS_NAME" /> లాక్ స్క్రీన్‌పై అనుమతించిన వైట్‌లిస్ట్ విషయ సేకరణ యాప్‌లు</translation>
 <translation id="3021562480854470924">మైలురాళ్లు సంఖ్య ఉపసంహరణ అనుమతించబడింది</translation>
 <translation id="3023572080620427845">ప్రత్యామ్నాయ బ్రౌజర్‌లో లోడ్ చేయడానికి URLలను కలిగి ఉండే XML ఫైల్ URL.</translation>
 <translation id="3030000825273123558">గణాంకాల నివేదనను ప్రారంభించు</translation>
-<translation id="3034580675120919256">JavaScriptను అమలు చేయడానికి వెబ్‌సైట్‌లను అనుమతించవచ్చో లేదో అనే దాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. JavaScriptను అమలు చేయడం అన్ని వెబ్‌సైట్‌లకు అనుమతించవచ్చు లేదా అన్ని వెబ్‌సైట్‌లకు తిరస్కరించవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెడితే, 'AllowJavaScript' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
+<translation id="3033660238345063904">ప్రాక్సీ సర్వర్ యొక్క URLని మీరు ఇక్కడ పేర్కొనవచ్చు.
+
+          మీరు 'ప్రాక్సీ సర్వర్ సెట్టింగ్‌లను ఎలా పేర్కొనాలో ఎంచుకోండి' ఎంపికలో మాన్యువల్ ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకున్నప్పుడు మరియు <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని పేర్కొననప్పుడు మాత్రమే ఈ విధానం ప్రభావవంతమవుతుంది.
+
+          మీరు ప్రాక్సీ విధానాలను సెట్ చేయడానికి మరేదైనా ఇతర మోడ్‌ను ఎంచుకొని ఉంటే, మీరు ఈ విధానాన్ని సెట్ చేయకుండా అలాగే వదిలిపెట్టాలి.
+
+          మరిన్ని ఎంపికలు మరియు వివరణాత్మక ఉదాహరణల కోసం, ఈ లింక్‌ని సందర్శించండి:
+          <ph name="PROXY_HELP_URL" />.</translation>
+<translation id="3034580675120919256">JavaScriptను అమలు చేయడానికి వెబ్‌సైట్‌లను అనుమతించవచ్చో లేదో అనే దానిని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. JavaScriptను అమలు చేయడం అన్ని వెబ్‌సైట్‌లకు అనుమతించవచ్చు లేదా అన్ని వెబ్‌సైట్‌లకు తిరస్కరించవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెడితే, 'AllowJavaScript' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలుగుతారు.</translation>
 <translation id="3038323923255997294"><ph name="PRODUCT_NAME" /> మూసివేయబడినప్పుడు నేపథ్య అనువర్తనాలను అమలు చేయడాన్ని కొనసాగిస్తుంది</translation>
 <translation id="3046192273793919231">ఆన్‌లైన్ స్థితిని పర్యవేక్షించడానికి నెట్‌వర్క్ ప్యాకెట్‌లను నిర్వహణ సర్వర్‌కు పంపుతుంది</translation>
 <translation id="3047732214002457234">Chrome క్లీనప్, Googleకు ఏవిధంగా డేటాను నివేదించాలనేది నియంత్రిస్తుంది</translation>
@@ -1063,22 +1095,22 @@
       ఒకవేళ ఏ ఒక్క అంశం కూడా ${url}ని కలిగి లేకుంటే, URL ఆదేశ- పంక్తి వరుస చివరన జత చేయబడుతుంది.
 
       ఆవరణ వేరియబుల్‌లు విస్తరించబడ్డాయి. Windowsలో, %ABC% అనేది ABC ఆవరణ వేరియబుల్‌తో భర్తీ చేయబడుతుంది. అయితే Mac OS Xలో మరియు Linuxలలో, ${ABC} అనేది ABC ఆవరణ వేరియబుల్‌తో భర్తీ చేయబడుతుంది.</translation>
-<translation id="3048744057455266684">ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఓమ్నిపెట్టె నుండి సూచించబడిన శోధన URL యొక్క ప్రశ్న స్ట్రింగ్ లేదా భాగం ఐడెంటిఫైయర్‌లో ఈ పరామితి ఉంటే, సూచనలో ముడి శోధన URLకు బదులుగా శోధన పదాలు మరియు శోధన ప్రదాత చూపబడతాయి.
+<translation id="3048744057455266684">ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఓమ్నిబాక్స్‌ నుండి సూచించబడిన శోధన URL యొక్క ప్రశ్న స్ట్రింగ్ లేదా భాగం ఐడెంటిఫైయర్‌లో ఈ పారామీటర్ ఉంటే, సూచనలో ముడి శోధన URLకు బదులుగా శోధన పదాలు మరియు శోధన ప్రదాత చూపబడతాయి.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకుంటే, శోధన పద భర్తీ అమలు చేయబడదు.
 
-          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం ప్రభావం చూపుతుంది.</translation>
-<translation id="306887062252197004">ఈ విధానం WebDriver ఫీచర్ యొక్క చర్యకు అంతరాయం కలిగించే విధానాలను అధిగ‌మించ‌డానికి దాని వినియోగదారులను అనుమతిస్తుంది.
+          'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం ప్రభావం చూపుతుంది.</translation>
+<translation id="306887062252197004">ఈ విధానం WebDriver ఫీచర్ యొక్క చర్యకు అంతరాయం కలిగించే విధానాలను భర్తీ చేయడానికి దాని వినియోగదారులను అనుమతిస్తుంది.
 
       ప్రస్తుతం ఈ విధానం SitePerProcess మరియు IsolateOrigins విధానాలను నిలిపివేస్తుంది.
 
-      విధానాన్ని ప్రారంభిస్తే, WebDriver ప్రతికూల విధానాలను అధిగ‌మించ‌గ‌లుగుతుంది.
-      విధానం నిలిపివేయబడితే లేదా కాన్ఫిగర్ చేయబడకపోతే ప్రతికూల విధానాలను అధిగ‌మించ‌డానికి WebDriver అనుమతించబడదు.</translation>
-<translation id="3069958900488014740"><ph name="PRODUCT_NAME" />లో WPAD (వెబ్ ప్రాక్సీ స్వీయ శోధన) అనుకూలీకరణను ఆఫ్ చేయడానికి అనుమతిస్తుంది.
+      విధానాన్ని ప్రారంభిస్తే, WebDriver ప్రతికూల విధానాలను భర్తీ చేయగలుగుతుంది.
+      విధానాన్ని నిలిపివేస్తే లేదా కాన్ఫిగర్ చేయకపోతే ప్రతికూల విధానాలను భర్తీ చేయడానికి WebDriver అనుమతించబడదు.</translation>
+<translation id="3069958900488014740"><ph name="PRODUCT_NAME" />లో WPAD (వెబ్ ప్రాక్సీ స్వీయ శోధన) ఆప్టిమైజేషన్‌ను ఆఫ్ చేయడానికి అనుమతిస్తుంది.
 
-      ఈ విధానం తప్పుకి సెట్ చేయబడితే అనుకూలీకరణ నిలిపివేయబడుతుంది, దీని వలన DNS ఆధారిత WPAD సర్వర్‌ల కోసం <ph name="PRODUCT_NAME" /> ఎక్కువ వ్యవధి పాటు వేచి ఉండాల్సి ఉంటుంది.  ఈ విధానం సెట్ చేయబడకపోతే లేదా ప్రారంభించబడితే, WPAD అనుకూలీకరణ ప్రారంభించబడుతుంది.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే ఆప్టిమైజేషన్ నిలిపివేయబడుతుంది, దీని వలన DNS ఆధారిత WPAD సర్వర్‌ల కోసం <ph name="PRODUCT_NAME" /> ఎక్కువ వ్యవధి పాటు వేచి ఉండాల్సి ఉంటుంది. ఈ విధానాన్ని సెట్ చేయకపోతే లేదా ప్రారంభిస్తే, WPAD ఆప్టిమైజేషన్ ప్రారంభించబడుతుంది.
 
-      ఈ విధానం సెట్ చేయబడిందా లేదా లేదంటే సెట్ చేయబడిన పక్షంలో ఎలా సెట్ చేయబడింది అనే వాటితో సంబంధం లేకుండా, వినియోగదారులు WPAD అనుకూలీకరణ సెట్టింగ్‌ను మార్చలేరు.</translation>
+      ఈ విధానం సెట్ చేయబడిందా లేదా లేదంటే సెట్ చేయబడిన పక్షంలో ఎలా సెట్ చేయబడింది అనే వాటితో సంబంధం లేకుండా, వినియోగదారులు WPAD ఆప్టిమైజేషన్ సెట్టింగ్‌ను మార్చలేరు.</translation>
 <translation id="3072045631333522102">రిటైల్ మోడ్‌లో సైన్-ఇన్ స్క్రీన్‌లో ఉపయోగించాల్సిన స్క్రీన్ సేవర్</translation>
 <translation id="3072847235228302527">పరికరం-స్థానిక ఖాతా కోసం సేవా నిబంధనలను సెట్ చేయడం</translation>
 <translation id="3077183141551274418">ట్యాబ్‌ లైఫ్‌సైకిల్‌లను ప్రారంభించండి లేదా నిలిపివేయండి</translation>
@@ -1091,11 +1123,11 @@
 <translation id="3096595567015595053">ప్రారంభించబడిన ప్లగ్‌ఇన్‌ల జాబితా</translation>
 <translation id="3101501961102569744">ప్రాక్సీ సర్వర్ సెట్టింగ్‌లను ఎలా పేర్కొనాలో ఎంచుకోండి</translation>
 <translation id="3101709781009526431">తేదీ మరియు సమయం</translation>
-<translation id="3117676313396757089">హెచ్చరిక: <ph name="PRODUCT_NAME" /> వెర్షన్‌ 57 (సుమారు మార్చి 2017లో) తర్వాత DHE దాని నుండి పూర్తిగా తీసివేయబడుతుంది మరియు ఈ విధానం ఆపై పని చేయదు.
+<translation id="3117676313396757089">హెచ్చరిక: <ph name="PRODUCT_NAME" /> వెర్షన్ 57 (సుమారు మార్చి 2017లో) తర్వాత DHE దాని నుండి పూర్తిగా తీసివేయబడుతుంది మరియు ఈ విధానం ఆపై పని చేయదు.
 
-      విధానాన్ని సెట్ చేయకపోయినా లేదా తప్పుకు సెట్ చేసినా, TLSలోని DHE సైఫర్ సూట్‌లు ప్రారంభించబడవు. లేదంటే, DHE సైఫర్ సూట్‌లను ప్రారంభించడానికి మరియు పాతబడిన సర్వర్‌తో అనుకూలతను అలాగే కొనసాగించడానికి దీన్ని ఒప్పుకు సెట్ చేయవచ్చు. ఇది కేవలం తాత్కాలికంగా ఉపయోగించుకోదగినది మరియు సర్వర్‌ను మళ్లీ కాన్ఫిగర్ చేయాలి.
+      విధానాన్ని సెట్ చేయకపోయినా లేదా 'తప్పు'గా సెట్ చేసినా, TLSలోని DHE సైఫర్ సూట్‌లు ప్రారంభించబడవు. లేదంటే, DHE సైఫర్ సూట్‌లను ప్రారంభించడానికి మరియు పాతబడిన సర్వర్‌తో అనుకూలతను అలాగే కొనసాగించడానికి దీనిని 'ఒప్పు'గా సెట్ చేయవచ్చు. ఇది కేవలం తాత్కాలిక పరిష్కారం మాత్రమే, సర్వర్‌ను మళ్లీ కాన్ఫిగర్ చేయాల్సి ఉంటుంది.
 
-      ECDHE సైఫర్ సూట్‌లకు తరలించడానికి సర్వర్‌లు ప్రోత్సహించబడతాయి. ఇవి అందుబాటులో లేకపోతే, RSA కీ మార్పిడిని ఉపయోగించే సైఫర్ సూట్ ప్రారంభించాలని నిర్ధారించుకోండి.</translation>
+      సర్వర్‌లను ECDHE సైఫర్ సూట్‌లకు తరలించమని మేము ప్రోత్సహిస్తాము. ఇవి అందుబాటులో లేకపోతే, RSA కీ మార్పిడిని ఉపయోగించే సైఫర్ సూట్ ప్రారంభించాలని నిర్ధారించుకోండి.</translation>
 <translation id="3117706142826400449">ఒకవేళ నిలిపివేస్తే, అవాంఛితమైన సాఫ్ట్‌వేర్ మరియు క్లీన్అప్‌లు నిర్వహించడం కోసం సిస్టమ్‌ను స్కాన్ చేయనివ్వకుండా Chrome క్లీన్అప్‌ను నిరోధిస్తుంది. Chrome క్లీన్అప్‌ని chrome://settings/cleanup నుండి మాన్యువల్‌గా ట్రిగ్గర్ చేయడం నిలిపివేయబడుతుంది.
 
       ఒకవేళ ప్రారంభించినా లేదా సెట్ చేయకుండా వదిలివేసినా, Chrome క్లీన్అప్ కాలానుగుణంగా అవాంఛిత సాఫ్ట్‌వేర్‌ల కోసం సిస్టమ్‌ను స్కాన్ చేస్తుంది, ఏవైనా గుర్తిస్తే, వాటిని ఉంచాలో లేదా తీసివేయాలో వినియోగదారును అడుగుతుంది. chrome://settings నుండి Chrome క్లీన్అప్‌ని మాన్యువల్‌గా ప్రారంభించడం ట్రిగ్గర్ చేయబడింది.
@@ -1104,7 +1136,7 @@
 <translation id="3152425128389603870">ఏకీకృత డెస్క్‌టాప్ అందుబాటులో ఉండేలా మరియు డిఫాల్ట్‌గా ఆన్ అయ్యేలా చేయండి</translation>
 <translation id="3159375329008977062">వినియోగదారు UI ద్వారా Crostini కంటెయినర్‌లను ఎగుమతి / దిగుమతి చేయడానికి అనుమతి పొందారు</translation>
 <translation id="3165808775394012744">వాటిని సులభంగా తీసివేయడం కోసం ఈ విధానాలు ఇక్కడ చేర్చబడ్డాయి.</translation>
-<translation id="316778957754360075">ఈ సెట్టింగ్ <ph name="PRODUCT_NAME" /> వెర్షన్ 29 నుండి విరమించబడింది. సంస్థ-హోస్ట్ చేసిన ఎక్స్‌టెన్షన్/యాప్ సేకరణలను సెటప్ చేయడానికి ExtensionInstallSourcesలో CRX ప్యాకేజీలను హోస్ట్ చేస్తున్న సైట్‌ను చేర్చి, వెబ్ పేజీలో ప్యాకేజీలకు ప్రత్యక్ష డౌన్‌లోడ్ లింక్‌లను ఉంచడం అనేది సిఫార్సు చేయబడిన మార్గం. ExtensionInstallForcelist policyని ఉపయోగించి, ఆ వెబ్ పేజీ కోసం ఒక లాంచర్ సృష్టించబడుతుంది.</translation>
+<translation id="316778957754360075">ఈ సెట్టింగ్ <ph name="PRODUCT_NAME" /> వెర్షన్ 29 నుండి విరమించబడింది. సంస్థ-హోస్ట్ చేసిన ఎక్స్‌టెన్షన్/యాప్ సేకరణలను సెటప్ చేయడానికి ExtensionInstallSourcesలో CRX ప్యాకేజీలను హోస్ట్ చేస్తున్న సైట్‌ను చేర్చి, వెబ్ పేజీలో ప్యాకేజీలకు ప్రత్యక్ష డౌన్‌లోడ్ లింక్‌లను ఉంచడం అనేది సిఫార్సు చేయబడిన మార్గం. ExtensionInstallForcelist విధానాన్ని ఉపయోగించి ఆ వెబ్ పేజీ కోసం ఒక లాంచర్ సృష్టించబడుతుంది.</translation>
 <translation id="3171369832001535378">పరికర నెట్‌వర్క్ హోస్ట్‌పేరు టెంప్లేట్</translation>
 <translation id="3172512016079904926">స్థానిక సందేశ హోస్ట్‌ల యొక్క వినియోగదారు స్థాయి ఇన్‌స్టాలేషన్‌ను ప్రారంభిస్తుంది.
 
@@ -1114,23 +1146,23 @@
 
 ఈ సెట్టింగ్‌ను సెట్ చేయకుండా వదిలేస్తే <ph name="PRODUCT_NAME" /> వినియోగదారు స్థాయి స్థానిక సందేశ హోస్ట్‌ల వినియోగాన్ని అనుమతిస్తుంది.</translation>
 <translation id="3185009703220253572"><ph name="SINCE_VERSION" />వ వెర్షన్ నుండి</translation>
-<translation id="3187220842205194486">Android యాప్‌లు కార్పొరేట్ కీలకు యాక్సెస్ పొందలేవు. ఈ విధానం వాటిపై ఎలాంటి ప్రభావాన్ని చూపదు.</translation>
+<translation id="3187220842205194486">Android యాప్‌లు కార్పొరేట్ కీలను యాక్సెస్ చేయలేవు. ఈ విధానం వాటిపై ఎలాంటి ప్రభావాన్ని చూపదు.</translation>
 <translation id="3205825995289802549">మొదటి అమలులో మొదటి బ్రౌజర్ విండోను గ‌రిష్ఠ స్థాయిలో విస్త‌రిస్తుంది</translation>
 <translation id="3211426942294667684">బ్రౌజర్ సైన్ ఇన్ సెట్టింగ్‌లు</translation>
-<translation id="3214164532079860003">ఈ విధానం ప్రారంభించబడినట్లయితే, ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి హోమ్ పేజీని త‌ప్ప‌నిస‌రిగా దిగుమ‌తి చేసుకునేలా చేస్తుంది. ఆపివేయబడితే, హోమ్ పేజీ దిగుమతి చేయబడదు. సెట్ చేయకపోతే, దిగుమతి కోసం వినియోగదారు అభ్యర్థనను పొందవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి కావచ్చు.</translation>
+<translation id="3214164532079860003">హోమ్ పేజీని ప్రారంభించినట్లయితే, ఈ విధానం ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి దిగుమతి చేస్తుంది. ఆపివేస్తే, హోమ్ పేజీ దిగుమతి చేయబడదు. సెట్ చేయకపోతే, దిగుమతి కోసం వినియోగదారును అభ్యర్థించవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి కావచ్చు.</translation>
 <translation id="3219421230122020860">అజ్ఞాత మోడ్ అందుబాటులో ఉంచడం</translation>
-<translation id="3220624000494482595">కియోస్క్ యాప్, ఒకవేల Android యాప్ అయితే, ఈ విధానాన్ని <ph name="TRUE" />కు సెట్ చేసినప్పటికీ, దానికి <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌పై నియంత్రణ ఉండదు.</translation>
+<translation id="3220624000494482595">కియోస్క్ యాప్ కనుక Android యాప్ అయితే, ఈ విధానాన్ని <ph name="TRUE" />కు సెట్ చేసినప్పటికీ, అది <ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించదు.</translation>
 <translation id="3236046242843493070">దీని నుండి ఎక్స్‌టెన్ష‌న్‌ను, యాప్‌ను మరియు వినియోగదారు స్క్రిప్ట్ ఇన్‌స్టాల్‌లను అనుమతించడానికి URL నమూనాలు</translation>
 <translation id="3240609035816615922">ప్రింటర్ కాన్ఫిగరేషన్ యాక్సెస్ విధానం.</translation>
-<translation id="3243309373265599239">AC శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ కాంతి త‌గ్గుతుందో పేర్కొంటుంది.
+<translation id="3243309373265599239">AC పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ మసకబారుతుందో పేర్కొంటుంది.
 
-          ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను కాంతి త‌గ్గించ‌డానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
+          ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను మసకబరచడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
-          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నా <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను మసకగా చేయదు.
+          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నా <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను మసకబరచదు.
 
           ఈ విధానాన్ని సెట్ చేయనప్పుడు, డిఫాల్ట్ సమయం ఉపయోగించబడుతుంది.
 
-          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. స్క్రీన్ ఆఫ్ ఆలస్యం (సెట్ చేస్తే) మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువకు లేదా సమానంగా ఉండేలా విలువలు అమర్చబడతాయి.</translation>
+          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు స్క్రీన్ ఆఫ్ ఆలస్యం (సెట్ చేస్తే) మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువగా లేదా సమానంగా ఉండేలా అమర్చబడతాయి.</translation>
 <translation id="3251500716404598358">బ్రౌజర్‌లను మార్చుకునేందుకు విధానాలను కాన్ఫిగర్ చేయడం.
 
       కాన్ఫిగర్ చేసిన వెబ్‌సైట్‌లు <ph name="PRODUCT_NAME" />కి బదులుగా ఆటోమేటిక్‌గా ఇంకో బ్రౌజర్‌లో తెరవబడతాయి.</translation>
@@ -1143,21 +1175,21 @@
       ఈ సెట్టింగ్ ప్రారంభించబడినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు వారి Google ఖాతాతో ప్రామాణీకరణ ద్వారా క్లౌడ్ ప్రింట్ ప్రాక్సీని ప్రారంభించవచ్చు.
 
       ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు ప్రాక్సీని ప్రారంభించలేరు మరియు మెషీన్ దాని ప్రింటర్‌లను <ph name="CLOUD_PRINT_NAME" />తో షేర్ చేయడానికి అనుమతించబడదు.</translation>
-<translation id="3307746730474515290">ఏయే ఆప్/ఎక్సటెన్షన్ రకాలను ఇన్‌స్టాల్ చేసేందుకు అనుమతించాలో నియంత్రిస్తుంది మరియు అమలు సమయ ఆక్సెస్‌ని పరిమితం చేస్తుంది.
+<translation id="3307746730474515290">ఏయే యాప్/ఎక్స్‌టెన్షన్ రకాలను ఇన్‌స్టాల్ చేసేందుకు అనుమతించాలో నియంత్రిస్తుంది మరియు అమలు సమయ యాక్సెస్‌ను పరిమితం చేస్తుంది.
 
-          <ph name="PRODUCT_NAME" />లో ఇన్‌స్టాల్ చేయగల ఎక్సటెన్షన్/యాప్‌ల రకాలను మరియు అవి పరస్పర చర్య చేయగల హోస్ట్‌లను ఈ సెట్టింగ్ అనుమతిస్తుంది. విలువ అనేది పదబంధాల జాబితా, ప్రతి దానిలో కింది వాటిలో ఒకటి ఉండాలి: "ఎక్సటెన్షన్", "థీమ్", "వినియోగదారు_స్క్రిప్ట్", "హోస్ట్ చేసిన_ఆప్", "ప్యాకేజీలోని_లెగసీ_ఆప్", "ప్లాట్‌ఫారమ్_ఆప్". ఈ రకాలకు సంబంధించిన మరింత సమాచారం కావాలంటే, <ph name="PRODUCT_NAME" /> ఎక్సటెన్షన్‌ల పత్రాలను చూడండి.
+          <ph name="PRODUCT_NAME" />లో ఇన్‌స్టాల్ చేయగల ఎక్స్‌టెన్షన్/యాప్‌ల రకాలను, అవి పరస్పర చర్య చేయగల హోస్ట్‌లను ఈ సెట్టింగ్ అనుమతిస్తుంది. విలువ అనేది పదబంధాల జాబితా, ప్రతి దానిలో కింది వాటిలో ఒకటి ఉండాలి: "extension", "theme", "user_script", "hosted_app", "legacy_packaged_app", "platform_app". ఈ రకాలకు సంబంధించిన మరింత సమాచారం కోసం, <ph name="PRODUCT_NAME" /> ఎక్స్‌టెన్షన్‌ల పత్రాలను చూడండి.
 
-          గమనించండి, ఈ విధానం కారణంగా ఆప్‌లు మరియు ఎక్సటెన్షన్‌లు ExtensionInstallForcelist ద్వారా నిర్బంధంగా ఇన్‌స్టాల్ చేయబడేలా కూడా ప్రభావం పడుతుంది.
+          ఈ విధానం కారణంగా యాప్‌లు మరియు ఎక్స్‌టెన్షన్‌లు ExtensionInstallForcelist ద్వారా నిర్బంధంగా ఇన్‌స్టాల్ చేయబడేలా కూడా ప్రభావం పడుతుందని గమనించండి.
 
-          ఈ సెట్టింగ్‌ని కాన్ఫిగర్ చేస్తే, జాబితాలో లేని రకాన్ని కలిగిన ఎక్సటెన్షన్‌లు/ఆప్‌లు ఇన్‌స్టాల్ చేయబడవు.
+          ఈ సెట్టింగ్‌ను కాన్ఫిగర్ చేస్తే, జాబితాలో లేని రకాన్ని కలిగిన ఎక్స్‌టెన్షన్‌లు/యాప్‌లు ఇన్‌స్టాల్ చేయబడవు.
 
-          ఈ సెట్టింగ్‌లు కాన్ఫిగర్ చేయకుండా వదిలివేస్తే, ఆమోదించగల ఎక్సటెన్షన్/ఆప్ రకాలపై పరిమితులు విధించబడవు.</translation>
-<translation id="3322771899429619102">కీ ఉత్పాదనను ఉపయోగించడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఒకవేళ url నమూనా 'KeygenBlockedForUrls'లో ఉంటే, అది ఈ మినహాయింపులను అధిగ‌మిస్తుంది.
+          ఈ సెట్టింగ్‌లను కాన్ఫిగర్ చేయకుండా వదిలివేస్తే, ఆమోదించగల ఎక్స్‌టెన్షన్/యాప్ రకాలపై పరిమితులు విధించబడవు.</translation>
+<translation id="3322771899429619102">కీ ఉత్పాదనను ఉపయోగించడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఒకవేళ url నమూనా 'KeygenBlockedForUrls'లో ఉంటే, అది ఈ మినహాయింపులను భర్తీ చేస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అన్ని సైట్‌ల కోసం 'DefaultKeygenSetting' విధానం సెట్ చేసి ఉంటే దాని నుండి లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.</translation>
 <translation id="332771718998993005"><ph name="PRODUCT_NAME" /> గమ్యస్థానంగా ప్రకటించిన పేరును గుర్తిస్తుంది.
 
-          ఈ విధానాన్ని ఖాళీగా ఉండని స్ట్రింగ్‌కు సెట్ చేస్తే, ఆ స్ట్రింగ్‌ <ph name="PRODUCT_NAME" /> గమ్యస్థానానికి పేరుగా ఉపయోగించబడుతుంది. లేదంటే, గమ్యస్థానం పేరు పరికరం పేరు అవుతుంది. ఈ విధానాన్ని సెట్ చేయకుంటే, గమ్యస్థానం పేరు పరికరం పేరు అవుతుంది. పరికర యజమాని (లేదా పరికరాన్ని నిర్వహిస్తున్న డొమైన్ యొక్క వినియోగదారు) దీనిని మార్చడానికి అనుమతించబడతారు. పేరు 24 అక్షరాలకు పరిమితం.</translation>
+          ఈ విధానాన్ని ఖాళీగా ఉండని వాక్యానికి సెట్ చేస్తే, ఆ వాక్యం <ph name="PRODUCT_NAME" /> గమ్యస్థానానికి పేరుగా ఉపయోగించబడుతుంది. లేదంటే, గమ్యస్థానం పేరు పరికరం పేరు అవుతుంది. ఈ విధానాన్ని సెట్ చేయకుంటే, గమ్యస్థానం పేరు పరికరం పేరు అవుతుంది, పరికర యజమాని (లేదా పరికరాన్ని నిర్వహిస్తున్న డొమైన్ వినియోగదారు) దీనిని మార్చడానికి అనుమతించబడతారు. పేరు 24 అక్షరాలకు పరిమితం.</translation>
 <translation id="3335468714959531450">కుక్కీలను సెట్ చేయడానికి అనుమతించబడిన సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే 'DefaultCookiesSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదంటే వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
@@ -1187,13 +1219,13 @@
         ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, 'DefaultWebUsbGuardSetting' విధానాన్ని సెట్ చేసి ఉంటే దాని నుండి లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి అన్ని సైట్‌ల కోసం గ్లోబల్ డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.
 
        ఈ విధానంలో ఉన్న URL ఆకృతులకు మరియు WebUsbBlockedForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి మధ్య వైరుధ్యం ఏర్పడకూడదు. ఏదైనా వైరుధ్యం ఏర్పడితే, WebUsbBlockedForUrls మరియు WebUsbAskForUrls కాకుండా ఈ విధానానికి ప్రాధాన్యత ఇవ్వబడుతుంది.</translation>
-<translation id="3414260318408232239">ఈ విధానాన్ని సెట్ చేయకపోతే, <ph name="PRODUCT_NAME" /> డిఫాల్ట్ కనీస వెర్షన్ అయిన TLS 1.0ను ఉపయోగిస్తుంది.
+<translation id="3414260318408232239">ఈ విధానాన్ని సెట్ చేయకుంటే, <ph name="PRODUCT_NAME" /> డిఫాల్ట్ కనీస వెర్షన్ అయిన TLS 1.0ను ఉపయోగిస్తుంది.
 
       లేదంటే, అది కింది విలువలలో ఒక దానికి సెట్ చేయబడవచ్చు: "tls1", "tls1.1" లేదా "tls1.2". సెట్ చేసినప్పుడు, <ph name="PRODUCT_NAME" /> పేర్కొన్న వెర్షన్ కంటే తక్కువ SSL/TLS వెర్షన్‌లను ఉపయోగించదు. గుర్తించని విలువ విస్మరించబడుతుంది.</translation>
 <translation id="34160070798637152">పరికర వ్యాప్తంగా నెట్‌వర్క్ కాన్ఫిగరేషన్‌ను నియంత్రిస్తుంది.</translation>
-<translation id="3417418267404583991">ఈ విధానం ఒప్పున‌కు సెట్ చేయబడి ఉంటే లేదా కాన్ఫిగర్ చేయబడకుండా ఉంటే, <ph name="PRODUCT_OS_NAME" /> అతిథి లాగిన్‌లను అనుమతిస్తుంది. అతిథి లాగిన్‌లు అనామక వినియోగదారు సెషన్‌లు. పాస్‌వర్డ్ అవసరం లేదు.
+<translation id="3417418267404583991">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, <ph name="PRODUCT_OS_NAME" /> అతిథి లాగిన్‌లను అనుమతిస్తుంది. అతిథి లాగిన్‌లు అనేవి అనామక వినియోగదారు సెషన్‌లు, వాటికి పాస్‌వర్డ్ అవసరం లేదు.
 
-      ఈ విధానం తప్పున‌కు సెట్ చేయబడి ఉంటే, <ph name="PRODUCT_OS_NAME" /> ప్రారంభించడానికి అతిథి సెషన్‌లను అనుమతించదు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> అతిథి సెషన్‌లను ప్రారంభించడం అనుమతించదు.</translation>
 <translation id="3418871497193485241">YouTubeలో క‌నిష్ఠ‌ పరిమిత మోడ్‌ను అమలు చేస్తుంది. వినియోగదారులను
       తక్కువ పరిమిత మోడ్ ఎంచుకోకుండా నిరోధిస్తుంది.
 
@@ -1218,24 +1250,24 @@
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, కొత్త ట్యాబ్ పేజీ అందించబడదు.
 
-          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడితే మాత్రమే ఈ విధానం గౌరవించబడుతుంది.</translation>
+          'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభిస్తే మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="3461279434465463233">విద్యుత్తు పరిస్థితిని నివేదించు</translation>
-<translation id="346731943813722404">సెషన్‌లో మొదటిసారి వినియోగదారు కార్యకలాపాన్ని గుర్తించిన తర్వాత మాత్రమే పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితి ప్రారంభమవ్వాలా లేదా అన్నది పేర్కొంటుంది.
+<translation id="346731943813722404">సెషన్‌లో వినియోగదారు మొదటి కార్యకలాపాన్ని గుర్తించిన తర్వాత మాత్రమే పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితి ప్రారంభమవ్వాలా లేదా అన్నది పేర్కొంటుంది.
 
-          ఈ విధానం ఒప్పున‌కు సెట్ చేసి ఉంటే, సెషన్‌లో మొదటిసారి వినియోగదారు కార్యకలాపాన్ని గుర్తించే వరకు పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితి అమలు ప్రారంభించబడదు.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, సెషన్‌లో వినియోగదారు మొదటి కార్యకలాపం గుర్తించబడే వరకు పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితుల అమలు ప్రారంభించబడదు.
 
-          ఈ విధానం తప్పున‌కు సెట్ చేసి ఉంటే లేదా ఏదీ సెట్ చేయకుండా వదలివేస్తే, సెషన్ ప్రారంభమైన వెంటనే పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితి అమలు కావడం ప్రారంభమవుతుంది.</translation>
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా ఏదీ సెట్ చేయకపోతే, సెషన్ ప్రారంభమైన వెంటనే పవర్ నిర్వహణ ఆలస్యాలు మరియు సెషన్ వ్యవధి పరిమితులు అమలు కావడం ప్రారంభమవుతుంది.</translation>
 <translation id="3478024346823118645">సైన్-అవుట్‌లో వినియోగదారు డేటాను తుడిచివేయి</translation>
 <translation id="348495353354674884">వర్చువల్ కీబోర్డ్‌ను ప్రారంభించు</translation>
 <translation id="3487623755010328395">
         ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> స్వయంగా నమోదు చేయడానికి మరియు అన్ని ప్రొఫైల్‌లతో అనుబంధించబడిన క్లౌడ్ విధానాన్ని వర్తింపజేయడానికి ప్రయత్నిస్తుంది.
 
-         ఈ విధానం యొక్క విలువ Google నిర్వాహక కన్సోల్ నుండి పునరుద్ధరించబడే నమోదు టొకెన్.</translation>
-<translation id="3489247539215560634">ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారుల పాస్‌వర్డ్‌లను గుర్తు పెట్టుకొని వారు సైట్‌కు తదుపరిసారి లాగిన్ చేసినప్పుడు ఆటోమేటిక్‌గా అందిస్తుంది.
+         ఈ విధానం విలువ ఒక నమోదు టోకెన్, దానిని Google నిర్వాహక కన్సోల్ నుండి పునరుద్ధరించవచ్చు.</translation>
+<translation id="3489247539215560634">ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారుల పాస్‌వర్డ్‌లను గుర్తు పెట్టుకొని వారు సైట్‌కు తర్వాతిసారి లాగిన్ చేసినప్పుడు ఆటోమేటిక్‌గా అందిస్తుంది.
 
 ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు కొత్త పాస్‌వర్డ్‌లను సేవ్ చేయలేరు కానీ మునుపు సేవ్ చేసిన పాస్‌వర్డ్‌లను ఇప్పటికీ ఉపయోగించవచ్చు.
 
-ఈ విధానాన్ని ప్రారంభిస్తే లేదా నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు. ఈ విధానాన్ని సెట్ చేయకపోతే, పాస్‌వర్డ్‌ను సేవ్ చేయడం అనుమతించబడుతుంది (కానీ వినియోగదారు దీన్ని ఆఫ్ చేయవచ్చు).</translation>
+ఈ విధానాన్ని ప్రారంభిస్తే లేదా నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు. ఈ విధానాన్ని సెట్ చేయకపోతే, పాస్‌వర్డ్‌ను సేవ్ చేయడం అనుమతించబడుతుంది (కానీ వినియోగదారు దీనిని ఆఫ్ చేయవచ్చు).</translation>
 <translation id="3496296378755072552">పాస్‌వర్డ్ నిర్వహణ</translation>
 <translation id="3500732098526756068">ఇది మీకు పాస్‌వర్డ్ రక్షణ హెచ్చరికను నియత్రించే వీలు కల్పిస్తుంది. వినియోగదారులు తమ రక్షిత పాస్‌వర్డ్‌ని అనుమానాస్పదమయ్యే అవకాశమున్న సైట్‌లలో తిరిగి ఉపయోగించినప్పుడు పాస్‌వర్డ్ రక్షణ వారిని హెచ్చరిస్తుంది.
 
@@ -1250,15 +1282,15 @@
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, చిత్ర శోధన ఉపయోగించబడదు.
 
-          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
+          'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="350797926066071931">అనువాదాన్ని ప్రారంభించు</translation>
-<translation id="3512226956150568738">ARCని అమలు చేయడం కోసం ext4కు తరలించాల్సి రావడం కంటే ముందే క్ల‌యింట్‌ పరికర మోడల్‌లో ARCకి మద్దతు ఉన్నట్లయితే మరియ ArcEnabled విధానం ఒప్పు అని సెట్ చేయబడి ఉంటే, ఈ ఎంపిక AskUser (విలువ 3) లాగా ప్రవర్తిస్తుంది. మిగిలిన అన్ని సందర్భాలలో (పరికర మోడల్‌లో ముందుగా ARCకి మద్దతు లేకుంటే లేదా ArcEnabled విధానం తప్పు లాగా సెట్ చేయబడి ఉంటే), ఈ విలువ DisallowArc (విలువ 0)కు సమానం.</translation>
+<translation id="3512226956150568738">ARCని అమలు చేయడం కోసం ext4కు తరలించాల్సి రావడం కంటే ముందే క్లయిట్ పరికర మోడల్‌లో ARCకి మద్దతు ఉన్నట్లయితే మరియ ArcEnabled విధానం ఒప్పు అని సెట్ చేయబడి ఉంటే, ఈ ఎంపిక AskUser (విలువ 3) లాగా ప్రవర్తిస్తుంది. మిగిలిన అన్ని సందర్భాలలో (పరికర మోడల్‌లో ముందుగా ARCకి మద్దతు లేకుంటే లేదా ArcEnabled విధానం తప్పు లాగా సెట్ చేస్తే), ఈ విలువ DisallowArc (విలువ 0)కు సమానం.</translation>
 <translation id="3513655665999652754">Quirks Server మానిటర్ క్రమాంకనాన్ని సర్దుబాటు చేయడానికి ICC డిస్‌ప్లే ప్రొఫైల్‌ల వంటి హార్డ్‌వేర్-నిర్దిష్ట కాన్ఫిగరేషన్ ఫైల్‌లను అందిస్తుంది.
 
-ఈ విధానాన్ని తప్పుకి సెట్ చేసినప్పుడు, పరికరం కాన్ఫిగరేషన్ ఫైల్‌లను డౌన్‌లోడ్ చేయడం కోసం Quirks Serverను సంప్రదించడానికి ప్రయత్నించదు.
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినప్పుడు, పరికరం కాన్ఫిగరేషన్ ఫైల్‌లను డౌన్‌లోడ్ చేయడం కోసం Quirks Serverను సంప్రదించడానికి ప్రయత్నించదు.
 
 ఈ విధానం ఒప్పు అయితే లేదా కాన్ఫిగర్ చేయకపోతే, అప్పుడు <ph name="PRODUCT_OS_NAME" /> ఆటోమేటిక్‌గా
-Quirks Serverను సంప్రదించి, అందుబాటులో ఉన్న పక్షంలో కాన్ఫిగరేషన్ ఫైల్‌లను డౌన్‌లోడ్ చేసి, ఆపై వాటిని పరికరంలో నిల్వ చేస్తుంది. అటువంటి ఫైల్‌లు జోడించబడిన మానిటర్‌ల డిస్‌ప్లే నాణ్యతను మెరుగుపరచడం మొదలైన వాటి కోసం ఉపయోగించబడవచ్చు.</translation>
+Quirks Serverను సంప్రదించి, అందుబాటులో ఉన్న పక్షంలో కాన్ఫిగరేషన్ ఫైల్‌లను డౌన్‌లోడ్ చేసి, ఆపై వాటిని పరికరంలో నిల్వ చేస్తుంది. జోడించబడిన మానిటర్‌ల డిస్‌ప్లే నాణ్యతను మెరుగుపరచడం మొదలైన వాటి కోసం అటువంటి ఫైల్‌లు ఉపయోగించబడవచ్చు.</translation>
 <translation id="3524204464536655762">WebUSB API ద్వారా USB పరికరాలకు యాక్సెస్‌ను అభ్యర్థించడానికి ఏ సైట్‌నూ అనుమతించదు</translation>
 <translation id="3526752951628474302">మోనోక్రోమ్ ముద్రణ మాత్రమే</translation>
 <translation id="3528000905991875314">ప్రత్యామ్నాయ ఎర్రర్ పేజీలని ప్రారంభించు</translation>
@@ -1313,9 +1345,9 @@
 
           ఈ విధానాన్ని తప్పు అని సెట్ చేస్తే, సాధారణ స్థితికి తీసుకువచ్చే లాక్ అభ్యర్థనలు విస్మరించబడతాయి.</translation>
 <translation id="3750220015372671395">ఈ సైట్‌ల్లో కీ ఉత్పాదనను బ్లాక్ చేయండి</translation>
-<translation id="375266612405883748">ఈ మెషీన్‌లో రిమోట్ యాక్సెస్ హోస్ట్ ద్వారా ఉపయోగించబడే UDP పోర్ట్ పరిధిని పరిమితం చేస్తుంది.
+<translation id="375266612405883748">ఈ మెషీన్‌లో రిమోట్ యాక్సెస్ హోస్ట్ ఉపయోగించే UDP పోర్ట్ పరిధిని పరిమితం చేస్తుంది.
 
-ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా ఇది ఖాళీ స్ట్రింగ్‌కు సెట్ చేయబడితే, <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> విధానం నిలిపివేయబడిన సందర్భంలో మినహా ఇంకెప్పుడైనా అందుబాటులో ఉన్న ఏ పోర్ట్‌ను అయినా ఉపయోగించడానికి రిమోట్ యాక్సెస్ హోస్ట్ అనుమతించబడుతుంది, విధానం నిలిపివేయబడిన సందర్భంలో రిమోట్ యాక్సెస్ హోస్ట్ 12400-12409 పరిధిలోని UDP పోర్ట్‌లను ఉపయోగిస్తుంది.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా దీనిని ఖాళీ స్ట్రింగ్‌కు సెట్ చేస్తే, <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> విధానం నిలిపివేయబడిన సందర్భంలో మినహా ఇంకెప్పుడైనా అందుబాటులో ఉన్న ఏ పోర్ట్‌ను అయినా ఉపయోగించడానికి రిమోట్ యాక్సెస్ హోస్ట్ అనుమతించబడుతుంది, విధానాన్ని నిలిపివేసిన సందర్భంలో రిమోట్ యాక్సెస్ హోస్ట్ 12400-12409 పరిధిలోని UDP పోర్ట్‌లను ఉపయోగిస్తుంది.</translation>
 <translation id="3756011779061588474">డెవలపర్ మోడ్‌ను బ్లాక్ చేయండి</translation>
 <translation id="3758089716224084329"><ph name="PRODUCT_NAME" /> ద్వారా ఉపయోగించబడే ప్రాక్సీ సర్వర్‌ను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు ప్రాక్సీ సెట్టింగ్‌లను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
 
@@ -1330,72 +1362,72 @@
 
       ఈ విధానాలను సెట్ చేయకుండా వదిలేస్తే, వినియోగదారులు ప్రాక్సీ సెట్టింగ్‌లను వారి స్వంతంగా ఎంచుకోగలుగుతారు.</translation>
 <translation id="3758249152301468420">డెవలపర్ సాధ‌నాల‌ను నిలిపివేయి</translation>
-<translation id="3764248359515129699">జాబితాలోని లెగసీ సర్టిఫికెట్ అధికారాలకు సర్టిఫికెట్ పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
+<translation id="3764248359515129699">జాబితాలోని లెగసీ సర్టిఫికెట్ అధికారాల కోసం సర్టిఫికెట్ పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
 
-      పేర్కొన్న subjectPublicKeyInfo హాష్‌లు ఉన్న సర్టిఫికెట్‌లను కలిగిన సర్టిఫికెట్ చైన్‌ల కోసం సర్టిఫికెట్ పారదర్శకతను బహిర్గతం చేసే ఆవశ్యకాలను నిలిపివేయడాన్ని ఈ విధానం అనుమతిస్తుంది. ఎంటర్‌ప్రైజ్ హోస్ట్‌ల కోసం ఇది పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని అవిశ్వసనీయమైన సర్టిఫికెట్‌లను ఉపయోగించడానికి అనుమతిస్తుంది.
+      పేర్కొన్న subjectPublicKeyInfo హాష్‌లు ఉన్న సర్టిఫికెట్‌లను కలిగి ఉన్న సర్టిఫికెట్ చైన్‌ల కోసం సర్టిఫికెట్ పారదర్శకతను బహిర్గతం ఆవశ్యకాలను నిలిపివేయడాన్ని ఈ విధానం అనుమతిస్తుంది. ఎంటర్‌ప్రైజ్ హోస్ట్‌ల కోసం ఇది పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని, అవిశ్వసనీయమైన సర్టిఫికెట్‌లను ఉపయోగించడానికి అనుమతిస్తుంది.
 
-      ఈ విధానాన్ని సెట్ చేసినప్పుడు సర్టిఫికెట్ పారదర్శకత అమలును నిలిపివేయడానికి, హాష్ తప్పనిసరిగా లెగసీ సర్టిఫికెట్ అధికారం (CA) లాగా గుర్తించబడిన CA సర్టిఫికెట్‌లో కనిపిస్తున్న subjectPublicKeyInfoగా ఉండాలి. లెగసీ CA అనేది <ph name="PRODUCT_NAME" /> ద్వారా మద్దతు ఉన్న ఒకటి లేదా మరిన్ని ఆపరేటింగ్ సిస్టమ్‌ల ద్వారా పబ్లిక్‌గా విశ్వసించబడిన CA, కానీ Android ఓపెన్ సోర్స్ ప్రాజెక్ట్ లేదా <ph name="PRODUCT_OS_NAME" /> ద్వారా విశ్వసించినది కాదు.
+      ఈ విధానాన్ని సెట్ చేయనప్పుడు సర్టిఫికెట్ పారదర్శకత అమలును నిలిపివేయడానికి, హాష్ తప్పనిసరిగా లెగసీ సర్టిఫికెట్ అధికారం (CA) లాగా గుర్తించబడిన CA సర్టిఫికెట్‌లో కనిపిస్తున్న subjectPublicKeyInfoగా ఉండాలి. లెగసీ CA అనేది <ph name="PRODUCT_NAME" /> ద్వారా మద్దతు ఉన్న ఒకటి లేదా మరిన్ని ఆపరేటింగ్ సిస్టమ్‌ల ద్వారా పబ్లిక్‌గా విశ్వసించబడిన CA, కానీ Android ఓపెన్ సోర్స్ ప్రాజెక్ట్ లేదా <ph name="PRODUCT_OS_NAME" /> ద్వారా విశ్వసించినది కాదు.
 
-      subjectPublicKeyInfo హాష్ అనేది అల్గారిథమ్ పేరు, "/" అక్షరం మరియు పేర్కొన్న సర్టిఫికెట్ యొక్క DER-ఎన్‌కోడెడ్ subjectPublicKeyInfoకు వర్తింపజేయబడిన హాష్ అల్గారిథమ్ యొక్క Base64 ఎన్‌కోడింగ్‍‌తో పాటు పేర్కొనబడుతుంది. ఈ Base64 ఎన్‌కోడింగ్ అనేది SPKI వేలిముద్రలా, RFC 7469, విభాగం 2.4లో నిర్వచించిన విధంగా ఉండే ఫార్మాట్. గుర్తించబడని హాష్ అల్గారిథమ్‌లు విస్మరించబడతాయి. ఈ సమయంలో మద్దతు ఉన్న ఒకే ఒక అల్గారిథమ్ "sha256".
+      subjectPublicKeyInfo హాష్ అనేది అల్గారిథమ్ పేరు, "/" అక్షరం మరియు పేర్కొన్న సర్టిఫికెట్ యొక్క DER-ఎన్‌కోడెడ్ subjectPublicKeyInfoకు వర్తింపజేయబడిన హాష్ అల్గారిథమ్ యొక్క Base64 ఎన్‌కోడింగ్‍‌తో పాటు పేర్కొనబడుతుంది. ఈ Base64 ఎన్‌కోడింగ్ అనేది SPKI వేలిముద్రలా, RFC 7469, విభాగం 2.4లో నిర్వచించిన విధంగా ఉండే ఫార్మాట్. గుర్తించబడని హాష్ అల్గారిథమ్‌లు విస్మరించబడతాయి. ప్రస్తుతం మద్దతు ఉన్న ఒకే ఒక అల్గారిథమ్ "sha256".
 
-      ఈ విధానాన్ని సెట్ చేయకుంటే, సర్టిఫికెట్ పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా సర్టిఫికెట్, సర్టిఫికెట్ పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే, సర్టిఫికెట్ పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా సర్టిఫికెట్, సర్టిఫికెట్ పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
 <translation id="3765260570442823273">ఇన్‌యాక్టివ్‌ లాగ్-అవుట్ హెచ్చరిక సందేశం యొక్క వ్యవధి</translation>
 <translation id="377044054160169374">దుర్వినియోగ అనుభవ ప్రమేయ అమలు</translation>
 <translation id="3780152581321609624">Kerberos SPNలో ప్రామాణికం కాని పోర్ట్‌ని చేర్చు</translation>
-<translation id="3780319008680229708">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, Cast సాధనాల బార్ చిహ్నం ఎల్లప్పుడూ సాధనాల బార్‌లో లేదా నిండిపోయిన మెనూలో చూపబడుతుంది. వినియోగదారులు దీన్ని తీసివేయలేరు.
+<translation id="3780319008680229708">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, Cast సాధనాల బార్ చిహ్నం ఎప్పుడూ సాధనాల బార్‌లో లేదా నిండిపోయిన మెనూలో చూపబడుతుంది, వినియోగదారులు దీనిని తీసివేయలేరు.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే లేదా పూర్తిగా సెట్ చేయకపోతే, వినియోగదారులు దాని సందర్భ మెనూ ద్వారా చిహ్నాన్ని పిన్ చేయగలరు లేదా తీసివేయగలరు.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా పూర్తిగా సెట్ చేయకపోతే, వినియోగదారులు దాని సందర్భ మెనూ ద్వారా చిహ్నాన్ని పిన్ చేయగలరు లేదా తీసివేయగలరు.
 
-          "EnableMediaRouter" విధానాన్ని తప్పున‌కు సెట్ చేస్తే, ఈ విధానం యొక్క విలువ ఎలాంటి ప్రభావం చూపదు. సాధనాల బార్‌ చిహ్నం చూపబడదు.</translation>
+          "EnableMediaRouter" విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, ఈ విధానం విలువ ఎలాంటి ప్రభావం చూపదు, సాధనాల బార్ చిహ్నం చూపబడదు.</translation>
 <translation id="3788662722837364290">వినియోగదారు యాక్టివ్‌గా లేనప్పుడు ఏమి చేయాలో తెలిపే విద్యుత్ శక్తి నిర్వహణ సెట్టింగ్‌లు</translation>
 <translation id="3790085888761753785">ఈ సెట్టింగ్‌ని ప్రారంభించినట్లయితే, వినియోగదారులు Smart Lockతో తమ ఖాతాకు సైన్ ఇన్ చేయగలరు. కేవలం వినియోగదారు తమ స్క్రీన్‌ని అన్‌లాక్ చేయడానికి మాత్రమే అనుమతిచ్చే సాధారణ Smart Lock ప్రవర్తన కంటే ఇది మరింత నిరాటంకంగా ఉంటుంది.
 
       ఈ సెట్టింగ్‌ని నిలిపివేసినట్లయితే, వినియోగదారులు Smart Lock సైన్ ఇన్‌ని ఉపయోగించలేరు.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినట్లయితే, ఎంటర్‌ప్రైజ్ నిర్వహించే వినియోగదారులకు డిఫాల్ట్ అనుమతించబడదు మరియు నిర్వహించని వినియోగదారులకు అనుమతించబడుతుంది.</translation>
-<translation id="379602782757302612">వినియోగదారులు ఇన్‌స్టాల్ చేయకూడని ఎక్స్‌టెన్ష‌న్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇప్పటికే ఇన్‌స్టాల్ చేసిన ఎక్స్‌టెన్ష‌న్‌లను కనుక బ్లాక్‌లిస్ట్‌కు జోడించినట్లయితే అవి నిలిపివేయబడతాయి. వాటిని వినియోగదారు ప్రారంభించడం సాధ్యం కాదు. బ్లాక్‌లిస్ట్‌కు జోడించిన కారణంగా నిలిపివేయబడిన ఏదైనా ఎక్స్‌టెన్ష‌న్‌ను అందులో నుండి తీసివేస్తే, అది ఆటోమేటిక్‌గా తిరిగి ప్రారంభించబడుతుంది.
+<translation id="379602782757302612">వినియోగదారులు ఇన్‌స్టాల్ చేయకూడని ఎక్స్‌టెన్షన్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇప్పటికే ఇన్‌స్టాల్ చేసిన ఎక్స్‌టెన్షన్‌లను కనుక బ్లాక్‌లిస్ట్‌కు జోడించినట్లయితే అవి నిలిపివేయబడతాయి, వాటిని వినియోగదారు ప్రారంభించడం సాధ్యం కాదు. బ్లాక్‌లిస్ట్‌కు జోడించిన కారణంగా నిలిపివేయబడిన ఏదైనా ఎక్స్‌టెన్షన్‌ను అందులో నుండి తీసివేస్తే, అది ఆటోమేటిక్‌గా తిరిగి ప్రారంభించబడుతుంది.
 
-          బ్లాక్‌లిస్ట్ విలువ '*' లాగా ఉన్నట్లయితే, వైట్‌లిస్ట్‌లో ఉన్న ఎక్స్‌టెన్ష‌న్‌లు మినహా మిగిలివ‌న్నీ బ్లాక్‌లిస్ట్ చేయబడినట్లు అర్థం.
+          బ్లాక్‌లిస్ట్ విలువ '*' లాగా ఉన్నట్లయితే, వైట్‌లిస్ట్‌లో ఉన్న ఎక్స్‌టెన్షన్‌లు మినహా మిగిలినవన్నీ బ్లాక్‌లిస్ట్ చేయబడినట్లు అర్థం.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేసినట్లయితే, <ph name="PRODUCT_NAME" />లో వినియోగదారు ఏ ఎక్స్‌టెన్ష‌న్‌ను అయినా ఇన్‌స్టాల్ చేయగలరు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేసినట్లయితే, <ph name="PRODUCT_NAME" />లో వినియోగదారు ఏ ఎక్స్‌టెన్షన్‌ను అయినా ఇన్‌స్టాల్ చేయగలరు.</translation>
 <translation id="3800626789999016379">ఫైల్‌లను డౌన్‌లోడ్ చేయడం కోసం <ph name="PRODUCT_NAME" /> ఉపయోగించే డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు డౌన్‌లోడ్ స్థానం కోసం ప్రతిసారి ప్రాంప్ట్ చేయకుండా ఒకదాన్ని నిర్దేశించినా లేదా ప్రతిసారి ప్రాంప్ట్ చేయాలని ఫ్లాగ్‌ను ప్రారంభించినా దానితో సంబంధం లేకుండా అందించబడిన డైరెక్టరీని <ph name="PRODUCT_NAME" /> ఉపయోగిస్తుంది.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు నిర్దిష్ట డౌన్‌లోడ్ స్థానాన్ని పేర్కొన్నా, లేదా ప్రతిసారీ ప్రాంప్ట్ చేయాలని ఫ్లాగ్‌ను ప్రారంభించినా అందించబడిన డైరెక్టరీని <ph name="PRODUCT_NAME" /> ఉపయోగిస్తుంది.
 
-      ఉపయోగించబడే చరాంశాల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables చూడండి.
+      ఉపయోగించబడే వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables చూడండి.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే డిఫాల్ట్ డౌన్‌లోడ్ డైరెక్టరీ ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలరు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే డిఫాల్ట్ డౌన్‌లోడ్ డైరెక్టరీ ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="3805659594028420438">TLS డొమైన్-బౌండ్ స‌ర్టిఫికెట్‌ల‌ఎక్స్‌టెన్ష‌న్‌ (తొలగించబడింది) ప్రారంభించండి</translation>
 <translation id="3808945828600697669">ఆపివేయబడిన ప్లగ్‌ఇన్‌ల జాబితాని పేర్కొను</translation>
 <translation id="3811562426301733860">అన్ని సైట్‌లలో ప్రకటనలను అనుమతించండి</translation>
 <translation id="3816312845600780067">స్వీయ-లాగిన్ కోసం బెయిల్అవుట్ కీబోర్డ్ షార్ట్‌కట్‌ను ప్రారంభించండి</translation>
-<translation id="3820526221169548563">స్క్రీన్‌లో కీబోర్డ్ యాక్సెస్‌ ఫీచ‌ర్‌ను ప్రారంభించండి.
+<translation id="3820526221169548563">స్క్రీన్‌లో కీబోర్డ్ యాక్సెస్ ఫీచర్‌ను ప్రారంభించండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, స్క్రీన్‌లో కీబోర్డ్ ఎల్లప్పుడూ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, స్క్రీన్‌లో కీబోర్డ్ ఎప్పుడూ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, స్క్రీన్‌లో కీబోర్డ్ ఎల్లప్పుడూ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, స్క్రీన్‌లో కీబోర్డ్ ఎప్పుడూ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, స్క్రీన్‌లో కీబోర్డ్ ప్రారంభంలో నిలిపివేయబడుతుంది కానీ వినియోగదారు ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
 <translation id="382476126209906314">రిమోట్ యాక్సెస్ హోస్ట్‌ల కోసం TalkGadget ఆదిప్రత్యయాన్ని కాన్ఫిగర్ చేస్తుంది</translation>
 <translation id="3824972131618513497">పవర్ నిర్వహణ, రీబూట్ సంబంధిత సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
-<translation id="3831376478177535007">ఈ సెట్టింగ్ ప్రారంభిస్తే, <ph name="PRODUCT_NAME" /> Symantec Corporation యొక్క Legacy PKI ఆపరేషన్స్ ద్వారా జారీ చేయబడిన స‌ర్టిఫికెట్‌లను విశ్వసించడానికి అనుమతిస్తుంది. అయితే అవి విజయవంతంగా ధృవీకరించబడాలి. CA స‌ర్టిఫికెట్‌కు అనుబంధంగా ఉండాలి.
+<translation id="3831376478177535007">ఈ సెట్టింగ్‌ను ప్రారంభించినట్లయితే, <ph name="PRODUCT_NAME" /> Symantec Corporation యొక్క Legacy PKI ఆపరేషన్స్ ద్వారా జారీ చేయబడిన సర్టిఫికెట్‌లను విశ్వసించడానికి అనుమతిస్తుంది, అయితే అవి విజయవంతంగా ధృవీకరించబడాలి మరియు CA సర్టిఫికెట్‌కు అనుబంధంగా ఉండాలి.
 
-      ఈ విధానం, ఇప్పటికీ ఆపరేటింగ్ సిస్టమ్‌ Symantec యొక్క లెగసీ ఇన్‌ఫ్రాస్ట్రక్చర్ జారీ చేసిన స‌ర్టిఫికెట్‌లను గుర్తించడంపై ఆధారపడి ఉంటుందని గమనించండి. OS అప్‌డేట్ కారణంగా అటువంటి స‌ర్టిఫికెట్‌ల OS నిర్వహణ మారినట్లయితే, ఆపై ఈ విధానం ప్రభావం చూపదు. ఆ తర్వాత, లెగసీ Symantec స‌ర్టిఫికెట్‌ల నుండి మార్పిడి చేయడం కోసం ఎంటర్‌ప్రైజ్‌లకు మరింత సమయం ఇవ్వడం కోసం ఈ విధంగా ఒక తాత్కాలిక సేవ లాగా అందుబాటులో ఉంటుంది. 1 జనవరి 2019న లేదా కొంచెం అటుఇటుగా ఈ విధానం తీసివేయబడుతుంది.
+      ఆపరేటింగ్ సిస్టమ్‌ ఇప్పటికీ Symantec యొక్క లెగసీ ఇన్‌ఫ్రాస్ట్రక్చర్ జారీ చేసిన సర్టిఫికెట్‌లను గుర్తించడం పై ఈ విధానం ఆధారపడి ఉంటుందని గమనించండి. OS అప్‌డేట్ కారణంగా అటువంటి సర్టిఫికెట్‌ల OS నిర్వహణ మారినట్లయితే, ఆపై ఈ విధానం ప్రభావం చూపదు. ఆ తర్వాత, లెగసీ Symantec సర్టిఫికెట్‌ల నుండి మార్పిడి చేయడం కోసం ఎంటర్‌ప్రైజ్‌లకు మరింత సమయం ఇవ్వడం కోసం ఈ విధంగా ఒక తాత్కాలిక సేవ లాగా అందుబాటులో ఉంటుంది. 1 జనవరి 2019న లేదా కొంచెం అటుఇటుగా ఈ విధానం తీసివేయబడుతుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుంటే లేదా తప్పు లాగా సెట్ చేసినట్లయితే, పబ్లిక్‌గా ప్రకటించిన విస్మరణ షెడ్యూల్‌ను <ph name="PRODUCT_NAME" /> అనుసరిస్తుంది.
 
-      ఈ విస్మరణకు సంబంధించిన మరిన్ని వివరాల కోసం https://g.co/chrome/symantecpkicertsని చూడండి.</translation>
-<translation id="383466854578875212">బ్లాక్‌లిస్ట్‌కు లోబడి ఉండనవసరంలేని స్థానిక సందేశ పద్ధతి హోస్ట్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
+      ఈ విస్మరణకు సంబంధించిన మరిన్ని వివరాల కోసం https://g.co/chrome/symantecpkicerts చూడండి.</translation>
+<translation id="383466854578875212">బ్లాక్‌లిస్ట్‌కు లోబడి ఉండనవసరంలేని స్థానిక సందేశ హోస్ట్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-          * యొక్క బ్లాక్‌లిస్ట్‌ విలువ అన్ని స్థానిక సందేశ పద్ధతి హోస్ట్‌లు బ్లాక్‌లిస్ట్‌లో ఉంచబడతాయని మరియు వైట్‌లిస్ట్‌లో జాబితా చేసిన స్థానిక సందేశ పద్ధతి హోస్ట్‌లు మాత్రమే లోడ్ అవుతాయని సూచిస్తుంది.
+          బ్లాక్‌లిస్ట్‌ విలువ అనేది * ఉంటే, అన్ని స్థానిక సందేశ హోస్ట్‌లు బ్లాక్‌లిస్ట్‌లో ఉంచబడతాయని, వైట్‌లిస్ట్‌లో జాబితా చేసిన స్థానిక సందేశ హోస్ట్‌లు మాత్రమే లోడ్ అవుతాయని సూచిస్తుంది.
 
-          డిఫాల్ట్‌గా, అన్ని స్థానిక సందేశ పద్ధతి హోస్ట్‌లు వైట్‌లిస్ట్‌లోనే ఉంటాయి. కానీ విధానం కారణంగా అన్ని స్థానిక సందేశ పద్ధతి హోస్ట్‌లు బ్లాక్‌లిస్ట్‌లో ఉంచబడితే, ఆ విధానాన్ని అధిగ‌మించ‌డానికి వైట్‌లిస్ట్‌ను ఉపయోగించవచ్చు.</translation>
-<translation id="3837424079837455272">ఈ విధానం <ph name="PRODUCT_OS_NAME" />కు కొత్త వినియోగదారులను జోడించాలో లేదో నియంత్రిస్తుంది. ఇది Androidలో వినియోగదారులు అదనపు Google ఖాతాలకు సైన్ ఇన్ చేయకుండా నిరోధించదు. మీరు దీన్ని నిరోధించాలనుకుంటే, <ph name="ARC_POLICY_POLICY_NAME" />లో భాగంగా Android నిర్దిష్ట <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> విధానాన్ని కాన్ఫిగర్ చేయండి.</translation>
-<translation id="384743459174066962">పాప్అప్‌ల‌ను తెరవడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. సెట్ చేయకుండా వదిలి పెట్టిన‌ట్ల‌యితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది. గ్లోబల్ డిఫాల్ట్ విలువ సెట్ చేయబడి ఉంటే 'DefaultPopupsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
-<translation id="3851039766298741586">యాక్టివ్ కియోస్క్ సెషన్ గురించిన సమాచారాన్ని, అంటే అప్లికేషన్ ID 
-      మరియు వెర్షన్ వంటివాటిని నివేదిస్తుంది.
+          డిఫాల్ట్‌గా, అన్ని స్థానిక సందేశ హోస్ట్‌లు వైట్‌లిస్ట్‌లోనే ఉంటాయి. కానీ విధానం కారణంగా అన్ని స్థానిక సందేశ హోస్ట్‌లు బ్లాక్‌లిస్ట్‌లో ఉంచబడితే, ఆ విధానాన్ని అధిగ‌మించ‌డానికి వైట్‌లిస్ట్‌ను ఉపయోగించవచ్చు.</translation>
+<translation id="3835692988507803626">అక్షరదోష తనిఖీ భాషలను నిర్బంధంగా నిలిపివేయండి</translation>
+<translation id="3837424079837455272"><ph name="PRODUCT_OS_NAME" />కు కొత్త వినియోగదారులను జోడించాలో లేదో అన్నది ఈ విధానం నియంత్రిస్తుంది. Androidలో వినియోగదారులు అదనపు Google ఖాతాలకు సైన్ ఇన్ చేయకుండా ఇది నిరోధించదు. మీరు దీనిని నిరోధించాలనుకుంటే, <ph name="ARC_POLICY_POLICY_NAME" />లో భాగంగా Android నిర్దిష్ట <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> విధానాన్ని కాన్ఫిగర్ చేయండి.</translation>
+<translation id="384743459174066962">పాపప్‌లను తెరవడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. సెట్ చేయకుండా వదిలేస్తే, అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ, ఇది సెట్ చేయబడి ఉంటే 'DefaultPopupsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
+<translation id="3851039766298741586">యాప్ ID మరియు వెర్షన్ వంటి యాక్టివ్ కియోస్క్ సెషన్ గురించిన సమాచారాన్ని, నివేదిస్తుంది.
 
       విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, కియోస్క్ సెషన్ సమాచారం
       నివేదించబడదు. 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలేస్తే, కియోస్క్
@@ -1412,7 +1444,7 @@
 
       పేర్కొనబడకపోతే, వ్యత్యాసాల సీడ్ URL సవరించబడదు.</translation>
 <translation id="3863409707075047163">కనీస SSL వెర్షన్ ప్రారంభించబడుతుంది</translation>
-<translation id="3864020628639910082">శోధన సూచనలను అందించడానికి ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URL <ph name="SEARCH_TERM_MARKER" /> స్ట్రింగ్‌ను కలిగి ఉండాలి, ఇది ప్రశ్న సమయంలో వినియోగదారు అప్పటి వరకు నమోదు చేసిన వచనంతో అధిగ‌మించ‌బ‌డుతుంది.
+<translation id="3864020628639910082">శోధన సూచనలను అందించడానికి ఉపయోగించాల్సిన శోధన ఇంజిన్ URLను పేర్కొంటుంది. URLలో <ph name="SEARCH_TERM_MARKER" /> స్ట్రింగ్ ఉండాలి, ప్రశ్న సమయంలో వినియోగదారు అప్పటివరకు నమోదు చేసిన వచనాన్ని ఇది భర్తీ చేస్తుంది.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, సూచిత URL ఏదీ ఉపయోగించబడదు.
 
@@ -1423,9 +1455,9 @@
 <translation id="3866249974567520381">వివరణ</translation>
 <translation id="3868347814555911633">ఈ విధానం రిటైల్ మోడ్‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      రిటైల్ మోడ్‌లో డెమో వినియోగదారు కోసం, పరికరాల కోసం ఆటోమేటిక్‌గా ఇన్‌స్టాల్ చేయబడిన ఎక్స్‌టెన్ష‌న్‌లను జాబితా చేస్తుంది. ఈ ఎక్స్‌టెన్ష‌న్‌లు పరికరంలో సేవ్ అవుతాయి మరియు ఇన్‌స్టాలేషన్ తర్వాత, ఆఫ్‌లైన్‌లో ఉన్నప్పుడు ఇన్‌స్టాల్ చేయబడతాయి.
+      రిటైల్ మోడ్‌లో డెమో వినియోగదారు కోసం, పరికరాల కోసం ఆటోమేటిక్‌గా ఇన్‌స్టాల్ చేయాల్సిన ఎక్స్‌టెన్షన్‌లను జాబితా చేస్తుంది. ఈ ఎక్స్‌టెన్షన్‌లు పరికరంలో సేవ్ అవుతాయి, ఇన్‌స్టాలేషన్ తర్వాత, ఆఫ్‌లైన్‌లో ఉన్నప్పుడు ఇన్‌స్టాల్ చేయబడతాయి.
 
-      ప్రతి జాబితా నమోదు 'extension-id' ఫీల్డ్‌లో ఎక్స్‌టెన్ష‌న్‌ ID మరియు 'update-url' ఫీల్డ్‌లో దీని అప్‌డేట్ url ఉన్న నిఘంటువును కలిగి ఉండాలి.</translation>
+      ప్రతి జాబితా నమోదులో ఒక నిఘంటువు ఉండాలి, అందులోని 'extension-id' ఫీల్డ్‌లో ఎక్స్‌టెన్షన్ ID మరియు 'update-url' ఫీల్డ్‌లో దీని అప్‌డేట్ url ఉండాలి.</translation>
 <translation id="3874773863217952418">'వెతకడానికి నొక్కండి' ఫీచర్‌ను ప్రారంభించండి</translation>
 <translation id="3877517141460819966">ఏకీకృత రెండవ కారక ప్రమాణీకరణ మోడ్</translation>
 <translation id="3879208481373875102">నిర్బంధంగా ఇన్‌స్టాల్ చేసిన వెబ్ యాప్‌ల జాబితాను కాన్ఫిగర్ చేయండి</translation>
@@ -1433,9 +1465,9 @@
 
       <ph name="PRODUCT_NAME" />లో SPDY ప్రోటోకాల్ వినియోగాన్ని నిలిపివేస్తుంది.
 
-      ఈ విధానం ప్రారంభించబడితే, <ph name="PRODUCT_NAME" />లో SPDY ప్రోటోకాల్ అందుబాటులో ఉండదు.
+      ఈ విధానాన్ని ప్రారంభిస్తే, <ph name="PRODUCT_NAME" />లో SPDY ప్రోటోకాల్ అందుబాటులో ఉండదు.
 
-      ఈ విధానాన్ని నిలిపివేతకు సెట్ చేయడం వ‌ల్ల‌ SPDY వినియోగం అనుమతించబడుతుంది.
+      ఈ విధానాన్ని నిలిపివేతకు సెట్ చేయడం వలన SPDY వినియోగం అనుమతించబడుతుంది.
 
       ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే, SPDY అందుబాటులో ఉంటుంది.</translation>
 <translation id="3890999316834333174">త్వరిత అన్‌లాక్ విధానాలు</translation>
@@ -1446,7 +1478,7 @@
 
       మీరు ఈ విధానాన్ని సెట్ చేయకుంటే, <ph name="PRODUCT_NAME" /> దీని సాధారణ డిఫాల్ట్-డైరెక్టరీని (ప్లాట్‌ఫామ్‌కు సంబంధించి నిర్దిష్టమైనది) ఉపయోగిస్తుంది.
 
-      ఉపయోగించగల చరరాశుల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variablesని చూడండి.</translation>
+      ఉపయోగించగల వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables చూడండి.</translation>
 <translation id="3904459740090265495">ఈ విధానం బ్రౌజర్ సైన్-ఇన్ ప్రవర్తనను నియంత్రిస్తుంది. వినియోగదారు వారి ఖాతాతో <ph name="PRODUCT_NAME" />కి సైన్ ఇన్ చేయవచ్చో లేదో, Chrome సమకాలీకరణ లాంటి ఖాతా సంబంధిత సేవలను ఉపయోగించవచ్చో లేదో పేర్కొనడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది .
 
       ఒకవేళ విధానాన్ని "బ్రౌజర్ సైన్-ఇన్‌ని నిలిపివేయి"కి సెట్ చేస్తే, వినియోగదారు బ్రౌజర్‌కు సైన్ ఇన్ చేసి, ఖాతా సంబంధిత సేవలను ఉపయోగించలేరు. ఇలాంటి సందర్భంలో, Chrome సమకాలీకరణ లాంటి బ్రౌజర్ స్థాయి ఫీచర్‌లను ఉపయోగించలేరు, ఇవి అందుబాటులో ఉండవు. ఒకవేళ వినియోగదారు సైన్ ఇన్ చేసి ఉండి, విధానాన్ని "నిలిపివేయబడింది"కి సెట్ చేసి ఉంటే, వారు Chromeని ఉపయోగించిన తర్వాతిసారి సైన్ అవుట్ చేయబడతారు, కానీ వారి స్థానిక ప్రొఫైల్ డేటా, అంటే బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు మొదలైనవి భద్రపరచబడతాయి. ఇప్పటికీ Gmail లాంటి Google వెబ్ సేవలకు వినియోగదారు సైన్ ఇన్ చేయగలరు మరియు ఉపయోగించగలరు.
@@ -1456,7 +1488,7 @@
       ఒకవేళ విధానాన్ని "బ్రౌజర్ సైన్-ఇన్‌ని నిర్బంధించు"కి సెట్ చేస్తే, వినియోగదారుకు ఖాతా ఎంపిక డైలాగ్ చూపబడుతుంది, బ్రౌజర్‌ను ఉపయోగించేందుకు ఒక ఖాతాను ఎంచుకుని, ఆ ఖాతాలోకి సైన్ ఇన్ చేయాల్సి ఉంటుంది. దీని ప్రకారం నిర్వహిత ఖాతాల విషయంలో ఖాతాతో అనుబంధించిన విధానాలు వర్తిస్తాయి మరియు అమలు అవుతాయి. ఇది డిఫాల్ట్‌గా ఖాతాకు Chrome సమకాలీకరణను ఆన్ చేస్తుంది, కానీ డొమైన్ నిర్వాహకులు లేదా "SyncDisabled" విధానం ద్వారా నిలిపివేసి ఉంటే పని చేయదు. BrowserGuestModeEnabled డిఫాల్ట్ విలువ తప్పుకు సెట్ చేయబడుతుంది. ఈ విధానాన్ని ప్రారంభించిన తర్వాత ఇప్పటికే ఉన్న సంతకం చేయని ప్రొఫైల్‌లు లాక్ చేయబడతాయని, యాక్సెస్ చేయలేని విధంగా అవుతాయని గుర్తుంచుకోండి. మరింత సమాచారం కోసం, ఈ సహాయ కేంద్ర కథనాన్ని చూడండి: https://support.google.com/chrome/a/answer/7572556.
 
       ఈ విధానాన్ని సెట్ చేయకుంటే, బ్రౌజర్ సైన్ ఇన్ ఎంపికను ప్రారంభించాలో లేదో వినియోగదారు నిర్ణయించుకోవచ్చు, వాళ్లకు తగినట్లు భావించేది ఉపయోగించవచ్చు.</translation>
-<translation id="3911737181201537215">ఈ విధానం Android ద్వారా చేసిన లాగింగ్‌పై ఎలాంటి ప్రభావాన్ని చూపదు.</translation>
+<translation id="3911737181201537215">Android ద్వారా చేసిన లాగింగ్‌పై ఈ విధానం ఎలాంటి ప్రభావాన్ని చూపదు.</translation>
 <translation id="391531815696899618">ఒప్పున‌కు సెట్ చేసినప్పుడు <ph name="PRODUCT_OS_NAME" /> ఫైల్స్ యాప్‌లో Google డిస్క్ సింక్‌ను నిలిపివేస్తుంది. ఆ సందర్భంలో, Google డిస్క్‌కు డేటా ఏదీ అప్‌లోడ్ చేయబడదు.
 
           సెట్ చేయకపోతే లేదా తప్పున‌కు సెట్ చేస్తే, అప్పుడు వినియోగదారులు Google డిస్క్‌కు ఫైల్‌లను బదిలీ చేయగలరు.</translation>
@@ -1465,8 +1497,8 @@
 <translation id="3939893074578116847">పరికరం ఆఫ్‌లైన్‌లో ఉంటే గుర్తించేందుకు సర్వర్‌ను అనుమతించడానికి, ఆన్‌లైన్ స్థితిని పర్యవేక్షించడం కోసం
       నెట్‌వర్క్ ప్యాకెట్‌లను నిర్వహణ సర్వర్‌కు పంపుతుంది.
 
-      ఈ విధానాన్ని ఒప్పుకి సెట్ చేస్తే, పర్యవేక్షిత నెట్‌వర్క్ ప్యాకెట్‌లు (<ph name="HEARTBEATS_TERM" />గా పిలిచేవి) పంపబడతాయి.
-      తప్పుకి సెట్ చేస్తే లేదా సెట్ చేయకుండా ఉంటే, ప్యాకెట్‌లు ఏవీ పంపబడవు.</translation>
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, పర్యవేక్షిత నెట్‌వర్క్ ప్యాకెట్‌లు (<ph name="HEARTBEATS_TERM" />గా పిలిచేవి) పంపబడతాయి.
+      'తప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా ఉంటే, ప్యాకెట్‌లు ఏవీ పంపబడవు.</translation>
 <translation id="3950239119790560549">సమయ పరిమితులను అప్‌డేట్ చేయండి</translation>
 <translation id="3956686688560604829">లెగసీ బ్రౌజర్ మద్దతు కోసం Internet Explorer యొక్క SiteList విధానాన్ని ఉపయోగించడం.</translation>
 <translation id="3958586912393694012">Smart Lockను ఉపయోగించేలా అనుమతించండి</translation>
@@ -1475,7 +1507,7 @@
           దీన్ని తప్పుకు సెట్ చేస్తే లేదా ఏదీ సెట్ చేయకుంటే, ప్రమాణపత్రం ఏదీ రూపొందించబడదు మరియు enterprise.platformKeys ఎక్సటెన్షన్ APIకు చేసే కాల్‌లు విఫలమవుతాయి.</translation>
 <translation id="3965339130942650562">ఇన్‌యాక్టివ్‌ వినియోగదారు లాగ్-అవుట్ అమలు అయ్యే వరకు ముగింపు సమయం</translation>
 <translation id="3973371701361892765">అరను ఎప్పుడూ స్వయంచాలకంగా దాచవద్దు</translation>
-<translation id="3984028218719007910">లాగ్ అవుట్ చేసిన తర్వాత స్థానిక ఖాతా డేటాను <ph name="PRODUCT_OS_NAME" /> ఉంచుతుందో లేదో నిర్ధారిస్తుంది. ఒప్పున‌కు సెట్ చేయబడితే, <ph name="PRODUCT_OS_NAME" /> ద్వారా నిరంతర ఖాతాలు ఉంచ‌బడవు. వినియోగదారు సెషన్ నుండి మొత్తం డేటా, లాగ్ అవుట్ చేయబడిన తర్వాత విస్మరించబ‌డుతుంది. ఈ విధానం తప్పున‌కు సెట్ చేయబడితే లేదా కాన్ఫిగర్ చేయబడితే, పరికరం స్థానిక వినియోగదారు (ఎన్‌క్రిప్ట్ చేసిన‌) డేటాను ఉంచవచ్చు.</translation>
+<translation id="3984028218719007910">లాగ్ అవుట్ చేసిన తర్వాత స్థానిక ఖాతా డేటాను <ph name="PRODUCT_OS_NAME" /> ఉంచుతుందో లేదో నిర్ధారిస్తుంది. 'ఒప్పు'గా సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ద్వారా నిరంతర ఖాతాలు ఉంచబడవు, వినియోగదారు సెషన్ నుండి లాగ్ అవుట్ చేసిన తర్వాత మొత్తం డేటా విస్మరించబడుతుంది. ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, పరికరం (ఎన్‌క్రిప్ట్ చేసిన‌) స్థానిక వినియోగదారు డేటాను ఉంచవచ్చు.</translation>
 <translation id="398475542699441679">లెగసీ బ్రౌజర్ మద్దతును ప్రారంభించాలో లేదో ఈ విధానం నియంత్రిస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినప్పుడు లేదా తప్పునకు సెట్ చేసినప్పుడు, Chrome నిర్దేశిత URLలను ప్రత్యామ్నాయ బ్రౌజర్‌లో ప్రారంభించడానికి ప్రయత్నించదు.
@@ -1484,11 +1516,11 @@
 
       ఈ ఫీచర్ <ph name="LEGACY_BROWSER_SUPPORT_EXTENSION_NAME" /> ఎక్స్‌టెన్షన్‌ను భర్తీ చేస్తుంది. ఎక్స్‌టెన్షన్ నుండి కాన్ఫిగరేషన్ ఈ ఫీచర్‌కు అమలు చేయబడుతుంది, కానీ దానికి బదులుగా Chrome విధానాలను ఉపయోగించాల్సిందిగా గట్టిగా సూచిస్తున్నాము. ఇది భవిష్యత్తులో మెరుగైన అనుకూలత సామర్థ్యం అందించడానికి అవకాశం ఉంటుంది.</translation>
 <translation id="3997519162482760140">SAML లాగిన్ పేజీల్లో వీడియో సంగ్రహణ పరికరాలకు యాక్సెస్‌ మంజూరు చేయబడే URLలు</translation>
-<translation id="4001275826058808087">Chrome OS నమోదు ద్వారా ఆఫర్‌లను రిడీమ్ చేయడానికి వినియోగదారులను అనుమతించాలా లేదా అనే దాన్ని నియంత్రించడానికి ఎంటర్‌ప్రైజ్ పరికరాల కోసం IT నిర్వాహకులు ఈ ఫ్లాగ్‌ను ఉపయోగించవచ్చు .
+<translation id="4001275826058808087">Chrome OS నమోదు ద్వారా ఆఫర్‌లను రిడీమ్ చేయడానికి వినియోగదారులను అనుమతించాలా లేదా అనేదాన్ని నియంత్రించడానికి ఎంటర్‌ప్రైజ్ పరికరాల కోసం IT నిర్వాహకులు ఈ ఫ్లాగ్‌ను ఉపయోగించవచ్చు .
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలేస్తే, వినియోగదారులు Chrome OS నమోదు ద్వారా ఆఫర్‌లను రిడీమ్ చేయగలరు.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలేస్తే, వినియోగదారులు Chrome OS నమోదు ద్వారా ఆఫర్‌లను రిడీమ్ చేయగలరు.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వినియోగదారు ఆఫర్‌లను రిడీమ్ చేయలేరు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారు ఆఫర్‌లను రిడీమ్ చేయలేరు.</translation>
 <translation id="4008507541867797979">ఈ విధానాన్ని ఒప్పుకు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_OS_NAME" /> ఇప్పటికే ఉన్న వినియోగదారులను లాగిన్ స్క్రీన్‌పై చూపుతుంది, వాటిలో ఒకదానిని ఎంచుకోవచ్చు.
 
       ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> ఇప్పటికే ఉన్న వినియోగదారులను లాగిన్ స్క్రీన్‌పై చూపదు. సాధారణ సైన్-ఇన్ స్క్రీన్  (వినియోగదారు ఇమెయిల్ మరియు పాస్‌వర్డ్ లేదా ఫోన్ కోసం ప్రాంప్ట్ చేయడం) లేదా SAML మధ్యవచ్చే స్క్రీన్ (<ph name="LOGIN_AUTHENTICATION_BEHAVIOR_POLICY_NAME" /> విధానం ద్వారా ప్రారంభించి ఉంటే) చూపబడుతుంది, నిర్వహిత సెషన్ కాన్ఫిగర్ చేసినప్పుడు మాత్రం ఇది వర్తించదు. నిర్వహిత సెషన్‌ని కాన్ఫిగర్ చేసినప్పుడు, కేవలం నిర్వహిత సెషన్ ఖాతాలు మాత్రమే చూపబడతాయి, వాటిలో నచ్చిన దానిని మీరు ఎంచుకోవచ్చు.
@@ -1503,7 +1535,7 @@
 <translation id="4020682745012723568">వినియోగదారు ప్రొఫైల్‌కు బదిలీ చేసిన కుక్కీలను Android యాప్‌లు యాక్సెస్‌ చేయలేవు.</translation>
 <translation id="402759845255257575">JavaScriptను అమలు చేయడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
 <translation id="4027608872760987929">డిఫాల్ట్ శోధన ప్రదాతను ప్రారంభించు</translation>
-<translation id="4039085364173654945">పేజీలోని మూడో-పక్ష ఉప-కంటెంట్ HTTP ఆధారిత ప్రామాణీకరణ డైలాగ్ బాక్స్‌ను పాప్-అప్ చేయడానికి అనుమతించబడిందో, లేదో అనే దానిని నియంత్రిస్తుంది. సాధారణంగా ఇది ఒక ఫిషింగ్ రక్షణ లాగా ఆపివేయబడింది. ఈ విధానం సెట్ చేయకపోతే, ఇది ఆపివేయబడుతుంది మరియు మూడో-పక్ష ఉప-కంటెంట్ ఒక HTTP ఆధారిత ప్రామాణీకరణ డైలాగ్ బాక్స్‌ను పాప్-అప్ చేయడానికి అనుమతించబడదు.</translation>
+<translation id="4039085364173654945">పేజీలోని మూడో-పక్ష ఉప-కంటెంట్ HTTP ఆధారిత ప్రమాణీకరణ డైలాగ్ బాక్స్‌ను పాప్-అప్ చేయడానికి అనుమతించబడిందో, లేదో అనే దానిని నియంత్రిస్తుంది. సాధారణంగా ఇది ఒక ఫిషింగ్ రక్షణ లాగా ఆపివేయబడింది. ఈ విధానాన్ని సెట్ చేయకపోతే, ఇది ఆపివేయబడుతుంది, మూడో-పక్ష ఉప-కంటెంట్ ఒక HTTP ఆధారిత ప్రమాణీకరణ డైలాగ్ బాక్స్‌ను పాప్-అప్ చేయడానికి అనుమతించబడదు.</translation>
 <translation id="4056910949759281379">SPDY ప్రోటోకాల్‌ను నిలిపివేయి</translation>
 <translation id="4059515172917655545">ఈ విధానం Google స్థాన సేవల లభ్యతను నియంత్రిస్తుంది.
 
@@ -1515,13 +1547,13 @@
 <translation id="408029843066770167">Google సమయ సేవకు ప్రశ్నలను అనుమతించండి</translation>
 <translation id="408076456549153854">బ్రౌజర్ సైన్-ఇన్‌ని ప్రారంభించండి</translation>
 <translation id="4088589230932595924">అజ్ఞాత మోడ్ నిర్బంధం చేయడం</translation>
-<translation id="4088983553732356374">స్థానిక డేటాను సెట్ చేయడానికి వెబ్‌సైట్‌లను అనుమతించవచ్చో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. స్థానిక డేటాను సెట్ చేయడం అనేది అన్ని వెబ్‌సైట్‌లకు అనుమతించబడుతుంది లేదా అన్ని వెబ్‌సైట్‌లకు నిరాకరించబడుతుంది.
+<translation id="4088983553732356374">స్థానిక డేటాను సెట్ చేయడానికి వెబ్‌సైట్‌లను అనుమతించవచ్చో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. స్థానిక డేటాను సెట్ చేయడం అనేది అన్ని వెబ్‌సైట్‌లకు అనుమతించేలా, లేదా అన్ని వెబ్‌సైట్‌లకు నిరాకరించేలా సెట్ చేయవచ్చు.
 
-          ఈ విధానాన్ని 'కుక్కీలను సెషన్ ముగిసే వరకు అలాగే ఉంచు'కు సెట్ చేస్తే సెషన్ ముగిసినప్పుడు కుక్కీలు తీసివేయబడతాయి. <ph name="PRODUCT_NAME" /> 'బ్యాక్‌గ్రౌండ్‌ మోడ్'లో అమలవుతుంటే, చివరి విండోను మూసివేసినా సెషన్ ముగియకపోవచ్చని గుర్తుంచుకోండి. దయచేసి ఈ ప్రవర్తనను కాన్ఫిగర్ చేయడం గురించి మరింత సమాచారం కోసం 'BackgroundModeEnabled' విధానాన్ని చూడండి.
+          ఈ విధానాన్ని 'కుక్కీలను సెషన్ ముగిసే వరకు అలాగే ఉంచు'గా సెట్ చేస్తే సెషన్ ముగిసినప్పుడు కుక్కీలు తీసివేయబడతాయి. <ph name="PRODUCT_NAME" /> 'నేపథ్య మోడ్'లో అమలవుతుంటే, చివరి విండోను మూసివేసినా సెషన్ ముగియకపోవచ్చని గుర్తుంచుకోండి. ఈ ప్రవర్తనను కాన్ఫిగర్ చేయడం గురించి మరింత సమాచారం కోసం దయచేసి 'BackgroundModeEnabled' విధానాన్ని చూడండి.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'AllowCookies' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలరు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'AllowCookies' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="4103289232974211388">వినియోగదారు నిర్ధారణ తర్వాత SAML IdPకు మళ్లింపు</translation>
-<translation id="410478022164847452">AC శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడుతుందో పేర్కొంటుంది.
+<translation id="410478022164847452">AC పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> ఇన్‌యాక్టివ్‌ చర్యను తీసుకోవడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది, ఇది వేరుగా కాన్ఫిగర్ చేయబడుతుంది.
 
@@ -1530,9 +1562,9 @@
           విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి.</translation>
 <translation id="4105989332710272578">జాబితాలోని URLల కోసం ప్రమాణపత్రం పారదర్శకత అమలును నిలిపివేయండి</translation>
 <translation id="4121350739760194865">యాప్ ప్రచారాలు కొత్త ట్యాబ్ పేజీలో కనిపించడాన్ని నిరోధించండి</translation>
-<translation id="4125606414556046117">ఈ విధానం వినియోగదారు కోసం డెస్క్‌టాప్‌పై మరియు లాగిన్ స్క్రీన్ నేపథ్యంలో చూపబడే వాల్‌పేపర్ చిత్రాన్ని కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. <ph name="PRODUCT_OS_NAME" /> వాల్‌పేపర్ చిత్రాన్ని డౌన్‌లోడ్ చేసుకోగల URLను పేర్కొనడం ద్వారా విధానం సెట్ చేయబడుతుంది మరియు డౌన్‌లోడ్ యొక్క సరళతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హాష్ ఉపయోగించబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి, దీని పరిమాణం 16MBని మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రామాణీకరణ లేకుండా యాక్సెస్‌ చేసే విధంగా ఉండాలి.
+<translation id="4125606414556046117">ఈ విధానం వినియోగదారు కోసం డెస్క్‌టాప్‌పై మరియు లాగిన్ స్క్రీన్ నేపథ్యంలో చూపబడే వాల్‌పేపర్ చిత్రాన్ని కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. <ph name="PRODUCT_OS_NAME" /> వాల్‌పేపర్ చిత్రాన్ని డౌన్‌లోడ్ చేసుకోగల URLను పేర్కొనడం ద్వారా విధానం సెట్ చేయబడుతుంది, డౌన్‌లోడ్‌ను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హాష్ ఉపయోగించబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి, దీని పరిమాణం 16MB మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రమాణీకరణ లేకుండా యాక్సెస్ చేసే విధంగా ఉండాలి.
 
-వాల్‌పేపర్ చిత్రం డౌన్‌లోడ్ చేయబడుతుంది మరియు కాష్ చేయబడుతుంది. URL లేదా హాష్ మారినప్పుడల్లా అది మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
+వాల్‌పేపర్ చిత్రం డౌన్‌లోడ్ చేయబడి కాష్ చేయబడుతుంది. URL లేదా హాష్ మారినప్పుడల్లా అది మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
 
 విధానాన్ని కింది స్కీమాకు కట్టుబడి ఉండే విధంగా JSON ఫార్మాట్‌లో URL మరియు హాష్‌ను వ్యక్తపరిచే స్ట్రింగ్ రూపంలో పేర్కొనాలి:
       {
@@ -1549,10 +1581,10 @@
         }
       }
 
-ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> వాల్‌పేపర్‌ చిత్రాన్ని డౌన్‌లోడ్ చేస్తుంది మరియు ఉపయోగిస్తుంది.
+ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> వాల్‌పేపర్‌ చిత్రాన్ని డౌన్‌లోడ్ చేసి ఉపయోగిస్తుంది.
 
       
-మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
 విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, వినియోగదారు డెస్క్‌టాప్‌పై మరియు లాగిన్ స్క్రీన్ నేపథ్యంలో ప్రదర్శించడం కోసం చిత్రాన్ని ఎంచుకోవచ్చు.</translation>
 <translation id="412697421478384751">లాక్ స్క్రీన్‌ పిన్‌కు వినియోగదారులు బలహీనమైన పిన్‌లను సెట్ చేయగలిగేలా అనుమతించండి</translation>
@@ -1560,45 +1592,49 @@
 <translation id="4150201353443180367">డిస్‌ప్లే</translation>
 <translation id="4157003184375321727">OS మరియు ఫర్మ్‌వేర్ వెర్షన్‌ను నివేదించు</translation>
 <translation id="4157594634940419685">స్థానిక CUPS ప్రింటర్‌లకు యాక్సెస్‌ని అనుమతించండి</translation>
-<translation id="4163705126749612234">రిమోట్ యాక్సెస్‌ క్లయింట్‌లపై విధించబడే అవసరమైన క్లయింట్ డొమైన్ పేరును కాన్ఫిగర్ చేస్తుంది మరియు దాన్ని మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
+<translation id="4163705126749612234">రిమోట్ యాక్సెస్ క్లయింట్‌లపై విధించబడే అవసరమైన క్లయింట్ డొమైన్ పేరును కాన్ఫిగర్ చేస్తుంది, దానిని మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
 
 ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, అప్పుడు కేవలం నిర్దిష్ట డొమైన్‌లలో ఒకదానిలోని క్లయింట్‌లు మాత్రమే హోస్ట్‌కు కనెక్ట్ అవగలగుతాయి.
 
-ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకపోతే, కనెక్షన్ రకం కోసం డిఫాల్ట్ విధానం వర్తింపజేయబడుతుంది. రిమోట్ సహాయం కోసం, ఏ డొమైన్‌లోని క్లయింట్‌లు అయినా హోస్ట్‌కు కనెక్ట్ చేయడానికి ఇది అనుమతిస్తుంది; ఏ సమయంలోనైనా రిమోట్ యాక్సెస్‌ కోసం, హోస్ట్ యజమాని మాత్రమే కనెక్ట్ చేయగలరు.
+ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకపోతే, కనెక్షన్ రకం కోసం డిఫాల్ట్ విధానం వర్తింపజేయబడుతుంది. రిమోట్ సహాయం కోసం, ఏ డొమైన్‌లోని క్లయింట్‌లు అయినా హోస్ట్‌కు కనెక్ట్ చేయడానికి ఇది అనుమతిస్తుంది; ఏ సమయంలోనైనా రిమోట్ యాక్సెస్ కోసం, హోస్ట్ యజమాని మాత్రమే కనెక్ట్ చేయగలరు.
 
-ఒకవేళ ఉంటే ఈ సెట్టింగ్ RemoteAccessHostClientDomainను అధిగ‌మిస్తుంది.
+ఒకవేళ ఉంటే ఈ సెట్టింగ్ RemoteAccessHostClientDomainను భర్తీ చేస్తుంది.
 
 RemoteAccessHostDomainListను కూడా చూడండి.</translation>
 <translation id="4183229833636799228">డిఫాల్ట్ <ph name="FLASH_PLUGIN_NAME" /> సెట్టింగ్</translation>
 <translation id="4192388905594723944">రిమోట్ యాక్సెస్ క్లయింట్ ప్రామాణీకరణ టోకెన్‌ని ధృవీకరించే URL</translation>
-<translation id="4203389617541558220">ఆటోమేటిక్ రీబూట్‌లను షెడ్యూల్ చేయడం ద్వారా పరికరం యొక్క లభ్యతను పరిమితం చేయండి.
+<translation id="4197038214024763371">ఒకవేళ ఈ విధానాన్ని సెట్ చేయకున్నా లేదా ప్రారంభించినా, వినియోగదారు అక్షరదోష తనిఖీని ఉపయోగించడానికి అనుమతించబడతారు.
 
-      ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడిన తర్వాత పరికరం యొక్క లభ్యత నిడివిని నిర్దేశిస్తుంది.
+      ఒకవేళ ఈ విధానాన్ని నిలిపివేసినట్లయితే, వినియోగదారు అక్షరదోష తనిఖీని ఉపయోగించడానికి అనుమతించబడరు. ఈ విధానాన్ని నిలిపివేసినప్పుడు SpellcheckLanguage మరియు SpellcheckLanguageBlacklist విధానాలు కూడా విస్మరించబడతాయి.
+      </translation>
+<translation id="4203389617541558220">ఆటోమేటిక్ రీబూట్‌లను షెడ్యూల్ చేయడం ద్వారా పరికరం లభ్యతను పరిమితం చేయండి.
 
-      ఈ విధానాన్ని సెట్ చేయనప్పుడు, పరికరం యొక్క లభ్యత పరిమితం చేయబడదు.
+      ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడిన తర్వాత పరికరం లభ్యత నిడివిని నిర్దేశిస్తుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      ఈ విధానాన్ని సెట్ చేయనప్పుడు, పరికరం లభ్యత పరిమితం చేయబడదు.
 
-      షెడ్యూల్ చేసిన సమయానికి ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడుతుంది కానీ ప్రస్తుతం వినియోగదారు పరికరాన్ని ఉపయోగిస్తుంటే పరికరంలో గ‌రిష్ఠ‌ంగా 24 గంటల వరకు ఆలస్యం కావచ్చు.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      గమనిక: ప్రస్తుతం, ఆటోమేటిక్ రీబూట్‌లు లాగిన్ స్క్రీన్ చూపబడుతున్నప్పుడు లేదా కియోస్క్ యాప్ సెషన్ పురోగమనంలో ఉన్నప్పుడు మాత్రమే ప్రారంభించబడతాయి. ఇది భవిష్యత్తులో మారుతుంది మరియు విధానం ఎల్లప్పుడూ వర్తింపజేయబడుతుంది. ఏదైనా నిర్దిష్ట సెషన్ రకం పురోగమనంలో ఉందా లేదా అన్న దానిపై ఆధాపర పడి ఉండదు.
+      షెడ్యూల్ చేసిన సమయానికి ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడుతుంది కానీ ప్రస్తుతం వినియోగదారు పరికరాన్ని ఉపయోగిస్తుంటే పరికరంలో గరిష్టంగా 24 గంటల వరకు ఆలస్యం కావచ్చు.
+
+      గమనిక: ప్రస్తుతం, ఆటోమేటిక్ రీబూట్‌లు లాగిన్ స్క్రీన్ చూపబడుతున్నప్పుడు లేదా కియోస్క్ యాప్ సెషన్ పురోగమనంలో ఉన్నప్పుడు మాత్రమే ప్రారంభించబడతాయి. ఎప్పుడూ వర్తింపజేసేలా ఈ విధానం భవిష్యత్తులో మార్చబడుతుంది, ఏదైనా నిర్దిష్ట సెషన్ రకం పురోగమనంలో ఉందా లేదా అన్న దానిపై ఆధారపడి ఉండదు.
 
       విధానం విలువను సెకన్లలో పేర్కొనాలి. విలువలు కనీసం 3600 (ఒక గంట)గా పరిమితి చేయబడ్డాయి.</translation>
 <translation id="4203879074082863035">వైట్‌లిస్ట్‌లో ఉన్న ప్రింటర్‌లు మాత్రమే వినియోగదారులకు చూపబడతాయి</translation>
-<translation id="420512303455129789">హోస్ట్‌కు యాక్సెస్‌ అనుమతించాలో (ఒప్పు) లేదా బ్లాక్ చేయాలో (తప్పు) పేర్కొనే బులియన్ ఫ్లాగ్‌కు URLలను మ్యాప్ చేసే నిఘంటువు.
+<translation id="420512303455129789">హోస్ట్‌కు యాక్సెస్ అనుమతించాలో (ఒప్పు) లేదా బ్లాక్ చేయాలో (తప్పు) పేర్కొనే బులియన్ ఫ్లాగ్‌కు URLలను మ్యాప్ చేసే నిఘంటువు.
 
-          ఈ విధానం <ph name="PRODUCT_NAME" /> యొక్క అంతర్గత ఉపయోగానికి మాత్రమే.</translation>
+          ఈ విధానం <ph name="PRODUCT_NAME" /> యొక్క అంతర్గత వినియోగానికి మాత్రమే.</translation>
 <translation id="4224610387358583899">స్క్రీన్ లాక్ ఆలస్యాలు</translation>
-<translation id="423797045246308574">కీ ఉత్పాదనను ఉపయోగించడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఒకవేళ url నమూనా 'KeygenAllowedForUrls'లో ఉంటే, ఈ విధానం ఈ మినహాయింపులను అధిగ‌మిస్తుంది.
+<translation id="423797045246308574">కీ ఉత్పాదనను ఉపయోగించడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఒకవేళ url నమూనా 'KeygenAllowedForUrls'లో ఉంటే, ఈ విధానం ఈ మినహాయింపులను భర్తీ చేస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అన్ని సైట్‌ల కోసం 'DefaultKeygenSetting' విధానం సెట్ చేసి ఉంటే దాని నుండి లేదా వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.</translation>
-<translation id="4238997902172035160">ప్రొఫైల్‌ల యొక్క రోమింగ్ కాపీని నిల్వ చేసేందుకు <ph name="PRODUCT_NAME" /> ఉపయోగించే డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది.
+<translation id="4238997902172035160">ప్రొఫైల్‌ల రోమింగ్ కాపీని నిల్వ చేసేందుకు <ph name="PRODUCT_NAME" /> ఉపయోగించే డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది.
 
-మీరు ఈ విధానాన్ని సెట్ చేసినట్లయితే, <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానం ప్రారంభించబడి ఉన్నప్పుడు ప్రొఫైల్‌ల యొక్క రోమింగ్ కాపీని నిల్వ చేసేందుకు <ph name="PRODUCT_NAME" /> అందించబడిన డైరెక్టరీని  ఉపయోగిస్తుంది. <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానం నిలిపివేయబడినా లేదా సెట్ చేయకపోయినా, ఈ విధానంలో నిల్వ చేయబడిన విలువ ఉపయోగించబడదు.
+మీరు ఈ విధానాన్ని సెట్ చేసినట్లయితే, <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానం ప్రారంభించబడి ఉన్నప్పుడు ప్రొఫైల్‌ల రోమింగ్ కాపీని నిల్వ చేసేందుకు <ph name="PRODUCT_NAME" /> అందించబడిన డైరెక్టరీని ఉపయోగిస్తుంది. <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానాన్ని నిలిపివేసినా లేదా సెట్ చేయకపోయినా, ఈ విధానంలో నిల్వ చేయబడిన విలువ ఉపయోగించబడదు.
 
-ఉపయోగించదగిన చర‌రాశుల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్‌ను చూడండి.
+ఉపయోగించదగిన వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్ చూడండి.
 
-ఈ విధానం సెట్ చేయకపోతే, డిఫాల్ట్ రోమింగ్ ప్రొఫైల్ పాత్‌ ఉపయోగించబడుతుంది.</translation>
+ఈ విధానాన్ని సెట్ చేయకపోతే, డిఫాల్ట్ రోమింగ్ ప్రొఫైల్ పాత్ ఉపయోగించబడుతుంది.</translation>
 <translation id="4239720644496144453">Android యాప్‌ల కోసం కాష్ ఉపయోగించబడదు. అనేక మంది వినియోగదారులు ఒకే Android యాప్‌ను ఇన్‌స్టాల్ చేస్తే, ప్రతి వినియోగదారు కోసం అది కొత్తగా డౌన్‌లోడ్ చేయబడుతుంది.</translation>
 <translation id="4243336580717651045"><ph name="PRODUCT_NAME" />లో URL కీ ఉన్న అజ్ఞాతీకరించిన డేటా సేకరణను ప్రారంభించి, ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
 
@@ -1615,34 +1651,34 @@
 
       <ph name="BULK_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_WHITELIST" />ను ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
 
-      ఈ విధానాన్ని ఉపయోగించినట్లయితే, ఈ విధానంలో ఉన్న విలువలకు సరిపోలిన idలను కలిగిన ప్రింటర్‌లు మాత్రమే వినియోగ‌దారుకు అందుబాటులో ఉంటాయి. idలు తప్పనిసరిగా <ph name="BULK_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
+      ఈ విధానాన్ని ఉపయోగించినట్లయితే, ఈ విధానంలో ఉన్న విలువలకు సరిపోలిన idలను కలిగిన ప్రింటర్‌లు మాత్రమే వినియోగదారుకు అందుబాటులో ఉంటాయి. idలు తప్పనిసరిగా <ph name="BULK_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
       </translation>
-<translation id="427632463972968153">POSTతో చిత్ర శోధన చేస్తున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {imageThumbnail} వంటి టెంప్లేట్ పారామీటర్ అయితే, ఇది వాస్తవ చిత్రం యొక్క సూక్ష్మచిత్ర డేటాతో భర్తీ చేయబడుతుంది.
+<translation id="427632463972968153">POSTతో చిత్ర శోధన చేస్తున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {imageThumbnail} వంటి టెంప్లేట్ పారామీటర్ అయితే, దానిని వాస్తవ చిత్రం యొక్క సూక్ష్మచిత్ర డేటా భర్తీ చేస్తుంది.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, చిత్రం శోధన అభ్యర్థన GET పద్ధతిని ఉపయోగించి పంపబడుతుంది.
 
-          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం గౌరవించబడుతుంది.</translation>
+          'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="4285674129118156176">ARCని ఉపయోగించడానికి అనుబంధిత వినియోగదారులను అనుమతించండి</translation>
 <translation id="4298509794364745131"><ph name="PRODUCT_OS_NAME" /> లాక్ స్క్రీన్‌పై విషయ సేకరణ యాప్‌‌‌గా ఆరంభించగలిగే యాప్‌ల జాబితాను పేర్కొంటుంది.
 
-      లాక్ స్క్రీన్‌పై ప్రాధాన్య విషయ సేకరణ యాప్‌ను ప్రారంభిస్తే, ఆ ప్రాధాన్య విషయ సేకరణ యాప్‌‌‌ను ప్రారంభించడం కోసం ఒక UI ఎలిమెంట్ లాక్ స్క్రీన్‌లో ఉంటుంది. 
-      ప్రారంభించినప్పుడు, యాప్, లాక్ స్క్రీన్ పై భాగంలో యాప్ విండోను సృష్టించగలదు మరియు లాక్ స్క్రీన్ సందర్బంలో డేటా అంశాలను (గమనికలు) సృష్టిస్తుంది. సెషన్ అన్‌లాక్ అయినప్పుడు యాప్, సృష్టించిన గమనికలను ప్రాథమిక వినియోగదారు సెషన్‌కు దిగుమతి చేయగలదు. ప్రస్తుతం, లాక్ స్క్రీన్‌పై Chrome విషయ సేకరణ యాప్‌‌‌లు మాత్రమే మద్దతు కలిగి ఉన్నాయి.
+      ప్రాధాన్య విషయ సేకరణ యాప్‌‌ లాక్ స్క్రీన్‌పై ఆరంభించబడితే, లాక్ స్క్రీన్‌ ప్రాధాన్య విషయ సేకరణ యాప్‌‌‌ను ప్రారంభించడం కోసం UI ఎలిమెంట్‌ను కలిగి ఉంటుంది. 
+      ప్రారంభించినప్పుడు, యాప్, లాక్ స్క్రీన్ పై భాగంలో యాప్ విండోను సృష్టించగలదు మరియు లాక్ స్క్రీన్ సందర్బంలో డేటా అంశాలను (గమనికలు) సృష్టించగలదు. సెషన్ అన్‌లాక్ అయినప్పుడు, యాప్ సృష్టించిన గమనికలను ప్రాథమిక వినియోగదారు సెషన్‌కు దిగుమతి చేయగలదు. ప్రస్తుతం, లాక్ స్క్రీన్‌పై Chrome విషయ సేకరణ యాప్‌‌‌లకు మాత్రమే మద్దతు ఉంది.
 
-      విధానాన్ని సెట్ చేస్తే, విధాన జాబితా విలువలో యాప్ ఎక్స్‌టెన్ష‌న్‌ ID ఉంటే కనుక లాక్ స్క్రీన్‌పై యాప్‌ను ఆరంభించడానికి వినియోగదారు అనుమతించబడతారు.
+      విధానాన్ని సెట్ చేస్తే, విధాన జాబితా విలువలో యాప్ ఎక్స్‌టెన్షన్ ID ఉంటే కనుక లాక్ స్క్రీన్‌పై యాప్‌ను ఆరంభించడానికి వినియోగదారు అనుమతించబడతారు.
       పర్యవసానంగా, ఈ విధానాన్ని ఖాళీ జాబితాకు సెట్ చేస్తే లాక్ స్క్రీన్‌పై విషయ సేకరణ పూర్తిగా నిలిచిపోతుంది.
-      విధానం, యాప్ IDను కలిగి ఉండడం అనేది లాక్ స్క్రీన్‌పై విషయ సేకరణ యాప్‌‌‌గా వినియోగదారు యాప్‌ను అరంభించగలరని అర్థం కాదని గుర్తుంచుకోండి - ఉదాహరణకు, Chrome 61లో, అందుబాటులో ఉన్న యాప్‌లు అదనంగా ప్లాట్‌ఫారమ్ ద్వారా నియంత్రించబడతాయి.
+      విధానంలో యాప్ ID ఉండడం అనేది, లాక్ స్క్రీన్‌పై విషయ సేకరణ యాప్‌‌‌గా వినియోగదారు యాప్‌ను అరంభించగలరని అర్థం కాదని గుర్తుంచుకోండి - ఉదాహరణకు, Chrome 61లో, అందుబాటులో ఉన్న యాప్‌లు అదనంగా ప్లాట్‌ఫామ్ ద్వారా నియంత్రించబడతాయి.
 
       విధానాన్ని సెట్ చేయకపోతే, విధానం ద్వారా విధించిన లాక్ స్క్రీన్‌పై వినియోగదారు ఆరంభించగలిగే యాప్‌ల సెట్‌పై నియంత్రణలు ఉండవు.</translation>
 <translation id="4309640770189628899">TLSలో DHE సైఫర్ సూట్‌లు ప్రారంభించాలో లేదో నిర్ణయిస్తుంది</translation>
 <translation id="4322842393287974810"><ph name="PRODUCT_OS_NAME" /> వెర్షన్‌ను నియంత్రించడం కోసం సున్నా జాప్యంతో ఆటోమేటిక్‌గా ప్రారంభించబడిన కియోస్క్ యాప్‌ను అనుమతించండి</translation>
 <translation id="4325690621216251241">సిస్టమ్ ట్రేకు లాగ్‌అవుట్ బటన్‌ను జోడించండి</translation>
 <translation id="4332177773549877617">Android యాప్ ఇన్‌స్టాల్‌ల కోసం ఈవెంట్‌లను లాగ్ చేయండి</translation>
-<translation id="4346674324214534449">అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయాలా వద్దా అనే దాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
+<translation id="4346674324214534449">అనుచిత ప్రకటనలు ఉన్న సైట్‌లలో ప్రకటనలు బ్లాక్ చేయాలా వద్దా అనే దానిని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-      ఈ విధానం 2కి సెట్ చేయబడితే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడతాయి.
-      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానం తప్పుకు సెట్ చేయబడితే ఈ ప్రవర్తన ప్రారంభించబడదు.
-     ఈ విధానాన్ని 1కి సెట్ చేయబడితే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడవు.
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, 2 ఉపయోగించబడుతుంది.</translation>
+      ఈ విధానాన్ని 2కు సెట్ చేస్తే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడతాయి.
+      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానాన్ని 'తప్పు'గా సెట్ చేస్తే ఈ ప్రవర్తన ప్రారంభించబడదు.
+     ఈ విధానాన్ని 1కు సెట్ చేస్తే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడవు.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 2 ఉపయోగించబడుతుంది.</translation>
 <translation id="4347908978527632940">ఒప్పు అయితే మరియు వినియోగదారు పర్యవేక్షించబడే వినియోగదారు అయితే, అప్పుడు ఇతర Android యాప్‌లు కంటెంట్ ప్రదాత ద్వారా వినియోగదారు వెబ్ నియంత్రణలను ప్రశ్నించవచ్చు.
 
           తప్పు అయితే లేదా సెట్ చేయకపోతే, అప్పుడు కంటెంట్ ప్రదాత సమాచారం ఏదీ అందించదు.</translation>
@@ -1650,25 +1686,25 @@
 
       <ph name="PRODUCT_NAME" />లో ఖాతా దృశ్యమానతను నిర్ధారించడం కోసం ఈ విధానంలో నిల్వ చేయబడిన నమూనాలతో పరికరంలోని ప్రతి ఖాతా సరిపోల్చబడుతుంది. జాబితాలోని ఏదైనా నమూనాకు సరిపోలినట్లయితే ఖాతా కనిపిస్తుంది. లేదంటే, ఖాతా దాచబడుతుంది.
 
-      సున్నా లేదా మరిన్ని నిర్హేతుక అక్షరాలతో సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరం '*'ని ఉపయోగించండి. పలాయన అక్షరం '\' అయితే, వాస్తవ '*' లేదా '\' అక్షరాలతో సరిపోల్చడానికి, మీరు వాటి ముందు '\' ఉంచండి.
+      సున్నా లేదా మరిన్ని నిర్హేతుక అక్షరాలతో సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరం '*'ను ఉపయోగించండి. ఎస్కేప్ అక్షరం '\' అయితే, వాస్తవ '*' లేదా '\' అక్షరాలతో సరిపోల్చడానికి, మీరు వాటి ముందు '\' ఉంచండి.
 
      ఒకవేళ ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఆపై పరికరంలోని అన్ని Google ఖాతాలు <ph name="PRODUCT_NAME" />లో కనిపిస్తాయి.</translation>
-<translation id="4360826270668210664">ఈ విధానాన్ని సెట్ చేస్తే, రిమోట్ యాక్సెస్‌ హోస్ట్‌ కనెక్ట్ అయ్యే క్రమంలో క్లయింట్‌లు ఈ URL నుండి ప్రమాణీకరణ టోకెన్‌ను పొందేలా ప్రామాణీకరించడం అవసరం. ఖచ్చితంగా RemoteAccessHostTokenValidationUrlతో కలయికలో ఉపయోగించాలి.
+<translation id="4360826270668210664">ఈ విధానాన్ని సెట్ చేస్తే, రిమోట్ యాక్సెస్ హోస్ట్‌ కనెక్ట్ అయ్యే క్రమంలో క్లయింట్‌లు ఈ URL నుండి ప్రమాణీకరణ టోకెన్‌ను పొందేలా ప్రామాణీకరించడం అవసరం. ఖచ్చితంగా RemoteAccessHostTokenValidationUrlతో కలిపి ఉపయోగించాలి.
 
 ఈ ఫీచర్ ప్రస్తుతం సర్వర్ తరపున నిలిపివేయబడింది.</translation>
 <translation id="436581050240847513">పరికర నెట్‌వర్క్ ఇంటర్‌ఫేస్‌లను నివేదించండి</translation>
 <translation id="4372704773119750918">బహుళప్రొఫైల్ (ప్రాథమికం లేదా రెండవది)లో భాగం కావడానికి ఎంటర్‌ప్రైజ్ వినియోగదారును అనుమతించవద్దు</translation>
 <translation id="4377599627073874279">అన్ని చిత్రాలని చూపించడానికి అన్ని సైట్‌లని అనుమతించు</translation>
-<translation id="437791893267799639">విధానం సెట్ చేయకపోతే, డేటా బదిలీ మరియు ARCని అనుమతించకండి</translation>
+<translation id="437791893267799639">విధానాన్ని సెట్ చేయకపోతే, డేటా బదిలీ మరియు ARCలను అనుమతించకండి</translation>
 <translation id="4389073105055031853">అన్ని సర్టిఫికెట్‌లను నిర్వహించడానికి వినియోగదారులను అనుమతించండి</translation>
 <translation id="4389091865841123886">TPM విధానంతో రిమోట్ ధృవీకరణను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="4408428864159735559">ముందుగా కాన్ఫిగర్ చేసిన నెట్‌వర్క్ ఫైల్ షేర్‌ల జాబితా.</translation>
 <translation id="4410236409016356088">కుదింపు నెట్‌వర్క్ బ్యాండ్‌విడ్త్‌ను ప్రారంభించండి</translation>
 <translation id="441217499641439905"><ph name="PRODUCT_OS_NAME" /> ఫైల్‌ల యాప్‌లో సెల్యులార్ కనెక్షన్‌ల ద్వారా Google డిస్క్‌ను నిలిపివేయండి</translation>
-<translation id="4415603335307944578">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, OS అప్‌గ్రేడ్ చేసిన అనంతరం మొదటిసారి బ్రౌజర్‌ను ప్రారంభించినప్పుడు స్వాగత పేజీని మళ్లీ చూపుతుంది.
+<translation id="4415603335307944578">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, OS అప్‌గ్రేడ్ చేసిన తర్వాత మొదటిసారి బ్రౌజర్‌ను ప్రారంభించినప్పుడు స్వాగత పేజీని మళ్లీ చూపుతుంది.
 
-ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, OS అప్‌గ్రేడ్ చేసిన అనంతరం మొదటిసారి బ్రౌజర్‌ను ప్రారంభించినప్పుడు స్వాగత పేజీని మళ్లీ చూపదు.</translation>
-<translation id="4418726081189202489">ఈ విధానం తప్పుకు సెట్ చేయబడితే Google సర్వర్‌కు <ph name="PRODUCT_NAME" /> సందర్భానుసారంగా ప్రశ్నలను పంపించడాన్ని అడ్డుకుంటుంది. ఈ విధానం ఒప్పుకు సెట్ చేయబడితే లేదా దేనికీ సెట్ చేయబడకపోతే ఈ ప్రశ్నలు ప్రారంభించబడతాయి.</translation>
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, OS అప్‌గ్రేడ్ చేసిన తర్వాత మొదటిసారి బ్రౌజర్‌ను ప్రారంభించినప్పుడు స్వాగత పేజీని మళ్లీ చూపదు.</translation>
+<translation id="4418726081189202489">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే Google సర్వర్‌కు <ph name="PRODUCT_NAME" /> సందర్భానుసారంగా ప్రశ్నలను పంపించడాన్ని అడ్డుకుంటుంది. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే లేదా దేనికీ సెట్ చేయకపోతే ఈ ప్రశ్నలు ప్రారంభించబడతాయి.</translation>
 <translation id="4423597592074154136">ప్రాక్సీ సెట్టింగ్‌లని మాన్యవల్‌గా పేర్కొను</translation>
 <translation id="4429220551923452215">బుక్‌మార్క్ బార్‌లో యాప్‌ల షార్ట్‌కట్‌ను ప్రారంభిస్తుంది లేదా నిలిపివేస్తుంది.
 
@@ -1681,13 +1717,13 @@
 <translation id="4439132805807595336">PluginVmని అమలు చేయడానికి ఈ పరికరాన్ని సిద్ధం చేస్తుంది.
 
       ఒకవేళ ఈ విధానాన్ని తప్పుకు సెట్ చేసినా చేయకున్నా,<ph name="PLUGIN_VM_NAME" /> ఈ పరికరంలో ప్రారంభించబడదు. ఒకవేళ ఒప్పుకు సెట్ చేస్తే, <ph name="PLUGIN_VM_NAME" /> ఈ పరికరంలో ప్రారంభించబడి ఇతర సెట్టింగ్‌లు అనుమతి ఇచ్చినంత సేపు నడుస్తుంది. <ph name="PLUGIN_VM_ALLOWED_POLICY_NAME" /> ఒప్పుకు సెట్ చేసి, <ph name="PLUGIN_VM_LICENSE_KEY_POLICY_NAME" /> మరియు <ph name="PLUGIN_VM_IMAGE_POLICY_NAME" />లను <ph name="PLUGIN_VM_NAME" />కి అనుకూలంగా సెట్ చేసినప్పుడు మాత్రమే అమలు అవుతుంది.</translation>
-<translation id="4439336120285389675">నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లలో తాత్కాలికంగా మళ్లీ ప్రారంభించాల్సిన వాటి జాబితాను పేర్కొంటుంది.
+<translation id="4439336120285389675">నిలిపివేసిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లలో తాత్కాలికంగా మళ్లీ ప్రారంభించాల్సిన వాటి జాబితాను పేర్కొంటుంది.
 
-      ఈ విధానం వలన నిర్వాహకులు పరిమిత సమయం పాటు నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లను మళ్లీ ప్రారంభించగల సామర్థ్యం పొందుతారు. ఫీచర్‌లు స్ట్రింగ్ ట్యాగ్ ద్వారా గుర్తించబడతాయి మరియు ఈ విధానం ద్వారా పేర్కొనబడిన జాబితాలో చేర్చబడిన ట్యాగ్‌లకు సంబంధించిన ఫీచర్‌లు మళ్లీ ప్రారంభించబడతాయి.
+      ఈ విధానం వలన నిర్వాహకులు పరిమిత సమయం పాటు నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లను మళ్లీ ప్రారంభించగల సామర్థ్యం పొందుతారు. ఫీచర్‌లు స్ట్రింగ్ ట్యాగ్ ద్వారా గుర్తించబడతాయి, ఈ విధానం ద్వారా పేర్కొనబడిన జాబితాలో చేర్చబడిన ట్యాగ్‌లకు సంబంధించిన ఫీచర్‌లు మళ్లీ ప్రారంభించబడతాయి.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా జాబితా ఖాళీగా ఉంటే లేదా మద్దతు ఉన్న స్ట్రింగ్ ట్యాగ్‌లలో ఒకదానితో సరిపోలకుంటే, అన్ని నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లు అలాగే నిలిపివేయబడి ఉంటాయి.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా జాబితా ఖాళీగా ఉంటే లేదా మద్దతు ఉన్న స్ట్రింగ్ ట్యాగ్‌లలో ఒకదానితో సరిపోలకుంటే, నిలిపివేసిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లన్నీ అలాగే నిలిపివేయబడి ఉంటాయి.
 
-      విధానానికి ఎగువ ప్లాట్‌ఫామ్‌లలో మద్దతు ఉన్నప్పుడు, విధానం అనుమతించే ఫీచర్ కొన్ని ప్లాట్‌ఫామ్‌లలో అందుబాటులో ఉండవచ్చు. అన్ని నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లు మళ్లీ ప్రారంభించబడవు. దిగువ స్పష్టంగా జాబితా చేసినవి మాత్రమే పరిమిత సమయం పాటు ఉండగలవు, ఇవి ఒక్కో ఫీచర్‌కు భిన్నంగా ఉంటాయి. స్ట్రింగ్ ట్యాగ్ సాధారణ ఫార్మాట్ [DeprecatedFeatureName]_EffectiveUntil[yyyymmdd] లాగా ఉండాలి. సూచనగా, మీరు https://bit.ly/blinkintentsలో వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌ల మార్పుల ఉద్దేశాన్ని తెలుసుకోవచ్చు.
+      విధానానికి ఎగువ ప్లాట్‌ఫామ్‌లలో మద్దతు ఉన్నప్పుడు, విధానం అనుమతించే ఫీచర్ కొన్ని ప్లాట్‌ఫామ్‌లలో అందుబాటులో ఉండవచ్చు. అన్ని నిలిపివేయబడిన వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌లు మళ్లీ ప్రారంభించబడవు. దిగువ స్పష్టంగా జాబితా చేసినవి మాత్రమే పరిమిత సమయం పాటు ఉండగలవు, ఇవి ప్రతి ఫీచర్‌కు భిన్నంగా ఉంటాయి. స్ట్రింగ్ ట్యాగ్ సాధారణ ఫార్మాట్ [DeprecatedFeatureName]_EffectiveUntil[yyyymmdd]. సూచనగా, మీరు https://bit.ly/blinkintentsలో వెబ్ ప్లాట్‌ఫామ్ ఫీచర్‌ల మార్పుల ఉద్దేశాన్ని తెలుసుకోవచ్చు.
       </translation>
 <translation id="4442582539341804154">పరికరం యాక్టివ్‌గా లేన‌ప్పుడు లేదా తాత్కాలికంగా నిలిపివేయబడినపుడు లాక్ చేయబడుతుంది</translation>
 <translation id="4449545651113180484">స్క్రీన్‌ను సవ్యదిశలో 270 డిగ్రీల మేర తిప్పండి</translation>
@@ -1695,9 +1731,9 @@
 <translation id="4454820008017317557"><ph name="PRODUCT_NAME" /> సాధనాల బార్ చిహ్నన్ని చూపించు</translation>
 <translation id="4467952432486360968">మూడవ పార్టీ కుక్కీలని బ్లాక్ చెయ్యి</translation>
 <translation id="4474167089968829729">పాస్‌వర్డ్ మేనేజ‌ర్‌లో పాస్‌వర్డ్‌లను సేవ్ చేయడం ప్రారంభించండి</translation>
-<translation id="4476769083125004742">ఈ విధానాన్ని <ph name="BLOCK_GEOLOCATION_SETTING" />‌కు సెట్ చేస్తే, Android యాప్‌లు, స్థాన సమాచారాన్ని యాక్సెస్‌ చేయలేవు. మీరు ఈ విధానాన్ని మరే ఇతర విలువకు సెట్ చేసినా లేదా దేనికీ సెట్ చేయకపోయినా, Android యాప్, స్థాన సమాచారాన్ని యాక్సెస్‌ చేయాలనుకున్నప్పుడు వినియోగదారు సమ్మతిని అడగడం జరుగుతుంది.</translation>
+<translation id="4476769083125004742">ఈ విధానాన్ని <ph name="BLOCK_GEOLOCATION_SETTING" />కు సెట్ చేస్తే, Android యాప్‌లు స్థాన సమాచారాన్ని యాక్సెస్ చేయలేవు. మీరు ఈ విధానాన్ని మరే ఇతర విలువకు సెట్ చేసినా లేదా దేనికీ సెట్ చేయకపోయినా, Android యాప్ స్థాన సమాచారాన్ని యాక్సెస్ చేయాలనుకున్నప్పుడు వినియోగదారు సమ్మతిని అడగడం జరుగుతుంది.</translation>
 <translation id="4480694116501920047">నిర్బంధ సురక్షిత శోధన</translation>
-<translation id="4482640907922304445"><ph name="PRODUCT_NAME" /> టూల్‌బార్‌లో హోమ్ బటన్‌ను చూపిస్తుంది. మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, హోమ్ బటన్ ఎల్లప్పుడూ చూపబడుతుంది. మీరు ఈ సెట్టింగ్‌ను ఆపివేస్తే, హోమ్ బటన్ ఎప్పటికీ చూపించబడదు. మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా ఆపివేసినా, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా అధిగ‌మించ‌లేరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెట్టడం వలన హోమ్ బటన్‌ను చూపించాలో లేదో అనే దాన్ని ఎంచుకోవడానికి వినియోగదారు అనుమతించబడతారు.</translation>
+<translation id="4482640907922304445"><ph name="PRODUCT_NAME" /> టూల్‌బార్‌లో హోమ్ బటన్‌ను చూపిస్తుంది. మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, హోమ్ బటన్ ఎప్పుడూ చూపబడుతుంది. మీరు ఈ సెట్టింగ్‌ను ఆపివేస్తే, హోమ్ బటన్ ఎప్పటికీ చూపబడదు. మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా ఆపివేసినా, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా భర్తీ చేయలేరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెట్టడం వలన హోమ్ బటన్‌ను చూపించాలో లేదో అనే దానిని ఎంచుకోవడానికి వినియోగదారు అనుమతించబడతారు.</translation>
 <translation id="4483649828988077221">ఆటో అప్‌డేట్‌ను నిలిపివేయండి</translation>
 <translation id="4485425108474077672">కొత్త ట్యాబ్ పేజీ URLను కాన్ఫిగర్ చేయండి</translation>
 <translation id="4492287494009043413">స్క్రీన్‌షాట్‌లను తీయడాన్ని నిలిపివేస్తుంది</translation>
@@ -1705,26 +1741,26 @@
 <translation id="449423975179525290"><ph name="PLUGIN_VM_NAME" /> సంబంధిత విధానాలను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="450537894712826981">డిస్క్‌లో కాష్ చేసిన మీడియా ఫైల్‌లను నిల్వ చేయడానికి <ph name="PRODUCT_NAME" /> ఉపయోగించే కాష్ పరిమాణాన్ని కాన్ఫిగర్ చేస్తుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారు '--media-cache-size' ఫ్లాగ్‌ను పేర్కొన్నారో లేదో అనే దానితో సంబంధం లేకుండా అందించిన కాష్ పరిమాణాన్ని ఉపయోగిస్తుంది. ఈ విధానంలో పేర్కొనబడిన విలువ ఖచ్చితమైన సరిహద్దు కాదు, కానీ కాషింగ్ సిస్టమ్‌కు ఒక సూచన, కొన్ని మెగాబైట్‌ల దిగువున ఉన్న‌ ఏ విలువ అయినా చాలా చిన్నదిగా పరిగణించబడుతుంది మరియు స్థిరమైన క‌నిష్ఠ‌ానికి పూరించబడుతుంది.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారు '--media-cache-size' ఫ్లాగ్‌ను పేర్కొన్నారో లేదో అనే దానితో సంబంధం లేకుండా అందించిన కాష్ పరిమాణాన్ని ఉపయోగిస్తుంది. ఈ విధానంలో పేర్కొనబడిన విలువ ఖచ్చితమైన సరిహద్దు కాదు, కానీ కాషింగ్ సిస్టమ్‌కు ఒక సూచన, కొన్ని మెగాబైట్‌ల దిగువ ఉన్న ఏ విలువ అయినా చాలా చిన్నదిగా పరిగణించబడుతుంది, స్థిరమైన కనిష్టానికి పూరించబడుతుంది.
 
-      ఈ విధానం యొక్క విలువ 0 అయితే, డిఫాల్ట్ కాష్ పరిమాణం ఉపయోగించబడుతుంది కానీ వినియోగదారు దీన్ని మార్చలేరు.
+      ఈ విధానం విలువ 0 అయితే, డిఫాల్ట్ కాష్ పరిమాణం ఉపయోగించబడుతుంది, కానీ వినియోగదారు దీనిని మార్చలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ పరిమాణం ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని --media-cache-size ఫ్లాగ్‌తో అధిగ‌మించ‌గ‌లుగుతారు.</translation>
-<translation id="4508686775017063528">ఈ విధానాన్ని ఒప్పు అని సెట్ చేసినా లేదా ఏదీ సెట్ చేయకపోయినా, <ph name="PRODUCT_NAME" /> ప్రారంభించబడుతుంది, యాప్ మెనూ, పేజీ సందర్భ మెనూలు, Cast అనుకూల వెబ్‌సైట్‌లలోని మీడియా నియంత్రణలు మరియు (చూపబడుతుంటే) Cast సాధనాల బార్‌ చిహ్నం నుండి వినియోగదారులు దీనిని ప్రారంభించగలుగుతారు.
+      ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ పరిమాణం ఉపయోగించబడుతుంది, వినియోగదారు దీనిని --media-cache-size ఫ్లాగ్‌తో భర్తీ చేయగలుగుతారు.</translation>
+<translation id="4508686775017063528">ఈ విధానాన్ని ఒప్పు అని సెట్ చేసినా లేదా ఏదీ సెట్ చేయకపోయినా, <ph name="PRODUCT_NAME" /> ప్రారంభించబడుతుంది మరియు వినియోగదారులు దీనిని యాప్ మెనూ, పేజీ సందర్భ మెనూలు, Cast అనుకూల వెబ్‌సైట్‌లలోని మీడియా నియంత్రణలు మరియు (చూపబడుతుంటే) Cast సాధనాల బార్ చిహ్నం ద్వారా ప్రారంభించగలుగుతారు.
 
           ఈ విధానాన్ని తప్పు అని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> నిలిపివేయబడుతుంది.</translation>
 <translation id="4515404363392014383">విశ్వసనీయ మూలాధారాల కోసం సురక్షిత బ్రౌజింగ్‌ను ప్రారంభించండి</translation>
 <translation id="4518251772179446575">సైట్ వినియోగదారుల భౌతిక స్థానాన్ని ట్రాక్ చేయాలనుకున్నప్పుడు అడగండి</translation>
-<translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> ఓమ్నిబాక్స్‌లో శోధన సూచనలను ప్రారంభిస్తుంది. ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారును నిరోధిస్తుంది.
+<translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> ఓమ్నిబాక్స్‌లో శోధన సూచనలను ప్రారంభిస్తుంది, ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారును నిరోధిస్తుంది.
 
       మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, శోధన సూచనలు ఉపయోగించబడతాయి.
 
       మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, శోధన సూచనలు ఎప్పటికీ ఉపయోగించబడవు.
 
-      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా నిలిపివేసినా, ఈ సెట్టింగ్‌ను <ph name="PRODUCT_NAME" />లో వినియోగదారులు మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా నిలిపివేసినా, ఈ సెట్టింగ్‌ను <ph name="PRODUCT_NAME" />లో వినియోగదారులు మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఇది ప్రారంభించబడుతుంది కానీ వినియోగదారు దీన్ని మార్చగలరు.</translation>
-<translation id="4531706050939927436">Android అనువర్తనాలు Google Playని ఉపయోగించి Google నిర్వాహక కన్సోల్ నుండి నిర్బంధంగా ఇన్‌స్టాల్ చేయబడతాయి. అవి ఈ విధానాన్ని ఉపయోగించవు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఇది ప్రారంభించబడుతుంది కానీ వినియోగదారు దీనిని మార్చగలరు.</translation>
+<translation id="4531706050939927436">Android యాప్‌లు Google Playను ఉపయోగించి Google నిర్వాహక కన్సోల్ నుండి నిర్బంధంగా ఇన్‌స్టాల్ చేయవచ్చు. అవి ఈ విధానాన్ని ఉపయోగించవు.</translation>
 <translation id="4534500438517478692">Android నియంత్రణ పేరు:</translation>
 <translation id="4541530620466526913">పరికర-స్థానిక ఖాతాలు</translation>
 <translation id="4543502256674577024">పరికర అప్‌డేట్ సెట్టింగ్‌లు</translation>
@@ -1745,21 +1781,32 @@
 <translation id="4557134566541205630">డిఫాల్ట్ శోధన ప్రదాత కొత్త ట్యాబ్ పేజీ URL</translation>
 <translation id="4567137030726189378">డెవలపర్ సాధనాల వినియోగాన్ని అనుమతించండి</translation>
 <translation id="4578265298946081589">వినియోగదారు సైన్ అవుట్ చేసినప్పుడు రీబూట్ చేయవద్దు.</translation>
-<translation id="4578912515887794133">ఈ సెట్టింగ్ ప్రారంభించబడితే, రిమోట్ యాక్సెస్‌ హోస్ట్ స్థానిక వినియోగదారు పేరు (హోస్ట్ అనుబంధించబడిన) మరియు హోస్ట్ యజమాని లాగా నమోదు చేయబడిన Google ఖాతా పేరును (అంటే హోస్ట్ యజమాని "johndoe@example.com" Google ఖాతా అయితే, "johndoe" ఖాతా పేరుగా పరిగణించబడుతుంది) సరిపోల్చుతుంది. హోస్ట్ యజమాని పేరు హోస్ట్ అనుబంధించబడిన స్థానిక వినియోగదారు పేరుకు భిన్నంగా ఉంటే రిమోట్ యాక్సెస్‌ హోస్ట్ ప్రారంభించబడదు. పేర్కొన్న డొమైన్‌తో (అంటే "example.com") అనుబంధించబడిన హోస్ట్ యజమాని Google ఖాతాను కూడా అమలు చేయడానికి RemoteAccessHostMatchUsername విధానాన్ని తప్పనిసరిగా RemoteAccessHostDomainతో కలిపి ఉపయోగించబడుతుంది.
+<translation id="4578912515887794133">ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, స్థానిక వినియోగదారు పేరు (హోస్ట్ అనుబంధించబడిన) మరియు హోస్ట్ యజమాని లాగా నమోదు చేయబడిన Google ఖాతా పేరును (అంటే హోస్ట్ యజమాని "johndoe@example.com" Google ఖాతా అయితే, "johndoe" ఖాతా పేరుగా పరిగణించబడుతుంది) రిమోట్ యాక్సెస్ హోస్ట్ సరిపోల్చుతుంది. హోస్ట్ యజమాని పేరు హోస్ట్ అనుబంధించబడిన స్థానిక వినియోగదారు పేరుకు భిన్నంగా ఉంటే రిమోట్ యాక్సెస్ హోస్ట్ ప్రారంభించబడదు. పేర్కొన్న డొమైన్‌తో (అంటే "example.com") అనుబంధించబడిన హోస్ట్ యజమాని Google ఖాతాను కూడా అమలు చేయడానికి RemoteAccessHostMatchUsername విధానం తప్పనిసరిగా RemoteAccessHostDomainతో కలిపి ఉపయోగించబడుతుంది.
 
-ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకుంటే, రిమోట్ యాక్సెస్‌ హోస్ట్ ఏ స్థానిక వినియోగదారుతో అయినా అనుబంధించబడుతుంది.</translation>
+ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకుంటే, రిమోట్ యాక్సెస్ హోస్ట్ ఏ స్థానిక వినియోగదారుతో అయినా అనుబంధించబడుతుంది.</translation>
 <translation id="4600786265870346112">పెద్ద కర్సర్‌ను ప్రారంభించండి</translation>
 <translation id="4604931264910482931">స్థానిక సందేశ పద్ధతి బ్లాక్‌లిస్ట్‌ను కాన్ఫిగర్ చేయండి</translation>
-<translation id="4613508646038788144">ఒకవేళ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, Chrome వ్యవహార విధానాలలో అమలు చేయగల కోడ్‌ను చొప్పించడానికి మూడవ పక్ష సాఫ్ట్‌వేర్ అనుమతించబడుతుంది. ఒకవేళ విధానాన్ని సెట్ చేయకున్నా లేదా 'ఒప్పు'గా సెట్ చేసినా, Chrome వ్యవహార విధానాలలో అమలు చేయగల కోడ్‌ను చొప్పించనీయకుండా మూడవ పక్ష సాఫ్ట్‌వేర్ అడ్డుకోబడుతుంది.</translation>
+<translation id="4613508646038788144">ఒకవేళ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే మూడవ పక్షం సాఫ్ట్‌వేర్ Chrome వ్యవహార విధానాలలో అమలు చేయగల కోడ్‌ను చొప్పించడానికి అనుమతించబడుతుంది. ఒకవేళ విధానాన్ని సెట్ చేయకున్నా లేదా 'ఒప్పు'గా సెట్ చేసినా, మూడవ పక్షం సాఫ్ట్‌వేర్ Chrome వ్యవహార విధానాలలో అమలు చేయగల కోడ్‌ను చొప్పించనీయకుండా అడ్డుకోబడుతుంది.</translation>
 <translation id="4617338332148204752"><ph name="PRODUCT_FRAME_NAME" />లో మెటా ట్యాగ్ తనిఖీని దాటవేయండి</translation>
 <translation id="4625915093043961294">ఎక్స్‌టెన్ష‌న్‌ ఇన్‌స్ట‌లేష‌న్ వైట్‌లిస్ట్‌ను కాన్ఫిగర్ చేయి</translation>
+<translation id="463224920692183755">ecryptfs ఎన్‌క్రిప్షన్‌తో వినియోగదారు హోమ్ డైరెక్టరీని సృష్టించినప్పుడు తీసుకోవలసిన చర్యను పేర్కొంటుంది మరియు ext4 ఎన్‌క్రిప్షన్‌కు మార్చాలి.
+
+      మీరు ఈ విధానాన్ని 'DisallowArc' అని సెట్ చేస్తే, వినియోగదారు కోసం Android యాప్‌లు నిలిపివేయబడతాయి మరియు ecryptfs నుండి ext4 ఎన్‌క్రిప్షన్‌కు తరలింపు జరగదు. హోమ్ డైరెక్టరీ ఇప్పటికే ext4-ఎన్‌క్రిప్ట్ అయినప్పుడు అమలు కాకుండా Android యాప్‌లు నివారించబడవు.
+
+      మీరు ఈ విధానాన్ని 'Migrate' అని సెట్ చేస్తే, సైన్ ఇన్ చేసినప్పుడు, వినియోగదారు సమ్మతిని కోరకుండా ecryptfs-ఎన్‌క్రిప్ట్ చేసిన హోమ్ డైరెక్టరీలు ఆటోమేటిక్‌గా ext4 ఎన్‌క్రిప్షన్‌కు తరలించబడతాయి.
+
+      మీరు ఈ విధానాన్ని 'Wipe' అని సెట్ చేస్తే, సైన్ ఇన్ చేసినప్పుడు ecryptfs-ఎన్‌క్రిప్ట్ చేసిన హోమ్ డైరెక్టరీలు తొలగించబడతాయి మరియు బదులుగా కొత్త ext4-ఎన్‌క్రిప్ట్ చేయబడిన హోమ్ డైరెక్టరీలు సృష్టించబడతాయి. హెచ్చరిక: ఇది వినియోగదారు యొక్క స్థానిక డేటాని తీసివేస్తుంది.
+
+      మీరు ఈ విధానాన్ని 'AskUser' అని సెట్ చేస్తే, ecryptfs-ఎన్‌క్రిప్ట్ చేసిన హోమ్ డైరెక్టరీలను కలిగిన వినియోగదారులకు తరలింపు ఎంపిక అందుబాటులో ఉండదు.
+
+      కియోస్క్ వినియోగదారులకు ఈ విధానం వర్తించదు. ఈ విధాన్ని సెట్ చేయకుండా వదిలేస్తే, 'DisallowArc'ని ఎంచుకున్నట్లే పరికరం ప్రవర్తిస్తుంది.</translation>
 <translation id="4632343302005518762">జాబితా చేయబడిన కంటెంట్ రకాలను నిర్వహించడానికి <ph name="PRODUCT_FRAME_NAME" />ను అనుమతించండి</translation>
-<translation id="4632566332417930481">ఎంటర్‌ప్రైజ్ విధానంలో ఇన్‌‌స్టాల్ అయిన ఎక్స్‌టెన్షన్‌లలో డెవలపర్ సాధనాల వినియోగాన్ని నిరాకరించండి. ఇతర సందర్భాల్లో డెవలపర్ సాధనాల వినియోగాన్ని అనుమతించండి</translation>
+<translation id="4632566332417930481">ఎంటర్‌ప్రైజ్ విధానంలో ఇన్‌‌స్టాల్ అయిన ఎక్స్‌టెన్షన్‌లలో డెవలపర్ సాధనాల వినియోగాన్ని నిరాకరించండి, ఇతర సందర్భాలలో డెవలపర్ సాధనాల వినియోగాన్ని అనుమతించండి</translation>
 <translation id="4633786464238689684">ఎగువ అడ్డువరుస కీల డిఫాల్ట్ ప్రవర్తనను ఫంక్షన్ కీలకు మార్చుతుంది.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, కీబోర్డ్ యొక్క ఎగువ అడ్డు వరుస కీలు డిఫాల్ట్‌గా ఫంక్షన్ కీ ఆదేశాలను ఉత్పాదిస్తాయి. వాటి ప్రవర్తనను తిరిగి మీడియా కీలకు మార్చడానికి శోధన కీని నొక్కాలి.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, కీబోర్డ్ యొక్క ఎగువ అడ్డు వరుస కీలు డిఫాల్ట్‌గా ఫంక్షన్ కీ ఆదేశాలను అందిస్తాయి. వాటి ప్రవర్తనను తిరిగి మీడియా కీలకు మార్చడానికి శోధన కీని నొక్కాలి.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే లేదా అసలు సెట్ చేయకుండా వదిలేస్తే, కీబోర్డ్ డిఫాల్ట్‌గా మీడియా కీ ఆదేశాలను ఉత్పాదిస్తుంది. శోధన కీని నొక్కినప్పుడు ఫంక్షన్ కీ ఆదేశాలను ఉత్పాదిస్తుంది.</translation>
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా అసలు సెట్ చేయకుండా వదిలేస్తే, కీబోర్డ్ డిఫాల్ట్‌గా మీడియా కీ ఆదేశాలను అందిస్తుంది, శోధన కీని నొక్కినప్పుడు ఫంక్షన్ కీ ఆదేశాలను అందిస్తుంది.</translation>
 <translation id="4639407427807680016">నిరోధిత జాబితా నుండి మినహాయించాల్సిన స్థానిక సందేశ పద్ధతి హోస్ట్‌ల పేర్లు</translation>
 <translation id="4650759511838826572">URL ప్రోటోకాల్ పథకాలను నిలిపివేయి</translation>
 <translation id="465099050592230505">వ్యాపార వెబ్ స్టోర్ URL (విస్మరించబడింది)</translation>
@@ -1768,14 +1815,14 @@
 <translation id="4670865688564083639">కనిష్టం:</translation>
 <translation id="4671708336564240458">దుర్వినియోగ అనుభవాలు ఉన్న సైట్‌లలో కొత్త విండోలు లేదా ట్యాబ్‌లను తెరవకుండా నిరోధించడాన్ని సెట్ చేసేందుకు లేదా చేయకపోవడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-      ఈ విధానం నిజంకి సెట్ చేయబడితే, దుర్వినియోగ అనుభవాలు ఉన్న సైట్‌లలో కొత్త విండోలు లేదా ట్యాబ్‌లు తెరవకుండా నియంత్రించబడతాయి.
-      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానం అబద్ధంకి సెట్ చేయబడితే ఈ ప్రవర్తన ప్రారంభించబడదు.
-      ఈ విధానం అబద్ధంకి సెట్ చేయబడితే, దుర్వినియోగ అనుభవాలు ఉన్న సైట్‌లలో కొత్త విండోలు లేదా ట్యాబ్‌లు తెరవడానికి అనుమతించబడతాయి.
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, నిజం ఉపయోగించబడుతుంది.</translation>
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, దుర్వినియోగ అనుభవాలు ఉన్న సైట్‌లలో కొత్త విండోలు లేదా ట్యాబ్‌లు తెరవకుండా నియంత్రించబడతాయి.
+      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానాన్ని 'తప్పు'గా సెట్ చేస్తే ఈ ప్రవర్తన ప్రారంభించబడదు.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, దుర్వినియోగ అనుభవాలు ఉన్న సైట్‌లలో కొత్త విండోలు లేదా ట్యాబ్‌లు తెరవడానికి అనుమతించబడతాయి.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, 'ఒప్పు' అనేది ఉపయోగించబడుతుంది.</translation>
 <translation id="467236746355332046">మద్దతిచ్చే లక్షణాలు:</translation>
 <translation id="4674167212832291997">ఎప్పుడూ <ph name="PRODUCT_FRAME_NAME" /> ద్వారా అమలు చేయబడే URL నమూనాల జాబితాను అనుకూలీకరిస్తుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకపోతే, 'ChromeFrameRendererSettings' విధానం ద్వారా పేర్కొన్న విధంగా అన్ని సైట్‌లకు డిఫాల్ట్ రెండరర్ ఉపయోగించబడుతుంది.
+          ఈ విధానాన్ని సెట్ చేయకపోతే, 'ChromeFrameRendererSettings' విధానం ద్వారా పేర్కొనబడిన విధంగా అన్ని సైట్‌లకు డిఫాల్ట్ రెండరర్ ఉపయోగించబడుతుంది.
 
           నమూనా ఉదాహరణల కోసం https://www.chromium.org/developers/how-tos/chrome-frame-getting-started చూడండి.</translation>
 <translation id="467449052039111439">URLల యొక్క జాబితాని తెరువు</translation>
@@ -1783,8 +1830,8 @@
 <translation id="4680936297850947973">M68లో విస్మరించబడింది. బదులుగా DefaultPopupsSettingను ఉపయోగించండి.
 
       పూర్తి వివరణ కోసం, https://www.chromestatus.com/features/5675755719622656ను చూడండి.
-      ఈ విధానం ప్రారంభించబడితే, ఏకకాలంలో నావిగేట్ చేయడానికి, కొత్త విండోలు/ట్యాబ్‌లను తెరవడానికి సైట్‌లు అనుమతించబడతాయి.
-      ఈ విధానం నిలిపివేయబడితే లేదా సెట్ చేయకపోతే, ఏకకాలంలో నావిగేట్ చేయడం కోసం, కొత్త విండో/ట్యాబ్‌ను తెరవడం కోసం సైట్‌లు అనుమతించబడవు.</translation>
+      ఈ విధానాన్ని ప్రారంభిస్తే, ఏకకాలంలో నావిగేట్ చేయడానికి మరియు కొత్త విండోలు/ట్యాబ్‌లను తెరవడానికి సైట్‌లు అనుమతించబడతాయి.
+      ఈ విధానాన్ని నిలిపివేస్తే లేదా సెట్ చేయకపోతే, ఏకకాలంలో నావిగేట్ చేయడం మరియు కొత్త విండో/ట్యాబ్‌ను తెరవడం కోసం సైట్‌లు అనుమతించబడవు.</translation>
 <translation id="4680961954980851756">స్వీయపూర్తిని ప్రారంభించు</translation>
 <translation id="4703402283970867140">స్క్రీన్ పూర్తిగా మసకబారేంత వరకు సమయాన్ని పెంచేందుకు స్మార్ట్ కాంతివిహీనత మోడల్‌ను ప్రారంభించవచ్చు</translation>
 <translation id="4722122254122249791">పేర్కొన్న మూలాలకు సైట్ ఐసోలేషన్ ప్రారంభించండి</translation>
@@ -1797,7 +1844,7 @@
 <translation id="4725528134735324213">Android బ్యాకప్ సేవను ప్రారంభించండి</translation>
 <translation id="4725801978265372736">స్థానిక వినియోగదారు పేరు మరియు రిమోట్ యాక్సెస్ హోస్ట్ యజమాని పేరు తప్పనిసరిగా సరిపోలడం ఆవశ్యకం</translation>
 <translation id="4733471537137819387">ఏకీకరణ HTTP అధికార సంబంధించిన విధానాలు.</translation>
-<translation id="4744190513568488164"><ph name="PRODUCT_NAME" /> అధికారం ఇవ్వబడే సర్వర్‌లు.
+<translation id="4744190513568488164">ఏ సర్వర్‌లకు <ph name="PRODUCT_NAME" /> అధికారాన్ని ఇవ్వవచ్చో సెట్ చేయవచ్చు.
 
           అనేక సర్వర్ పేర్లు ఉంటే, వాటిని కామాలతో వేరు చేయండి. వైల్డ్‌కార్డ్‌లు (*) అనుమతించబడతాయి.
 
@@ -1812,15 +1859,15 @@
       ఒకవేళ ఈ సెట్టింగ్‌ని నిలిపివేస్తే, ఆటోఫిల్‌ ఇంకెప్పుడూ వివరాలను సూచించడం లేదా క్రెడిట్ కార్డ్ సమాచారాన్ని పూరించడం గానీ చేయదు, ఇంకా వెబ్‌ని బ్రౌజ్ చేసే సమయంలో వినియోగదారు సమర్పించే అదనపు క్రెడిట్ కార్డ్ సమాచారాన్ని కూడా సేవ్ చేయదు.
 
       ఒకవేళ ఈ సెట్టింగ్‌ని ప్రారంభించినట్లయితే లేదా విలువను సెట్ చేయకుంటే, UIలో క్రెడిట్ కార్డ్‌ల ఆటోఫిల్‌ ఫీచర్‌ని వినియోగదారు నియంత్రించగలుగుతారు.</translation>
-<translation id="4791031774429044540">పెద్ద కర్సర్ యాక్సెస్‌ ఫీచ‌ర్‌ను ప్రారంభించండి.
+<translation id="4791031774429044540">పెద్ద కర్సర్ యాక్సెస్ ఫీచర్‌ను ప్రారంభించండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, పెద్ద కర్సర్ ఎల్లప్పుడూ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, పెద్ద కర్సర్ ఎప్పుడూ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, పెద్ద కర్సర్ ఎల్లప్పుడూ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, పెద్ద కర్సర్ ఎప్పుడూ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, పెద్ద కర్సర్ ప్రాథమికంగా నిలిపివేయబడుతుంది కానీ వినియోగదారు ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ప్రారంభంలో పెద్ద కర్సర్ నిలిపివేయబడుతుంది కానీ వినియోగదారు దానిని ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
 <translation id="4802905909524200151"><ph name="TPM_FIRMWARE_UPDATE_TPM" /> ఫర్మ్‌వేర్ అప్‌డేట్ ప్రవర్తనను కాన్ఫిగర్ చేయండి</translation>
 <translation id="4804828344300125154">వినియోగదారు సైన్ అవుట్ చేసినప్పుడు ఎల్లవేళలా రీబుట్ చేయండి.</translation>
 <translation id="4807950475297505572">తగినంత ఖాళీ స్థలం ఏర్పడే వరకు చాలా కాలం క్రితం ఉపయోగించిన వినియోగదారులు తీసివేయబడతారు</translation>
@@ -1833,7 +1880,7 @@
 <translation id="487460824085252184">ఆటోమేటిక్‌గా తరలించబడుతుంది, వినియోగదారు సమ్మతి కోసం అడగదు.</translation>
 <translation id="4874982543810021567">ఈ సైట్‌లలో WebUSBని బ్లాక్ చేయండి</translation>
 <translation id="4876805738539874299">గరిష్ట SSL వెర్షన్ ప్రారంభించబడింది</translation>
-<translation id="4897928009230106190">POSTతో సూచించిన శోధన చేస్తున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {searchTerms} వంటి టెంప్లేట్ పారామీటర్ అయితే, ఇది వాస్తవ శోధన పదాల డేటాతో భర్తీ చేయబడుతుంది.
+<translation id="4897928009230106190">POSTతో సూచించిన శోధన చేస్తున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {searchTerms} వంటి టెంప్లేట్ పారామీటర్ అయితే, దీనిని  వాస్తవ శోధన పదాల డేటా భర్తీ చేస్తుంది.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, సూచన శోధన అభ్యర్థన GET పద్ధతిని ఉపయోగించి పంపబడుతుంది.
 
@@ -1842,9 +1889,9 @@
 <translation id="4899708173828500852">సురక్షిత బ్రౌజింగ్‌ని ప్రారంభించు</translation>
 <translation id="4899802251198446659"><ph name="PRODUCT_NAME" />లో వీడియోలను ఆటోమేటిక్‌గా (వినియోగదారు సమ్మతి లేకుండా) ఆడియో కంటెంట్‌తో పాటు ప్లే చేయాలో లేదో నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-      విధానాన్ని ఒప్పు అని సెట్ చేసినట్లయితే, మీడియాను ఆటోప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడుతుంది.
-      విధానాన్ని తప్పు అని సెట్ చేసినట్లయితే, మీడియాను ఆటోప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడదు. నిర్దిష్ట URL నమూనాల కోసం దీనిని భర్తీ చేయడానికి AutoplayWhitelist విధానాన్ని ఉపయోగించవచ్చు.
-      డిఫాల్ట్‌గా, మీడియాను ఆటోప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడదు. నిర్దిష్ట URL నమూనాల కోసం దీనిని భర్తీ చేయడానికి AutoplayWhitelist విధానాన్ని ఉపయోగించవచ్చు.
+      విధానాన్ని ఒప్పు అని సెట్ చేసినట్లయితే, మీడియాను స్వీయ ప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడుతుంది.
+      విధానాన్ని తప్పు అని సెట్ చేసినట్లయితే, మీడియాను స్వీయ ప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడదు. నిర్దిష్ట URL నమూనాల కోసం దీనిని భర్తీ చేయడానికి AutoplayWhitelist విధానాన్ని ఉపయోగించవచ్చు.
+      డిఫాల్ట్‌గా, మీడియాను స్వీయ ప్లే చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడదు. నిర్దిష్ట URL నమూనాల కోసం దీనిని భర్తీ చేయడానికి AutoplayWhitelist విధానాన్ని ఉపయోగించవచ్చు.
 
       గమనించండి, <ph name="PRODUCT_NAME" /> అమలవుతున్నప్పుడు ఈ విధానం మారినట్లయితే, కొత్తగా తెరిచిన ట్యాబ్‌లకు మాత్రమే ఇది వర్తిస్తుంది. కనుక, కొన్ని ట్యాబ్‌లు ఇప్పటికీ మునుపటి విధంగానే ప్రవర్తించవచ్చు.
       </translation>
@@ -1857,20 +1904,53 @@
 
       ఈ విధానం తప్పు అని సెట్ చేస్తే, వినియోగదారు మేనేజర్ నుండి కొత్త ప్రొఫైల్‌లను సృష్టించడానికి <ph name="PRODUCT_NAME" /> అనుమతించదు.</translation>
 <translation id="4970855112942626932">బ్రౌజర్ సైన్-ఇన్‌ని నిలిపివేయండి</translation>
-<translation id="4978405676361550165">"OffHours" విధానాన్ని సెట్ చేసినట్లయితే, పేర్కొనబడిన సమయ వ్యవధులలో పేర్కొనబడిన పరికర విధానాలు విస్మరించబడతాయి (ఈ విధానాల యొక్క డిఫాల్ట్ సెట్టింగ్‌లు ఉపయోగించబడతాయి). "OffHours" ప్రారంభమైన లేదా ముగిసిన ప్రతిసారి పరికర విధానాలను Chrome తిరిగి వర్తింపజేస్తుంది. "OffHours" సమయం ముగిసినప్పుడు మరియు పరికర విధాన సెట్టింగ్‌లు మార్చబడినప్పుడు (ఉదా., వినియోగదారు అనుమతి లేని ఖాతాతో సైన్ ఇన్ చేసినప్పుడు) వినియోగదారుకు తెలియజేయబడుతుంది మరియు నిర్బంధంగా సైన్ అవుట్ చేయాల్సి వస్తుంది.</translation>
+<translation id="4978405676361550165">"OffHours" విధానాన్ని సెట్ చేసినట్లయితే, పేర్కొనబడిన సమయ వ్యవధులలో పేర్కొనబడిన పరికర విధానాలు విస్మరించబడతాయి (ఈ విధానాల యొక్క డిఫాల్ట్ సెట్టింగ్‌లు ఉపయోగించబడతాయి). "OffHours" ప్రారంభమైన లేదా ముగిసిన ప్రతిసారీ పరికర విధానాలను Chrome తిరిగి వర్తింపజేస్తుంది. "OffHours" సమయం ముగిసినప్పుడు మరియు పరికర విధాన సెట్టింగ్‌లు మార్చబడినప్పుడు (ఉదా., వినియోగదారు అనుమతి లేని ఖాతాతో సైన్ ఇన్ చేసినప్పుడు) వినియోగదారుకు తెలియజేయబడుతుంది, నిర్బంధంగా సైన్ అవుట్ చేయాల్సి వస్తుంది.</translation>
 <translation id="4980635395568992380">డేటా రకం:</translation>
 <translation id="4983201894483989687">పాత ప్లగ్‌ఇన్‌లని అమలు చెయ్యడానికి అనుమతించు</translation>
 <translation id="4986560318567565414">ప్రత్యామ్నాయ బ్రౌజర్ నుండి మారడం కోసం Chromeను సూచించే పాత్.</translation>
 <translation id="4988291787868618635">ఇన్‌యాక్టివ్‌ ఆలస్యం ఏర్పడినప్పుడు తీసుకోవలసిన చర్య</translation>
 <translation id="4995548127349206948">NTLMv2 ప్రమాణీకరణ ప్రారంభం ఎంపిక.</translation>
+<translation id="5030889661505907084">
+      విధానాన్ని ఒప్పు అని సెట్ చేస్తే, ప్లాట్‌ఫామ్ విధానంతో వైరుధ్యం తలెత్తినప్పుడు క్లౌడ్ విధానమే ప్రాధాన్యంగా పరిగణించబడుతుంది.
+      ఒకవేళ విధానాన్ని తప్పు అని సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, ప్లాట్‌ఫామ్ విధానానికి క్లౌడ్ విధానంతో వైరుధ్యం తలెత్తినా, అదే ప్రాధాన్యంగా తీసుకోబడుతుంది.
+
+      ఒక ప్లాట్‌ఫామ్‌గా మాత్రమే ఈ విధానం అందుబాటులో ఉంటుంది.
+      </translation>
 <translation id="5047604665028708335">కంటెంట్ ప్యాక్‌లకు వెలుపల ఉన్న సైట్‌లకు యాక్సెస్‌ను అనుమతించు</translation>
-<translation id="5052081091120171147">ప్రారంభించబడితే, ఈ విధానం ప్రస్తుత డిపాల్ట్ బ్రౌజర్ నుండి బ్రౌజింగ్ చరిత్రను బలవంతంగా దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, బ్రౌజింగ్ చరిత్ర దిగుమతి చేయదు. ఇది సెట్ చేయకపోతే, వినియోగదారు దిగుమతి చేయాలా అని అడగబడతారు లేదా దిగుమతి చేయడం ఆటోమేటిక్‌గా జరుగుతుంది.</translation>
+<translation id="5052081091120171147">ప్రారంభించబడితే, ఈ విధానం ప్రస్తుత డిపాల్ట్ బ్రౌజర్ నుండి బ్రౌజింగ్ చరిత్రను బలవంతంగా దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, బ్రౌజింగ్ చరిత్రను దిగుమతి చేయదు. ఇది సెట్ చేయకపోతే, వినియోగదారు దిగుమతి చేయాలా అని అడగబడతారు లేదా దిగుమతి చేయడం ఆటోమేటిక్‌గా జరుగుతుంది.</translation>
+<translation id="5055312535952606505"><ph name="PRODUCT_NAME" /> కోసం ప్రాక్సీ సెట్టింగ్‌లను కాన్ఫిగర్ చేస్తుంది. ARC-యాప్‌ల కోసం కూడా ఈ ప్రాక్సీ సెట్టింగ్‌లు అందుబాటులో ఉంటాయి.
+
+          మీరు ఈ సెట్టింగ్‌ని ప్రారంభిస్తే, ఆదేశ పంక్తి నుండి పేర్కొన్న అన్ని ప్రాక్సీకి సంబంధించిన సెట్టింగ్‌లను <ph name="PRODUCT_NAME" /> మరియు ARC యాప్‌లు విస్మరిస్తాయి.
+
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు స్వయంగా తమ స్వంత ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకోగలరు.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని సెట్ చేస్తే, <ph name="PROXY_MODE_POLICY_NAME" />, <ph name="PROXY_PAC_URL_POLICY_NAME" />, <ph name="PROXY_SERVER_POLICY_NAME" />, <ph name="PROXY_BYPASS_POLICY_NAME" /> మరియు <ph name="PROXY_SERVER_MODE_POLICY_NAME" /> విధానాలను విడివిడిగా ఇది భర్తీ చేస్తుంది.
+
+          <ph name="PRODUCT_NAME" /> ఉపయోగించే ప్రాక్సీ సర్వర్‌ను పేర్కొనడం కోసం <ph name="PROXY_MODE_PROXY_SETTINGS_FIELD" /> ఫీల్డ్ మిమ్మల్ని అనుమతిస్తుంది మరియు ప్రాక్సీ సెట్టింగ్‌లను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
+
+          <ph name="PROXY_PAC_URL_PROXY_SETTINGS_FIELD" /> ఫీల్డ్ అన్నది ప్రాక్సీ .pac ఫైల్‌కి URL.
+
+          <ph name="PROXY_SERVER_PROXY_SETTINGS_FIELD" /> ఫీల్డ్ అన్నది ప్రాక్సీ సర్వర్ యొక్క URL.
+
+          <ph name="PROXY_BYPASS_LIST_PROXY_SETTINGS_FIELD" /> ఫీల్డ్ అన్నది <ph name="PRODUCT_NAME" /> బైపాస్ చేసే ప్రాక్సీ హోస్ట్‌ల జాబితా.
+
+          'ProxyMode' ఫీల్డ్‌కి అనుకూలంగా <ph name="PROXY_SERVER_MODE_PROXY_SETTINGS_FIELD" /> ఫీల్డ్ విస్మరించబడింది. <ph name="PRODUCT_NAME" /> ఉపయోగించే ప్రాక్సీ సర్వర్‌ను పేర్కొనడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది మరియు ప్రాక్సీ సెట్టింగ్‌లను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
+
+          మీరు 'direct' విలువను 'ProxyMode' వలె ఎంచుకుంటే, ఎప్పటికీ ప్రాక్సీ ఉపయోగించబడదు మరియు అన్ని ఇతర ఫీల్డ్‌లు విస్మరించబడతాయి.
+
+          మీరు 'system' విలువను 'ProxyMode' వలె ఎంచుకుంటే, సిస్టమ్ యొక్క ప్రాక్సీ ఉపయోగించబడుతుంది మరియు అన్ని ఇతర ఫీల్డ్‌లు విస్మరించబడతాయి.
+
+          మీరు 'auto_detect' విలువను 'ProxyMode' వలె ఎంచుకుంటే, అన్ని ఇతర ఫీల్డ్‌లు విస్మరించబడతాయి.
+
+          మీరు 'fixed_server' విలువను 'ProxyMode' వలె ఎంచుకుంటే, 'ProxyServer' మరియు 'ProxyBypassList' ఫీల్డ్‌లు ఉపయోగించబడతాయి.
+
+          మీరు 'pac_script' విలువను 'ProxyMode' వలె ఎంచుకుంటే, 'ProxyPacUrl' మరియు 'ProxyBypassList' ఫీల్డ్‌లు ఉపయోగించబడతాయి.</translation>
 <translation id="5056708224511062314">స్క్రీన్ మాగ్నిఫైయర్ నిలిపివేయబడింది</translation>
 <translation id="5058573563327660283">ఆటోమేటిక్ క్లీన్-అప్ సమయంలో డిస్క్ స్థలాన్ని ఖాళీ చేయడానికి ఉపయోగించబడే వ్యూహాన్ని (విస్మరించబడింది) ఎంచుకోండి</translation>
 <translation id="5067143124345820993">లాగిన్ వినియోగదారు వైట్‌లిస్ట్‌</translation>
-<translation id="5075834892754086022">విధానం సెట్ చేయబడితే, కాన్ఫిగర్ చేయబడిన PIN యొక్క కనిష్ట అంకెల పరిమితి అమలు చేయబడుతుంది. (PIN యొక్క ఖచ్చితమైన కనిష్ట అంకెల పరిమితి 1; 1 కంటే తక్కువ విలువలు 1గా పరిగణించబడతాయి.)
+<translation id="5075834892754086022">ఈ విధానాన్ని సెట్ చేస్తే, కాన్ఫిగర్ చేయబడిన PIN యొక్క కనిష్ట అంకెల పరిమితి అమలు చేయబడుతుంది. (PIN యొక్క ఖచ్చితమైన కనిష్ట అంకెల పరిమితి 1; 1 కంటే తక్కువ విలువలు 1గా పరిగణించబడతాయి.)
 
-విధానం సెట్ చేయబడకపోతే, 6 అంకెల కనీస PIN అంకెల పరిమితి అమలు చేయబడుతుంది. ఇది సిఫార్సు చేయబడిన కనీస పరిమితి.</translation>
+విధానాన్ని సెట్ చేయకపోతే, 6 అంకెల కనీస PIN అంకెల పరిమితి అమలు చేయబడుతుంది. ఇది సిఫార్సు చేయబడిన కనీస పరిమితి.</translation>
 <translation id="5076274878326940940">డిఫాల్ట్ శోధన ప్రదాత వినియోగాన్ని ప్రారంభిస్తుంది.
 
           మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, వినియోగదారు URL కాకుండా ఓమ్నిబాక్స్‌లో టైప్ చేసినప్పుడు డిఫాల్ట్ శోధన నిర్వహించబడుతుంది.
@@ -1887,15 +1967,15 @@
 <translation id="5085647276663819155">ప్రింట్‌ ప్రివ్యూను నిలిపివేయి</translation>
 <translation id="5090209345759901501">Flash కంటెంట్ సెట్టింగ్‌ను మొత్తం కంటెంట్‌కు విస్తరింపజేయండి</translation>
 <translation id="5093540029655764852">క్లయింట్, వారి మెషీన్ ఖాతా పాస్‌వర్డ్‌‌ను మార్చే రేట్‌ను (రోజులలో) పేర్కొంటుంది. 
-పాస్‌వర్డ్‌ క్లయింట్ ద్వారా యాదృచ్చికంగా సృష్టించబడి, వినియోగదారుకు కనిపించకుండా ఉంటుంది.
+పాస్‌వర్డ్‌ అనేది, క్లయింట్ ద్వారా యాదృచ్చికంగా సృష్టించబడి, వినియోగదారుకు కనిపించకుండా ఉంటుంది.
 
-      వినియోగదారును పాస్‌వర్డ్‌‌ల వలే, మెషీన్ పాస్‌వర్డ్‌‌లను కూడా క్రమబద్ధంగా మార్చాలి. ఈ విధానాన్ని నిలిపివేసినా లేదా అధిక సంఖ్యలో రోజులను సెట్ చేసినా, దాడులు చేసే అవ‌కాశం ఉన్న‌ వారికి మెషీన్ ఖాతా పాస్‌వర్డ్‌‌‌ను కనుగొనేందుకు మరియు దాన్ని ఉపయోగించేందుకు ఎక్కువ సమయం ఉంటుంది కాబట్టి భద్రతపై ప్రతికూల ప్రభావం ఉండవచ్చు.
+      వినియోగదారును పాస్‌వర్డ్‌‌ల లాగా, మెషీన్ పాస్‌వర్డ్‌‌లను కూడా క్రమబద్ధంగా మార్చాలి. ఈ విధానాన్ని నిలిపివేసినా లేదా అధిక సంఖ్యలో రోజులను సెట్ చేసినా, దాడులు చేసే వారికి మెషీన్ ఖాతా పాస్‌వర్డ్‌‌‌ను కనుగొనేందుకు మరియు దానిని ఉపయోగించేందుకు ఎక్కువ సమయం ఉంటుంది కాబట్టి భద్రతపై ప్రతికూల ప్రభావం ఉండవచ్చు.
 
       విధానాన్ని సెట్ చేయకపొతే, మెషీన్ ఖాతా పాస్‌వర్డ్‌‌ ప్రతి 30 రోజులకు మార్చబడుతుంది.
 
-      విధానాన్ని 0కు సెట్ చేస్తే, మెషీన్ ఖాతా పాస్‌వర్డ్‌‌ మార్పు నిలిపివేయబడుతుంది.
+      విధానాన్ని 0కి సెట్ చేస్తే, మెషీన్ ఖాతా పాస్‌వర్డ్‌‌ మార్పు నిలిపివేయబడుతుంది.
 
-      క్లయింట్ చాలా ఎక్కువ రోజుల వరకు ఆఫ్‌లైన్‌లో ఉంటే పాస్‌వర్డ్‌‌‌లు, పేర్కొన్న రోజులు కన్నా ముందే పాతవి అవ్వచ్చు అని గమనించండి.</translation>
+      క్లయింట్ చాలా ఎక్కువ రోజుల వరకు ఆఫ్‌లైన్‌లో ఉంటే, పాస్‌వర్డ్‌‌‌లు పేర్కొన్న రోజులు కన్నా ముందే పాతబడవచ్చని గమనించండి.</translation>
 <translation id="510196893779239086">గత ట్యాబ్ మరొక బ్రౌజర్‌కు మారినప్పుడు Chromeను పూర్తిగా మూసివేయాలా వద్దా అని ఈ విధానం నియంత్రిస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినప్పుడు లేదా ఒప్పునకు సెట్ చేసినప్పుడు, ప్రత్యామ్నాయ బ్రౌజర్‌కు మారిన తర్వాత Chrome కనీసం ఒక ట్యాబ్‌ను తెరిచి ఉంచుతుంది.
@@ -1915,26 +1995,44 @@
 <translation id="5130288486815037971">TLSలో RC4 సైఫర్ సూట్‌లు ప్రారంభించబడ్డాయి</translation>
 <translation id="5141670636904227950">లాగిన్ స్క్రీన్‌లో ప్రారంభించబడే డిఫాల్ట్ స్క్రీన్ మాగ్నిఫైయర్ రకాన్ని సెట్ చేయండి</translation>
 <translation id="5142301680741828703">ఎల్లప్పుడు <ph name="PRODUCT_FRAME_NAME" />లో ఈ క్రింది URL విధానాలాని రెండర్ చెయ్యి</translation>
-<translation id="5148753489738115745"><ph name="PRODUCT_FRAME_NAME" /> <ph name="PRODUCT_NAME" />ను ప్రారంభించినప్పుడు ఉపయోగించే అదనపు పారామీట‌ర్‌ల‌ను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
+<translation id="5148753489738115745"><ph name="PRODUCT_FRAME_NAME" /> <ph name="PRODUCT_NAME" />ను ప్రారంభించినప్పుడు ఉపయోగించే అదనపు పారామీటర్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ ఆదేశ లైన్‌ ఉపయోగించబడుతుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ ఆదేశ పంక్తి ఉపయోగించబడుతుంది.</translation>
 <translation id="5159469559091666409">పర్యవేక్షిత నెట్‌వర్క్ ప్యాకెట్‌లు పంపబడే సమయ వ్యవధి, మిల్లీసెకన్లలో ఉండాలి.
 
-      ఈ విధానాన్ని సెట్ చేయకుంటే, డిఫాల్ట్ సమయ వ్యవధి 3 నిమిషాలు ఉంటుంది. దీని కనీస సమయ వ్యవధి 30 సెకన్లు మరియు గరిష్ట సమయ వ్యవధి 24 గంటలు - ఈ పరిధిని విలువలు దాటితే నిర్బంధంగా ఈ పరిధిలోకి మార్చబడతాయి.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుంటే, డిఫాల్ట్ సమయ వ్యవధి 3 నిమిషాలు ఉంటుంది. దీని కనీస సమయ వ్యవధి 30 సెకన్లు, గరిష్ట వ్యవధి 24 గంటలు - ఈ పరిధిని విలువలు దాటితే నిర్బంధంగా ఈ పరిధిలోకి మార్చబడతాయి.</translation>
 <translation id="5163002264923337812">పాత వెబ్-ఆధారిత సైన్‌ఇన్‌ విధానాన్ని ప్రారంభించండి</translation>
+<translation id="5168529971295111207">ఈ విధానం విస్మరించబడింది, బదులుగా ProxyModeని ఉపయోగించండి.
+
+          <ph name="PRODUCT_NAME" /> ఉపయోగించే ప్రాక్సీ సర్వర్‌ను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు ప్రాక్సీ సెట్టింగ్‌లను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని పేర్కొనకపోతేనే ఈ విధానం ప్రభావవంతం అవుతుంది.
+
+          ఎప్పటికీ ప్రాక్సీ సర్వర్‌ను ఉపయోగించకుండా, ఎల్లప్పుడూ నేరుగానే కనెక్ట్ చేయాలని మీరు ఎంచుకుంటే, అన్ని ఇతర ఎంపికలు విస్మరించబడతాయి.
+
+          మీరు సిస్టమ్ ప్రాక్సీ సెట్టింగ్‌లను ఉపయోగించాలనుకుంటే లేదా ప్రాక్సీ సర్వర్‌ని స్వయంచాలకంగా గుర్తించాలనుకుంటే, అన్ని ఇతర ఎంపికలు విస్మరించబడతాయి.
+
+          మీరు మాన్యువల్ ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకుంటే, 'ప్రాక్సీ సర్వర్ యొక్క చిరునామా లేదా URL', 'ప్రాక్సీ .pac ఫైల్‌కి URL' మరియు 'కామాతో వేరు చేసిన ప్రాక్సీ బైపాస్ నియమాల జాబితా'లో మరిన్ని ఎంపికలను పేర్కొనవచ్చు. ARC-యాప్‌ల కోసం అత్యధిక ప్రాధాన్యత ఉన్న HTTP ప్రాక్సీ సర్వర్ మాత్రమే అందుబాటులో ఉంటుంది.
+
+          వివరణాత్మక ఉదాహరణల కోసం, ఈ లింక్‌ను సందర్శించండి:
+          <ph name="PROXY_HELP_URL" />.
+
+          మీరు ఈ సెట్టింగ్‌ని ప్రారంభిస్తే, ఆదేశ పంక్తి నుండి పేర్కొన్న అన్ని ప్రాక్సీకి సంబంధించిన సెట్టింగ్‌లను <ph name="PRODUCT_NAME" /> విస్మరిస్తుంది.
+
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు స్వయంగా తమ స్వంత ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకోగలరు.</translation>
 <translation id="5182055907976889880"><ph name="PRODUCT_OS_NAME" />లో Google డిస్క్‌ను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="5183383917553127163">బ్లాక్‌లిస్ట్‌ నుండి ఏ ఎక్స్‌టెన్షన్‌లను మినహాయించవచ్చో పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-          బ్లాక్‌లిస్ట్‌ విలువ * అయితే, అన్ని ఎక్స్‌టెన్ష‌న్‌లు బ్లాక్‌లిస్ట్‌లో చేర్చ‌బ‌డ్డాయ‌ని అర్థం. వినియోగదారులు వైట్‌లిస్ట్‌లోని ఎక్స్‌టెన్ష‌న్‌లను మాత్రమే ఇన్‌స్టాల్ చేయగలరు.
+          బ్లాక్‌లిస్ట్‌ విలువ * అయితే, అన్ని ఎక్స్‌టెన్ష‌న్‌లు బ్లాక్‌లిస్ట్‌లో చేర్చ‌బ‌డతాయ‌ని అర్థం. వినియోగదారులు వైట్‌లిస్ట్‌లోని ఎక్స్‌టెన్ష‌న్‌లను మాత్రమే ఇన్‌స్టాల్ చేయగలరు.
 
-          డిఫాల్ట్‌గా అన్ని ఎక్స్‌టెన్ష‌న్‌లు వైట్‌లిస్ట్‌గా చేర్చబడ్డాయి. కానీ, అన్ని ఎక్స్‌టెన్ష‌న్‌లు విధానం ప్రకారం బ్లాక్‌లిస్ట్‌ అయితే, వైట్‌లిస్ట్‌ ఆ విధానాన్ని అధిగ‌మించ‌డానికి ఉపయోగించబడుతుంది.</translation>
+          డిఫాల్ట్‌గా అన్ని ఎక్స్‌టెన్ష‌న్‌లు వైట్‌లిస్ట్‌గా చేర్చబడతాయి. కానీ, విధానం ప్రకారం అన్ని ఎక్స్‌టెన్ష‌న్‌లు బ్లాక్‌లిస్ట్‌ అయితే, ఆ విధానాన్ని అధిగ‌మించ‌డానికి వైట్‌లిస్ట్‌ ఉపయోగించబడుతుంది.</translation>
 <translation id="519247340330463721">సురక్షిత బ్రౌజింగ్ సంబంధిత విధానాలను కాన్ఫిగర్ చేయండి.</translation>
-<translation id="5192837635164433517"><ph name="PRODUCT_NAME" />లో రుపొందించబడిన ప్రత్యామ్నాయ ఎర్ర‌ర్‌ పేజీల వినియోగాన్ని ప్రారంభిస్తుంది  ('పేజీ కనుగొనబడలేదు' వంటివి). వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది. మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, ప్రత్యామ్నాయ ఎర్ర‌ర్‌ పేజీలు ఉపయోగించబడతాయి. మీరు ఈ సెట్టింగ్‌ను ఆపివేస్తే, ప్రత్యామ్నాయ ఎర్ర‌ర్‌ పేజీలు ఉపయోగించబడవు. మీరు ప్రారంభించినా లేదా ఆపివేసినా, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా అధిగ‌మించ‌లేరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఇది ప్రారంభించబడుతుంది కానీ వినియోగదారు దీనిని మార్చగలరు.</translation>
+<translation id="5192837635164433517"><ph name="PRODUCT_NAME" />లో రుపొందించబడిన ప్రత్యామ్నాయ ఎర్రర్ పేజీల వినియోగాన్ని ప్రారంభిస్తుంది  ('పేజీ కనుగొనబడలేదు' వంటివి) మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది. మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, ప్రత్యామ్నాయ ఎర్రర్ పేజీలు ఉపయోగించబడతాయి. మీరు ఈ సెట్టింగ్‌ను ఆపివేస్తే, ప్రత్యామ్నాయ ఎర్రర్ పేజీలు ఉపయోగించబడవు. మీరు ప్రారంభించినా లేదా ఆపివేసినా, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా భర్తీ చేయలేరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఇది ప్రారంభించబడుతుంది, కానీ వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="5196805177499964601">డెవలపర్ మోడ్‌ను బ్లాక్ చేయండి.
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసి ఉంటే, <ph name="PRODUCT_OS_NAME" /> డెవలపర్ మోడ్‌లోకి బూటింగ్ చేయబడకుండా పరికరాన్ని నిరోధిస్తుంది. సిస్టమ్ బూట్ చేయడానికి అనుమతించదు. డెవలపర్ స్విచ్ ఆన్ చేయబడినప్పుడు స్క్రీన్‌పై ఎర్ర‌ర్‌ డైలాగ్‌ను చూపుతుంది.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసి ఉంటే, <ph name="PRODUCT_OS_NAME" /> డెవలపర్ మోడ్‌లోకి బూట్ కాకుండా పరికరాన్ని నిరోధిస్తుంది. సిస్టమ్ బూట్ చేయడానికి అనుమతించదు, డెవలపర్ స్విచ్ ఆన్ చేయబడినప్పుడు స్క్రీన్‌పై ఎర్రర్ డైలాగ్‌ను చూపుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా తప్పున‌కు సెట్ చేసి ఉంటే, పరికరంలో డెవలపర్ మోడ్ అలాగే అందుబాటులో ఉంటుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేసి ఉంటే, పరికరంలో డెవలపర్ మోడ్ అలాగే అందుబాటులో ఉంటుంది.</translation>
 <translation id="520403427390290017">ట్యాబ్ లైఫ్‌సైకిల్‌ల ఫీచర్ ద్వారా CPU మెమరీని అలాగే దానితో పాటుగా ఎక్కువ సేపటి నుంచి రన్ అవుతూ, నిరుపయోగంగా ఉన్న ట్యాబ్‌లలో దాగి ఉన్న మెమోరీని, విడుదల చేయడానికి ట్యాబ్‌లను ముందుగా కుదింపు చేసి, అక్కడికక్కడే స్తంభింపజేస్తుంది ఆపై వాటిని తొలగిస్తుంది.
 
       ఒకవేళ ఈ విధానాన్ని తప్పుకి సెట్ చేసినట్లయితే ట్యాబ్ లైఫ్‌సైకిల్‌ల ఫీచర్ నిలిపివేయబడుతుంది, అలాంటప్పుడు ట్యాబ్‌లన్నీ మాములుగానే అమలు అవుతూ ఉంటాయి. 
@@ -1949,9 +2047,9 @@
           విధానాన్ని సెట్ చేయకున్నా లేదా ఖాళీగా వదిలేసినా, డిఫాల్ట్ కొత్త ట్యాబ్ పేజీ ఉపయోగించబడుతుంది.
 
           ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్‌తో అనుబంధితమైన Windows సందర్భాలు లేదా పరికర నిర్వహణ కోసం నమోదైన Windows 10 Pro లేదా Enterprise సందర్భాలలో మాత్రమే అందుబాటులో ఉంటుంది.</translation>
-<translation id="5208240613060747912">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెట్టినది అయితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ-  సెట్ చేయబడి ఉంటే 'DefaultNotificationsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
+<translation id="5208240613060747912">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెట్టినది అయితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultNotificationsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
 <translation id="5213038356678567351">ఎప్పటికీ వేరే బ్రౌజర్‌కు మారడాన్ని యాక్టివేట్ చేయకూడని వెబ్‌సైట్‌లు.</translation>
-<translation id="5219844027738217407">Android అనువర్తనాల కోసం, ఈ విధానం మైక్రోఫోన్‌పై మాత్రమే ప్రభావం చూపుతుంది. ఈ విధానాన్ని ఒప్పుకి సెట్ చేసినప్పుడు, మినహాయింపులు లేకుండా అన్ని Android అనువర్తనాల కోసం మైక్రోఫోన్ మ్యూట్ చేయబడుతుంది.</translation>
+<translation id="5219844027738217407">Android యాప్‌ల విషయంలో, ఈ విధానం మైక్రోఫోన్‌పై మాత్రమే ప్రభావం చూపుతుంది. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, మినహాయింపులు లేకుండా అన్ని Android యాప్‌ల కోసం మైక్రోఫోన్ మ్యూట్ చేయబడుతుంది.</translation>
 <translation id="5228316810085661003">పరికర-స్థానిక ఖాతా ఆటో-లాగిన్ జాప్యం.
 
       |DeviceLocalAccountAutoLoginId| విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఈ విధానం ఎలాంటి ప్రభావం చూపదు. లేదంటే:
@@ -1962,36 +2060,36 @@
 
       ఈ విధానం మిల్లీసెకన్‌లలో పేర్కొనబడుతుంది.</translation>
 <translation id="523505283826916779">యాక్సెస్‌ సెట్టింగ్‌లు</translation>
-<translation id="5236882091572996759">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలేసినప్పుడు, ఆడియో ప్లే అవుతుంటే వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నట్లు పరిగణించబడరు. ఇది ఇన్‌యాక్టివ్‌ సమయ ముగింపు గడువు ఏర్పడకుండా మరియు ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడకుండా నిరోధిస్తుంది. అయితే, ఆడియో కార్య‌క‌లాపంతో సంబంధం లేకుండా కాన్ఫిగర్ చేసిన సమయ ముగింపు గడువుల తర్వాత స్క్రీన్ కాంతివిహీనత, స్క్రీన్ ఆపివేత మరియు స్క్రీన్ లాక్ కావడం వంటివి అమలవుతాయి.
+<translation id="5236882091572996759">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలేసినప్పుడు, ఆడియో ప్లే అవుతుంటే వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నట్లు పరిగణించబడరు. ఇది ఇన్‌యాక్టివ్‌ సమయ ముగింపు గడువు ఏర్పడకుండా మరియు ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడకుండా నిరోధిస్తుంది. అయితే, ఆడియో కార్యకలాపంతో సంబంధం లేకుండా కాన్ఫిగర్ చేసిన సమయ ముగింపు గడువుల తర్వాత స్క్రీన్ కాంతివిహీనత, స్క్రీన్ ఆపివేత మరియు స్క్రీన్ లాక్ కావడం వంటివి అమలవుతాయి.
 
-ఈ విధానాన్ని తప్పున‌కు సెట్ చేసినప్పుడు, వినియోగదారును ఇన్‌యాక్టివ్‌గా పరిగణించకుండా ఆడియో కార్య‌క‌లాపం నిరోధించదు.</translation>
-<translation id="5246700266104954355">ఈ విధానం నిలిపివేయబడింది. దయచేసి Flash ప్లగిన్ యొక్క అందుబాటును నియంత్రించడానికి <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />ను మరియు PDF ఫైల్‌లను తెరిచేందుకు ఏకీకరించిన PDF వ్యూయర్‌ను ఉపయోగించాలా లేదా అనేది నియంత్రించడానికి <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" />ను ఉపయోగించండి.
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినప్పుడు, వినియోగదారును ఇన్‌యాక్టివ్‌గా పరిగణించకుండా ఆడియో కార్యకలాపం నిరోధించదు.</translation>
+<translation id="5246700266104954355">ఈ విధానం విస్మరించబడింది. Flash ప్లగిన్ యొక్క అందుబాటును నియంత్రించడానికి <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />ను, PDF ఫైల్‌లను తెరిచేందుకు ఏకీకరించిన PDF వ్యూయర్‌ను ఉపయోగించాలా లేదా అనేది నియంత్రించడానికి, దయచేసి <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" />ను ఉపయోగించండి.
       
-<ph name="PRODUCT_NAME" />లో ప్రారంభించగల ఒక ప్లగిన్‌ల జాబితాను పేర్కొంటుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది.
+<ph name="PRODUCT_NAME" />లో ప్రారంభించగల ఒక ప్లగిన్‌ల జాబితాను పేర్కొంటుంది, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది.
       
-స్వతంత్ర అక్షరాల వరుసలను సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?' ఉపయోగించబడతాయి. '?' గుర్తు ఐచ్ఛిక ఏకైక అక్షరాన్ని అంటే సున్నా లేదా ఏక అక్షరాలను పేర్కొంటే '*' గుర్తు స్వతంత్ర అక్షరాల సంఖ్యను సరిపోల్చుతుంది. '\' అనేది ఎస్కేప్ అక్షరం, కాబట్టి వాస్తవ '*', '?', లేదా '\' గుర్తులను సరిపోల్చడానికి, మీరు వాటి ముందర '\' ఉంచవచ్చు.
+స్వతంత్ర అక్షరాల వరుసలను సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?' ఉపయోగించబడతాయి. '?' గుర్తు ఐచ్ఛిక ఏకైక అక్షరాన్ని అంటే సున్నా లేదా ఏక అక్షరాలను పేర్కొంటే '*' గుర్తు స్వతంత్ర అక్షరాల సంఖ్యను సరిపోల్చుతుంది. '\' అనేది ఎస్కేప్ అక్షరం, కాబట్టి వాస్తవ '*', '?', లేదా '\' గుర్తులను సరిపోల్చడానికి, మీరు వాటి ముందు '\' ఉంచవచ్చు.
 
-పేర్కొనబడిన ప్లగిన్‌ల జాబితా ఇన్‌స్టాల్ చేయబడినట్లయితే, <ph name="PRODUCT_NAME" />లో ఎల్లప్పుడూ వినియోగించబడతాయి. ప్లగిన్‌లు 'about:plugins'లో ప్రారంభించబడినట్లు గుర్తు పెట్టబడతాయి మరియు వినియోగదారులు వాటిని నిలిపివేయలేరు.
+జాబితాలో పేర్కొన్న ప్లగిన్‌లు ఇన్‌స్టాల్ అయినట్లయితే, <ph name="PRODUCT_NAME" />లో ఎప్పుడూ వినియోగించబడతాయి. ప్లగిన్‌లు 'about:plugins'లో ప్రారంభించబడినట్లు గుర్తు పెట్టబడతాయి, వినియోగదారులు వాటిని నిలిపివేయలేరు.
 
 ఈ విధానం DisabledPlugins మరియు DisabledPluginsExceptions రెండింటినీ భర్తీ చేస్తుందని గుర్తుంచుకోండి.
 
-ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు సిస్టమ్‌లో ఇన్‌స్టాల్ చేయబడిన ఏ ప్లగిన్‌నైనా నిలిపివేయగలరు.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు సిస్టమ్‌లో ఇన్‌స్టాల్ చేయబడిన ఏ ప్లగిన్‌నైనా నిలిపివేయగలరు.</translation>
 <translation id="5247006254130721952">హానికరమైన డౌన్‌లోడ్‌లను బ్లాక్ చేయి</translation>
 <translation id="5248863213023520115"><ph name="MS_AD_NAME" /> సర్వర్ నుండి Kerberos టిక్కెట్‌ను అభ్యర్థిస్తున్నప్పుడు అనుమతించబడే ఎన్‌క్రిప్షన్ రకాలను సెట్ చేస్తుంది.
 
-      విధానాన్ని 'అన్ని'కి సెట్ చేస్తే, ఎన్‌క్రిప్షన్ రకాలు రెండూ 'aes256-cts-hmac-sha1-96' మరియు 'aes128-cts-hmac-sha1-96', అలాగే RC4 ఎన్‌క్రిప్షన్ రకం 'rc4-hmac' అనుమతించబడతాయి. సర్వర్ రెండు రకాలకూ మద్దతు ఇచ్చేట్లయితే AES ఎన్‌క్రిప్షన్‌కు ప్రాధాన్యత ఇవ్వబడుతుంది. RC4 అసురక్షితమైనదిగా పరిగణించబడుతుంది మరియు AES ఎన్‌క్రిప్షన్‌కు మద్దతివ్వడం కోసం అవకాశం ఉంటే సర్వర్ తిరిగి కాన్ఫిగర్ చేయాలని గమనించండి.
+      విధానాన్ని 'అన్నీ'కి సెట్ చేస్తే, ఎన్‌క్రిప్షన్ రకాలు రెండూ 'aes256-cts-hmac-sha1-96' మరియు 'aes128-cts-hmac-sha1-96', అలాగే RC4 ఎన్‌క్రిప్షన్ రకం 'rc4-hmac' అనుమతించబడతాయి. సర్వర్ రెండు రకాలకూ మద్దతు ఇచ్చేట్లయితే AES ఎన్‌క్రిప్షన్‌కు ప్రాధాన్యత ఇవ్వబడుతుంది. RC4 అసురక్షితమైనదిగా పరిగణించబడుతుంది, AES ఎన్‌క్రిప్షన్‌కు మద్దతివ్వడం కోసం అవకాశం ఉంటే సర్వర్‌ను తిరిగి కాన్ఫిగర్ చేయాలని గమనించండి.
 
       విధానాన్ని 'శక్తివంతమైనది'కి సెట్ చేసినా లేదా సెట్ చేయకుండా వదిలివేసినా, కేవలం AES ఎన్‌క్రిప్షన్ రకాలు మాత్రమే అనుమతించబడతాయి.
 
-      విధానాన్ని 'లెగసీ'కి సెట్ చేస్తే, కేవలం RC4 ఎన్‌క్రిప్షన్ రకం మాత్రమే అనుమతించబడుతుంది. ఈ ఎంపిక అసురక్షితమైనది మరియు చాలా నిర్దిష్ట పరిస్థితుల్లో మాత్రమే అవసరమవుతుంది.
+      విధానాన్ని 'లెగసీ'కి సెట్ చేస్తే, కేవలం RC4 ఎన్‌క్రిప్షన్ రకం మాత్రమే అనుమతించబడుతుంది. ఈ ఎంపిక అసురక్షితమైనది, చాలా నిర్దిష్ట పరిస్థితులలో మాత్రమే ఉపయోగించాలి.
 
       అలాగే https://wiki.samba.org/index.php/Samba_4.6_Features_added/changed#Kerberos_client_encryption_types కూడా చూడండి.</translation>
 <translation id="5255162913209987122">సిఫార్సు చేయవచ్చు</translation>
-<translation id="527237119693897329">లోడ్ చేయకూడని స్థానిక సందేశ పద్ధతి హోస్ట్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
+<translation id="527237119693897329">లోడ్ చేయకూడని స్థానిక మెసేజింగ్ హోస్ట్‌లను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-          '*' యొక్క నిరోధిత జాబితా విలువ అన్ని స్థానిక సందేశ పద్ధతి హోస్ట్‌లు ప్రత్యేకించి వైట్‌లిస్ట్‌లో జాబితా చేయబడకపోతే అవి నిరోధిత జాబితాలో ఉంచబడతాయని సూచిస్తుంది.
+          బ్లాక్‌లిస్ట్‌‌ విలువ '*' అయితే, ప్రత్యేకించి వైట్‌లిస్ట్‌‌లో జాబితా చేయబడకపోతే మినహా, అన్ని స్థానిక మెసేజింగ్ హోస్ట్‌లు బ్లాక్‌లిస్ట్‌‌లో ఉంచబడతాయని సూచిస్తుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే <ph name="PRODUCT_NAME" /> ఇన్‌స్టాల్ చేసిన అన్ని స్థానిక సందేశ పద్ధతి హోస్ట్‌లను లోడ్ చేస్తుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే <ph name="PRODUCT_NAME" /> ఇన్‌స్టాల్ చేయబడిన అన్ని స్థానిక మెసేజింగ్ హోస్ట్‌లను లోడ్ చేస్తుంది.</translation>
 <translation id="5272684451155669299">ఒప్పు అయితే, వినియోగదారు <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> ద్వారా <ph name="CHALLENGE_USER_KEY_FUNCTION" /> ఉపయోగించి గోప్యత CAకి దాని గుర్తింపును రిమోట్ విధానంలో ధృవీకరించడానికి Chrome పరికరాల్లో హార్డ్‌వేర్‌ను ఉపయోగించవచ్చు.
 
           దీన్ని తప్పున‌కు సెట్ చేస్తే లేదా ఏదీ సెట్ చేయకుంటే, APIకి కాల్‌లు ఎర్ర‌ర్‌ కోడ్‌తో విఫలమవుతాయి.</translation>
@@ -2002,33 +2100,34 @@
       VirtualMachinesAllowed, CrostiniAllowed మరియు DeviceUnaffiliatedCrostiniAllowed అనే ఈ మూడు విధానాలు Crostiniకి వర్తింపజేసినప్పుడు, ఇవి అమలు కావాలంటే వీటిని తప్పక ఒప్పుకు సెట్ చేయాలి.
       ఈ విధానాన్ని తప్పుకు మార్చినప్పుడు, ఇది కొత్తగా ప్రారంభించిన Crostini కంటైనర్‌లకు వర్తిసుంది, కానీ ఇప్పటికే అమలులో ఉన్న కంటైనర్‌లను షట్ డౌన్ చేయదు.</translation>
 <translation id="5283457834853986457">ప్లగ్‌ఇన్ శోధినిని నిలిపివేయండి (త్వరలో విస్మరించబడుతోంది)</translation>
-<translation id="5288772341821359899">విధానాన్ని సెట్ చేస్తే, WebRTC ఉపయోగించే UDP పోర్ట్ పరిధి పేర్కొన్న పోర్ట్ విరామానికి (ముగింపు పాయింట్‌లతో) పరిమితం చేయబడుతుంది.
+<translation id="5288772341821359899">విధానాన్ని సెట్ చేస్తే, WebRTC ఉపయోగించే UDP పోర్ట్ పరిధిని పేర్కొన్న పోర్ట్ విరామానికి (ముగింపు పాయింట్‌లతో) పరిమితం చేస్తుంది.
 
       విధానాన్ని సెట్ చేయకపోతే, లేదంటే ఖాళీ స్ట్రింగ్ లేదా చెల్లని పోర్ట్ పరిధికి సెట్ చేస్తే, WebRTC అందుబాటులో ఉన్న ఏదైనా UDP పోర్ట్‌ను ఉపయోగించడానికి అనుమతించబడుతుంది.</translation>
 <translation id="5290940294294002042">వినియోగదారు ప్రారంభించగల లేదా ఆపివేయగల ప్లగ్‌ఇన్‌ల జాబితాను పేర్కొను</translation>
-<translation id="5304269353650269372">బ్యాటరీ శక్తితో అమలు అవుతున్నప్పుడు ఒక హెచ్చరిక డైలాగ్ చూపబడిన తర్వాత వినియోగదారు ఇన్‌పుట్ లేకుండా సమయ నిడివిని పేర్కొంటుంది.
+<translation id="5304269353650269372">బ్యాటరీ పవర్‌తో అమలు అవుతున్నప్పుడు, వినియోగదారు ఇన్‌పుట్ లేకుండా ఉన్నప్పుడు ఎంత సమయానికి హెచ్చరిక డైలాగ్‌ను చూపాలో, ఆ సమయ నిడివిని పేర్కొంటుంది.
 
-          ఈ విధానం సెట్ చేయబడినప్పుడు, ఇది ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడటానికి సిద్ధంగా ఉందని వినియోగదారుకు తెలియజేస్తున్న హెచ్చరిక డైలాగ్‌ను <ph name="PRODUCT_OS_NAME" /> చూపడానికి ముందు వినియోగదారు తప్పనిసరిగా ఇన్‌యాక్టివ్‌గా ఉండాల్సిన సమయ నిడివిని పేర్కొంటుంది.
+          ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడటానికి సిద్ధంగా ఉందని వినియోగదారుకు తెలియజేసే హెచ్చరిక డైలాగ్‌ను <ph name="PRODUCT_OS_NAME" /> చూపడానికి ముందు వినియోగదారు తప్పనిసరిగా ఇన్‌యాక్టివ్‌గా ఉండాల్సిన సమయ నిడివిని పేర్కొంటుంది.
 
           ఈ విధానాన్ని సెట్ చేయకపోతే, హెచ్చరిక డైలాగ్ చూపబడదు.
 
-          విధాన విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యానికి తక్కువగా లేదా సమానంగా అమర్చబడ్డాయి.</translation>
+          విధాన విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యానికి తక్కువగా లేదా సమానంగా ఉండేలా పరిమితి విధించబడ్డాయి.</translation>
 <translation id="5307432759655324440">అజ్ఞాత మోడ్ అందుబాటు</translation>
 <translation id="5318185076587284965">రిమోట్ యాక్సెస్ హోస్ట్ ద్వారా రిలే సర్వర్‌ల వినియోగాన్ని ప్రారంభించండి</translation>
 <translation id="5323128137188992869"><ph name="PRODUCT_NAME" /> ఉపయోగించి పరికరానికి కంటెంట్‌ను ప్రసారం చేయడానికి అనుమతిస్తుంది.
 
-          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారులు కంటెంట్‌ను వారి పరికరానికి ప్రసారం చేయలేరు. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, వినియోగదారులు కంటెంట్‌ను ప్రసారం చేయగలుగుతారు. ఈ విధానాన్ని సెట్ చేయకుంటే, వినియోగదారులు కంటెంట్‌ను నమోదిత Chrome OS పరికరాలకు ప్రసారం చేయడానికి అనుమతించబడరు, కానీ ఇతర వాటిలో ప్రసారం చేయడానికి అనుమతించబడతారు.</translation>
+          ఈ విధానాన్ని తప్పు అని సెట్ చేస్తే, వినియోగదారులు కంటెంట్‌ను వారి పరికరానికి ప్రసారం చేయలేరు. ఈ విధానాన్ని ఒప్పు అని సెట్ చేస్తే, వినియోగదారులు కంటెంట్‌ను ప్రసారం చేయగలుగుతారు. ఈ విధానాన్ని సెట్ చేయకుంటే, వినియోగదారులు కంటెంట్‌ను నమోదిత Chrome OS పరికరాలకు ప్రసారం చేయడానికి అనుమతించబడరు, కానీ ఇతర వాటిలో ప్రసారం చేయడానికి అనుమతించబడతారు.</translation>
 <translation id="5329007337159326804">హెచ్చరిక: సుమారు వెర్షన్ 75 (సుమారు జూన్ 2019) నాటికి <ph name="PRODUCT_NAME" /> నుండి గరిష్ట TLS వెర్షన్ విధానం పూర్తిగా తీసివేయబడుతుంది.
 
       ఈ విధానాన్ని కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_NAME" /> డిఫాల్ట్ గరిష్ట వెర్షన్‌ను ఉపయోగిస్తుంది.
 
       లేదంటే ఇది క్రింది విలువల్లో ఒక దానికి సెట్ చేయబడవచ్చు: "tls1.2" లేదా "tls1.3". సెట్ చేసినప్పుడు, <ph name="PRODUCT_NAME" /> పేర్కొన్న వెర్షన్ కంటే తాజా  అయిన SSL/TLS వెర్షన్‌లను ఉపయోగించదు. గుర్తించని విలువ విస్మరించబడుతుంది.</translation>
 <translation id="5330684698007383292">ఈ క్రింది కంటెంట్ రకాలని నిర్వహించడానికి <ph name="PRODUCT_FRAME_NAME" />ని అనుమతించండి</translation>
+<translation id="5331746669335642668">ప్లాట్‌ఫారమ్ విధానాన్ని <ph name="PRODUCT_NAME" /> క్లౌడ్ విధానం భర్తీ చేస్తుంది.</translation>
 <translation id="5365476955714838841">ప్రత్యామ్నాయ బ్రౌజర్‌ కోసం ఆదేశ పంక్తి పారామీటర్లు.</translation>
 <translation id="5365946944967967336">సాధనాల బార్‌లో హోమ్ బటన్‌ను చూపు</translation>
-<translation id="5366745336748853475">సైట్ ప్రమాణపత్రాన్ని అభ్యర్ధించినట్లయితే, SAML విధానం హోస్ట్ చేసిన ఫ్రేమ్‌లో సైన్-ఇన్ స్క్రీన్‌లో క్లయింట్ ప్రమాణపత్రం ఆటోమేటిక్‌గా ఎంచుకోబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, పరికర వ్యాప్తంగా అమలు కాగల ప్రమాణపత్రాన్ని కాన్ఫిగర్ చేసి, దానిని SAML IdPకి సమర్పించడానికి ఉపయోగించవచ్చు.
+<translation id="5366745336748853475">సైట్ సర్టిఫికెట్‌ను అభ్యర్ధించినట్లయితే, SAML విధానం హోస్ట్ చేసిన ఫ్రేమ్‌లో సైన్-ఇన్ స్క్రీన్‌లో క్లయింట్ సర్టిఫికెట్ ఆటోమేటిక్‌గా ఎంచుకోబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, పరికర వ్యాప్తంగా అమలు కాగల సర్టిఫికెట్‌ను కాన్ఫిగర్ చేసి, దానిని SAML IdPకి సమర్పించడానికి ఉపయోగించవచ్చు.
 
-      విలువ తప్పనిసరిగా వచన ఆకృతికి మార్చబడిన JSON నిఘంటువుల శ్రేణి అయ్యి ఉండాలి. ప్రతి నిఘంటువు తప్పనిసరిగా { "pattern": "$URL_PATTERN", "filter" : $FILTER } ఆకృతిలో ఉండాలి, ఇందులో $URL_PATTERN అనగా కంటెంట్ సెట్టింగ్ నమూనా. $FILTER అనేది బ్రౌజర్ ఆటోమేటిక్‌గా ఎంచుకునే క్లయింట్ ప్రమాణపత్రాలను నియంత్రిస్తుంది. ఫిల్టర్‌తో సంబంధం లేకుండా, సర్వర్ ప్రమాణపత్ర అభ్యర్థనకు సరిపోలే ప్రమాణపత్రాలు మాత్రమే ఎంచుకోబడతాయి. ఒకవేళ $FILTER అనేది { "ISSUER": { "CN": "$ISSUER_CN" } } ఆకృతిలో ఉంటే, అదనంగా CommonName $ISSUER_CNతో ప్రమాణపత్రం ద్వారా మంజూరు చేయబడిన క్లయింట్ ప్రమాణపత్రాలు మాత్రమే ఎంచుకోబడతాయి. ఒకవేళ $FILTER అనేది ఖాళీ నిఘంటువు {} అయితే, క్లయింట్ ప్రమాణపత్రాల ఎంపిక అదనంగా నియంత్రించబడదు.
+      విలువ అనేది, తప్పనిసరిగా వచన ఫార్మాట్‌కు మార్చబడిన JSON నిఘంటువుల శ్రేణి అయ్యి ఉండాలి. ప్రతి నిఘంటువు తప్పనిసరిగా { "pattern": "$URL_PATTERN", "filter" : $FILTER } ఫార్మాట్‌లో ఉండాలి, ఇందులో $URL_PATTERN అంటే కంటెంట్ సెట్టింగ్ నమూనా. $FILTER అనేది బ్రౌజర్ ఆటోమేటిక్‌గా ఎంచుకునే క్లయింట్ సర్టిఫికెట్‌లను నియంత్రిస్తుంది. ఫిల్టర్‌తో సంబంధం లేకుండా, సర్వర్ సర్టిఫికెట్ అభ్యర్థనకు సరిపోలే సర్టిఫికెట్‌లు మాత్రమే ఎంచుకోబడతాయి. ఒకవేళ $FILTER అనేది { "ISSUER": { "CN": "$ISSUER_CN" } } ఫార్మాట్‌లో ఉంటే, అదనంగా CommonName $ISSUER_CNతో సర్టిఫికెట్ ద్వారా మంజూరు చేయబడిన క్లయింట్ సర్టిఫికెట్‌లు మాత్రమే ఎంచుకోబడతాయి. ఒకవేళ $FILTER అనేది ఖాళీ నిఘంటువు {} అయితే, క్లయింట్ సర్టిఫికెట్‌ల ఎంపిక అదనంగా నియంత్రించబడదు.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఏ సైట్ కోసం స్వీయ ఎంపిక చేయబడదు.</translation>
 <translation id="5366977351895725771">తప్పున‌కు సెట్ చేస్తే, ఈ వినియోగదారు యొక్క పర్యవేక్షించబడే-వినియోగదారు సృష్టి నిలిపివేయబడుతుంది. ప్రస్తుతం ఉన్న పర్యవేక్షించబడే వినియోగదారులు ఇప్పటికీ అందుబాటులో ఉంటారు.
@@ -2036,14 +2135,14 @@
           ఒప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, పర్యవేక్షించబడే వినియోగదారులు ఈ వినియోగదారు ద్వారా సృష్టించబడతారు మరియు నిర్వహించబడతారు.</translation>
 <translation id="5369937289900051171">రంగు ముద్రణ మాత్రమే</translation>
 <translation id="5370279767682621504">డిఫాల్ట్ యేతర పోర్ట్‌లలో HTTP/0.9 మద్దతును ప్రారంభించండి</translation>
-<translation id="5378985487213287085">వెబ్‌సైట్‌లు డెస్క్‌టాప్ ప్రకటనలు ప్రదర్శించవచ్చో, లేదో అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. డిఫాల్ట్‌గా డెస్క్‌టాప్ ప్రకటనలను ప్రదర్శించడానికి అనుమతించవచ్చు. ఢిఫాల్ట్‌ను నిరాకరించినా లేదా వినియోగదారు ప్ర‌తిసారి వినియోగదారు వెబ్‌సైట్ డెస్క్‌టాప్ ప్రకటనలను ప్రదర్శించాలా వద్దా అని అడగబడతారు. ఈ విధానం సెట్ చేయకుండా వదిలేస్తే, 'AskNotifications' ఉపయోగించబడుతుంది. వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
+<translation id="5378985487213287085">వెబ్‌సైట్‌లు డెస్క్‌టాప్ నోటిఫికేషన్‌లను ప్రదర్శించవచ్చో, లేదో అని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. డెస్క్‌టాప్ నోటిఫికేషన్‌లను ప్రదర్శించడం అనేది, డిఫాల్ట్‌గా అనుమతించవచ్చు, ఢిఫాల్ట్‌గా నిరాకరించవచ్చు లేదా వినియోగదారు ప్రతీసారి వినియోగదారు వెబ్‌సైట్ డెస్క్‌టాప్ నోటిఫికేషన్‌లను ప్రదర్శించాలా వద్దా అని అడగబడేలా సెట్ చేయవచ్చు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'AskNotifications' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలుగుతారు.</translation>
 <translation id="538108065117008131">ఈ క్రింది కంటెంట్ రకాలని నిర్వహించడానికి <ph name="PRODUCT_FRAME_NAME" />ని అనుమతించు.</translation>
 <translation id="5391388690191341203">పరికర-స్థానిక ఖాతా ఆటో-లాగిన్</translation>
 <translation id="5392172595902933844">Android యొక్క స్థితి గురించి సమాచారం తిరిగి సర్వర్‌కు
-      పంపబడింది.
+      పంపబడుతుంది.
 
-      విధానాన్ని తప్పుకు సెట్ చేసినా లేదా సెట్ చేయకపోయినా, స్థితి సమాచారం ఏదీ నివేదించబడదు.
-      విధానాన్ని ఒప్పుకు సెట్ చేస్తే, స్థితి సమాచారం నివేదించబడుతుంది.
+      విధానాన్ని 'తప్పు'గా సెట్ చేసినా లేదా సెట్ చేయకపోయినా, స్థితి సమాచారం ఏదీ నివేదించబడదు.
+      విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, స్థితి సమాచారం నివేదించబడుతుంది.
 
       ఈ విధానం Android యాప్‌లను ప్రారంభించినప్పుడు మాత్రమే వర్తిస్తుంది.</translation>
 <translation id="5395271912574071439">ఒక కనెక్షన్ ప్రోగ్రెస్‌లో ఉన్నప్పుడు రిమోట్ యాక్సెస్ హోస్ట్‌లను అందించడాన్ని ప్రారంభిస్తుంది.
@@ -2063,21 +2162,21 @@
 <translation id="5405289061476885481"><ph name="PRODUCT_OS_NAME" /> సైన్-ఇన్ స్క్రీన్‌లో అనుమతించబడే కీబోర్డ్ లేఅవుట్‌లను కాన్ఫిగర్ చేస్తుంది.
 
       ఈ విధానాన్ని ఇన్‌పుట్ పద్ధతి ఐడెంటిఫైయర్‌ల జాబితాకు సెట్ చేస్తే, అందించిన ఇన్‌పుట్ పద్ధతులు సైన్-ఇన్ స్క్రీన్‌లో అందుబాటులో ఉంటాయి. మొదట అందించిన ఇన్‌పుట్ పద్ధతి ముందుగానే ఎంచుకోబడుతుంది. సైన్-ఇన్ స్క్రీన్‌లో వినియోగదారు ప్రదర్శన చిత్రం కర్సర్ ఉంచినప్పుడు, ఈ విధానం ద్వారా అందించబడిన ఇన్‌పుట్ పద్ధతులకు అదనంగా వినియోగదారు అత్యంత ఇటీవల ఉపయోగించిన ఇన్‌పుట్ పద్ధతి అందుబాటులో ఉంటుంది. ఈ విధానాన్ని సెట్ చేయకుంటే, సైన్-ఇన్ స్క్రీన్‌లోని ఇన్‌పుట్ పద్ధతులు సైన్-ఇన్ స్క్రీన్ ప్రదర్శించబడే లొకేల్ నుండి గ్రహించబడతాయి. చెల్లుబాటు కాని ఇన్‌పుట్ పద్ధతి ఐడెంటిఫైయర్‌ల విలువలు విస్మరించబడతాయి.</translation>
-<translation id="5412057811596122582">ప్రారంభించబడితే లేదా కాన్ఫిగర్ చేయబడకపోతే (డిఫాల్ట్), ప్రాంప్ట్ చేయబడకుండా యాక్సెస్‌ మంజూరు అయ్యే AudioCaptureAllowedUrls జాబితాలో కాన్ఫిగర్ చేయబడిన URLల కోసం మినహా ఆడియో క్యాప్చర్ యాక్సెస్‌ కోసం వినియోగదారు ప్రాంప్ట్ చేయబడతారు.
+<translation id="5412057811596122582">ప్రారంభిస్తే లేదా కాన్ఫిగర్ చేయకపోతే (డిఫాల్ట్), ప్రాంప్ట్ చేయబడకుండా యాక్సెస్ మంజూరు అయ్యే AudioCaptureAllowedUrls జాబితాలో కాన్ఫిగర్ చేయబడిన URLల కోసం మినహా ఆడియో క్యాప్చర్ యాక్సెస్ కోసం వినియోగదారు ప్రాంప్ట్ చేయబడతారు.
 
       
-ఈ విధానాన్ని నిలిపివేసినప్పుడు, వినియోగదారు ఎప్పటికీ ప్రాంప్ట్ చేయబడరు మరియు ఆడియో క్యాప్చర్ AudioCaptureAllowedUrlsలో కాన్ఫిగర్ చేయబడిన URLలకు మాత్రమే అందుబాటులో ఉంటుంది.
+ఈ విధానాన్ని నిలిపివేసినప్పుడు, వినియోగదారు ఎప్పటికీ ప్రాంప్ట్ చేయబడరు, ఆడియో క్యాప్చర్ AudioCaptureAllowedUrlsలో కాన్ఫిగర్ చేయబడిన URLలకు మాత్రమే అందుబాటులో ఉంటుంది.
 
 ఈ విధానం అంతర్గత మైక్రోఫోన్‌ను మాత్రమే కాకుండా అన్ని రకాల ఆడియో ఇన్‌పుట్‌లను ప్రభావితం చేస్తుంది.</translation>
 <translation id="5422643441807528365"><ph name="PLUGIN_VM_NAME" /> లైసెన్స్ కీ</translation>
-<translation id="5423001109873148185">ఈ విధానాన్ని ప్రారంభించినట్లయితే, ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి బలవంతంగా శోధన ఇంజిన్‌లను దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, డిఫాల్ట్ శోధన ఇంజిన్ దిగుమతి చేయబడదు. ఇది సెట్ చేయకపోతే, వినియోగదారు దిగుమతి చేయాలా అని అడగబడతారు లేదా దిగుమతి ఆటోమేటిక్‌గా జరగవచ్చు.</translation>
+<translation id="5423001109873148185">ఈ విధానాన్ని ప్రారంభించినట్లయితే, ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి బలవంతంగా శోధన ఇంజిన్‌లను దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, డిఫాల్ట్ శోధన ఇంజిన్ దిగుమతి చేయబడదు. ఇది సెట్ చేయకపోతే, దిగుమతి చేయాలా లేదా ఆటోమేటిక్‌గా దిగుమతి జరగాలా అని వినియోగదారు అడగబడతారు.</translation>
 <translation id="5423197884968724595">Android వెబ్ వీక్షణ పరిమితి పేరు:</translation>
 <translation id="5424147596523390018">అన్ని రంగు మోడ్‌లను అనుమతించు</translation>
-<translation id="5437733496511628148">ఈ సెట్టింగ్‌ను ప్రారంభించడం వలన బ్రౌజర్ యొక్క చిరునామా బార్‌లోని డొమైన్‌కు చెందని వెబ్ పేజీ మూలకాలు సెట్ చేసే కుక్కీలను నివారిస్తుంది.
+<translation id="5437733496511628148">ఈ సెట్టింగ్‌ను ప్రారంభించడం వలన బ్రౌజర్ చిరునామా బార్‌లోని డొమైన్‌కు చెందని వెబ్ పేజీ మూలకాలు సెట్ చేసే కుక్కీలను నివారిస్తుంది.
 
-ఈ సెట్టింగ్‌ను ఆపివేయడం బ్రౌజర్ చిరునామా బార్‌లోని డొమైన్‌కు చెందని వెబ్ పేజీ మూలకాలచే సెట్ చేయడానికి కుక్కీలను అనుమతిస్తుంది మరియు ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
+ఈ సెట్టింగ్‌ను ఆపివేయడం వల్ల, బ్రౌజర్ చిరునామా బార్‌లోని డొమైన్‌కు చెందని వెబ్ పేజీ మూలకాలు కుక్కీలను సెట్ చేయడానికి అనుమతిస్తుంది, ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
 
-ఈ విధానం సెట్ చేయబడి ఉండకోపోతే, మూడవ పక్షం కుక్కీలు ప్రారంభించబడతాయి కానీ వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
+ఈ విధానాన్ని సెట్ చేయకపోతే, మూడవ పక్షం కుక్కీలు ప్రారంభించబడతాయి, కానీ వినియోగదారు దీనిని మార్చగలుగుతారు.</translation>
 <translation id="5442026853063570579">ఈ విధానం Android డెవలపర్ ఎంపికలకు యాక్సెస్‌ను కూడా నియంత్రిస్తుంది. ఒకవేళ మీరు ఈ విధానాన్ని 'DeveloperToolsDisallowed' (విలువ 2) ఎంపికకు సెట్ చేస్తే, వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయలేరు. అలాగే, మీరు ఈ విధానాన్ని మరొక విలువకు సెట్ చేస్తే లేదా ఏదీ సెట్ చేయకుంటే, Android సెట్టింగ్‌ల యాప్‌లో బిల్డ్ సంఖ్యపై ఏడుసార్లు నొక్కడం ద్వారా వినియోగదారులు డెవలపర్ ఎంపికలను యాక్సెస్ చేయగలరు.</translation>
 <translation id="544342220587994947">ఏదైనా సైట్ ధృవీకరణ పత్రం అభ్యర్థిస్తే, <ph name="PRODUCT_NAME" /> ఆటోమేటిక్‌గా క్లయింట్ ధృవీకరణ పత్రం ఎంపిక చేయడానికి, సైట్‌లను పేర్కొనే url ఆకృతుల జాబితాను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
@@ -2086,7 +2185,7 @@
           ఒకవేళ ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఏ సైట్ కోసం స్వీయ ఎంపిక చేయబడదు.</translation>
 <translation id="5447306928176905178">మెమరీ సమాచారాన్ని (JS అత్యధిక పరిమాణం) పేజీకి నివేదించడాన్ని ప్రారంభించండి (నిలిపివేయబడింది)</translation>
 <translation id="5457065417344056871">బ్రౌజర్‌లో అతిథి మోడ్‌ను ప్రారంభిస్తుంది</translation>
-<translation id="5457924070961220141"><ph name="PRODUCT_FRAME_NAME" /> ఇన్‌స్టాల్ చేసినప్పుడు, డిఫాల్ట్ HTML రెండరర్‌ను కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. హోస్ట్ బ్రౌజర్ రెండరింగ్ చేసేందుకు అనుమతించేలా సెట్ చేయకుండా వదలివేస్తే ఈ విధానం డిఫాల్ట్ సెట్టింగ్ ఉపయోగించబడుతుంది. కానీ మీరు దీన్ని ఐచ్ఛికంగా అధిగ‌మించ‌వ‌చ్చు. HTML పేజీలను <ph name="PRODUCT_FRAME_NAME" /> డిఫాల్ట్‌గా రెండర్ చేసేలా చేయవచ్చు.</translation>
+<translation id="5457924070961220141"><ph name="PRODUCT_FRAME_NAME" />ను ఇన్‌స్టాల్ చేసినప్పుడు, డిఫాల్ట్ HTML రెండరర్‌ను కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. హోస్ట్ బ్రౌజర్ రెండరింగ్ చేసేందుకు అనుమతించేలా సెట్ చేయకుండా వదలివేస్తే ఈ విధానం డిఫాల్ట్ సెట్టింగ్ ఉపయోగించబడుతుంది. కానీ మీరు దీనిని ఐచ్ఛికంగా భర్తీ చేయవచ్చు, HTML పేజీలను <ph name="PRODUCT_FRAME_NAME" /> డిఫాల్ట్‌గా రెండర్ చేసేలా చేయవచ్చు.</translation>
 <translation id="5464816904705580310">నిర్వహించబడే వినియోగదారుల కోసం సెట్టింగ్‌లను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="546726650689747237">AC శక్తితో అమలవుతున్నప్పుడు స్క్రీన్‌ మసక ఆలస్యం</translation>
 <translation id="5469143988693423708">వినియోగదారు Crostiniని అమలు చేయడానికి అనుమతి పొందారు</translation>
@@ -2104,22 +2203,22 @@
       నిబంధనలు ఒకదానికొకటి పరస్పర విరుద్ధంగా ఉంటే, <ph name="PRODUCT_NAME" /> అత్యంత నిర్దిష్టమైన నిబంధనను ఉపయోగిస్తుంది.</translation>
 <translation id="5475361623548884387">ముద్రించడాన్ని ప్రారంభించు</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" />ను ఉపయోగించండి.
+<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" />లో వినియోగదారులు ప్రారంభించగల లేదా ఆపివేయగల ప్లగిన్‌ల జాబితాను పేర్కొంటుంది.
 
-స్వతంత్ర అక్షరాల క్రమాలను సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?' ఉపయోగించబడుతాయి. స్వతంత్రమైన చాలా అక్షరాలను '*' పేర్కొంటే '?' ఐచ్చిక ఒక అక్షరాన్ని పేర్కొంటుంది. అంటే సున్నా లేదా ఒక అక్షరాన్ని మాత్రమే పేర్కొంటుంది. '\' ఎస్కేప్ అక్షరం కాబట్టి '*', '?', లేదా '\' కనుగొనడానికి మీరు వాటి ముందు '\' ఉపయోగించవచ్చు.
+స్వతంత్ర అక్షరాల క్రమాలని సరిపోల్చడానికి వైల్డ్‌కార్డ్ అక్షరాలు '*' మరియు '?' ఉపయోగించబడతాయి. స్వతంత్రమైన చాలా అక్షరాలను '*' పేర్కొంటే '?' ఐచ్చిక ఒక అక్షరాన్ని పేర్కొంటుంది, అంటే సున్నా లేదా ఒక అక్షరాన్ని మాత్రమే పేర్కొంటుంది. '\' ఎస్కేప్ అక్షరం కాబట్టి '*', '?', లేదా '\' కనుగొనడానికి మీరు వాటి ముందు '\' ఉపయోగించవచ్చు.
 
-మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే పేర్కొనబడిన ప్లగ్‌ఇన్‌ల జాబితా <ph name="PRODUCT_NAME" />లో ఉపయోగించబడుతాయి. ప్లగిన్‌ DisabledPluginsలోని క్రమాన్ని సరిపోల్చినా కూడా వినియోగదారులు వాటిని 'about:plugins'లో ప్రారంభం లేదా ఆపివేయడం చేయచ్చు. DisabledPluginsలు, DisabledPluginsExceptions మరియు EnabledPluginsలోని ఏ క్రమాలను సరిపోల్చని ప్లగిన్‌లు కూడా వినియోగదారులు ప్రారంభించడం లేదా ఆపివేయడం చేయచ్చు.
+మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే పేర్కొనబడిన ప్లగ్‌ఇన్‌ల జాబితా <ph name="PRODUCT_NAME" />లో ఉపయోగించబడతాయి. ప్లగిన్‌ DisabledPluginsలోని క్రమాన్ని సరిపోల్చినా కూడా వినియోగదారులు వాటిని 'about:plugins'లో ప్రారంభం లేదా ఆపివేయడం చేయచ్చు. DisabledPluginsలు, DisabledPluginsExceptions మరియు EnabledPluginsలోని ఏ క్రమాలనూ సరిపోల్చని ప్లగిన్‌లు కూడా వినియోగదారులు ప్రారంభించడం లేదా ఆపివేయడం చేయచ్చు.
 
-ఈ విధానం ఖచ్చితమైన ప్లగిన్ బ్లాక్‌లిస్ట్‌లోని వాటి కోసం అనుమతించడానికి ఉద్దేశించబడింది, 'DisabledPlugins' జాబితా అన్ని ప్లగిన్‌లను ఆపివేయి '*' లేదా అన్ని Java ప్లగిన్‌లను ఆపివేయి '*Java*' వంటి వైల్డ్‌కార్డ్ నమోదులను కలిగి ఉంటుంది కానీ నిర్వాహకుడు 'IcedTea Java 2.3' వంటి ఏదైనా ప్రత్యేక వెర్షన్‌ను ప్రారంభించాలని కోరుకుంటున్నారు. ఈ ప్రత్యేక వెర్షన్‌లు ఈ విధానంలో పేర్కొనబడతాయి.
+ఈ విధానం ఖచ్చితమైన ప్లగిన్ నిరోధిత జాబితాలోని వాటి కోసం అనుమతించడానికి ఉద్దేశించబడింది, 'DisabledPlugins' జాబితా అన్ని ప్లగిన్‌లను ఆపివేయి '*' లేదా అన్ని Java ప్లగిన్‌లను ఆపివేయి '*Java*' వంటి వైల్డ్‌కార్డ్ నమోదులను కలిగి ఉంటుంది కానీ నిర్వాహకుడు 'IcedTea Java 2.3' వంటి ఏదైనా ప్రత్యేక వెర్షన్‌ను ప్రారంభించాలని కోరుకుంటున్నారు. ఈ ప్రత్యేక వెర్షన్‌లు ఈ విధానంలో పేర్కొనబడతాయి.
 
-ప్లగిన్ పేరు మరియు ప్లగిన్ సమూహం పేరు రెండూ మినహాయించబడాలని గుర్తుంచుకోండి. ప్రతి ప్లగిన్ సమూహం about:pluginsలో ప్రత్యేక విభాగంలో చూపబడుతుంది; ప్రతి విభాగంలో ఒకటి లేదా అంతకంటే ఎక్కువ ప్లగిన్‌లు ఉండవచ్చు. ఉదాహరణకు, "Shockwave Flash" ప్లగిన్ "Adobe Flash Player" సమూహానికి చెందినది అయినప్పటికీ ఆ ప్లగిన్ బ్లాక్‌లిస్ట్‌ నుండి మినహాయించబడాలంటే రెండు పేర్లకు మినహాయింపుల జాబితాలో సరిపోలిక ఉండాలి.
+ప్లగిన్ పేరు మరియు ప్లగిన్ గ్రూప్ పేరు రెండింటినీ మినహాయించాలని గుర్తుంచుకోండి. ప్రతి ప్లగిన్ గ్రూప్ about:pluginsలో ప్రత్యేక విభాగంలో చూపబడుతుంది; ప్రతి విభాగంలో ఒకటి లేదా అంతకంటే ఎక్కువ ప్లగిన్‌లు ఉండవచ్చు. ఉదాహరణకు, "Shockwave Flash" ప్లగిన్ "Adobe Flash Player" గ్రూప్‌నకు చెందినది అయినప్పటికీ ఆ ప్లగిన్ నిరోధిత జాబితా నుండి మినహాయించబడాలంటే రెండు పేర్లకు మినహాయింపుల జాబితాలో సరిపోలిక ఉండాలి.
 
 ఈ విధానాన్ని సెట్ చేయకపోతే 'DisabledPlugins'లోని నమూనాలతో సరిపోలే ఏ ప్లగిన్ అయినా లాక్ చేయబడుతుంది, ఆపివేయబడుతుంది మరియు వినియోగదారు వాటిని ప్రారంభించలేరు.</translation>
 <translation id="5499375345075963939">ఈ విధానం రిటైల్ మోడ్‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      ఈ విధానం విలువను సెట్ చేసినప్పుడు మరియు ఇది 0 కానప్పుడు నిర్దిష్ట వ్యవధి యొక్క ఇన్‌యాక్టివ్‌ సమయం గతించిన తర్వాత ప్రస్తుతం లాగిన్ అయి ఉన్న డెమో వినియోగదారు ఆటోమేటిక్‌గా లాగ్‌అవుట్ అవుతారు.
+      ఈ విధానం విలువను సెట్ చేసినప్పుడు మరియు ఇది 0 కానప్పుడు నిర్దిష్ట వ్యవధి యొక్క ఇన్‌యాక్టివ్‌ సమయం గడిచిన తర్వాత ప్రస్తుతం లాగిన్ అయి ఉన్న డెమో వినియోగదారు ఆటోమేటిక్‌గా లాగ్‌అవుట్ అవుతారు.
 
       విధానం విలువ మిల్లీసెకన్లలో పేర్కొనాలి.</translation>
 <translation id="5511702823008968136">బుక్‌మార్క్ బార్‌ను ప్రారంభించు</translation>
@@ -2133,54 +2232,54 @@
 
 ఈ విధానం ఛానెల్ మార్పులకు వర్తించదు.</translation>
 <translation id="5526701598901867718">అన్ని (అసురక్షితం)</translation>
-<translation id="5529037166721644841">పరికర విధాన సమాచారం కోసం పరికర నిర్వహణ సేవ ప్రశ్న, సమయ వ్యవధిని మిల్లీ సెకన్లలో పేర్కొంటుంది.
+<translation id="5529037166721644841">పరికర విధాన సమాచారం కోసం పరికర నిర్వహణ సేవ ప్రశ్న సమయ వ్యవధిని మిల్లీ సెకన్లలో పేర్కొంటుంది.
 
-      ఈ విధానాన్ని సెట్ చేయడం వలన 3 గంటల డిఫాల్ట్ విలువ అధిగ‌మించ‌బ‌డుతుంది. ఈ విధానానికి సంబంధించి చెల్లుబాటయ్యే విలువల పరిధి 1800000 (30 నిమిషాలు) నుండి 86400000 (1 రోజు) వరకు ఉంది. ఈ పరిధిలో లేని విలువలు ఏవైనా సమీప పరిధికి పరిమితం చేయబడతాయి.
+      ఈ విధానాన్ని సెట్ చేయడం వలన 3 గంటల డిఫాల్ట్ విలువ భర్తీ చేయబడుతుంది. ఈ విధానానికి సంబంధించి చెల్లుబాటయ్యే విలువల పరిధి 1800000 (30 నిమిషాలు) నుండి 86400000 (1 రోజు) వరకు ఉంది. ఈ పరిధిలో లేని విలువలు ఏవైనా సమీప పరిధికి పరిమితం చేయబడతాయి.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేసినప్పుడు <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>
-<translation id="5559079916187891399">ఈ విధానం Android అనువర్తనాలపై ఎలాంటి ప్రభావం చూపదు.</translation>
-<translation id="5560039246134246593"><ph name="PRODUCT_NAME" />లో వ్యత్యాసాల సీడ్‌ను పొందడానికి పరామితిని జోడించండి.
+<translation id="5559079916187891399">ఈ విధానం Android యాప్‌లపై ఎలాంటి ప్రభావం చూపదు.</translation>
+<translation id="5560039246134246593"><ph name="PRODUCT_NAME" />లో వ్యత్యాసాల సీడ్‌ను పొందడానికి పారామీటర్‌ను జోడించండి.
 
-      పేర్కొనబడితే, వ్యత్యాసాల సీడ్‌ను పొందడానికి ఉపయోగించే URLకు 'నిరోధించు' అనే ప్రశ్న పరామితిని జోడిస్తుంది. పరామితి విలువ ఈ విధానంలో పేర్కొన్న విలువ అవుతుంది.
+      పేర్కొనబడితే, వ్యత్యాసాల సీడ్‌ను పొందడానికి ఉపయోగించే URLకు 'నిరోధించు' అనే ప్రశ్న పారామీటర్‌ను జోడిస్తుంది. పారామీటర్ విలువ ఈ విధానంలో పేర్కొన్న విలువ అవుతుంది.
 
-      పేర్కొనబడకపోతే, వ్యత్యాసాల సీడ్ URLను సవరించదు.</translation>
+      పేర్కొనకపోతే, వ్యత్యాసాల సీడ్ URLను సవరించదు.</translation>
 <translation id="5561811616825571914">సైన్-ఇన్ స్క్రీన్‌లో ఈ సైట్‌లకు క్లయింట్ సర్టిఫికెట్‌లను ఆటోమేటిక్‌గా ఎంపిక చేస్తుంది</translation>
 <translation id="5566210228171064229">పిన్ ఉన్నా, లేేకున్నా ముద్రణను అనుమతించండి</translation>
 <translation id="556865034069957245">ఈ విధానం పూర్తి స్క్రీన్ మోడ్ అందుబాటును నియంత్రిస్తుంది, ఇందులో మొత్తం <ph name="PRODUCT_NAME" /> దాచబడుతుంది మరియు వెబ్ కంటెంట్ మాత్రమే కనిపిస్తుంది.
 
       
-ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినా లేదా కాన్ఫిగర్ చేయకపోయినా, సముచితమైన అనుమతులు ఉన్న వినియోగదారు, యాప్‌లు మరియు ఎక్స్‌టెన్ష‌న్‌లు పూర్తి స్క్రీన్ మోడ్‌లోకి ప్రవేశించవచ్చు.
+ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినా లేదా కాన్ఫిగర్ చేయకపోయినా, సముచితమైన అనుమతులు ఉన్న వినియోగదారు, యాప్‌లు మరియు ఎక్స్‌టెన్షన్‌లు పూర్తి స్క్రీన్ మోడ్‌లోకి ప్రవేశించవచ్చు.
 
-ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వినియోగదారు కానీ లేదా ఏవైనా యాప్‌లు లేదా ఎక్స్‌టెన్ష‌న్‌లు కానీ పూర్తి స్క్రీన్ మోడ్‌లోకి ప్రవేశించలేవు.
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారు కానీ లేదా ఏవైనా యాప్‌లు లేదా ఎక్స్‌టెన్షన్‌లు కానీ పూర్తి స్క్రీన్ మోడ్‌లోకి ప్రవేశించలేవు.
 
-<ph name="PRODUCT_OS_NAME" /> మినహా అన్ని ప్లాట్‌ఫారమ్‌ల్లో, పూర్తి స్క్రీన్ మోడ్‌ను నిలిపివేసినప్పుడు కియోస్క్ మోడ్ అందుబాటులో ఉండదు.</translation>
+<ph name="PRODUCT_OS_NAME" /> మినహా అన్ని ప్లాట్‌ఫామ్‌లలో, పూర్తి స్క్రీన్ మోడ్‌ను నిలిపివేసినప్పుడు కియోస్క్ మోడ్ అందుబాటులో ఉండదు.</translation>
 <translation id="556941986578702361"><ph name="PRODUCT_OS_NAME" /> అరను ఆటోమేటిక్‌గా దాచడాన్ని నియంత్రిస్తుంది.
 
-      ఈ విధానాన్ని 'AlwaysAutoHideShelf'కు సెట్ చేస్తే, అర ఎల్లప్పుడూ ఆటోమేటిక్‌గా దాచబడుతుంది.
+      ఈ విధానాన్ని 'AlwaysAutoHideShelf'కు సెట్ చేస్తే, అర ఎప్పుడూ ఆటోమేటిక్‌గా దాచబడుతుంది.
 
       ఈ విధానాన్ని 'NeverAutoHideShelf'కు సెట్ చేస్తే, అర ఎప్పుడూ ఆటోమేటిక్‌గా దాచబడదు.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, వినియోగదారులు అర ఆటోమేటిక్‌గా దాచబడాలా లేదా అనే దాన్ని ఎంచుకోవచ్చు.</translation>
-<translation id="557360560705413259">ఈ సెట్టింగ్ ప్రారంభించబడినప్పుడు, <ph name="PRODUCT_NAME" /> విజయవంతంగా ప్రామాణీకరించబడే వరకు మరియు స్థానికంగా ఇన్‌స్టాల్ చేయబడిన CA ప్రమాణపత్రాలకు అనుబంధించబడి ఉండే వరకు ప్రమాణపత్రంలో subjectAlternativeName ఎక్సటెన్షన్ లేని పక్షంలో హోస్ట్ పేరుకి సరిపోల్చడానికి సర్వర్ ప్రమాణపత్రం యొక్క commonNameని ఉపయోగిస్తుంది.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అరను ఆటోమేటిక్‌గా దాచాలా లేదా అనే దానిని వినియోగదారులు ఎంచుకోవచ్చు.</translation>
+<translation id="557360560705413259">ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> విజయవంతంగా ప్రామాణీకరించబడే వరకు మరియు స్థానికంగా ఇన్‌స్టాల్ చేయబడిన CA సర్టిఫికెట్‌లకు అనుబంధించబడి ఉండే వరకు సర్టిఫికెట్‌లో subjectAlternativeName ఎక్స్‌టెన్షన్ లేని పక్షంలో హోస్ట్ పేరుతో సరిపోల్చడానికి సర్వర్ సర్టిఫికెట్ యొక్క commonNameను ఉపయోగిస్తుంది.
 
-      దీని వలన అందించబడిన ప్రమాణపత్రం ప్రామాణీకరించబడే హోస్ట్ పేర్లను నియంత్రించే nameConstraints ఎక్సటెన్షన్‌ను దాటవేయడం అనుమతించబడే అవకాశం ఉన్నందున ఇది సిఫార్సు చేయదగినది కాదని గుర్తుంచుకోండి.
+      దీని వలన అందించబడిన సర్టిఫికెట్ ప్రామాణీకరించబడే హోస్ట్ పేర్లను నియంత్రించే nameConstraints ఎక్స్‌టెన్షన్‌ను దాటవేయడం అనుమతించబడే అవకాశం ఉన్నందున ఇది సిఫార్సు చేయదగినది కాదని గుర్తుంచుకోండి.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా తప్పుకు సెట్ చేస్తే, DNS పేరు లేదా IP చిరునామాను కలిగి ఉన్న subjectAlternativeName ఎక్సటెన్షన్ లేని సర్వర్ ప్రమాణపత్రాలు విశ్వసించబడవు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేస్తే, DNS పేరు లేదా IP చిరునామాను కలిగి ఉన్న subjectAlternativeName ఎక్స్‌టెన్షన్ లేని సర్వర్ సర్టిఫికెట్‌లు విశ్వసించబడవు.</translation>
 <translation id="5581292529942108810">Chrome నివేదన ఎక్స్‌టెన్షన్ సంబంధిత విధానాలను కాన్ఫిగర్ చేయండి.
 
       <ph name="CHROME_REPORTING_EXTENSION_NAME" /> ప్రారంభించినప్పుడు, అలాగే మెషీన్‌ని <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />తో నమోదు చేసినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
-<translation id="5583806683960333345">ఈ సెట్టింగ్ ప్రారంభించబడితే, తక్షణ టీథెరింగ్‌‌ని ఉపయోగించడానికి వినియోగదారులు అనుమతించబడతారు, ఇది తమ పరికరంతో మొబైల్ డేటాను షేర్‌ చేయడానికి తమ Google ఫోన్‌ను అనుమతిస్తుంది.
+<translation id="5583806683960333345">ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, తక్షణ టెథెరింగ్‌‌ను ఉపయోగించడానికి వినియోగదారులు అనుమతించబడతారు, ఇది తమ పరికరంతో మొబైల్ డేటాను షేర్ చేయడానికి తమ Google ఫోన్‌ను అనుమతిస్తుంది.
 
-ఈ సెట్టింగ్‌ నిలిపివేయబడితే, వినియోగదారులు తక్షణ టీథెరింగ్‌ను ఉపయోగించడానికి అనుమతించబడతారు.
+ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు తక్షణ టెథెరింగ్‌ను ఉపయోగించడానికి అనుమతించబడతారు.
 
-ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ అనేది ఎంటర్‌ప్రైజ్ నిర్వాహిత‌ వినియోగదారులకు అనుమతించబడదు. కానీ నిర్వహించబడని వినియోగదారులకు అనుమతించబడుతుంది.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ అనేది ఎంటర్‌ప్రైజ్ నిర్వహిత వినియోగదారులకు అనుమతించబడదు, కానీ నిర్వహించబడని వినియోగదారులకు అనుమతించబడుతుంది.</translation>
 <translation id="5584132346604748282">Android Google స్థాన సేవలను నియంత్రిస్తుంది</translation>
 <translation id="5586942249556966598">ఏమి చేయవద్దు</translation>
 <translation id="5590494712401018042">పరికరం ప్రదర్శన మోడ్‌లో ఉన్నప్పుడు, స్క్రీన్ కాంతివిహీనత ఆలస్యాన్నిలెక్కించే శాతాన్ని నిర్దేశిస్తుంది.
@@ -2204,11 +2303,11 @@
     గమనిక: ఈ విధానం RAM ఖచ్చితంగా 1GB కంటే ఎక్కువ ఉండే Android అమలయ్యే పరికరాల్లో Chromeకి మాత్రమే వర్తిస్తుంది. Android-యేతర ప్లాట్‌ఫామ్‌లలో విధానాన్ని వర్తింపజేయడానికి, IsolateOriginsని ఉపయోగించండి.
       </translation>
 <translation id="5599461642204007579"><ph name="MS_AD_NAME" /> నిర్వహణ సెట్టింగ్‌లు</translation>
-<translation id="5610104657949692379">ఈ విధానాన్ని సెట్ చేసినప్పుడు, వేరుగా కాన్ఫిగర్ చేయబడే ఇన్‌యాక్టివ్‌ ఆలస్యం అందించిన సమయం వరకు వినియోగదారు యాక్టివ్‌గా లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> తీసుకునే చర్యను పేర్కొంటుంది.
+<translation id="5610104657949692379">ఈ విధానాన్ని సెట్ చేసినప్పుడు, వేరుగా కాన్ఫిగర్ చేయబడే ఇన్‌యాక్టివ్‌ ఆలస్యం అందించిన సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు <ph name="PRODUCT_OS_NAME" /> తీసుకునే చర్యను పేర్కొంటుంది.
 
 ఈ విధానాన్ని సెట్ చేయనప్పుడు, డిఫాల్ట్ చర్య అయిన తాత్కాలిక తొలగింపు తీసుకోబడుతుంది.
 
-చర్య తాత్కాలిక తొలగింపు అయితే, తాత్కాలిక తొలగింపుకు పూర్వం స్క్రీన్ లాక్ కావాలని లేదా లాక్ కాకూడదని <ph name="PRODUCT_OS_NAME" /> వేరుగా కాన్ఫిగర్ చేయబడవచ్చు.</translation>
+చర్య తాత్కాలిక తొలగింపు అయితే, తాత్కాలిక తొలగింపునకు పూర్వం స్క్రీన్ లాక్ కావాలని లేదా లాక్ కాకూడదని <ph name="PRODUCT_OS_NAME" />ను వేరుగా కాన్ఫిగర్ చేయవచ్చు.</translation>
 <translation id="5618398258385745432">పాస్‌వర్డ్‌ల వీక్షణ కోసం పునఃప్రామాణీకరణ ఎంపికను అందించడానికి ముందు ఈ అనుబంధ సెట్టింగ్ ఉపయోగించబడేది. అప్పటి నుండి, సెట్టింగ్ మరియు ఈ విధానం Chrome ప్రవర్తనపై ఎలాంటి ప్రభావాన్ని కలిగి లేవు. Chrome ప్రస్తుత ప్రవర్తన అనేది పాస్‌వర్డ్ సెట్టింగ్‌ల పేజీలో స్పష్టమైన వచనంలా పాస్‌వర్డ్‌లను చూపడాన్ని నిలిపివేతకు సెట్ చేసినప్పటి ప్రవర్తన లాగే ఉంటుంది. సెట్టింగ్‌ల పేజీ ప్లేస్‌హోల్డర్‌ను మాత్రమే కలిగి ఉంటుంది మరియు వినియోగదారు "చూపు" క్లిక్ చేసినప్పుడు (మరియు అవసరమైతే, పునఃప్రామాణీకరణ చేసినప్పుడు) మాత్రమే Chrome పాస్‌వర్డ్‌ను చూపుతుంది. విధానం అసలైన వివరణ దిగువ ఉంది.
 
           పాస్‌వర్డ్ మేనేజర్‌లో స్పష్టమైన వచనంలా వినియోగదారు పాస్‌వర్డ్‌లను చూపవచ్చో లేదో అన్న‌ దాన్ని నియంత్రిస్తుంది.
@@ -2242,11 +2341,11 @@
       ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు దీన్ని మార్చలేరు లేదా భర్తీ చేయలేరు.</translation>
 <translation id="5708969689202733975">అనుమతించబడిన త్వరిత అన్‌లాక్ మోడ్‌లను కాన్ఫిగర్ చేస్తుంది</translation>
 <translation id="572155275267014074">Android సెట్టింగ్‌లు</translation>
-<translation id="5722934961007828462">ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> ఎల్లప్పుడూ విజయవంతంగా ప్రామాణీకరించబడిన మరియు స్థానికంగా ఇన్‌స్టాల్ చేయబడిన CA ప్రమాణపత్రాల సంతకం కలిగిన సర్వర్ ప్రమాణపత్రాల కోసం ఉపసంహరణ తనిఖీని అమలు చేస్తుంది.
+<translation id="5722934961007828462">ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> ఎప్పుడూ విజయవంతంగా ప్రామాణీకరించబడిన మరియు స్థానికంగా ఇన్‌స్టాల్ చేయబడిన CA సర్టిఫికెట్‌ల సంతకం కలిగిన సర్వర్ సర్టిఫికెట్‌ల కోసం ఉపసంహరణ తనిఖీని అమలు చేస్తుంది.
 
-      <ph name="PRODUCT_NAME" /> ఉపసంహరణ స్థితి సమాచారాన్ని పొందలేకపోతే, అటువంటి ప్రమాణపత్రాలను ఉపసంహరించబడినవిగా పరిగణిస్తారు ('హార్డ్-వైఫల్యం').
+      <ph name="PRODUCT_NAME" /> ఉపసంహరణ స్థితి సమాచారాన్ని పొందలేకపోతే, అటువంటి సర్టిఫికెట్‌లను ఉపసంహరించబడినవిగా పరిగణిస్తారు ('హార్డ్-వైఫల్యం').
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా తప్పుకు సెట్ చేస్తే, అప్పుడు <ph name="PRODUCT_NAME" /> ఇప్పటికే ఉన్న ఆన్‌లైన్ ఉపసంహరణ తనిఖీ సెట్టింగ్‌లను ఉపయోగిస్తుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేస్తే, అప్పుడు <ph name="PRODUCT_NAME" /> ఇప్పటికే ఉన్న ఆన్‌లైన్ ఉపసంహరణ తనిఖీ సెట్టింగ్‌లను ఉపయోగిస్తుంది.</translation>
 <translation id="5728154254076636808"><ph name="PRODUCT_NAME" /> ప్రొఫైల్ డేటా కోసం రోమింగ్ కాపీల సృష్టిని ప్రారంభించండి</translation>
 <translation id="5732972008943405952">మొదటి అమలు సమయంలో డిఫాల్ట్ బ్రౌజర్ నుండి ఆటోఫిల్‌ ఫారమ్ డేటాను దిగుమతి చేస్తుంది</translation>
 <translation id="5741810844420698449">ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది వినియోగదారు పరికరం యొక్క మూతను మూసివేసినప్పుడు <ph name="PRODUCT_OS_NAME" /> తీసుకునే చర్యను పేర్కొంటుంది.
@@ -2261,7 +2360,7 @@
 <translation id="5781412041848781654">HTTP ప్రామాణీకరణ కోసం ఉపయోగించాల్సిన GSSAPI లైబ్రరీని పేర్కొంటుంది. మీరు కేవలం లైబ్రరీ పేరును, లేదంటే పూర్తి పాత్‌ను సెట్ చేయవచ్చు.
 
           సెట్టింగ్ ఏదీ అందించకుంటే, <ph name="PRODUCT_NAME" /> తిరిగి డిఫాల్ట్ లైబ్రరీ పేరును ఉపయోగిస్తుంది.</translation>
-<translation id="5781806558783210276">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడుతుందో పేర్కొంటుంది.
+<translation id="5781806558783210276">బ్యాటరీ పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> ఇన్‌యాక్టివ్‌ చర్యను తీసుకోవడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది, ఇది వేరుగా కాన్ఫిగర్ చేయబడుతుంది.
 
@@ -2277,14 +2376,14 @@
 
       మీరు ఈ విధానాన్ని సెట్ చేస్తే, అందించబడిన డైరెక్టరీని <ph name="PRODUCT_FRAME_NAME" /> ఉపయోగిస్తుంది.
 
-      ఉపయోగించబడే చరాంశాల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables చూడండి.
+      ఉపయోగించబడే వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables చూడండి.
 
       ఈ సెట్టింగ్‌ను సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ ప్రొఫైల్ డైరెక్టరీ ఉపయోగించబడుతుంది.</translation>
-<translation id="5826047473100157858">వినియోగదారు <ph name="PRODUCT_NAME" />లో అజ్ఞాత మోడ్‌లో పేజీలను తెరవవచ్చో, లేదో పేర్కొంటుంది. 'ప్రారంభించబడింది' ఎంచుకుంటే లేదా విధానం సెట్ చేయకుండా వదిలేస్తే, అజ్ఞాత మోడ్‌లో పేజీలు తెరవవచ్చు. 'ఆపివేయబడింది' ఎంచుకుంటే, పేజీలు అజ్ఞాత మోడ్‌లో తెరవబడవు. 'బలవంతంగా ఎంచుకో' ఎంచుకుంటే, పేజీలు కేవలం అజ్ఞాత మోడ్‌లోనే తెరుచుకుంటాయి.</translation>
+<translation id="5826047473100157858">వినియోగదారు <ph name="PRODUCT_NAME" />లో అజ్ఞాత మోడ్‌లో పేజీలను తెరవవచ్చో, లేదో పేర్కొంటుంది. 'ప్రారంభించబడింది' ఎంచుకుంటే లేదా విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అజ్ఞాత మోడ్‌లో పేజీలు తెరవవచ్చు. 'ఆపివేయబడింది' ఎంచుకుంటే, పేజీలు అజ్ఞాత మోడ్‌లో తెరవబడవు. 'బలవంతంగా ఎంచుకో' ఎంచుకుంటే, పేజీలు కేవలం అజ్ఞాత మోడ్‌లోనే తెరుచుకుంటాయి.</translation>
 <translation id="582857022372205358">చిన్న అంచు డూప్లెక్స్ ముద్రణను ప్రారంభించండి</translation>
 <translation id="583091600226586337">
-      విధానం ప్రారంభించినట్లయితే, ప్రతి ఫైల్‌ను డౌన్‌లోడ్ చేసే ముందు ఎక్కడ సేవ్ చేయాలో వినియోగదారును అడుగుతుంది.
-      విధానం నిలిపివేసినట్లయితే, డౌన్‌లోడ్‌లు వెంటనే ప్రారంభమవుతాయి మరియు ఫైల్‌ను ఎక్కడ సేవ్ చేయాలో వినియోగదారును అడగదు.
+      విధానాన్ని ప్రారంభించినట్లయితే, ప్రతి ఫైల్‌ను డౌన్‌లోడ్ చేసే ముందు ఎక్కడ సేవ్ చేయాలో వినియోగదారును అడుగుతుంది.
+      విధానాన్ని నిలిపివేసినట్లయితే, డౌన్‌లోడ్‌లు వెంటనే ప్రారంభమవుతాయి, ఫైల్‌ను ఎక్కడ సేవ్ చేయాలో వినియోగదారును అడగదు.
       విధానాన్ని కాన్ఫిగర్ చేయకపోతే, వినియోగదారు ఈ సెట్టింగ్‌ను మార్చగలుగుతారు.
       </translation>
 <translation id="5832274826894536455">విస్మరించిన విధానాలు</translation>
@@ -2293,28 +2392,28 @@
       URLలు (https://example.com/some/path వంటివి) U2F యాప్ IDలుగా మాత్రమే సరిపోతాయి. డొమైన్‌లు (example.com వంటివి) మాత్రమే webauthn RP IDలుగా సరిపోతాయి. ఈ విధంగా, ఇచ్చిన సైట్ కోసం U2F మరియు webauthn APIలను కవర్ చేయడానికి, యాప్ ID URL మరియు డొమైన్ రెండింటినీ జాబితా చేయాలి.</translation>
 <translation id="5836064773277134605">రిమోట్ యాక్సెస్ హోస్ట్ ద్వారా ఉపయోగించబడే UDP పోర్ట్ పరిధిని పరిమితం చేయండి</translation>
 <translation id="5861856285460256766">తల్లి/తండ్రి యాక్సెస్ కోడ్ కాన్ఫిగరేషన్</translation>
-<translation id="5862253018042179045">లాగిన్ స్క్రీన్‌లో మాటల ప్రతిస్పందన యాక్సెస్‌ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి.
+<translation id="5862253018042179045">లాగిన్ స్క్రీన్‌లో మాటల ప్రతిస్పందన యాక్సెస్ ఫీచర్ డిఫాల్ట్ స్థితిని సెట్ చేయండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు మాటల ప్రతిస్పందన ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు మాటల ప్రతిస్పందన ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు మాటల ప్రతిస్పందన నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు మాటల ప్రతిస్పందన నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు మాటల ప్రతిస్పందనను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీన్ని తాత్కాలికంగా అధిగ‌మించ‌వ‌చ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్‌లో కొత్త‌ది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో యాక్టివ్‌గా లేనప్పుడు డిఫాల్ట్ పునరుద్ధరించబడుతుంది.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు మాటల ప్రతిస్పందనను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీనిని తాత్కాలికంగా భర్తీ చేయవచ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్‌లో కొత్తది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు డిఫాల్ట్ పునరుద్ధరించబడుతుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు మాటల ప్రతిస్పందన నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా మాటల ప్రతిస్పందనను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారుల మధ్య అలాగే కొనసాగుతుంది.</translation>
 <translation id="5868414965372171132">వినియోగదారు-స్థాయి నెట్‌వర్క్ కాన్ఫిగరేషన్</translation>
 <translation id="5879014913445067283"><ph name="NETBIOS_NAME" /> ద్వారా నెట్‌వర్క్ ఫైల్ షేర్‌ ఆచూకీ శోధనను నియంత్రిస్తుంది</translation>
 <translation id="5882345429632338713">ప్రత్యామ్నాయ బ్రౌజర్‌ను ప్రారంభించే ముందు నిర్దిష్ట సమయం (మిల్లీ సెకన్లు) వేచి ఉండండి</translation>
 <translation id="5883015257301027298">డిఫాల్ట్ కుక్కీల సెట్టింగ్</translation>
-<translation id="5887414688706570295">రిమోట్ యాక్సెస్ హోస్ట్‌లు ఉపయోగించే TalkGadget ఆది ప్రత్యయాన్ని కాన్ఫిగర్ చేస్తుంది మరియు వినియోగదారులు దీన్ని మార్చకుండా నిరోధిస్తుంది.
+<translation id="5887414688706570295">రిమోట్ యాక్సెస్ హోస్ట్‌లు ఉపయోగించే TalkGadget ప్రీఫిక్స్‌ను కాన్ఫిగర్ చేస్తుంది, వినియోగదారులు దీనిని మార్చకుండా నిరోధిస్తుంది.
 
-          పేర్కొని ఉంటే, ఈ ఆది ప్రత్యయం TalkGadget కోసం పూర్తి డొమైన్ పేరును సృష్టించడానికి ఆధార TalkGadget పేరుకు ముందు జోడించబడుతుంది. ఆధార TalkGadget డొమైన్ పేరు '.talkgadget.google.com'.
+          పేర్కొని ఉంటే, ఈ ప్రీఫిక్స్ TalkGadget కోసం పూర్తి డొమైన్ పేరును సృష్టించడానికి ఆధారమైన TalkGadget పేరుకు ముందు జోడించబడుతుంది. ఆధార TalkGadget డొమైన్ పేరు '.talkgadget.google.com'.
 
           ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, అప్పుడు హోస్ట్‌లు TalkGadgetను యాక్సెస్ చేసేటప్పుడు డిఫాల్ట్ డొమైన్ పేరుకు బదులుగా అనుకూల డొమైన్ పేరును ఉపయోగిస్తాయి.
 
           ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకపోతే, అప్పుడు అన్ని హోస్ట్‌ల కోసం డిఫాల్ట్ TalkGadget డొమైన్ పేరు ('chromoting-host.talkgadget.google.com') ఉపయోగించబడుతుంది.
 
-          ఈ విధానం సెట్టింగ్ వలన రిమోట్ యాక్సెస్ క్లయింట్‌లు ప్రభావితం కావు. అవి ఎల్లప్పుడూ TalkGadgetను యాక్సెస్ చేయడానికి 'chromoting-client.talkgadget.google.com'ను ఉపయోగిస్తాయి.</translation>
+          ఈ విధానం సెట్టింగ్ వలన రిమోట్ యాక్సెస్ క్లయింట్‌లు ప్రభావితం కావు. అవి ఎప్పుడూ TalkGadgetను యాక్సెస్ చేయడానికి 'chromoting-client.talkgadget.google.com'ను ఉపయోగిస్తాయి.</translation>
 <translation id="5893553533827140852">ఈ సెట్టింగ్ ప్రారంభించబడితే, gnubby ప్రామాణీకరణ అభ్యర్థనలు రిమోట్ హోస్ట్ కనెక్షన్‌లో ప్రాక్సీ చేయబడతాయి.
 
           ఈ సెట్టింగ్ నిలిపివేయబడితే లేదా కాన్ఫిగర్ చేయబడకపోతే, gnubby ప్రామాణీకరణ అభ్యర్థనలు ప్రాక్సీ చేయబడవు.</translation>
@@ -2333,15 +2432,15 @@
       'తప్పు'గా సెట్ చేస్తే, కుదింపు ఉండదు.
       'ఒప్పు'గా సెట్ చేస్తే, అందించబడిన అప్‌లోడ్ మరియు డౌన్‌లోడ్ రేట్‌లను (kbits/sలో) చేరుకోవడానికి సిస్టమ్ కుదించబడుతుంది.</translation>
 <translation id="5921713479449475707">స్వీయ నవీకరణ డౌన్‌లోడ్‌లను HTTP ద్వారా అనుమతించండి</translation>
-<translation id="5921888683953999946">లాగిన్ స్క్రీన్‌లో పెద్ద కర్సర్ యాక్సెస్‌ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి.
+<translation id="5921888683953999946">లాగిన్ స్క్రీన్‌లో పెద్ద కర్సర్ యాక్సెస్ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు పెద్ద కర్సర్ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు పెద్ద కర్సర్ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు పెద్ద కర్సర్ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు పెద్ద కర్సర్ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు పెద్ద కర్సర్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీన్ని తాత్కాలికంగా అధిగ‌మించ‌వ‌చ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్‌లో కొత్త‌ది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో యాక్టివ్‌గా లేనప్పుడు డిఫాల్ట్ స్థితి పునరుద్ధరించబడుతుంది.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు పెద్ద కర్సర్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీనిని తాత్కాలికంగా భర్తీ చేయవచ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు, లాగిన్ స్క్రీన్‌ను కొత్తగా చూపినప్పుడు లేదా వినియోగదారు ఒక నిమిషం పాటు లాగిన్ స్క్రీన్‌లో ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు, డిఫాల్ట్ స్థితి పునరుద్ధరించబడుతుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు పెద్ద కర్సర్ నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా పెద్ద కర్సర్‌ను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారులకు స్థిరంగా ఉంటుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు పెద్ద కర్సర్ నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా పెద్ద కర్సర్‌ను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు, లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారులకు స్థిరంగా ఉంటుంది.</translation>
 <translation id="5929855945144989709">Chrome OSలో వర్చువల్ మిషన్‌లను అమలు చేయడానికి పరికరాలను అనుమతించండి</translation>
 <translation id="5932767795525445337">Android యాప్‌లను పిన్ చేసేందుకు కూడా ఈ విధానాన్ని ఉపయోగించవచ్చు.</translation>
 <translation id="5936622343001856595">Google వెబ్ శోధనలో ప్రశ్నలు, సురక్షిత శోధనతో జ‌రిగేలా యాక్టివ్‌కు సెట్ చేసేలా నిర్బంధిస్తుంది. వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చకుండా నిరోధిస్తుంది.
@@ -2350,20 +2449,20 @@
 
       మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా విలువను సెట్ చేయకపోతే, Google శోధనలో సురక్షిత శోధన అమలు చేయబడదు.</translation>
 <translation id="5946082169633555022">బీటా ఛానెల్</translation>
-<translation id="5950205771952201658">ఒకవేళ సాఫ్ట్-వైఫల్యం సంభవిస్తే, ఆన్‌లైన్ ఉపసంహరణ తనిఖీలు ప్రభావవంతమైన భద్రతా ప్రయోజనాన్ని అందించవు, అవి <ph name="PRODUCT_NAME" /> వెర్షన్ 19 మరియు దాని తర్వాతి వెర్షన్‌లలో డిఫాల్ట్‌గా నిలిపివేయబడతాయి. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, తద్వారా మునుపటి ప్రవర్తన పునరుద్ధరించబడుతుంది మరియు ఆన్‌లైన్ OCSP/CRL తనిఖీలు అమలు చేయబడతాయి.
+<translation id="5950205771952201658">ఒకవేళ సాఫ్ట్-వైఫల్యం సంభవిస్తే, ఆన్‌లైన్ ఉపసంహరణ తనిఖీలు ఎలాంటి ప్రభావవంతమైన భద్రతా ప్రయోజనాన్ని అందించవు, అవి <ph name="PRODUCT_NAME" /> వెర్షన్ 19 మరియు దాని తర్వాతి వాటిలో డిఫాల్ట్‌గా నిలిపివేయబడతాయి. ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, తద్వారా మునుపటి ప్రవర్తన పునరుద్ధరించబడుతుంది, ఆన్‌లైన్ OCSP/CRL తనిఖీలు అమలు చేయబడతాయి.
 
-      విధానాన్ని సెట్ చేయకపోయినా లేదా 'తప్పు'గా సెట్ చేసినా, అప్పుడు <ph name="PRODUCT_NAME" /> 19 మరియు దాని తర్వాతి వెర్షన్‌లలో <ph name="PRODUCT_NAME" /> ఆన్‌లైన్ ఉపసంహరణ తనిఖీలను అమలు చేయదు.</translation>
+      విధానాన్ని సెట్ చేయకపోయినా లేదా 'తప్పు'గా సెట్ చేసినా, అప్పుడు <ph name="PRODUCT_NAME" /> 19వ వెర్షన్ మరియు దాని తర్వాతి వెర్షన్‌లలో <ph name="PRODUCT_NAME" /> ఆన్‌లైన్ ఉపసంహరణ తనిఖీలను అమలు చేయదు.</translation>
 <translation id="5966615072639944554">రిమోట్ ధృవీకరణ APIని ఉపయోగించడానికి అనుమతించబడిన ఎక్స్‌టెన్షన్‌లు</translation>
 <translation id="5983708779415553259">ఏ కంటెంట్ ప్యాక్‌లో లేని సైట్‌ల కోసం డిఫాల్ట్ స్వభావం</translation>
 <translation id="5997543603646547632">డిఫాల్ట్‌గా 24 గంటల గడియారాన్ని ఉపయోగించండి</translation>
 <translation id="5997846976342452720">ప్లగ్‌ఇన్ ఫైండర్‌ను నిలిపివేయాలో లేదో పేర్కొనండి (విస్మరించబడింది)</translation>
-<translation id="6017568866726630990">ప్రింట్ ప్రివ్యూకు బదులు సిస్టమ్ ప్రింట్ డైలాగ్‌ను చూపుతుంది.
+<translation id="6017568866726630990">ముద్రణ ప్రివ్యూకు బదులు సిస్టమ్ ముద్రణ డైలాగ్‌ను చూపుతుంది.
 
-      ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> వినియోగదారు పేజీని ముద్రించాలని అభ్యర్థించినప్పుడు అంతర్గత ప్రింట్ ప్రివ్యూకు బదులు సిస్టమ్ ప్రింట్ డైలాగ్‌ను తెరుస్తుంది.
+      ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> వినియోగదారు పేజీని ముద్రించాలని అభ్యర్థించినప్పుడు అంతర్గత ముద్రణ ప్రివ్యూకు బదులు సిస్టమ్ ముద్రణ డైలాగ్‌ను తెరుస్తుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా తప్పున‌కు సెట్ చేస్తే, ప్రింట్ ఆదేశాలు ప్రింట్ ప్రివ్యూ స్క్రీన్‌ను ప్రారంభిస్తాయి.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే లేదా 'తప్పు'గా సెట్ చేస్తే, ముద్రణ ఆదేశాలు ముద్రణ ప్రివ్యూ స్క్రీన్‌ను ప్రారంభిస్తాయి.</translation>
 <translation id="6022948604095165524">స్టార్ట‌ప్‌లో చర్య</translation>
-<translation id="6023030044732320798">ARC అమలు సమయానికి సంకలనం చేయబడే విధానాల సెట్‌ను పేర్కొంటుంది. విలువ తప్పకుండా చెల్లుబాటయ్యే JSON రకం అయి ఉండాలి.
+<translation id="6023030044732320798">ARC అమలు సమయానికి సంకలనం చేయబడే విధానాల సెట్‌ను పేర్కొంటుంది. విలువ అనేది, తప్పకుండా చెల్లుబాటయ్యే JSON రకం అయ్యి ఉండాలి.
 
       ఈ విధానాన్ని ఉపయోగించడం ద్వారా పరికరంలో ఏయే Android యాప్‌లు ఆటోమేటిక్‌గా ఇన్‌స్టాల్ కావాలో కాన్ఫిగర్ చేయవచ్చు:
 
@@ -2418,14 +2517,14 @@
 <translation id="6070667616071269965">పరికర సైన్-ఇన్ స్క్రీన్ కీబోర్డ్ లేఅవుట్‌లు</translation>
 <translation id="6074963268421707432">డెస్క్‌టాప్ నోటిఫికేషన్‌లను చూపించడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
 <translation id="6074964551275531965">అప్‌డేట్ నోటిఫికేషన్‌ల కోసం వ్యవధిని సెట్ చేయండి</translation>
-<translation id="6076099373507468537">నేరుగా వెబ్ యాప్‌లో chrome.usb API ద్వారా ఉపయోగించడానికి వాటి కెర్నల్ డ్రైవర్ నుండి వేరు చేయడానికి అనుమతించబడిన USB పరికరాల జాబితాను నిర్వచిస్తుంది. నమోదులు అనేవి నిర్దిష్ట హార్డ్‌వేర్‌ను గుర్తించడానికి ఉద్దేశించిన USB విక్రేత ఐడెంటిఫైయర్ మరియు ఉత్పత్తి ఐడెంటిఫైయర్ జతలు.
+<translation id="6076099373507468537">నేరుగా వెబ్ యాప్‌లో chrome.usb API ద్వారా ఉపయోగించడం కోసం వాటి కెర్నల్ డ్రైవర్ నుండి వేరు చేయడానికి అనుమతించబడిన USB పరికరాల జాబితాను నిర్వచిస్తుంది. నమోదులు అనేవి నిర్దిష్ట హార్డ్‌వేర్‌ను గుర్తించడానికి ఉద్దేశించిన USB విక్రేత ఐడెంటిఫైయర్ మరియు ఉత్పత్తి ఐడెంటిఫైయర్ జతలు.
 
-     ఈ విధానాన్ని కాన్ఫిగర్ చేయకపోతే, వేరు చేయగల USB పరికరాల జాబితా ఖాళీగా ఉంటుంది.</translation>
+     ఈ విధానాన్ని కాన్ఫిగర్ చేయకుంటే, వేరు చేయగల USB పరికరాల జాబితా ఖాళీగా ఉంటుంది.</translation>
 <translation id="6083631234867522991">Windows (Windows క్లయింట్‌లు):</translation>
 <translation id="6089679180657323464">Wilco సమస్య విశ్లేషణ, టెలిమెట్రీ కంట్రోలర్ సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
 <translation id="6091233616732024397">బ్రౌజర్‌ను ఉపయోగించడానికి సైన్-ఇన్ చేసేలా వినియోగదారులను నిర్బంధించండి</translation>
 <translation id="6093156968240188330">రిమోట్ వినియోగదారులు రిమోట్ సహాయక సెషన్‌ల్లో నిర్వాహక సామర్థ్య విండోలతో పరస్పర చర్య చేయడాన్ని అనుమతిస్తుంది</translation>
-<translation id="6095999036251797924">AC విద్యుత్ శక్తిపై లేదా బ్యాటరీపై పని చేస్తున్నప్పుడు వినియోగదారు ఎంత సమయం పాటు ఇన్‍పుట్ చేయకపోతే స్క్రీన్ లాక్ చేయబడాలో పేర్కొంటుంది.
+<translation id="6095999036251797924">AC విద్యుత్ శక్తిపై లేదా బ్యాటరీపై పని చేస్తున్నప్పుడు వినియోగదారు ఎంత సమయం పాటు ఇన్‍పుట్ చేయకపోతే స్క్రీన్‌ను లాక్ చేయాలో పేర్కొంటుంది.
 
           కాలవ్యవధిని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఆ విలువ <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను లాక్ చేయడానికి వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో సూచిస్తుంది.
 
@@ -2433,7 +2532,7 @@
 
           కాలవ్యవధిని సెట్ చేయకుండా ఉన్నప్పుడు, డిఫాల్ట్ కాలవ్యవధి ఉపయోగించబడుతుంది.
 
-          తాత్కాలికంగా నిలిపివేసినప్పుడు స్క్రీన్ లాక్‌ను ప్రారంభించడం అనేది యాక్టివ్‌గా లేనప్పుడు స్క్రీన్ లాక్ చేయడానికి సిఫార్సు చేయదగిన పద్ధతి మరియు ఈ పద్ధతిలో ఇన్‌యాక్టివ్‌ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడుతుంది. స్క్రీన్ లాక్ చేయడం అనేది తాత్కాలికంగా నిలిపివేయడానికి గణనీయ సమయం కంటే ముందు జ‌ర‌గాలి అనుకున్న‌ప్పుడు లేదా యాక్టివ్‌గా లేనప్పుడు ఆపివేయడం అసలు అవసరం కానప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
+          తాత్కాలికంగా నిలిపివేసినప్పుడు స్క్రీన్ లాక్‌ను ప్రారంభించడం అనేది ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు స్క్రీన్ లాక్ చేయడానికి సిఫార్సు చేయదగిన పద్ధతి, ఈ పద్ధతిలో ఇన్‌యాక్టివ్‌ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడుతుంది. స్క్రీన్ లాక్ చేయడం అనేది తాత్కాలికంగా నిలిపివేయడానికి గణనీయ సమయం కంటే ముందు జరగాలన్నప్పుడు లేదా ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు ఆపివేయడం అసలు అవసరం కానప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
 
           విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువకు అమర్చాలి.</translation>
 <translation id="6097601282776163274">URL-కీ ఉన్న అజ్ఞాతీకరించిన డేటా సేకరణను ప్రారంభించండి</translation>
@@ -2443,8 +2542,8 @@
 <translation id="6114416803310251055">తగ్గిన విలువ</translation>
 <translation id="6133088669883929098">కీ ఉత్పాదనను ఉపయోగించడానికి అన్ని సైట్‌లను అనుమతించు</translation>
 <translation id="6141402445226505817">ఎల్లప్పుడూ స్థూల సమయ మండలి గుర్తింపును ఉపయోగించండి</translation>
-<translation id="6145799962557135888">JavaScriptను అమలు చేయడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెడితే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ- సెట్ చేయబడి ఉంటే 'DefaultJavaScriptSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
-<translation id="614662973812186053">అలాగే ఈ విధానం Android వినియోగం మరియు విశ్లేషణ డేటా సేకరణను కూడా నియంత్రిస్తుంది.</translation>
+<translation id="6145799962557135888">JavaScriptను అమలు చేయడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultJavaScriptSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
+<translation id="614662973812186053">అలాగే Androidలో వినియోగం మరియు విశ్లేషణ డేటా సేకరణను కూడా ఈ విధానం నియంత్రిస్తుంది.</translation>
 <translation id="6153048425064249648">బ్రౌజర్ చర్య గురించి సమాచారాన్ని Google నిర్వాహకుల కన్సోల్‌కు అప్‌లోడ్ చేసే <ph name="PRODUCT_NAME" /> క్లౌడ్ నివేదనను ఈ విధానం నియంత్రిస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుంటే లేదా తప్పు అని సెట్ చేస్తే, డేటా సేకరించబడదు, అప్‌లోడ్ చేయబడదు.
@@ -2480,21 +2579,29 @@
 <translation id="6155936611791017817">లాగిన్ స్క్రీన్‌లో పెద్ద కర్సర్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి</translation>
 <translation id="6157537876488211233">కామాతో వేరుపరచబడిన ప్రాక్సీ బైపాస్ నియమాల జాబితా</translation>
 <translation id="6158324314836466367">వ్యాపార వెబ్ స్టోర్ పేరు (విస్మరించబడింది)</translation>
+<translation id="6158817306788002298">మీరు ప్రాక్సీ .pac ఫైల్ కోసం URLని ఇక్కడ పేర్కొనవచ్చు.
+
+          మీరు 'ప్రాక్సీ సర్వర్ సెట్టింగ్‌లను ఎలా పేర్కొనాలో ఎంచుకోండి' ఎంపికలో మాన్యువల్ ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకున్నప్పుడు మరియు <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని పేర్కొననప్పుడు మాత్రమే ఈ విధానం ప్రభావవంతమవుతుంది.
+
+          మీరు ప్రాక్సీ విధానాలను సెట్ చేయడానికి మరేదైనా ఇతర మోడ్‌ను ఎంచుకొని ఉంటే, మీరు ఈ విధానాన్ని సెట్ చేయకుండా అలాగే వదిలిపెట్టాలి.
+
+          వివరణాత్మక ఉదాహరణల కోసం, ఈ లింక్‌ను సందర్శించండి:
+          <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="6178075938488052838">ఈ విధానం <ph name="PRODUCT_OS_NAME" /> సెషన్‌ను ప్రారంభించేవారిని నియంత్రిస్తుంది. ఇది Androidలో వినియోగదారులు అదనపు Google ఖాతాలకు సైన్ ఇన్ చేయకుండా నిరోధించదు. మీరు దీనిని నిరోధించాలనుకుంటే, <ph name="ARC_POLICY_POLICY_NAME" />లో భాగంగా Android నిర్దిష్ట <ph name="ACCOUNT_TYPES_WITH_MANAGEMENT_DISABLED_CLOUDDPC_POLICY_NAME" /> విధానాన్ని కాన్ఫిగర్ చేయండి.</translation>
 <translation id="6181608880636987460"><ph name="FLASH_PLUGIN_NAME" /> ప్లగిన్‌ను అమలు చేయడానికి అనుమతి లేని సైట్‌లను పేర్కొనడం కోసం url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుంటే, 'DefaultPluginsSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.</translation>
 <translation id="6190022522129724693">డిఫాల్ట్ పాప్‌అప్‌ల సెట్టింగ్</translation>
 <translation id="6190367314942602985">వినియోగదారు గుర్తింపు సమాచారాన్ని నివేదించండి</translation>
-<translation id="6197453924249895891">ఎక్స్‌టెన్ష‌న్‌ల కోసం కార్పొరేట్ కీల యాక్సెస్‌ను మంజూరు చేస్తుంది.
+<translation id="6197453924249895891">ఎక్స్‌టెన్షన్‌ల కోసం కార్పొరేట్ కీల యాక్సెస్‌ను మంజూరు చేస్తుంది.
 
-      కీలు నిర్వాహిత‌ ఖాతాలో chrome.enterprise.platformKeys API ఉపయోగించి రూపొందించబడితే కార్పొరేట్ వినియోగం కోసం నిర్దేశించబడతాయి. వేరొక మార్గంలో దిగుమతి చేయబడిన లేదా రూపొందించబడిన కీలు కార్పొరేట్ వినియోగం కోసం నిర్దేశించబడవు.
+      నిర్వహిత ఖాతాలో chrome.enterprise.platformKeys API ఉపయోగించి రూపొందించబడే కీలు, కార్పొరేట్ వినియోగం కోసం నిర్దేశించబడతాయి. వేరొక మార్గంలో దిగుమతి చేయబడిన లేదా రూపొందించబడిన కీలు కార్పొరేట్ వినియోగం కోసం నిర్దేశించబడవు.
 
-      కార్పొరేట్ వినియోగం కోసం నిర్దేశించిన కీలకు యాక్సెస్‌ కేవలం ఈ విధానం ప్రకారం మాత్రమే నియంత్రించబడుతుంది. వినియోగదారు ఎక్స్‌టెన్ష‌న్‌లకు లేదా వాటి నుండి కార్పొరేట్ కీల యాక్సెస్‌ను మంజూరు చేయలేరు లేదా ఉపసంహరించలేరు.
+      కార్పొరేట్ వినియోగం కోసం నిర్దేశించిన కీలకు యాక్సెస్ కేవలం ఈ విధానం ప్రకారం మాత్రమే నియంత్రించబడుతుంది. వినియోగదారు ఎక్స్‌టెన్షన్‌లకు లేదా వాటి నుండి కార్పొరేట్ కీల యాక్సెస్‌ను మంజూరు చేయలేరు లేదా ఉపసంహరించలేరు.
 
-      డిఫాల్ట్‌గా ఎక్స్‌టెన్ష‌న్‌ కార్పొరేట్ వినియోగం కోసం నిర్దేశించిన కీని ఉపయోగించలేదు, ఇలా చేయడం ఆ ఎక్స్‌టెన్ష‌న్‌ కోసం allowCorporateKeyUsageను తప్పున‌కు సెట్ చేయడంతో సమానం.
+      డిఫాల్ట్‌గా ఎక్స్‌టెన్షన్ కార్పొరేట్ వినియోగం కోసం నిర్దేశించిన కీని ఉపయోగించలేదు, ఇలా చేయడం అనేది, ఆ ఎక్స్‌టెన్షన్ విషయంలో allowCorporateKeyUsageను 'తప్పు'గా సెట్ చేయడంతో సమానం.
 
-      ఎక్స్‌టెన్ష‌న్‌ కోసం allowCorporateKeyUsageను ఒప్పున‌కు సెట్ చేస్తే మాత్రమే, ఇది అనియంత్రిత డేటాకు సైన్ చేయడానికి కార్పొరేట్ వినియోగం కోసం గుర్తుపెట్టిన ఏ ప్లాట్‌ఫారమ్ కీని అయినా ఉపయోగించగలుగుతుంది. దాడి చేసే వారికి వ్యతిరేకంగా, కీకి సురక్షిత యాక్సెస్‌ ఎక్స్‌టెన్ష‌న్‌ కలిగి ఉన్నట్లు విశ్వసిస్తే మాత్రమే ఈ అనుమతిని మంజూరు చేయాలి.</translation>
+      ఎక్స్‌టెన్షన్ విషయంలో allowCorporateKeyUsageను 'ఒప్పు'గా సెట్ చేస్తే మాత్రమే, ఇది అనియంత్రిత డేటాకు సైన్ చేయడానికి కార్పొరేట్ వినియోగం కోసం గుర్తుపెట్టిన ఏ ప్లాట్‌ఫామ్ కీని అయినా ఉపయోగించగలుగుతుంది. ఎక్స్‌టెన్షన్ దాడి చేసేవారికి వ్యతిరేకంగా కీకి సురక్షిత యాక్సెస్ కలిగి ఉన్నట్లు విశ్వసిస్తే మాత్రమే ఈ అనుమతిని మంజూరు చేయాలి.</translation>
 <translation id="6208896993204286313"><ph name="PRODUCT_NAME" /> విధాన సమాచారాన్ని నివేదించండి</translation>
 <translation id="6210259502936598222">OS మరియు <ph name="PRODUCT_NAME" /> వెర్షన్ సమాచారాన్ని నివేదించండి</translation>
 <translation id="6210610748361191729">ఒకవేళ విధానాన్ని తప్పునకు సెట్ చేస్తే, ఎగుమతి / దిగుమతి UI వినియోగదారులకు అందుబాటులో ఉండదు, అయినప్పటికీ కూడా కంటెయినర్ చిత్రాలను ఎగుమతి, దిగుమతి చేయడానికి 'lxc' ఆదేశాలను నేరుగా వర్చువల్ మెషీన్‌లో ఉపయోగించడం సాధ్యమవుతుంది.</translation>
@@ -2502,11 +2609,11 @@
 
       ఈ సెట్టింగ్‌ను సెట్ చేయకపోతే లేదా ఒప్పున‌కు సెట్ చేస్తే, పరికరంలో వినియోగదారు యాక్టివ్‌గా ఉన్నప్పుడు నమోదిత పరికరాలు సమయ వ్యవధులను నివేదిస్తాయి. ఈ సెట్టింగ్‌ను తప్పున‌కు సెట్ చేస్తే, పరికరం కార్యకలాప సమయాలు రికార్డ్ చేయబడవు లేదా నివేదించబడవు.</translation>
 <translation id="6212868225782276239">బ్లాక్‌లిస్ట్‌లో ఉన్న ప్రింటర్‌లు మినహా మిగతా అన్నీ చూపబడతాయి.</translation>
-<translation id="6219965209794245435">ఈ విధానం మునుపటి డిఫాల్ట్ బ్రౌజర్ ప్రారంభించబడితే దాని నుండి ఆటోఫిల్ ఫారమ్ డేటాను దిగుమతి చేసేలా నిర్బంధిస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి వ్యాఖ్యను కూడా ప్రభావితం చేస్తుంది.
+<translation id="6219965209794245435">మునుపటి డిఫాల్ట్ బ్రౌజర్ ప్రారంభించబడితే దాని నుండి స్వీయ పూరణ ఫారమ్ డేటాను దిగుమతి చేసేలా ఈ విధానం నిర్బంధిస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది.
 
-      నిలిపివేయబడితే, ఆటోఫిల్ ఫారమ్ డేటా దిగుమతి చేయబడదు.
+      నిలిపివేయబడితే, స్వీయ పూరింపు ఫారమ్ డేటా దిగుమతి చేయబడదు.
 
-      దీన్ని సెట్ చేయకపోతే, వినియోగదారును దిగుమతి చేయాలా వద్దా అని అడగవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి చేయవచ్చు.</translation>
+      దీనిని సెట్ చేయకపోతే, వినియోగదారును దిగుమతి చేయాలా వద్దా అని అడగవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి చేయవచ్చు.</translation>
 <translation id="6224304369267200483">URLలు/ డొమైన్‌లు ప్రత్యక్ష భద్రతా కీ ధృవీకరణకు అనుమతిస్తాయి</translation>
 <translation id="6233173491898450179">డౌన్‌లోడ్ డైరెక్టరీని సెట్ చేయి</translation>
 <translation id="6244210204546589761">స్టార్ట్‌అప్‌లో తెరవడానికి URLలు</translation>
@@ -2515,15 +2622,26 @@
 <translation id="6281043242780654992">స్థానిక సందేశ పద్ధతి కోసం విధానాలను కాన్ఫిగర్ చేస్తుంది. నిరోధిత జాబితాలో ఉన్న స్థానిక సందేశ పద్ధతి హోస్ట్‌లు అనుమతి జాబితాలోకి చేర్చకపోతే అనుమతించబడవు.</translation>
 <translation id="6282799760374509080">ఆడియో క్యాప్చర్‌ను అనుమతించడం లేదా తిరస్కరించడం</translation>
 <translation id="6284362063448764300">TLS 1.1</translation>
+<translation id="6306608379445125648">అక్షరదోష తనిఖీ భాషలను నిర్బంధంగా నిలిపివేస్తుంది. ఆ జాబితాలో ఉన్న గుర్తించని భాషలు విస్మరించబడతాయి.
+
+      మీరు ఈ విధానాన్ని ప్రారంభిస్తే, పేర్కొనబడిన భాషల కోసం అక్షరదోష తనిఖీ నిలిపివేయబడుతుంది. ఇప్పటికీ జాబితాలో లేని భాషల కోసం అక్షరదోష తనిఖీని వినియోగదారు ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు.
+
+      ఒకవేళ మీరు ఈ విధానాన్ని సెట్ చేయకపోతే లేదా దీనిని నిలిపివేస్తే, వినియోగదారు అక్షరదోష తనిఖీ ప్రాధాన్యతలలో మార్పు ఉండదు.
+
+      SpellcheckEnabled విధానాన్ని నిలిపివేస్తే, ఈ విధానం ప్రభావం చూపదు.
+
+      ఒక భాష ఈ విధానంలో మరియు SpellcheckLanguage విధానంలో రెండింటిలోనూ ఉంటే, SpellcheckLanguage భాషకు ప్రాధాన్యం ఇవ్వబడుతుంది మరియు అక్షరదోష తనిఖీ భాష ప్రారంభించబడుతుంది.
+
+      ప్రస్తుతానికి మద్దతు ఉన్న భాషలు : af, bg, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-US, es, es-419, es-AR, es-ES, es-MX, es-US, et, fa, fo, fr, he, hi, hr, hu, id, it, ko, lt, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sh, sk, sl, sq, sr, sv, ta, tg, tr, uk, vi.</translation>
 <translation id="6310223829319187614">వినియోగదారు సైన్ ఇన్ చేస్తున్నప్పుడు డొమైన్ పేరు స్వయంపూర్తిని ప్రారంభిస్తుంది</translation>
 <translation id="6315673513957120120">వినియోగదారులు SSL ఎర్రర్‌లు ఉన్న సైట్‌లకు నావిగేట్ చేసినప్పుడు Chrome ఒక హెచ్చరిక పేజీని చూపుతుంది. డిఫాల్ట్‌గా లేదా ఈ విధానం 'ఒప్పు'గా సెట్ చేసినప్పుడు, ఈ హెచ్చరిక పేజీల గుండా క్లిక్ చేయడానికి వినియోగదారులు అనుమతించబడతారు.
-      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారులు ఏ హెచ్చరిక పేజీ గుండా కూడా, క్లిక్ చేయడానికి అనుమతించబడరు.</translation>
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారులు ఏ హెచ్చరిక పేజీ గుండా క్లిక్ చేయడానికి అనుమతించబడరు.</translation>
 <translation id="6352543686437322588">నిర్దిష్ట జాప్యం తర్వాత ఆటో-లాగిన్ చేయాల్సిన పరికర-స్థానిక ఖాతా.
 
       ఈ విధానాన్ని సెట్ చేస్తే, లాగిన్ స్క్రీన్‌పై వినియోగదారు ప్రమేయం లేకుండా నిర్దిష్ట సమయ వ్యవధి గడిచిన తర్వాత పేర్కొన్న సెషన్ ఆటోమేటిక్‌గా లాగిన్ చేయబడుతుంది. పరికర-స్థానిక ఖాతాను తప్పనిసరిగా కాన్ఫిగర్ చేసి ఉండాలి (|DeviceLocalAccounts| చూడండి).
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, ఆటో-లాగిన్ ఉండదు.</translation>
-<translation id="6353901068939575220">POSTతో URLను వెతుకుతున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {searchTerms} వంటి టెంప్లేట్ పారామీటర్ అయితే, ఇది వాస్తవ శోధన పదాల డేటాతో భర్తీ చేయబడుతుంది.
+<translation id="6353901068939575220">POSTతో URLను వెతుకున్నప్పుడు ఉపయోగించే పారామీటర్‌లను పేర్కొంటుంది. ఇందులో కామాతో వేరు చేయబడిన పేరు/విలువ జతలు ఉంటాయి. విలువ ఎగువ ఉదాహరణలోని {searchTerms} వంటి టెంప్లేట్ పారామీటర్ అయితే, దీనిని వాస్తవ శోధన పదాల డేటా భర్తీ చేస్తుంది.
 
           ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, శోధన అభ్యర్థన GET పద్ధతిని ఉపయోగించి పంపబడుతుంది.
 
@@ -2540,8 +2658,8 @@
 <translation id="6378076389057087301">శక్తి నిర్వహణను ఆడియో కార్యాచరణ ప్రభావితం చేయాలో లేదో పేర్కొనండి</translation>
 <translation id="637934607141010488">ఇటీవల లాగిన్ చేసిన పరికర వినియోగదారుల జాబితాను నివేదించండి.
 
-      విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వినియోగదారులు నివేదించబడరు.</translation>
-<translation id="6394350458541421998">ఈ విధానం <ph name="PRODUCT_OS_NAME" /> వెర్షన్ 29 నుండి విరమించబడింది. బదులుగా, దయచేసి PresentationScreenDimDelayScale విధానాన్ని ఉపయోగించండి.</translation>
+      విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వినియోగదారులు నివేదించబడరు.</translation>
+<translation id="6394350458541421998">ఈ విధానం <ph name="PRODUCT_OS_NAME" /> 29వ వెర్షన్ నుండి విరమించబడింది. దయచేసి బదులుగా PresentationScreenDimDelayScale విధానాన్ని ఉపయోగించండి.</translation>
 <translation id="6401669939808766804">వినియోగదారును లాగ్ అవుట్ చేయండి</translation>
 <translation id="6406448383934634215">'URLల జాబితాను తెరువు’ ఎంపికను ప్రారంభ చర్యగా ఎంచుకుంటే, ఇది తెరవబడి ఉండే URLల జాబితాను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది సెట్ చేయకుండా వదిలిపెడితే, ప్రారంభ సమయంలో URL ఏదీ తెరవబడదు.
 
@@ -2565,7 +2683,7 @@
 <translation id="645425387487868471"><ph name="PRODUCT_NAME" /> కోసం నిర్బంధ సైన్ ఇన్‌ను ప్రారంభించండి</translation>
 <translation id="6464074037294098618">చిరునామాల కోసం ఆటోఫిల్‌ను ప్రారంభించండి</translation>
 <translation id="6467613372414922590">వినియోగదారు స్థాయి స్థానిక సందేశ హోస్ట్‌లను (నిర్వాహకుల అనుమతులు లేకుండా ఇన్‌స్టాల్ చేయబడినవి) అనుమతించండి</translation>
-<translation id="6468980648680553776">ఈ విధానం నిలిపివేయబడింది. దయచేసి బదులుగా RemoteAccessHostClientDomainListని ఉపయోగించండి.</translation>
+<translation id="6468980648680553776">ఈ విధానం నిలిపివేయబడింది. దయచేసి బదులుగా RemoteAccessHostClientDomainList ఉపయోగించండి.</translation>
 <translation id="6473623140202114570">హెచ్చరికలను ట్రిగ్గర్ చేయని సురక్షిత బ్రౌజింగ్‌ డొమైన్‌ల జాబితాను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="6488627892044759800"><ph name="PRODUCT_NAME" />లో డిఫాల్ట్ హోమ్ పేజీ రకాన్ని మారుస్తుంది, అలాగే హోమ్ పేజీ ప్రాధాన్యతలను మార్చనివ్వకుండా వినియోగదారులను నిరోధిస్తుంది. హోమ్ పేజీని మీరు పేర్కొనే URLకి సెట్ చేయవచ్చు లేదా కొత్త ట్యాబ్ పేజీకి సెట్ చేయవచ్చు.
 
@@ -2578,11 +2696,11 @@
 
           ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్‌తో అనుబంధితమైన Windows సందర్భాలు లేదా పరికర నిర్వహణ కోసం నమోదైన Windows 10 Pro లేదా Enterprise సందర్భాలలో మాత్రమే అందుబాటులో ఉంటుంది.</translation>
 <translation id="6491139795995924304">పరికరంలో బ్లూటూత్‌ను అనుమతించు</translation>
-<translation id="6491872498385040936">ఈ విధానం నిలిపివేయబడింది. <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />ని ఉపయోగించడం పరిగణించండి, ఇది ఈ విధానాన్ని భర్తీ చేస్తుంది మరియు మరింత సూక్ష్మస్థాయి నియంత్రణను అనుమతిస్తుంది.
+<translation id="6491872498385040936">ఈ విధానం నిలిపివేయబడింది. <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" />ను ఉపయోగించడం పరిగణించండి, ఇది ఈ విధానాన్ని భర్తీ చేసి, మరింత సూక్ష్మస్థాయి నియంత్రణను అనుమతిస్తుంది.
 
-YouTube మధ్యస్థ పరిమిత మోడ్‌ను నియంత్రిస్తుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చనివ్వకుండా నిరోధిస్తుంది.
+YouTube మధ్యస్థ పరిమిత మోడ్‌ను నిర్బంధంగా వర్తింపజేస్తుంది, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చనివ్వకుండా నిరోధిస్తుంది.
 
-ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, YouTubeలోని పరిమిత మోడ్ ఎల్లప్పుడూ కనీసం మధ్యస్థానికి ఉండేలా అమలు చేయబడుతుంది.
+ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, YouTubeలోని పరిమిత మోడ్ ఎప్పుడూ కనీసం మధ్యస్థానికి ఉండేలా అమలు చేయబడుతుంది.
 
 ఈ సెట్టింగ్ నిలిపివేసినా లేదా విలువ ఏదీ సెట్ చేయకపోయినా, YouTubeలోని పరిమిత మోడ్ <ph name="PRODUCT_NAME" /> ద్వారా అమలు చేయబడదు. YouTube విధానాల వంటి బాహ్య విధానాలు ఇప్పటికీ పరిమిత మోడ్‌ను అమలు చేయవచ్చు.</translation>
 <translation id="6495328383950074966">సురక్షిత బ్రౌజింగ్ విశ్వసించగల డొమైన్‌ల జాబితాను కాన్ఫిగర్ చేస్తుంది. దీని ప్రకారం:
@@ -2601,7 +2719,7 @@
 
       ఈ సెట్టింగ్‌ను నిలిపివేస్తే లేదా సెట్ చేయకుండా వదిలివేస్తే, ఇతర మూలాధారాల నుండి అందించబడే Flash కంటెంట్ లేదా తక్కువ పరిమాణంలో ఉన్న కంటెంట్ బ్లాక్ చేయబడే అవకాశం ఉంటుంది.</translation>
 <translation id="6532769014584932288">సాధారణ స్థితికి తీసుకువచ్చే లాక్‌లను అనుమతించండి</translation>
-<translation id="653608967792832033">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ లాక్ చేయబడుతుందో పేర్కొంటుంది.
+<translation id="653608967792832033">బ్యాటరీ పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ లాక్ చేయబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను లాక్ చేయడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
@@ -2609,28 +2727,28 @@
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినప్పుడు, డిఫాల్ట్ సమయం ఉపయోగించబడుతుంది.
 
-          స్క్రీన్‌ను తాత్కాలికంగా నిలిపివేసి లాక్ చేయడం మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడటం అనేది స్క్రీన్‌ను లాక్ చేయడానికి సిఫార్సు చేయబడిన విధానం. తాత్కాలికంగా నిలిపివేయడానికి గణనీయమైన సమయం కంటే ముందు స్క్రీన్‌ను లాక్ చేయవలసినప్పుడు లేదా యాక్టివ్‌గా లేనప్పుడు తాత్కాలికంగా నిలిపివేయడాన్ని అన్ని సమయాల్లో కోరుకోనప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
+          స్క్రీన్‌ను తాత్కాలికంగా నిలిపివేసి లాక్ చేయడం మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడటం అనేది స్క్రీన్‌ను లాక్ చేయడానికి సిఫార్సు చేయబడిన విధానం. తాత్కాలికంగా నిలిపివేయడానికి గణనీయమైన సమయం కంటే ముందు స్క్రీన్‌ను లాక్ చేయవలసినప్పుడు లేదా ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు తాత్కాలికంగా నిలిపివేయడాన్ని అన్ని సమయాలలో కోరుకోనప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
 
           విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువగా ఉండేలా అమర్చబడతాయి.</translation>
 <translation id="6536600139108165863">పరికరం షట్‌డౌన్ అయితే ఆటోమేటిక్‌గా రీబూట్ చేస్తుంది</translation>
-<translation id="6539246272469751178">ఈ విధానం Android యాప్‌లపై ఎలాంటి ప్రభావం చూపదు. Android యాప్‌లు ఎల్లప్పుడూ డిఫాల్ట్ డౌన్‌లోడ్‌ల డైరెక్టరీని ఉపయోగిస్తాయి మరియు <ph name="PRODUCT_OS_NAME" /> ద్వారా డిఫాల్ట్-యేతర డౌన్‌లోడ్‌ల డైరెక్టరీలోకి డౌన్‌లోడ్ చేసిన ఫైల్‌లు వేటినీ యాక్సెస్ చేయలేవు.</translation>
+<translation id="6539246272469751178">ఈ విధానం Android యాప్‌లపై ఎలాంటి ప్రభావం చూపదు. Android యాప్‌లు ఎప్పుడూ డిఫాల్ట్ డౌన్‌లోడ్‌ల డైరెక్టరీని ఉపయోగిస్తాయి, <ph name="PRODUCT_OS_NAME" /> ద్వారా డిఫాల్ట్-యేతర డౌన్‌లోడ్‌ల డైరెక్టరీలోకి డౌన్‌లోడ్ చేసిన ఫైల్‌లు వేటినీ ఆ యాప్‌లు యాక్సెస్ చేయలేవు.</translation>
 <translation id="654303922206238013">ecryptfs కోసం బదిలీ వ్యూహం</translation>
-<translation id="6544897973797372144">ఈ విధానం ఒప్పున‌కు సెట్ చేయబడితే మరియు ChromeOsReleaseChannel విధానం పేర్కొనబడకపోతే నమోదు అవుతున్న డొమైన్ వినియోగదారులు పరికరం యొక్క విడుదల ఛానెల్‌ను మార్చడానికి అనుమతించబడతారు. ఈ విధానం తప్పున‌కు సెట్ చేయబడితే పరికరం చివరిగా సెట్ చేయబడిన ఛానెల్‌లో లాక్ చేయబడుతుంది.
+<translation id="6544897973797372144">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, ChromeOsReleaseChannel విధానం పేర్కొనబడకపోతే నమోదు అవుతున్న డొమైన్ వినియోగదారులు పరికరం యొక్క విడుదల ఛానెల్‌ను మార్చడానికి అనుమతించబడతారు. ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే చివరిగా సెట్ చేయబడిన ఛానెల్‌లో పరికరం లాక్ చేయబడుతుంది.
 
-      వినియోగదారు ఎంచుకున్న ఛానెల్ ChromeOsReleaseChannel విధానం ద్వారా అధిగ‌మించ‌బ‌డుతుంది. కానీ పరికరంలో ఇన్‌స్టాల్ చేసిన దాని కన్నా విధానం ఛానెల్ అధిక స్థిరంగా ఉంటే, ఎక్కువ స్థిరమైన ఛానెల్ వెర్షన్‌ ఇన్‌స్టాల్ చేసిన దాని కన్నా ఎక్కువ వెర్షన్‌ సంఖ్యను చేరుకున్న తర్వాత మాత్రమే ఛానెల్ మారుతుంది.</translation>
+      వినియోగదారు ఎంచుకున్న ఛానెల్‌ను ChromeOsReleaseChannel విధానం భర్తీ చేస్తుంది, కానీ పరకరంలో ఇన్‌స్టాల్ చేసిన దానికన్నా విధానం ఛానెల్ అధిక స్థిరంగా ఉంటే, ఎక్కువ స్థిరమైన ఛానెల్ వెర్షన్ అనేది, ఇన్‌స్టాల్ చేసిన దానికన్నా ఎక్కువ వెర్షన్ సంఖ్యను చేరుకున్న తర్వాత మాత్రమే ఛానెల్ మారుతుంది.</translation>
 <translation id="6553143066970470539">స్క్రీన్ ప్రకాశం శాతం</translation>
 <translation id="6559057113164934677">కెమెరా మరియు మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
 <translation id="6561396069801924653">సిస్టమ్ ట్రే మెనూలో యాక్సెస్‌ ఎంపికలను చూపు</translation>
 <translation id="6563458316362153786">802.11r త్వరిత పరివర్తనను ప్రారంభించండి</translation>
-<translation id="6565312346072273043">స్క్రీన్‌లో కీబోర్డ్ యాక్సెస్‌ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని లాగిన్ స్క్రీన్‌లో సెట్ చేయండి.
+<translation id="6565312346072273043">స్క్రీన్‌లో కీబోర్డ్ యాక్సెస్ ఫీచర్ యొక్క డిఫాల్ట్ స్థితిని లాగిన్ స్క్రీన్‌లో సెట్ చేయండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, లాగిన్ స్క్రీన్ చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు స్క్రీన్‌లో కీబోర్డ్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీన్ని తాత్కాలికంగా అధిగ‌మించ‌వ‌చ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్ మరలా చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో యాక్టివ్‌గా లేనప్పుడు డిఫాల్ట్‌కు పునరుద్ధరించబడుతుంది.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు స్క్రీన్‌లో కీబోర్డ్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీనిని తాత్కాలికంగా భర్తీ చేయవచ్చు. అయితే, వినియోగదారు ఎంపిక తాత్కాలికం మాత్రమే, లాగిన్ స్క్రీన్ మరలా చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు డిఫాల్ట్ ప్రవర్తన పునరుద్ధరించబడుతుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ ముందుగా చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ నిలిపివేయబడి ఉంటుంది. వినియోగదారులు స్క్రీన్‌లో కీబోర్డ్‌ను ఎప్పుడైనా ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్‌లో దీని స్థితి వినియోగదారుల మధ్య స్థిరంగా ఉంటుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ ముందుగా చూపబడినప్పుడు స్క్రీన్‌లో కీబోర్డ్ నిలిపివేయబడి ఉంటుంది. వినియోగదారులు స్క్రీన్‌లో కీబోర్డ్‌ను ఎప్పుడైనా ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు, లాగిన్ స్క్రీన్‌లో దీని స్థితి వినియోగదారుల మధ్య స్థిరంగా ఉంటుంది.</translation>
 <translation id="6570691255874112762">సర్టిఫికెట్ మేనేజర్ ద్వారా సర్టిఫికెట్‌లను దిగుమతి చేయగలగడం లేదా తీసివేయగలగడంలో వినియోగదారును ఈ విధానం నియంత్రిస్తుంది.
 
       ఈ విధానాన్ని "అన్ని సర్టిఫికెట్‌లను నిర్వహించడానికి వినియోగదారులకు అనుమతివ్వండి''కి సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలేస్తే, వినియోగదారు సర్టిఫికెట్‌లను నిర్వహించగలుగుతారు.
@@ -2642,9 +2760,9 @@
 <translation id="6598235178374410284">వినియోగదారు అవతార్ చిత్రం</translation>
 <translation id="6603004149426829878">ఎల్లవేళలా సమయ మండలిని నిశ్చయిస్తున్నప్పుడు ఏవైనా అందుబాటులో ఉన్న స్థాన సిగ్నల్‌లను సర్వర్‌కు పంపండి</translation>
 <translation id="6628120204569232711">నిల్వ పరిస్థితిని నివేదించు</translation>
-<translation id="6628646143828354685">సమీప బ్లూటూత్ పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లను అనుమతించాలో వద్దో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాక్సెస్‌ను పూర్తిగా బ్లాక్ చేయవచ్చు లేదా వెబ్‌సైట్ సమీప బ్లూటూత్ పరికరాలకు యాక్సెస్‌ పొందాలనుకునే ప్రతిసారి వినియోగదారును అడిగేలా చేయవచ్చు.
+<translation id="6628646143828354685">సమీప బ్లూటూత్ పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లను అనుమతించాలో వద్దో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాక్సెస్‌ను పూర్తిగా బ్లాక్ చేయవచ్చు లేదా వెబ్‌సైట్ సమీప బ్లూటూత్ పరికరాలకు యాక్సెస్ పొందాలనుకునే ప్రతిసారీ వినియోగదారును అడిగేలా చేయవచ్చు.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, '3' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలరు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, '3' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="663685822663765995">ముద్రణ రంగు మోడ్‌ని పరిమితం చేయండి</translation>
 <translation id="6641981670621198190">3D గ్రాఫిక్స్ APIలకు మ‌ద్ద‌తును ఆపివేయి</translation>
 <translation id="6647965994887675196">ఒప్పున‌కు సెట్ చేస్తే, పర్యవేక్షించబడే వినియోగదారులు సృష్టించబడతారు మరియు ఉపయోగించబడతారు.
@@ -2652,11 +2770,11 @@
           తప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకపోతే, పర్యవేక్షించబడే-వినియోగదారు సృష్టి మరియు లాగిన్ నిలిపివేయబడతాయి. ప్రస్తుతం ఉన్న పర్యవేక్షించబడే వినియోగదారులందరూ దాచబడతారు.
 
           గమనిక: వాడుకదారు మరియు ఎంటర్‌ప్రైజ్ పరికరాల డిఫాల్ట్ ప్రవర్తన భిన్నంగా ఉంటుంది: వాడుకదారు పరికరాల్లో పర్యవేక్షించబడే వినియోగదారులు డిఫాల్ట్‌గా ప్రారంభించబడతారు, కానీ ఎంటర్‌ప్రైజ్ పరికరాల్లో వారు డిఫాల్ట్‌గా నిలిపివేయబడతారు.</translation>
-<translation id="6649397154027560979">ఈ విధానం విస్మరించబడింది, దయచేసి బదులుగా URLBlacklistను ఉపయోగించండి.
+<translation id="6649397154027560979">ఈ విధానం విస్మరించబడింది, బదులుగా దయచేసి URLBlacklistను ఉపయోగించండి.
 
       <ph name="PRODUCT_NAME" />లో జాబితా చేయబడిన ప్రోటోకాల్ స్కీమ్‌లను నిలిపివేస్తుంది.
 
-      ఈ జాబితా నుండి స్కీమ్‌ను ఉపయోగిస్తున్న URLలు లోడ్ కావు, వాటికి నావిగేట్ చేయడం సాధ్యపడదు.
+      ఈ జాబితాలోని స్కీమ్‌ను ఉపయోగిస్తున్న URLలు లోడ్ కావు, వాటికి నావిగేట్ చేయలేరు.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా జాబితా ఖాళీగా ఉంటే అన్ని స్కీమ్‌లను <ph name="PRODUCT_NAME" />లో యాక్సెస్ చేయవచ్చు.</translation>
 <translation id="6652197835259177259">స్థానికంగా నిర్వహించబడే వినియోగదారుల సెట్టింగ్‌లు</translation>
@@ -2666,7 +2784,7 @@
 
           ఈ విధానాన్ని సెట్ చేయకుంటే, 'DefaultWebUsbGuardSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
 
-          ఈ విధానంలోని URL నమూనాలు WebUsbAskForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒక URL రెండింటితో సరిపోలితే రెండు విధానాల్లో దేనికి ప్రాధాన్యత ఇవ్వబడుతుందో ముందుగా పేర్కొనడం సాధ్యం కాదు.</translation>
+          ఈ విధానంలోని URL నమూనాలు WebUsbAskForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒక URL రెండింటితో సరిపోలితే రెండు విధానాలలో దేనికి ప్రాధాన్యత ఇవ్వబడుతుందో ముందుగా పేర్కొనడం సాధ్యం కాదు.</translation>
 <translation id="6689792153960219308">హార్డ్‌వేర్ స్థితిని నివేదిస్తుంది</translation>
 <translation id="6698632841807204978">మోనోక్రోమ్ ముద్రణని ప్రారంభించండి</translation>
 <translation id="6699880231565102694">రిమోట్ యాక్సెస్ హోస్ట్‌ల కోసం రెండు-కారక ప్రామాణీకరణను ప్రారంభిస్తుంది</translation>
@@ -2675,9 +2793,9 @@
 <translation id="6735701345096330595">అందుబాటులో ఉన్న భాష‌ల స్పెల్‌చెక్‌ను నిర్బంధంగా ప్రారంభించండి</translation>
 <translation id="673699536430961464">ఈ సెట్టింగ్ వలన వినియోగదారులు వారి <ph name="PRODUCT_OS_NAME" /> పరికరంలో సైన్ ఇన్ చేసిన తర్వాత వారి బ్రౌజర్ విండోలలోని కంటెంట్ ప్రదేశంలో Google ఖాతాల మధ్య మారడానికి అనుమతించబడతారు.
 
-      ఒకవేళ ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, అజ్ఞాతేతర బ్రౌజర్ కంటెంట్ ప్రదేశంలో వేరే ఖాతాకు సైన్ ఇన్ చేయడం అనుమతించబడదు.
+      ఒకవేళ ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, అజ్ఞాతేతర బ్రౌజర్ కంటెంట్ ప్రదేశంలో వేరే ఖాతాకు సైన్ ఇన్ చేయడం అనుమతించబడదు.
 
-      ఒకవేళ ఈ విధానాన్ని సెట్ చేయకున్నా లేదా ఒప్పున‌కు సెట్ చేసినా, డిఫాల్ట్ ప్రవర్తన ఉపయోగించబడుతుంది: బ్రౌజర్ కంటెంట్ ప్రదేశంలో వేరే ఖాతాకు సైన్ ఇన్ చేయడం అనుమతించబడుతుంది, కానీ పిల్లల ఖాతాలకు మాత్రం అనుమతించబడదు, అజ్ఞాతేతర కంటెంట్ ప్రదేశంలో బ్లాక్ చేయబడుతుంది.
+      ఒకవేళ ఈ విధానాన్ని సెట్ చేయకున్నా లేదా 'ఒప్పు'గా సెట్ చేసినా, డిఫాల్ట్ ప్రవర్తన ఉపయోగించబడుతుంది: బ్రౌజర్ కంటెంట్ ప్రదేశంలో వేరే ఖాతాకు సైన్ ఇన్ చేయడం అనుమతించబడుతుంది, కానీ పిల్లల ఖాతాలకు మాత్రం అనుమతించబడదు, ఆ ఖాతాల విషయంలో అజ్ఞాతేతర కంటెంట్ ప్రదేశం బ్లాక్ చేయబడుతుంది.
 
       ఒకవేళ అజ్ఞాత మోడ్ ద్వారా వేరే ఖాతాకు సైన్ ఇన్ చేయడం అనుమతించకూడదనుకుంటే, IncognitoModeAvailability విధానాన్ని ఉపయోగించి ఆ మోడ్‌ను బ్లాక్ చేయడం పరిశీలించండి.
 
@@ -2747,7 +2865,7 @@
 <translation id="684856667300805181">ఈ విధానం <ph name="PRODUCT_NAME" /> 68లో తీసివేయబడింది మరియు <ph name="ARC_GLS_POLICY_NAME" /> ద్వారా భర్తీ చేయబడింది.</translation>
 <translation id="6856743875250214792">ఈ విధానం M66లో విస్మరించబడి తీసివేయబడుతుంది, ఎందుకంటే అది కేవలం అంతర్గత పరీక్షకు మాత్రమే ఉపయోగించబడుతుంది మరియు అది భద్రతా సంబంధిత అంశం.
 
-      <ph name="PRODUCT_NAME" /> ప్రారంభించినప్పుడు, దానికి వర్తింపజేయాల్సిన ఫ్లాగ్‌లను పేర్కొంటుంది. పేర్కొన్న ఫ్లాగ్‌లు లాగిన్ స్క్రీన్‌లో మాత్రమే వర్తింపజేయబడతాయి. ఈ విధానం ద్వారా సెట్ చేయబడిన ఫ్లాగ్‌లు వినియోగదారు సెషన్‌లకు విస్తరింపజేయబడవు.</translation>
+      <ph name="PRODUCT_NAME" /> ప్రారంభమైనప్పుడు, దానికి వర్తింపజేయాల్సిన ఫ్లాగ్‌లను పేర్కొంటుంది. పేర్కొన్న ఫ్లాగ్‌లు లాగిన్ స్క్రీన్‌లో మాత్రమే వర్తింపజేయబడతాయి. ఈ విధానం ద్వారా సెట్ చేయబడిన ఫ్లాగ్‌లు వినియోగదారు సెషన్‌లకు విస్తరింపజేయబడవు.</translation>
 <translation id="685769593149966548">YouTube కోసం ఖచ్చిత పరిమిత మోడ్‌ను అమలు చేయండి</translation>
 <translation id="6857824281777105940">ఈ విధానం సురక్షిత బ్రౌజింగ్‌ వివరాలు అలాగే ఎన్ని సురక్షిత బ్రౌజింగ్ హెచ్చరికలు వచ్చాయి మరియు క్లిక్ చేయడం ద్వారా ఎన్ని సురక్షిత హెచ్చరికలు వచ్చాయో తెలుపుతుంది.
 
@@ -2756,27 +2874,27 @@
 
       ఈ విధానం <ph name="CHROME_REPORTING_EXTENSION_NAME" />ని ప్రారంభించినప్పుడు, అలాగే మెషీన్‌ని <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />తో ప్రారంభించినప్పుడు మాత్రమే వర్తిస్తుంది.</translation>
 <translation id="686079137349561371">Microsoft Windows 7 లేదా అంతకంటే తాజాది</translation>
-<translation id="687046793986382807">ఈ విధానం <ph name="PRODUCT_NAME" /> వెర్షన్ 35 నాటికి గడువు ముగిసింది.
+<translation id="687046793986382807"><ph name="PRODUCT_NAME" /> వెర్షన్ 35 నాటికి ఈ విధానం గడువు ముగిసింది.
 
-      ఎంపిక విలువతో సంబంధం లేకుండా, మెమరీ సమాచారం పేజీకి 
-      నివేదించబడుతుంది, కానీ భద్రతా కారణాల దృష్ట్యా, నివేదించిన పరిమాణాలు పరిమాణీకరణం చేయబడ్డాయి మరియు అప్‌డేట్‌ల రేటు పరిమితం చేయబడింది. వాస్తవ సమయ ఖచ్చిత డేటాను పొందడానికి,
-      దయచేసి Telemetry వంటి సాధనాలను ఉపయోగించండి.</translation>
+      ఈ ఎంపిక విలువతో సంబంధం లేకుండా, మెమరీ సమాచారం పేజీకి నివేదించబడుతుంది, కానీ భద్రతా కారణాల దృష్ట్యా
+      నివేదించిన పరిమాణాలు పరిమాణీకరణం చేయబడతాయి, అప్‌డేట్‌ల రేటు కూడా పరిమితం చేయబడుతుంది. వాస్తవ సమయ ఖచ్చిత డేటాను పొందడానికి,
+      దయచేసి టెలిమెట్రీ వంటి సాధనాలను ఉపయోగించండి.</translation>
 <translation id="6894178810167845842">కొత్త ట్యాబ్ పేజీ URL</translation>
 <translation id="6899705656741990703">స్వీయంగా కనుగొనే ప్రాక్సీ సెట్టింగ్‌లు</translation>
 <translation id="6903814433019432303">ఈ విధానం రిటైల్ మోడ్‌‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      డెమో సెషన్ ప్రారంభించబడినప్పుడు లోడ్ చేయడానికి URLల సెట్‌ను నిర్ధారిస్తుంది. ఈ విధానం ప్రారంభ URLను సెట్ చేయడం కోసం ఏవైనా ఇతర విధానాలను అధిగ‌మిస్తుంది మరియు అవి ప్రత్యేకమైన వినియోగదారుతో అనుబంధించబడని సెషన్‌కు మాత్రమే అనుమతించబడతాయి.</translation>
+      డెమో సెషన్‌ను ప్రారంభించినప్పుడు లోడ్ చేయడానికి URLల సెట్‌ను నిర్ధారిస్తుంది. ప్రారంభ URLను సెట్ చేయడం కోసం వాడే ఏవైనా ఇతర విధానాలను ఈ విధానం భర్తీ చేస్తుంది, అవి ప్రత్యేకమైన వినియోగదారుతో అనుబంధించబడని సెషన్‌కు మాత్రమే అనుమతించబడతాయి.</translation>
 <translation id="6908640907898649429">డిఫాల్ట్ శోధన ప్రొవైడ‌ర్‌ను కాన్ఫిగర్ చేస్తుంది. వినియోగదారు ఉపయోగించే డిఫాల్ట్ శోధనను మీరు పేర్కొనవచ్చు లేదా డిఫాల్ట్ శోధనను ఆపివేయడానికి ఎంచుకోవచ్చు.</translation>
 <translation id="6913068954484253496">అన్ని IP చిరునామాల్లో ప్రసార పరికరాలకు కనెక్ట్ చేయడానికి <ph name="PRODUCT_NAME" />ని అనుమతించండి.</translation>
 <translation id="6915442654606973733">మాటల ప్రతిస్పందన యాక్సెస్‌ ఫీచ‌ర్‌ను ప్రారంభించండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, మాటల ప్రతిస్పందన ఎల్లప్పుడూ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, మాటల ప్రతిస్పందన ఎప్పుడూ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, మాటల ప్రతిస్పందన ఎల్లప్పుడూ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, మాటల ప్రతిస్పందన ఎప్పుడూ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, మాటల ప్రతిస్పందన ప్రాథమికంగా నిలిపివేయబడుతుంది కానీ వినియోగదారు ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, మాటల ప్రతిస్పందన ప్రారంభంలో నిలిపివేయబడుతుంది, కానీ వినియోగదారు ఎప్పుడైనా దీనిని ప్రారంభించవచ్చు.</translation>
 <translation id="6916507170737609563">
       మీరు వేరు చేయాలనుకుంటున్న సైట్‌ల జాబితాతో IsolateOriginsAndroidను ఉపయోగించి, వినియోగదారుల కోసం వేరు చేయడం, పరిమిత ప్రభావం రెండు అంశాలలో ఉత్తమమైనది పొందడానికి IsolateOriginsAndroid విధానం సెట్టింగ్‌లను పరిశీలించాలనుకోవచ్చు.
       విధానాన్ని ప్రారంభిస్తే, ప్రతి సైట్ దాని స్వంత ప్రాసెస్‌ను అమలు చేస్తుంది.
@@ -2788,18 +2906,18 @@
       గమనిక: RAM ఖచ్చితంగా 1GB కంటే ఎక్కువ ఉండే Android అమలయ్యే పరికరాల్లో Chromeకు మాత్రమే ఈ విధానం వర్తిస్తుంది. Android-యేతర ప్లాట్‌ఫామ్‌లలో విధానాన్ని వర్తింపజేయడానికి, SitePerProcessను ఉపయోగించండి.
       </translation>
 <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> ప్లగ్ఇన్‌‌ను బ్లాక్ చేయి</translation>
-<translation id="6923366716660828830">డిఫాల్ట్ శోధన ప్రదాత పేరును పేర్కొంటుంది. ఖాళీగా వదిలివేయబడితే లేదా సెట్ చేయకపోతే, శోధన URL ద్వారా పేర్కొన్న హోస్ట్ పేరు వినియోగించబడుతుంది. ఈ విధానం కేవలం 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినపుడే పరిగణనలోకి తీసుకోబడుతుంది.</translation>
+<translation id="6923366716660828830">డిఫాల్ట్ శోధన ప్రదాత పేరును పేర్కొంటుంది. ఖాళీగా వదిలివేస్తే లేదా సెట్ చేయకపోతే, శోధన URL ద్వారా పేర్కొన్న హోస్ట్ పేరు వినియోగించబడుతుంది. ఈ విధానం కేవలం 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడినపుడే పరిగణనలోకి తీసుకోబడుతుంది.</translation>
 <translation id="6926703471186170050">పొడవైన అంచు డూప్లెక్స్ ముద్రణను ప్రారంభించండి</translation>
 <translation id="6931242315485576290">Googleతో డేటా సింక్‌ను నిలిపివేయి</translation>
 <translation id="6936894225179401731">ప్రాక్సీ సర్వర్‌కు గరిష్ట ఏక కాల కనెక్షన్‌ల సంఖ్యను నిర్దేశిస్తుంది.
 
       కొన్ని ప్రాక్సీ సర్వర్‌లు ఒక క్లయింట్‌కు అత్యధిక సంఖ్యలో ఏక కాల కనెక్షన్‌లను నిర్వహించలేవు మరియు ఈ సమస్యను ఈ విధానాన్ని తక్కువ విలువకు సెట్ చేయడం ద్వారా పరిష్కరించవచ్చు.
 
-      ఈ విధానం విలువ 100 కన్నా తక్కువగా మరియు 6 కన్నా ఎక్కువగా ఉండాలి మరియు ఢిపాల్ట్ విలువ 32.
+      ఈ విధానం విలువ 100 కన్నా తక్కువగా, 6 కన్నా ఎక్కువగా ఉండాలి. దీని ఢిపాల్ట్ విలువ 32.
 
-      కొన్ని వెబ్ యాప్‌లు అమలులో ఉండే GETలతో పలు కనెక్షన్‌లను ఉపయోగిస్తూ ఉంటాయని గుర్తించబడ్డాయి, కాబట్టి అలాంటి చాలా వెబ్ యాప్‌లు తెరవబడి ఉంటే, 32 కంటే తక్కువగా పేర్కొనడం వలన బ్రౌజర్ నెట్‌వర్కింగ్ తటస్థంగా నిలిచిపోతుంది. డిఫాల్ట్ విలువ కంటే తగ్గించడం అనేది మీ సొంత పూచీకత్తు.
+      కొన్ని వెబ్ యాప్‌లు అమలులో ఉండే GETలతో పలు కనెక్షన్‌లను ఉపయోగిస్తూ ఉంటాయని గుర్తించబడ్డాయి, కాబట్టి అలాంటి చాలా వెబ్ యాప్‌లు తెరవబడి ఉంటే, 32 కంటే తక్కువగా పేర్కొనడం వలన బ్రౌజర్ నెట్‌వర్కింగ్ తటస్థంగా నిలిచిపోతుంది. డిఫాల్ట్ విలువ కంటే తగ్గించడం అనేది మీ సొంత నిర్ణయం, దానికి బాధ్యత మీరే వహించాలి.
 
-      ఈ విధానం సెట్ చేయకుండా వదిలివేయబడితే డిపాల్ట్ విలువ 32 ఉపయోగించబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే డిపాల్ట్ విలువ 32 ఉపయోగించబడుతుంది.</translation>
 <translation id="6943577887654905793">Mac/Linux ప్రాధాన్య పేరు:</translation>
 <translation id="6944167205014013774">Linux యాప్‌ల వినియోగం గురించిన సమాచారం సర్వర్‌లకు తిరిగి పంపబడింది.
      
@@ -2823,23 +2941,23 @@
 
       'U2F_EXTENDED' ఎంచుకున్నట్లయితే, ఏకీకృత రెండో ద‌శ‌ వ్యక్తిగత ధృవీకరణ కోసం కొన్ని ఎక్స్‌టెన్ష‌న్‌లతో పాటుగా U2F ఫంక్షన్‌లను అందిస్తుంది.</translation>
 <translation id="6997592395211691850">స్థానిక విశ్వసనీయ యాంకర్‌ల కోసం ఆన్‌లైన్ OCSP/CRL తనిఖీలు చేయాలి లేదా చేయకూడదు</translation>
-<translation id="7003334574344702284">ప్రారంభించబడితే ఈ విధానం మునుపటి డిఫాల్ట్ బ్రౌజర్ నుండి సేవ్ చేయబడిన పాస్‌వర్డ్‌లను బలవంతంగా దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, సేవ్ చేయబడిన పాస్‌వర్డ్‌లు దిగుమతి చేయబడవు. సెట్ చేయకపోతే, వినియోగదారు దిగుమతి చేయాలా అని అడగబడతారు లేదా దిగుమతి ఆటోమేటిక్‌గా జరుగుతుంది.</translation>
+<translation id="7003334574344702284">ప్రారంభించబడితే ఈ విధానం మునుపటి డిఫాల్ట్ బ్రౌజర్ నుండి సేవ్ చేయబడిన పాస్‌వర్డ్‌లను బలవంతంగా దిగుమతి చేస్తుంది. ప్రారంభించబడితే, ఈ విధానం దిగుమతి డైలాగ్‌ను కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడితే, సేవ్ చేయబడిన పాస్‌వర్డ్‌లు దిగుమతి చేయబడవు. సెట్ చేయకపోతే, 'దిగుమతి చేయాలా' అని వినియోగదారు అడగబడవచ్చు, లేదా దిగుమతి ఆటోమేటిక్‌గా జరగవచ్చు.</translation>
 <translation id="7003746348783715221"><ph name="PRODUCT_NAME" /> ప్రాధాన్యతలు</translation>
 <translation id="7006788746334555276">కంటెంట్ సెట్టింగ్‌లు</translation>
 <translation id="7007671350884342624">వినియోగదారు డేటాను నిల్వ చేయడం కోసం <ph name="PRODUCT_NAME" /> ఉపయోగించే డైరెక్టరీని కాన్ఫిగర్ చేస్తుంది.
 
       మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారు '--user-data-dir' ఫ్లాగ్‌ను పేర్కొన్నా లేదా పేర్కొనకపోయినా అందించబడిన డైరెక్టరీని <ph name="PRODUCT_NAME" /> ఉపయోగిస్తుంది. <ph name="PRODUCT_NAME" /> దాని కంటెంట్‌‌లను నిర్వహించే కారణంగా డేటా నష్టాన్ని లేదా ఇతర ఊహించని ఎర్రర్‌లను నివారించడానికి ఈ విధానాన్ని వాల్యూమ్ మూల డైరెక్టరీకి లేదా ఇతర ప్రయోజనాల కోసం ఉపయోగించే డైరెక్టరీకి సెట్ చేయకూడదు.
 
-      ఉపయోగించబడే చరాంశాల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్‌ను చూడండి.
+      ఉపయోగించబడే వేరియబుల్‌ల జాబితా కోసం https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables లింక్ చూడండి.
 
-      ఈ విధానం సెట్ చేయకుండా వదిలివేస్తే డిఫాల్ట్ ప్రొఫైల్ పాత్‌ ఉపయోగించబడుతుంది మరియు వినియాగదారు దీన్ని '--user-data-dir' ఆదేశ లైన్‌ ఫ్లాగ్‌తో అధిగ‌మించ‌గ‌లుగుతారు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే డిఫాల్ట్ ప్రొఫైల్ పాత్ ఉపయోగించబడుతుంది, వినియాగదారు దీనిని '--user-data-dir' ఆదేశ పంక్తి ఫ్లాగ్‌తో భర్తీ చేయగలుగుతారు.</translation>
 <translation id="7027785306666625591"><ph name="PRODUCT_OS_NAME" />లో శక్తి నిర్వహణను కాన్ఫిగర్ చేయండి.
 
       వినియోగదారు కొంత సమయం పాటు యాక్టివ్‌గా లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> ఎలా ప్రవర్తించాలనే దాన్ని కాన్ఫిగర్ చేయడానికి ఈ విధానాలు మిమ్మల్ని అనుమతిస్తాయి.</translation>
 <translation id="7040229947030068419">ఉదాహరణ విలువ:</translation>
 <translation id="7044883996351280650">Android బ్యాకప్ మరియు పునరుద్ధరణ సేవను నియంత్రిస్తుంది</translation>
 <translation id="7049373494483449255">ప్రింటింగ్‌ కోసం <ph name="CLOUD_PRINT_NAME" />కు పత్రాలను సమర్పించడానికి <ph name="PRODUCT_NAME" />ను ప్రారంభిస్తుంది. గమనిక: ఇది <ph name="PRODUCT_NAME" />లో <ph name="CLOUD_PRINT_NAME" /> మద్దతును మాత్రమే ప్రభావితం చేస్తుంది. ఇది వెబ్ సైట్‌లలో ప్రింట్ జాబ్‌లను సమర్పించడానికి లేకుండా వినియోగదారులను నిరోధించదు. ఈ సెట్టింగ్ ప్రారంభించబడినా లేదా కాన్ఫిగర్ చేయబడకపోయినా, వినియోగదారులు <ph name="PRODUCT_NAME" /> ప్రింట్  డైలాగ్ నుండి <ph name="CLOUD_PRINT_NAME" />కు ప్రింట్ చేయ‌వ‌చ్చు. ఈ సెట్టింగ్ ఆపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" /> ప్రింట్  డైలాగ్ నుండి <ph name="CLOUD_PRINT_NAME" />కు చేయ‌లేరు</translation>
-<translation id="7053678646221257043">ఈ విధానం ప్రారంభించబడి ఉంటే ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి బుక్‌మార్క్‌లు దిగుమతి చేయబడాలని నిర్బంధిస్తుంది. ప్రారంభించబడి ఉంటే, దిగుమతి డైలాగ్‌ను ఈ విధానం కూడా ప్రభావితం చేస్తుంది. ఆపివేయబడి ఉంటే, బుక్‌మార్క్‌లు దిగుమతి చేయబడవు. ఇది సెట్ చేయకపోతే,  దిగుమతి చేయడానికి వినియోగదారు అడగబడవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి కావచ్చు.</translation>
+<translation id="7053678646221257043">ఈ విధానాన్ని ప్రారంభించి ఉంటే ప్రస్తుత డిఫాల్ట్ బ్రౌజర్ నుండి బుక్‌మార్క్‌లు దిగుమతి చేయాలని నిర్బంధిస్తుంది. ప్రారంభించి ఉంటే, దిగుమతి డైలాగ్‌ను ఈ విధానం కూడా ప్రభావితం చేస్తుంది. ఆపివేసి ఉంటే, బుక్‌మార్క్‌లు దిగుమతి కావు. దీనిని సెట్ చేయకపోతే, దిగుమతి చేయడానికి వినియోగదారు అడగబడవచ్చు లేదా ఆటోమేటిక్‌గా దిగుమతి కావచ్చు.</translation>
 <translation id="7063895219334505671">ఈ సైట్‌లలో పాప్‌అప్‌లని అనుమతించు</translation>
 <translation id="706568410943497889">
       ఒకవేళ విధానం ఒప్పుకు సెట్ చేయబడితే, Google సేవల (ఉదా. Google Meet) నుండి WebRTC ఈవెంట్ లాగ్‌లను సేకరించడానికి మరియు ఆ లాగ్‌లను Googleలో అప్‌లోడ్ చేయడానికి <ph name="PRODUCT_NAME" /> అనుమతించబడుతుంది.
@@ -2860,7 +2978,7 @@
 
           ఈ విధానాన్ని సెట్ చేయకుంటే, 'DefaultWebUsbGuardSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదా వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
 
-          ఈ విధానంలోని URL ఆకృతులు WebUsbBlockedForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒక URL రెండింటితో సరిపోలితే రెండు విధానాల్లో దేనికి ప్రాధాన్యత ఇవ్వబడుతుందో ముందుగా పేర్కొనడం సాధ్యం కాదు.</translation>
+          ఈ విధానంలోని URL ఆకృతులు WebUsbBlockedForUrls ద్వారా కాన్ఫిగర్ చేసిన వాటికి విరుద్ధంగా ఉండకూడదు. ఒక URL రెండింటితో సరిపోలితే రెండు విధానాలలో దేనికి ప్రాధాన్యత ఇవ్వబడుతుందో ముందుగా పేర్కొనడం సాధ్యం కాదు.</translation>
 <translation id="7086677522575756117">స్క్రీన్ కాంతివిహీనంగా ఉన్నప్పుడు లేదా స్క్రీన్ ఆపివేయడిన వెంటనే వినియోగదారు కార్యకలాపాన్ని గుర్తించినప్పుడు స్క్రీన్ కాంతివిహీనత ఆలస్యాన్ని లెక్కించే శాతాన్ని నిర్దేశిస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేస్తే, ఇది స్క్రీన్ కాంతివిహీనంగా ఉన్నప్పుడు లేదా స్క్రీన్ ఆపివేయబడిన వెంటనే వినియోగదారు కార్యకలాపాన్ని గుర్తించినప్పుడు స్క్రీన్ కాంతివిహీనత ఆలస్యాన్ని లెక్కించే శాతాన్ని నిర్దేశిస్తుంది. కాంతివిహీనత ఆలస్యం లెక్కిస్తున్నప్పుడు, స్క్రీన్ ఆపివేత, స్క్రీన్ లాక్, నిష్క్రియ ఆల‌స్యాలు వాస్తవంగా కాన్ఫిగర్ చేసిన విధంగా స్క్రీన్ కాంతివిహీనత ఆలస్యంతో ఒకే రకమైన వ్యత్యాసాన్ని కలిగి ఉండేలా సర్దుబాటు అవుతాయి.
@@ -2870,25 +2988,25 @@
           <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> విధానాన్ని నిలిపివేసినప్పుడు మాత్రమే ఈ విధానం ప్రభావం చూపుతుంది. లేదంటే, స్క్రీన్ కాంతివిహీనత ఆలస్యాన్ని మెషిన్ ఆధారిత అభ్యాసం మోడల్ ద్వారా నిశ్చయించే కారణంగా ఈ విధానం విస్మరించబడుతుంది.
 
           లెక్కింపు అంశం తప్పక 100% లేదా అంతకంటే ఎక్కువ ఉండాలి.</translation>
-<translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> పరికరాలు యాక్టివ్‌గా లేనప్పుడు లేదా తాత్కాలికంగా నిలిపివేయబడినప్పుడు లాక్‌ను ప్రారంభిస్తుంది.
+<translation id="7106631983877564505"><ph name="PRODUCT_OS_NAME" /> పరికరాలు ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు లేదా తాత్కాలికంగా నిలిపివేయబడినప్పుడు లాక్‌ను ప్రారంభిస్తుంది.
 
       మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, పరికరాన్ని నిద్రావస్థ నుండి అన్‌లాక్ చేయడానికి పాస్‌వర్డ్‌ను అందించమని వినియోగదారులను అడుగుతుంది.
 
       మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, పరికరాన్ని నిద్రావస్థ నుండి అన్‌లాక్ చేయడానికి పాస్‌వర్డ్‌ను అందించమని వినియోగదారులను అడగదు.
 
-      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా నిలిపివేసినా, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ సెట్టింగ్‌ను ప్రారంభించినా నిలిపివేసినా, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, పరికరాన్ని అన్‌లాక్ చేయడానికి పాస్‌వర్డ్‌ను అడగాలో, లేదో వినియోగదారు ఎంచుకోగలరు.</translation>
-<translation id="7115494316187648452"><ph name="PRODUCT_NAME" /> ప్రాసెస్‌ను OS లాగిన్‌లో ప్రారంభించాలో లేదో మరియు చివరి బ్రౌజర్ విండోను మూసివేసినప్పటికీ ఏవైనా సెషన్ కుక్కీలతోసహా, బ్యాక్‌గ్రౌండ్‌ యాప్‌లు మరియు ప్రస్తుత బ్రౌజింగ్ సెషన్‌ను అలాగే యాక్టివ్‌గా ఉంచడాన్ని అనుమతిస్తూ అమలులో ఉంచడం కొనసాగించాలో లేదో నిర్ణయిస్తుంది. నేపథ్య ప్రాసెస్ ఏదైనా ఉంటే సిస్టమ్ ట్రేలో దాని చిహ్నం ప్రదర్శించబడుతుంది. దాన్ని అక్కడి నుండి ఎప్పుడైనా మూసివేయవచ్చు.
+<translation id="7115494316187648452"><ph name="PRODUCT_NAME" /> ప్రాసెస్‌ను OS లాగిన్‌లో ప్రారంభించాలో లేదో మరియు చివరి బ్రౌజర్ విండోను మూసివేసినప్పటికీ ఏవైనా సెషన్ కుక్కీలతో సహా, నేపథ్య యాప్‌లు మరియు ప్రస్తుత బ్రౌజింగ్ సెషన్‌ను అలాగే యాక్టివ్‌గా ఉంచడాన్ని అనుమతిస్తూ అమలులో ఉంచడం కొనసాగించాలో లేదో నిర్ణయిస్తుంది. నేపథ్య ప్రాసెస్ ఏదైనా ఉంటే సిస్టమ్ ట్రేలో దాని చిహ్నం ప్రదర్శించబడుతుంది, దానిని అక్కడి నుండి ఎప్పుడైనా మూసివేయవచ్చు.
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, బ్యాక్‌గ్రౌండ్‌ మోడ్ ప్రారంభించబడుతుంది మరియు దీన్ని బ్రౌజర్ సెట్టింగ్‌ల్లో వినియోగదారు నియంత్రించలేరు.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, నేపథ్య మోడ్ ప్రారంభించబడుతుంది, దీనిని బ్రౌజర్ సెట్టింగ్‌లలో వినియోగదారు నియంత్రించలేరు.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, బ్యాక్‌గ్రౌండ్‌ మోడ్ నిలిపివేయబడుతుంది మరియు దీన్ని బ్రౌజర్ సెట్టింగ్‌ల్లో వినియోగదారు నియంత్రించలేరు.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, నేపథ్య మోడ్ నిలిపివేయబడుతుంది, దీనిని బ్రౌజర్ సెట్టింగ్‌లలో వినియోగదారు నియంత్రించలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ప్రారంభంలో బ్యాక్‌గ్రౌండ్‌ మోడ్ నిలిపివేయబడుతుంది మరియు నేపథ్య సెట్టింగ్‌ల‌లో వినియోగదారు నియంత్రించగలరు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ప్రారంభంలో నేపథ్య మోడ్ నిలిపివేయబడుతుంది, దానిని నేపథ్య సెట్టింగ్‌లలో వినియోగదారు నియంత్రించగలరు.</translation>
 <translation id="7123160381479171745">పరికరానికి లాగిన్ చేయడానికి అనుమతించబడిన వినియోగదారుల జాబితాను నిర్వచిస్తుంది. నమోదులు <ph name="USER_WHITELIST_ENTRY_EXAMPLE" /> వంటి <ph name="USER_WHITELIST_ENTRY_FORMAT" /> రూపంలో ఉంటాయి. డొమైన్‌లో నిర్హేతుక వినియోగదారులను అనుమతించడానికి, <ph name="USER_WHITELIST_ENTRY_WILDCARD" /> రూపంలో ఉండే నమోదులను ఉపయోగించండి.
 
-ఈ విధానం కాన్ఫిగర్ చేయబడకపోతే, సైన్ ఇన్ చేయడానికి ఏ వినియోగదారులు అనుమతించబడతారనే దానిపై నియంత్రణలు ఉండవు. ఇప్పటికీ కొత్త వినియోగదారులను సృష్టించడానికి <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> విధానానికి తగినట్లుగా కాన్ఫిగర్ చేయబడి ఉండటం అవసరం అని గుర్తుంచుకోండి.</translation>
+ఈ విధానాన్ని కాన్ఫిగర్ చేయకపోతే, సైన్ ఇన్ చేయడానికి ఏ వినియోగదారులు అనుమతించబడతారనే దానిపై నియంత్రణలు ఉండవు. ఇప్పటికీ కొత్త వినియోగదారులను సృష్టించడానికి <ph name="DEVICE_ALLOW_NEW_USERS_POLICY_NAME" /> విధానానికి తగినట్లుగా కాన్ఫిగర్ చేయడం అవసరం అని గుర్తుంచుకోండి.</translation>
 <translation id="7123266440503901785">ఎక్స్‌టెన్షన్‌ల సురక్షిత అప్‌డేట్, ఇన్‌స్టాలేషన్ కోసం <ph name="PRODUCT_NAME" /> అందిస్తుంది. అయితే, Chrome వెబ్‌స్టోర్ వెలుపల హోస్ట్ చేయబడే కొన్ని ఎక్స్‌టెన్షన్‌ల కంటెంట్ SHA1 లాంటి అసురక్షితమైన సైనింగ్ లేదా హ్యాషింగ్ అల్గారిథమ్‌ల ద్వారా మాత్రమే రక్షించబడవచ్చు . ఈ విధానాన్ని నిలిపివేసినప్పుడు, (ఎక్స్‌టెన్షన్ డెవలపర్‌లు శక్తివంతమైన అల్గారిథమ్‌లతో ఎక్స్‌టెన్షన్‌ను తిరిగి రూపొందించే వరకు) అలాంటి ఎక్స్‌టెన్షన్‌ల తాజా ఇన్‌స్టాలేషన్, అప్‌డేట్‌లు Chrome ద్వారా అనుమతించబడవు. ఈ విధానాన్ని ప్రారంభించినప్పుడు, అలాంటి ఎక్స్‌టెన్షన్‌ల ఇన్‌స్టాలేషన్, అప్‌డేట్‌లు అనుమతించబడవు.
 
           దీనిని సెట్ చేయనప్పుడు, ఇది ప్రారంభిత ప్రవర్తనకు డిఫాల్ట్‌గా ఉంచబడుతుంది.
@@ -2899,7 +3017,7 @@
 <translation id="7127892035367404455">లక్షిత వెర్షన్‌‌కు ఉపసంహరించండి</translation>
 <translation id="7128918109610518786"><ph name="PRODUCT_OS_NAME" /> లాంచర్ బార్‌లో పిన్ చేసిన యాప్‌ల లాగా చూపే యాప్ ఐడెంటిఫైయర్‌లను జాబితా చేస్తుంది.
 
-      ఈ విధానం కాన్ఫిగర్ చేయబడి ఉంటే, యాప్‌ల సెట్ స్థిరంగా ఉంటుంది మరియు వినియోగదారు మార్చలేరు.
+      ఈ విధానాన్ని కాన్ఫిగర్ చేసి ఉంటే, యాప్‌ల సెట్ స్థిరంగా ఉంటుంది, వినియోగదారు దీనిని మార్చలేరు.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు లాంచర్‌లో పిన్ చేసిన యాప్‌ల జాబితాను మార్చవచ్చు.</translation>
 <translation id="7132877481099023201">ప్రాంప్ట్ చేయబడకుండా వీడియో క్యాప్చర్ పరికరాలకు యాక్సెస్‌ మంజూరు చేయబడే URLలు</translation>
@@ -2974,9 +3092,9 @@
 
           ఈ విధానాన్ని సెట్ చేస్తే, ఇది లాగిన్ స్క్రీన్ చూపబడినప్పుడు ప్రారంభించబడే స్క్రీన్ మాగ్నిఫైయర్ యొక్క రకాన్ని నియంత్రిస్తుంది. విధానాన్ని "ఏదీ కాదు"కు సెట్ చేయడం వలన స్క్రీన్ మాగ్నిఫైయర్ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు స్క్రీన్ మాగ్నిఫైయర్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీన్ని తాత్కాలికంగా అధిగ‌మించ‌వ‌చ్చు. అయితే, వినియోగదారు ఎంపిక స్థిరమైనది కాదు మరియు లాగిన్ స్క్రీన్‌లో కొత్త‌ది చూపబడినప్పుడు లేదా వినియోగదారు నిమిషం పాటు లాగిన్ స్క్రీన్‌లో యాక్టివ్‌గా లేనప్పుడు డిఫాల్ట్ స్థితి పునరుద్ధరించబడుతుంది.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు స్క్రీన్ మాగ్నిఫైయర్‌ను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా దీనిని తాత్కాలికంగా భర్తీ చేయవచ్చు. అయితే, వినియోగదారు ఎంపిక తాత్కాలికం మాత్రమే, లాగిన్ స్క్రీన్‌లో కొత్తగా చూపబడినప్పుడు లేదా వినియోగదారు ఒక నిమిషం పాటు లాగిన్ స్క్రీన్‌లో ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు డిఫాల్ట్ స్థితి పునరుద్ధరించబడుతుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు స్క్రీన్ మాగ్నిఫైయర్ నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా స్క్రీన్ మాగ్నిఫైయర్‌ను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు మరియు లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారుల మధ్య అలాగే కొనసాగుతుంది.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, లాగిన్ స్క్రీన్ మొదట చూపబడినప్పుడు స్క్రీన్ మాగ్నిఫైయర్ నిలిపివేయబడుతుంది. వినియోగదారులు ఎప్పుడైనా స్క్రీన్ మాగ్నిఫైయర్‌ను ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు, లాగిన్ స్క్రీన్‌లో దాని స్థితి వినియోగదారుల మధ్య అలాగే కొనసాగుతుంది.</translation>
 <translation id="7249828445670652637">ARC యాప్‌లకు <ph name="PRODUCT_OS_NAME" /> CA స‌ర్టిఫికెట్‌ల‌ను ప్రారంభించండి</translation>
 <translation id="7252681704926980614">ప్రతి ముద్రణ జాబ్‌తో పాటు వినియోగదారు పేరు మరియు ఫైల్ పేరును స్థానిక ప్రింటర్‌ సర్వర్‌లకు పంపండి. డిఫాల్ట్‌గా అయితే పంపబడవు.
 
@@ -2993,7 +3111,7 @@
 
       ఈ ఎంపిక నిలిపివేతకు సెట్ చేయబడినట్లయితే లేదా దీన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు డెవలపర్ సాధనాల‌ను, JavaScript కన్సోల్‌ను ఉపయోగించడానికి అనుమతించబడతారు.
       DeveloperToolsAvailability విధానం సెట్ చేయబడినట్లయితే, DeveloperToolsDisabled విధానం విలువ విస్మరించబడుతుంది.</translation>
-<translation id="7266471712301230894">ఈ విధానం <ph name="PRODUCT_NAME" /> 64వ వెర్షన్ నుండి తీసివేయబడింది.
+<translation id="7266471712301230894">ఈ విధానం <ph name="PRODUCT_NAME" /> 64 నుండి తీసివేయబడింది.
 
       అందించబడని ప్లగిన్‌లను ఆటోమేటిక్‌గా వెతికి, ఇన్‌స్టాల్ చేసే పద్ధతి ఇకపై పని చేయదు.</translation>
 <translation id="7267809745244694722">మీడియా కీలు డిఫాల్ట్‌గా ఫంక్షన్ కీలకు సెట్ చేయబడతాయి</translation>
@@ -3002,11 +3120,11 @@
 
           ఈ సెట్టింగ్‌ను నిలిపివేస్తే, ఆపై ఈ లక్షణం అందుబాటులో ఉండదు.</translation>
 <translation id="7275334191706090484">నిర్వహించబడిన బుక్‌మార్క్‌లు</translation>
-<translation id="7291084543582732020">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, వినియోగదారులు Smart Lock ఉపయోగించడానికి అనుమతించబడతారు. అయితే పరికరాలు ఈ ఫీచ‌ర్‌ అవ‌స‌రాల‌కు అనుకూలంగా ఉండాలి.
+<translation id="7291084543582732020">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, వినియోగదారులు Smart Lock ఉపయోగించడానికి అనుమతించబడతారు, అయితే పరికరాలు ఈ ఫీచర్ ఆవశ్యకాలకు అనుకూలంగా ఉండాలి.
 
-      మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు Smart Lock ఉపయోగించడానికి అనుమతించబడరు.
+మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, వినియోగదారులు Smart Lock ఉపయోగించడానికి అనుమతించబడరు.
 
-     ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ అనేది ఎంటర్‌ప్రైజ్ నిర్వాహిత‌ వినియోగదారులకు అనుమతించబడదు. కానీ నిర్వహించబడని వినియోగదారులకు అనుమతించబడుతుంది.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ అనేది ఎంటర్‌ప్రైజ్ నిర్వహిత వినియోగదారులకు అనుమతించబడదు, కానీ నిర్వహించబడని వినియోగదారులకు అనుమతించబడుతుంది.</translation>
 <translation id="7295019613773647480">పర్యవేక్షించబడే వినియోగదారులను ప్రారంభించు</translation>
 <translation id="7301543427086558500">శోధన ఇంజిన్ నుండి శోధన పదాలను సంగ్రహించడానికి ఉపయోగించబడే ప్రత్యామ్నాయ URLల జాబితాను నిర్దేశిస్తుంది. శోధన పదాలను సంగ్రహించడానికి ఉపయోగించబడే స్ట్రింగ్ <ph name="SEARCH_TERM_MARKER" /> అనేది, URLలలో ఉండాలి.
 
@@ -3025,11 +3143,11 @@
       <ph name="CHROME_REPORTING_EXTENSION_NAME" />ని ప్రారంభించినప్పుడు, అలాగే మెషీన్‌ని <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />తో ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="7323896582714668701"><ph name="PRODUCT_NAME" /> కోసం అదనపు ఆదేశ పంక్తి పరామితులు</translation>
 <translation id="7326394567531622570">Wipe (విలువ 2) లాంటిది, కానీ వినియోగదారు మళ్లీ సైన్ ఇన్ చేయాల్సిన అవసరం రాకుండా ఉండటం కోసం లాగిన్ టోకెన్‌లను నిల్వ ఉంచుతుంది.</translation>
-<translation id="7329842439428490522">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ ఆపివేయబడుతుందో పేర్కొంటుంది.
+<translation id="7329842439428490522">బ్యాటరీ పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ ఆపివేయబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను ఆపివేయడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
-          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు యాక్టివ్‌గా లేనప్పుడు <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను ఆపదు.
+          ఈ విధానాన్ని సున్నాకు సెట్ చేసినప్పుడు, వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను ఆఫ్ చేయదు.
 
           ఈ విధానాన్ని సెట్ చేయనప్పుడు, డిఫాల్ట్ సమయం ఉపయోగించబడుతుంది.
 
@@ -3038,13 +3156,13 @@
 
           సెట్టింగ్ ఏదీ అందించకుంటే, Androidలో <ph name="HTTP_NEGOTIATE" /> ప్రమాణీకరణ నిలిపివేయబడుతుంది.</translation>
 <translation id="7331962793961469250">ఒప్పున‌కు సెట్ చేసినపుడు, Chrome వెబ్ స్టోర్ యాప్‌ల కోసం ప్రమోషన్లు కొత్త‌ ట్యాబ్ పేజీలో కనిపించవు. ఈ ఎంపికను తప్పున‌కు సెట్ చేయడం లేదా దీన్ని సెట్ చేయకుండా వదిలివేయడం వలన, Chrome వెబ్ స్టోర్ కోసం ప్రమోషన్లు కొత్త‌ ట్యాబ్ పేజీలో కనిపిస్తాయి.</translation>
-<translation id="7332963785317884918">ఈ విధానం తొలగించబడింది. <ph name="PRODUCT_OS_NAME" /> ఎల్లప్పుడూ 'RemoveLRU' క్లీన్-అప్ వ్యూహాన్ని ఉపయోగిస్తుంది.
+<translation id="7332963785317884918">ఈ విధానం విస్మరించబడింది. <ph name="PRODUCT_OS_NAME" /> ఎప్పుడూ 'RemoveLRU' క్లీన్-అప్ వ్యూహాన్ని ఉపయోగిస్తుంది.
 
-      <ph name="PRODUCT_OS_NAME" /> పరికరాల్లో ఆటోమేటిక్ క్లీన్-అప్ ప్రవర్తనను నియంత్రిస్తుంది. ఖాళీ డిస్క్ స్థలం యొక్క పరిమాణం క్లిష్ట స్థాయికి చేరుకున్నప్పుడు కొంత ఖాళీ డిస్క్ స్థలాన్ని పొందడానికి ఆటోమేటిక్ క్లీన్-అప్ ప్రారంభించబడుతుంది.
+      <ph name="PRODUCT_OS_NAME" /> పరికరాలలో ఆటోమేటిక్ క్లీన్-అప్ ప్రవర్తనను నియంత్రిస్తుంది. ఖాళీ డిస్క్ స్థలం యొక్క పరిమాణం, ఒక క్లిష్ట స్థాయికి చేరుకున్నప్పుడు కొంత ఖాళీ డిస్క్ స్థలాన్ని పొందడానికి ఆటోమేటిక్ క్లీన్-అప్ ప్రారంభించబడుతుంది.
 
-      ఈ విధానం 'RemoveLRU'కు సెట్ చేయబడితే, ఆటోమేటిక్ క్లీన్-అప్ తగినంత ఖాళీ స్థలం సమకూరే దాకా ఇటీవలి కాలంలో లాగిన్ చేయని వారి క్రమంలో పరికరం నుండి వినియోగదారులను తీసివేస్తుంది.
+      ఈ విధానాన్ని 'RemoveLRU'కు సెట్ చేస్తే, ఆటోమేటిక్ క్లీన్-అప్ తగినంత ఖాళీ స్థలం సమకూరే దాకా ఇటీవలి కాలంలో లాగిన్ చేయనివారి క్రమంలో పరికరం నుండి వినియోగదారులను తీసివేస్తుంది.
 
-      ఈ విధానం 'RemoveLRUIfDormant'కు సెట్ చేయబడితే, ఆటోమేటిక్ క్లీన్-అప్ తగినంత ఖాళీ స్థలం సమకూరే దాకా ఇటీవలి కాలంలో లాగిన్ చేయని వారి క్రమంలో కనీసం 3 నెలలుగా లాగిన్ చేయని వినియోగదారులను తీసివేస్తుంది.
+      ఈ విధానాన్ని 'RemoveLRUIfDormant'కు సెట్ చేస్తే, ఆటోమేటిక్ క్లీన్-అప్ తగినంత ఖాళీ స్థలం సమకూరే దాకా ఇటీవలి కాలంలో లాగిన్ చేయనివారి క్రమంలో కనీసం 3 నెలలుగా లాగిన్ చేయని వినియోగదారులను తీసివేస్తుంది.
 
       ఈ విధానం సెట్ చేయబడకపోతే, ఆటోమేటిక్ క్లీన్-అప్ డిఫాల్ట్ అంతర్గత వ్యూహాన్ని పాటిస్తుంది. ప్రస్తుతం, అలా 'RemoveLRUIfDormant' వ్యూహం ఉంది.</translation>
 <translation id="7336785017449297672">గడియారం, సమయ మండలి సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
@@ -3070,7 +3188,7 @@
 <translation id="7424751532654212117">ఆపివేయబడిన ప్లగ్‌ఇన్‌ల జాబితాకి మినహాయింపుల జాబితా</translation>
 <translation id="7426112309807051726"><ph name="TLS_FALSE_START" /> అనుకూలీకరణ నిలిపివేయబడాలో లేదో పేర్కొంటుంది. చారిత్రక కారణాల దృష్ట్యా, ఈ విధానానికి DisableSSLRecordSplitting అని పేరు పెట్టబడింది.
 
-      విధానాన్ని సెట్ చేయకుంటే లేదా తప్పుకు సెట్ చేస్తే, <ph name="TLS_FALSE_START" /> ప్రారంభించబడుతుంది. దీన్ని ఒప్పుకు సెట్ చేస్తే, <ph name="TLS_FALSE_START" /> నిలిపివేయబడుతుంది.</translation>
+      విధానాన్ని సెట్ చేయకుంటే లేదా 'తప్పు'గా సెట్ చేస్తే, <ph name="TLS_FALSE_START" /> ప్రారంభించబడుతుంది. దీనిని 'ఒప్పు'గా సెట్ చేస్తే, <ph name="TLS_FALSE_START" /> నిలిపివేయబడుతుంది.</translation>
 <translation id="7433714841194914373">'క్రోమ్ త‌క్ష‌ణం' ప్రారంభించు</translation>
 <translation id="7434202861148928348">రిమోట్ యాక్సెస్ క్లయింట్‌ల కోసం అవసరమైన డొమైన్ పేర్లను కాన్ఫిగర్ చేయండి</translation>
 <translation id="7443616896860707393">క్రాస్-ఆరిజిన్ HTTP ప్రాథమిక ప్రామాణీకరణ ప్రాంప్ట్‌లు</translation>
@@ -3079,7 +3197,7 @@
 <translation id="7469554574977894907">శోధన సిఫార్సులని ప్రారంభించండి</translation>
 <translation id="7474249562477552702">స్థానిక విశ్వసనీయ యాంకర్ల ద్వారా మంజూరు చేయబడిన SHA-1 సంతకం గల ప్రమాణపత్రాలను అనుమతించాలో లేదో నిశ్చయించండి</translation>
 <translation id="7485481791539008776">డిఫాల్ట్ ప్రింట‌ర్‌ ఎంపిక నియమాలు</translation>
-<translation id="7485730741952775732">ఈ విధానాన్ని సెట్ చేస్తే, రిమోట్ యాక్సెస్‌ హోస్ట్ కనెక్షన్‌లను ఆమోదించే క్రమంలో రిమోట్ యాక్సెస్‌ క్లయింట్‌ల నుండి ప్రమాణీకరణ టోకెన్‌లను ధృవీకరించడానికి ఈ URLను ఉపయోగిస్తుంది. తప్పనిసరిగా RemoteAccessHostTokenUrlతో కలయికలో ఉపయోగించాలి.
+<translation id="7485730741952775732">ఈ విధానాన్ని సెట్ చేస్తే, రిమోట్ యాక్సెస్ హోస్ట్ కనెక్షన్‌లను ఆమోదించే క్రమంలో రిమోట్ యాక్సెస్ క్లయింట్‌ల నుండి ప్రమాణీకరణ టోకెన్‌లను ధృవీకరించడానికి ఈ URLను ఉపయోగిస్తుంది. తప్పనిసరిగా RemoteAccessHostTokenUrlతో కలయికలో ఉపయోగించాలి.
 
 ఈ ఫీచర్ ప్రస్తుతం సర్వర్ తరపున నిలిపివేయబడింది.</translation>
 <translation id="749556411189861380">నమోదిత పరికరాల OS మరియు ఫర్మ్‌వేర్ వెర్షన్‌ను నివేదించండి.
@@ -3087,7 +3205,7 @@
       ఈ సెట్టింగ్‌‌ను సెట్ చేయకపోతే లేదా 'ఒప్పు'గా సెట్ చేస్తే, నమోదిత పరికరాలు OS మరియు ఫర్మ్‌వేర్ వెర్షన్‌ను కాలానుగుణంగా నివేదిస్తాయి. ఈ సెట్టింగ్‌ను 'తప్పు'గా సెట్ చేస్తే, వెర్షన్ సమాచారం నివేదించబడదు.</translation>
 <translation id="7498946151094347510">వినియోగదారు ఉపయోగించకూడని ప్రింటర్‌లను పేర్కొంటుంది.
 
-      <ph name="DEVICE_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_BLACKLIST" />‌ను ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
+      <ph name="DEVICE_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_BLACKLIST" />ను ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
 
       ఈ విధానాన్ని ఉపయోగించినట్లయితే, అన్ని ప్రింటర్‌లు వినియోగదారుకు అందించబడతాయి, కానీ ఈ విధానంలో జాబితా చేసిన idలకు మినహాయించబడతాయి. idలు తప్పనిసరిగా <ph name="DEVICE_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
       </translation>
@@ -3102,27 +3220,27 @@
       ఒకవేళ విధానాన్ని తప్పునకు సెట్ చేస్తే లేదా సెట్ చేయకుండా వదిలేస్తే, DTC ఆఫ్ అవుతుంది, అలాగే పరికరం నుండి టెలిమెట్రీ, సమస్య విశ్లేషణ డేటాను సేకరించడం, ప్రాసెస్ చేయడం, నివేదించడం సాధ్యపడదు.
       ఒకవేళ ఇవ్వబడిన పరికరంలో wilco DTC అందుబాటులో ఉంటే, అలాగే విధానాన్ని ఒప్పునకు సెట్ చేసి ఉంటే, టెలిమెట్రీ, సమస్య విశ్లేషణ డేటా సేకరణ, ప్రాసెసింగ్, నివేదన ఆన్ చేయబడుతుంది.</translation>
 <translation id="7519251620064708155">ఈ సైట్‌ల్లో కీ ఉత్పాదనను అనుమతించండి</translation>
-<translation id="7529100000224450960">పాపప్‌లను తెరవడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెడితే, అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ- సెట్ చేయబడి ఉంటే 'DefaultCookiesSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
+<translation id="7529100000224450960">పాపప్‌లను తెరవడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెడితే, అన్ని సైట్‌లకు గ్లోబల్ డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultCookiesSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
 <translation id="7529144158022474049">ఆటో అప్‌డేట్‌ స్కాటర్ కారకం</translation>
-<translation id="7534199150025803530">ఈ విధానం Android Google డిస్క్ యాప్ మీద‌ ఎలాంటి ప్రభావం చూపదు. మీరు సెల్యులార్ కనెక్షన్‌ల్లో Google డిస్క్ వినియోగాన్ని నిరోధించాలనుకుంటే, Android Google డిస్క్ యాప్ యొక్క ఇన‌స్ట‌లేష‌న్‌‌ను అనుమతించకూడదు.</translation>
+<translation id="7534199150025803530">ఈ విధానం Android Google డిస్క్ యాప్‌పై ఎలాంటి ప్రభావం చూపదు. మీరు సెల్యులార్ కనెక్షన్‌లలో Google డిస్క్ వినియోగాన్ని నిరోధించాలనుకుంటే, మీరు Android Google డిస్క్ యాప్ యొక్క ఇన్‌స్టాలేషన్‌ను అనుమతించకూడదు.</translation>
 <translation id="7540622499178214923">Wilco సమస్య విశ్లేషణ, టెలిమెట్రీ కంట్రోలర్‌ను అనుమతిస్తుంది</translation>
 <translation id="7547549430720182663">విలీనం చేయండి</translation>
-<translation id="7553535237300701827">ఈ విధానం సెట్ చేయబడినప్పుడు, లాగిన్ ప్రామాణీకరణ విధానం సెట్టింగ్‌ విలువపై ఆధారపడి కింద పేర్కొన్న విధానాల్లో ఏదో ఒకదానిలో ఉంటుంది:
+<translation id="7553535237300701827">ఈ విధానం సెట్ చేయబడినప్పుడు, లాగిన్ ప్రామాణీకరణ విధానం సెట్టింగ్‌ విలువపై ఆధారపడి కింద పేర్కొన్న విధానాలలో ఏదో ఒకదానిలో ఉంటుంది:
 
       GAIAకి సెట్ చేస్తే, లాగిన్ సాధారణ GAIA ప్రామాణీకరణ విధానం ద్వారా చేయబడుతుంది.
 
-      SAML_INTERSTITIALకు సెట్ చేస్తే, లాగిన్ వినియోగదారుకు స్క్రీన్ మధ్య భాగంలో పరికర నమోదు డొమైన్‌లోని SAML IdP ప్రామాణీకరణతో కొనసాగే ఎంపికను లేదా తిరిగి సాధారణ GAIA లాగిన్ విధానానికి వెళ్లే ఎంపికను అందిస్తూ ముందస్తు హెచ్చరికను చూపుతుంది.</translation>
+      SAML_INTERSTITIALకి సెట్ చేస్తే, లాగిన్ వినియోగదారుకు స్క్రీన్ మధ్యభాగంలో పరికర నమోదు డొమైన్‌లోని SAML IdP ప్రామాణీకరణతో కొనసాగే ఎంపికను లేదా తిరిగి సాధారణ GAIA లాగిన్ విధానానికి వెళ్లే ఎంపికను అందిస్తూ ముందస్తు హెచ్చరికను చూపుతుంది.</translation>
 <translation id="755951849901630953">సెట్ చేయనప్పుడు లేదా ఒప్పు ఎంపికకు సెట్ చేసినప్పుడు, <ph name="PRODUCT_NAME" />లోని అన్ని అంతర్భాగాల కోసం అంతర్భాగ అప్‌డేట్‌లను ప్రారంభిస్తుంది.
 
-      తప్పు ఎంపికకు సెట్ చేసినట్లయితే, అంతర్భాగాలకు అప్‌డేట్‌లు  నిలిపివేయబడతాయి. అయితే, ఈ విధానంలో కొన్ని అంతర్భాగాలకు మినహాయింపు ఉంటుంది: అమలు చేయదగిన కోడ్ ఉండని లేదా బ్రౌజర్ యొక్క ప్రవర్తనను గణనీయ స్థాయిలో మార్చని లేదా భద్రతకు కీలకమైన అంతర్భాగానికి అప్‌డేట్‌లు  నిలిపివేయబడవు.
-      స‌ర్టిఫికెట్‌ ఉపసంహరణ జాబితాలు మరియు సురక్షిత బ్రౌజింగ్ డేటా వంటివి అటువంటి అంతర్భాగాలకు ఉదాహరణలు.
-      సురక్షిత బ్రౌజింగ్ గురించి మరింత సమాచారం కావాలంటే https://developers.google.com/safe-browsingను చూడండి.</translation>
+      తప్పు ఎంపికకు సెట్ చేసినట్లయితే, అంతర్భాగాలకు అప్‌డేట్‌లు నిలిపివేయబడతాయి. అయితే, ఈ విధానంలో కొన్ని అంతర్భాగాలకు మినహాయింపు ఉంటుంది: అమలు చేయదగిన కోడ్ ఉండని లేదా బ్రౌజర్ యొక్క ప్రవర్తనను గణనీయ స్థాయిలో మార్చని లేదా భద్రతకు కీలకమైన అంతర్భాగానికి అప్‌డేట్‌లు నిలిపివేయబడవు.
+      సర్టిఫికెట్ ఉపసంహరణ జాబితాలు మరియు సురక్షిత బ్రౌజింగ్ డేటా వంటివి అటువంటి అంతర్భాగాలకు ఉదాహరణలు.
+      సురక్షిత బ్రౌజింగ్ గురించి మరింత సమాచారం కావాలంటే https://developers.google.com/safe-browsingని చూడండి.</translation>
 <translation id="7566878661979235378">SAML లాగిన్ ప్రమాణీకరణ రకం</translation>
-<translation id="757395965347379751">ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> SHA-1 సంతకం గల సర్టిఫికెట్‌ల‌ను అవి విజయవంతంగా ధృవీకరించబడే వరకు మరియు స్థానికంగా ఇన్‌స్టాల్ చేసిన CA సర్టిఫికెట్‌లకు అనుబంధించి ఉన్నంత వరకు అనుమతిస్తుంది.
+<translation id="757395965347379751">ఈ సెట్టింగ్‌ను ప్రారంభించినప్పుడు, <ph name="PRODUCT_NAME" /> SHA-1 సంతకం గల సర్టిఫికెట్‌లను అవి విజయవంతంగా ధృవీకరించబడే వరకు మరియు స్థానికంగా ఇన్‌స్టాల్ చేసిన CA సర్టిఫికెట్‌లకు అనుబంధించి ఉన్నంతవరకు అనుమతిస్తుంది.
 
-      ఈ విధానం SHA-1 సంతకాలను అనుమతించే ఆపరేటింగ్ సిస్టమ్ సర్టిఫికెట్‌ ధృవీకరణ స్టాక్‌పై ఆధారపడి ఉంటుందని గమనించండి. OS అప్‌డేట్‌ SHA-1 సర్టిఫికెట్‌ల OS నిర్వహణను మారిస్తే, ఈ విధానం ఆపై ప్రభావవంతంగా ఉండకపోవచ్చు.  ఇంకా, ఈ విధానం సంస్థలు భవిష్యత్తులో SHA-1 వినియోగాన్ని నిలిపివేసే సందర్భాల్లో మరికొంత సమయాన్ని పొందడం కోసం తాత్కాలిక పరిష్కారంగా ఉపయోగించడానికి ఉద్దేశించినది.  ఈ విధానం ఇంచుమించుగా 1 జనవరి 2019 నాటికి తీసివేయబడుతుంది.
+      ఈ విధానం SHA-1 సంతకాలను అనుమతించే ఆపరేటింగ్ సిస్టమ్ సర్టిఫికెట్ ధృవీకరణ స్టాక్‌పై ఆధారపడి ఉంటుందని గమనించండి. OS అప్‌డేట్ SHA-1 సర్టిఫికెట్‌ల OS నిర్వహణను మారిస్తే, ఈ విధానం ఆపై ప్రభావవంతంగా ఉండకపోవచ్చు. ఇంకా, ఈ విధానం సంస్థలు భవిష్యత్తులో SHA-1 వినియోగాన్ని నిలిపివేసే సందర్భాలలో మరికొంత సమయాన్ని పొందడం కోసం తాత్కాలిక పరిష్కారంగా ఉపయోగించడానికి ఉద్దేశించినది. ఈ విధానం ఇంచుమించుగా 1 జనవరి 2019 నాటికి తీసివేయబడుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకపోయినా లేదా తప్పున‌కు సెట్ చేసినా, <ph name="PRODUCT_NAME" /> పబ్లిక్‌గా ప్రకటించిన SHA-1 నిలిపివేత షెడ్యూల్‌ను అనుసరిస్తుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోయినా లేదా 'తప్పు'గా సెట్ చేసినా, <ph name="PRODUCT_NAME" /> పబ్లిక్‌గా ప్రకటించిన SHA-1 నిలిపివేత షెడ్యూల్‌ను అనుసరిస్తుంది.</translation>
 <translation id="7578049687634719313">ప్రత్యామ్నాయ బ్రౌజర్‌ను ప్రారంభించే ముందు ఎన్ని మిల్లీసెకన్లు వేచి ఉండాలో ఈ విధానం నియంత్రిస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే లేదా 0కి సెట్ చేస్తే, నిర్దేశిత URLకి నావిగేట్ చేసినప్పుడు, తక్షణం అది ప్రత్యామ్నాయ బ్రౌజర్‌లో తెరవబడుతుంది.
@@ -3130,18 +3248,18 @@
       ఈ విధానాన్ని ఒక సంఖ్యకు సెట్ చేసినప్పుడు, Chrome నిర్దిశిత మిల్లీసెకన్ల పాటు ఒక సందేశాన్ని చూపించి, ఆపై ప్రత్యామ్నాయ బ్రౌజర్‌ను తెరుస్తుంది.</translation>
 <translation id="7593523670408385997">డిస్క్‌లో కాష్ చేసిన ఫైల్‌లను నిల్వ చేయడానికి <ph name="PRODUCT_NAME" /> ఉపయోగించే కాష్ పరిమాణాన్ని కాన్ఫిగర్ చేస్తుంది.
 
-     మీరు ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారు '--disk-cache-size' ఫ్లాగ్‌ను పేర్కొన్నారో లేదో అనే దానితో సంబంధం లేకుండా అందించిన కాష్ పరిమాణాన్ని ఉపయోగిస్తుంది. ఈ విధానంలో పేర్కొనబడిన విలువ ఖచ్చితమైన సరిహద్దు కాదు. కానీ కాషింగ్ సిస్టమ్‌కు ఒక సూచన. కొన్ని మెగాబైట్‌ల దిగువున ఉన్న‌ ఏ విలువ అయినా చాలా చిన్నదిగా పరిగణించబడుతుంది మరియు స్థిరమైన క‌నిష్ఠ‌ానికి పూరించబడుతుంది.
+     మీరు ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_NAME" /> వినియోగదారు '--disk-cache-size' ఫ్లాగ్‌ను పేర్కొన్నారో లేదో అనే దానితో సంబంధం లేకుండా అందించిన కాష్ పరిమాణాన్ని ఉపయోగిస్తుంది. ఈ విధానంలో పేర్కొనబడిన విలువ ఖచ్చితమైన సరిహద్దు కాదు, ఇది కాషింగ్ సిస్టమ్‌కు ఒక సూచన మాత్రమే, కొన్ని మెగాబైట్‌ల దిగువ ఉన్న ఏ విలువ అయినా చాలా చిన్నదిగా పరిగణించబడుతుంది మరియు స్థిరమైన కనిష్టానికి పూరించబడుతుంది.
 
-      ఈ విధానం యొక్క విలువ 0 అయితే, డిఫాల్ట్ కాష్ పరిమాణం ఉపయోగించబడుతుంది కానీ వినియోగదారు దీన్ని మార్చలేరు.
+      ఈ విధానం విలువ 0 అయితే, డిఫాల్ట్ కాష్ పరిమాణం ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ పరిమాణం ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని --disk-cache-size ఫ్లాగ్‌తో అధిగ‌మించ‌గ‌లుగుతారు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే డిఫాల్ట్ పరిమాణం ఉపయోగించబడుతుంది మరియు వినియోగదారు దీనిని --disk-cache-size ఫ్లాగ్‌తో భర్తీ చేయగలుగుతారు.</translation>
 <translation id="759957074386651883">సురక్షిత బ్రౌజింగ్‌ సెట్టింగ్‌లు</translation>
 <translation id="7604169113182304895">Android అనువర్తనాలు ఈ జాబితాకి ప్రాధాన్యత ఇవ్వడానికి స్వచ్ఛందంగా ఎంచుకోగలవు. మీరు దానికి ప్రాధాన్యత ఇవ్వడానికి వాటిని నిర్బంధం చేయలేరు.</translation>
 <translation id="7612157962821894603"><ph name="PRODUCT_NAME" /> స్టార్ట్-అప్ సమయంలో వర్తింపజేయాల్సిన సిస్టమ్ విస్తృత ఫ్లాగ్‌లు</translation>
 <translation id="7614663184588396421">ఆపివేయబడిన ప్రోటోకాల్ స్కీమ్‌ల జాబితా</translation>
-<translation id="7617319494457709698">ఈ విధానం రిమోట్ ధృవీకరణ కోసం <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> కార్యనిర్వాహకత <ph name="CHALLENGE_USER_KEY_FUNCTION" />ను ఉపయోగించడానికి అనుమతించే ఎక్స్‌టెన్షన్‌లను పేర్కొంటుంది. APIని ఉపయోగించడానికి ఎక్స్‌టెన్షన్‌లు తప్పనిసరిగా ఈ జాబితాకు జోడించబడాలి.
+<translation id="7617319494457709698">ఈ విధానం రిమోట్ ధృవీకరణ కోసం <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> కార్యనిర్వాహకత <ph name="CHALLENGE_USER_KEY_FUNCTION" />ని ఉపయోగించడానికి అనుమతించే ఎక్స్‌టెన్షన్‌లను పేర్కొంటుంది. APIని ఉపయోగించడానికి ఎక్స్‌టెన్షన్‌లు తప్పనిసరిగా ఈ జాబితాకు జోడించబడాలి.
 
-          జాబితాలో ఎక్స్‌టెన్షన్ లేకపోతే లేదా జాబితాను సెట్ చేయకుండా ఉంటే, APIకి చేసే కాల్, ఎర్రర్ కోడ్‌తో విఫలమవుతుంది.</translation>
+          జాబితాలో ఎక్స్‌టెన్షన్ లేకపోతే లేదా జాబితాను సెట్ చేయకుండా ఉంటే, APIకి చేసే కాల్ ఎర్రర్ కోడ్‌తో విఫలమవుతుంది.</translation>
 <translation id="7618907117929117943">ప్రస్తుత OS వెర్షన్, లక్ష్య వెర్షన్ కంటే తాజాది అయి ఉండి దాటినట్లయితే, ఉపసంహరించడం ద్వారా పరికర స్థాయి కాన్ఫిగరేషన్‌ను కొనసాగించడం (నెట్‌వర్క్ ఆధారాలతో సహా) సాధ్యమయితే, ఉపసంహరించి, లక్ష్య వెర్షన్‌నే కొనసాగించండి, అంతే కాక ఉపసంహరణ తర్వాత OOBEని దాటవేయండి. సాధ్యం కానట్లయితే  (లక్ష్య వెర్షన్ డేటా పునరుద్ధరణకు మద్దతు ఇవ్వకపోతే లేదా మరో దిశలో-అనుకూలం కాని మార్పు జరిగినట్లైతే) ఉపసంహరించడం తిరిగి చేయవద్దు లేదా రద్దు చేయవద్దు.
 
 <ph name="PRODUCT_OS_NAME" /> యొక్క 70వ వెర్షన్ మరియు అంతకంటే తాజా వాటికి మద్దతు ఉంది. పాత క్లయింట్‌ల విషయంలో, ఉపసంహరణ నిలిపివేయబడిందని ఈ విలువ సూచిస్తుంది.</translation>
@@ -3166,7 +3284,7 @@
 
       'హానికరమైన డౌన్‌లోడ్‌లను బ్లాక్ చేయి' ఎంపికను ఎంచుకున్నట్లయితే, సురక్షిత బ్రౌజింగ్ హెచ్చరికలను కలిగినవి మినహా మిగిలిన అన్ని డౌన్‌లోడ్‌లు అనుమతించబడతాయి.
 
-      'హానికరం కావ‌డానికి అవకాశమున్న డౌన్‌లోడ్‌లను బ్లాక్ చేయి' ఎంపికను ఎంచుకున్నట్లయితే, హానికరం కావ‌డానికి అవకాశమున్న డౌన్‌లోడ్‌ల లాగా సురక్షిత బ్రౌజింగ్ హెచ్చరికలను కలిగినవి మినహా మిగిలిన అన్ని డౌన్‌లోడ్‌లు అనుమతించబడతాయి.
+      'సంభావ్యంగా హానికరమైన డౌన్‌లోడ్‌లను బ్లాక్ చేయి' ఎంపికను ఎంచుకున్నట్లయితే, సంభావ్యంగా హానికరమైన డౌన్‌లోడ్‌ల లాగా సురక్షిత బ్రౌజింగ్ హెచ్చరికలను కలిగినవి మినహా మిగిలిన అన్ని డౌన్‌లోడ్‌లు అనుమతించబడతాయి.
 
       'అన్ని డౌన్‌లోడ్‌లను బ్లాక్ చేయి' ఎంపికను ఎంచుకున్నట్లయితే, అన్ని డౌన్‌లోడ్‌లు బ్లాక్ చేయబడతాయి.
 
@@ -3193,20 +3311,20 @@
 <translation id="7683777542468165012">డైనమిక్ విధాన రిఫ్రెష్</translation>
 <translation id="7687943045976362719">ఈ విధానాన్ని సెట్ చేస్తే, నిర్దిష్ట కంటెంట్ రకాలు <ph name="PRODUCT_FRAME_NAME" /> ద్వారా నిర్వహించబడతాయి.
 
-ఈ విధానాన్ని సెట్ చేయకపోతే, డిఫాల్ట్ రెండరర్ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది. (<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> విధానం డిఫాల్ట్ రెండరర్‌ను కాన్ఫిగర్ చేయడానికి ఉపయోగించబడవచ్చు.)</translation>
+ఈ విధానాన్ని సెట్ చేయకపోతే, డిఫాల్ట్ రెండరర్ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది. (<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> విధానం డిఫాల్ట్ రెండరర్‌ని కాన్ఫిగర్ చేయడానికి ఉపయోగించబడవచ్చు.)</translation>
 <translation id="7694807474048279351"><ph name="PRODUCT_OS_NAME" /> అప్‌డేట్ వర్తింపజేయబడిన తర్వాత ఆటోమేటిక్ రీబూట్‌ను షెడ్యూల్ చేయండి.
 
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినప్పుడు, <ph name="PRODUCT_OS_NAME" /> అప్‌డేట్ వర్తింపజేయబడినప్పుడు ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడుతుంది మరియు అప్‌డేట్ ప్రాసెస్‌ను పూర్తి చేయడానికి రీబూట్ అవసరం. రీబూట్ వెంటనే షెడ్యూల్ చేయబడుతుంది కానీ వినియోగదారు ప్రస్తుతం పరికరాన్ని ఉపయోగిస్తుంటే పరికరంలో గ‌రిష్ఠ‌ంగా 24 గంటలు ఆలస్యం అవుతుంది.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, <ph name="PRODUCT_OS_NAME" /> అప్‌డేట్ వర్తింపజేయబడినప్పుడు ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడుతుంది మరియు అప్‌డేట్ ప్రాసెస్‌ను పూర్తి చేయడానికి రీబూట్ అవసరం. రీబూట్ వెంటనే షెడ్యూల్ చేయబడుతుంది కానీ వినియోగదారు ప్రస్తుతం పరికరాన్ని ఉపయోగిస్తుంటే పరికరంలో గరిష్టంగా 24 గంటలు ఆలస్యం అవుతుంది.
 
-      ఈ విధానాన్ని తప్పున‌కు సెట్ చేసినప్పుడు, <ph name="PRODUCT_OS_NAME" /> అప్‌డేట్‌ను వర్తింపజేసిన తర్వాత ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడదు. వినియోగదారు పరికరాన్ని రీబూట్ చేసిన తదుపరిసారి అప్‌డేట్ ప్రాసెస్ పూర్తవుతుంది.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినప్పుడు, <ph name="PRODUCT_OS_NAME" /> అప్‌డేట్‌ను వర్తింపజేసిన తర్వాత ఆటోమేటిక్ రీబూట్ షెడ్యూల్ చేయబడదు. వినియోగదారు పరికరాన్ని రీబూట్ చేసిన తర్వాతిసారి అప్‌డేట్ ప్రాసెస్ పూర్తవుతుంది.
 
-      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-      గమనిక: ప్రస్తుతం, ఆటోమేటిక్ రీబూట్‌లు లాగిన్ స్క్రీన్ చూపబడుతున్నప్పుడు లేదా కియోస్క్ యాప్ సెషన్ పురోగమనంలో ఉన్నప్పుడు మాత్రమే ప్రారంభించబడతాయి. ఇది భవిష్యత్తులో మారుతుంది మరియు విధానం ఎల్లప్పుడూ వర్తింపజేయబడుతుంది, ఏదైనా నిర్దిష్ట సెషన్ రకం పురోగమనంలో ఉందా లేదా అన్న దానిపై ఆధాపర పడి ఉండదు.</translation>
+      గమనిక: ప్రస్తుతం, ఆటోమేటిక్ రీబూట్‌లు లాగిన్ స్క్రీన్ చూపబడుతున్నప్పుడు లేదా కియోస్క్ యాప్ సెషన్ పురోగమనంలో ఉన్నప్పుడు మాత్రమే ప్రారంభించబడతాయి. ఇది భవిష్యత్తులో మారుతుంది మరియు విధానం ఎప్పుడూ వర్తింపజేయబడుతుంది, ఏదైనా నిర్దిష్ట సెషన్ రకం పురోగమనంలో ఉందా లేదా అన్న దానిపై ఆధాపర పడి ఉండదు.</translation>
 <translation id="7701341006446125684">యాప్‌లు, ఎక్స్‌టెన్ష‌న్‌ల కాష్ పరిమాణాన్ని (బైట్‌ల‌లో) సెట్ చేస్తుంది</translation>
-<translation id="7709537117200051035">హోస్ట్‌కు యాక్సెస్‌ అనుమతించాలో (ఒప్పు) లేదా బ్లాక్ చేయాలో (తప్పు) పేర్కొనే బులియన్ ఫ్లాగ్‌కు హోస్ట్‌పేర్లను మ్యాప్ చేసే నిఘంటువు.
+<translation id="7709537117200051035">హోస్ట్‌కు యాక్సెస్ అనుమతించాలో (ఒప్పు) లేదా బ్లాక్ చేయాలో (తప్పు) పేర్కొనే బులియన్ ఫ్లాగ్‌కు హోస్ట్‌పేర్లను మ్యాప్ చేసే నిఘంటువు.
 
-          ఈ విధానం <ph name="PRODUCT_NAME" /> యొక్క అంతర్గత ఉపయోగానికి మాత్రమే.</translation>
+          ఈ విధానం <ph name="PRODUCT_NAME" /> అంతర్గత వినియోగానికి మాత్రమే.</translation>
 <translation id="7712109699186360774">సైట్ కెమెరా మరియు/లేదా మైక్రోఫోన్‌ను యాక్సెస్ చేయాలనుకునే ప్రతి సారీ అడగాలి</translation>
 <translation id="7713608076604149344">డౌన్‌లోడ్ పరిమితులు</translation>
 <translation id="7715711044277116530">ప్రెజెంటేషన్ మోడ్‌లో స్క్రీన్ కాంతివిహీనత ఆలస్యాన్ని లెక్కించే శాతం</translation>
@@ -3215,9 +3333,9 @@
 
       ఈ విధానం డిఫాల్ట్‌గా నిలిపివేయబడి ఉంటుంది, దీనిని ప్రారంభిస్తే, వినియోగదారులకు ఇలాంటి భద్రతా సమస్య ఏర్పడవచ్చు, https://crbug.com/600352
 
-       ఇప్పటికే HTTP/0.9లో ఉన్న సర్వర్‌లను తరలించే అవకాశం సంస్థలకు ఇవ్వడానికి ఈ విధానం ఉద్దేశించబడింది, భవిష్యత్తులో నిలిపివేయబడుతుంది.
+      ఈ విధానం సంస్థలకు ఇప్పటికే HTTP/0.9లో ఉన్న సర్వర్‌లను తరలించే అవకాశం ఇవ్వడానికి ఉద్దేశించబడింది మరియు భవిష్యత్తులో నిలిపివేయబడుతుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే, డిఫాల్ట్ యేతర పోర్ట్‌లలో HTTP/0.9 నిలిపివేయబడుతుంది.</translation>
+      ఈ విధానం సెట్ చేయకపోతే, డిఫాల్ట్ యేతర పోర్ట్‌లలో HTTP/0.9 నిలిపివేయబడుతుంది.</translation>
 <translation id="7747447585227954402"><ph name="PRODUCT_OS_NAME" />లో <ph name="PLUGIN_VM_NAME" />ను ఉపయోగించడానికి పరికరాలకు అనుమతించు</translation>
 <translation id="7749402620209366169">రిమోట్ యాక్సెస్‌ హోస్ట్‌ల కోసం వినియోగదారు-నిర్దిష్ట PINకు బదులుగా రెండు-ద‌శ‌ల‌ ప్రామాణీకరణను ప్రారంభిస్తుంది.
 
@@ -3236,33 +3354,33 @@
 <translation id="7777535871204167559">బాహ్య నిల్వ పరికరాలు చదవడానికి మాత్రమే విధానంలో పరిగణించబడతాయి</translation>
 <translation id="7781069478569868053">కొత్త ట్యాబ్ పేజీ</translation>
 <translation id="7788511847830146438">ఒక ప్రొఫైల్‌కు</translation>
-<translation id="780603170519840350">subjectPublicKeyInfo హాష్‌ల కోసం సర్టిఫికేట్ పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
+<translation id="780603170519840350">subjectPublicKeyInfo హాష్‌ల కోసం సర్టిఫికెట్ పారదర్శకత ఆవశ్యకాల అమలును నిలిపివేస్తుంది.
 
-      పేర్కొన్న subjectPublicKeyInfo హాష్‌లు ఉన్న సర్టిఫికేట్‌లను కలిగి ఉన్న సర్టిఫికేట్ చైన్‌ల కోసం సర్టిఫికేట్ పారదర్శకతను బహిర్గత ఆవశ్యకాలను నిలిపివేయడాన్ని ఈ విధానం అనుమతిస్తుంది. ఎంటర్‌ప్రైజ్ హోస్ట్‌ల కోసం ఇది పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని అవిశ్వసనీయమైన సర్టిఫికేట్‌లను ఉపయోగించడానికి అనుమతిస్తుంది.
+      పేర్కొన్న subjectPublicKeyInfo హాష్‌లు ఉన్న సర్టిఫికెట్‌లను కలిగి ఉన్న సర్టిఫికెట్ చైన్‌ల కోసం సర్టిఫికెట్ పారదర్శకతను బహిర్గత ఆవశ్యకాలను నిలిపివేయడాన్ని ఈ విధానం అనుమతిస్తుంది. ఎంటర్‌ప్రైజ్ హోస్ట్‌ల కోసం ఇది పబ్లిక్‌గా సక్రమమైన రీతిలో బహిరంగపరచబడని అవిశ్వసనీయమైన సర్టిఫికెట్‌లను ఉపయోగించడానికి అనుమతిస్తుంది.
 
-      ఈ విధానం సెట్ చేయబడినప్పుడు సర్టిఫికేట్ పారదర్శకత అమలు కోసం నిలిపివేయడానికి, కింది పరిస్థితుల్లో తప్పనిసరిగా ఒకదాన్ని కలిగి ఉండాలి:
-      1. సర్వర్ సర్టిఫికేట్ యొక్క subjectPublicKeyInfo హాష్.
-      2. సర్టిఫికేట్ చైన్‌లోని CA సర్టిఫికేట్‌లో కనిపించే subjectPublicKeyInfoకి సంబంధించిన హాష్, ఆ CA సర్టిఫికేట్ X.509v3 nameConstraints పొడింగింపు, permittedSubtreesలో ఒకటి లేదా అంతకంటే ఎక్కువ directoryName nameConstraints మరియు organizationName ఫీచర్‌ను కలిగి ఉన్న directoryName ద్వారా పరిమితం చేయబడ్డాయి.
+      ఈ విధానాన్ని సెట్ చేసినప్పుడు సర్టిఫికెట్ పారదర్శకత అమలును నిలిపివేయడానికి, కింది పరిస్థితులలో తప్పనిసరిగా ఒకదాన్ని కలిగి ఉండాలి:
+      1. సర్వర్ సర్టిఫికెట్ యొక్క subjectPublicKeyInfo హాష్.
+      2. సర్టిఫికెట్ చైన్‌లోని CA సర్టిఫికెట్‌లో కనిపించే subjectPublicKeyInfoకు సంబంధించిన హాష్, ఆ CA సర్టిఫికెట్ X.509v3 nameConstraints ఎక్స్‌టెన్షన్, permittedSubtreesలో ఒకటి లేదా అంతకంటే ఎక్కువ directoryName nameConstraints మరియు organizationName ఫీచర్‌ను కలిగి ఉన్న directoryName ద్వారా పరిమితం చేయబడ్డాయి.
       
-3. సర్టిఫికేట్ చైన్‌లోని CA సర్టిఫికేట్‌లో కనిపించే subjectPublicKeyInfoకు సంబంధించిన హాష్, సర్టిఫికేట్ విషయంలో ఒకటి లేదా మరిన్ని organizationName ఫీచర్‌లు CA సర్టిఫికేట్‌లో ఉన్నాయి మరియు సర్వర్ యొక్క సర్టిఫికేట్ అదే క్రమంలో, organizationName ఫీచర్‌ల అదే సంఖ్యను కలిగి ఉంటుంది మరియు బైట్-ఫార్-బైట్ ఒకేలాంటి విలువలతో ఉంటుంది.
+3. సర్టిఫికెట్ చైన్‌లోని CA సర్టిఫికెట్‌లో కనిపించే subjectPublicKeyInfoకు సంబంధించిన హాష్, సర్టిఫికెట్ విషయంలో ఒకటి లేదా మరిన్ని organizationName ఫీచర్‌లు CA సర్టిఫికెట్‌లో ఉన్నాయి మరియు సర్వర్ యొక్క సర్టిఫికెట్ అదే క్రమంలో, organizationName ఫీచర్‌ల అదే సంఖ్యను కలిగి ఉంటుంది మరియు బైట్-ఫార్-బైట్ ఒకేలాంటి విలువలతో ఉంటుంది.
 
 
-      subjectPublicKeyInfo హాష్ అనేది అల్గారిథమ్ పేరు, "/" అక్షరం మరియు పేర్కొన్న సర్టిఫికేట్ యొక్క DER-ఎన్‌కోడెడ్ subjectPublicKeyInfoకు వర్తింపజేయబడిన హాష్ అల్గారిథమ్ యొక్క Base64 ఎన్‌కోడింగ్‍‌తో పాటు పేర్కొనబడుతుంది. ఈ Base64 ఎన్‌కోడింగ్ అనేది SPKI వేలిముద్రలా, RFC 7469, విభాగం 2.4లో నిర్వచించిన విధంగా ఉండే ఫార్మాట్. గుర్తించబడని హాష్ అల్గారిథమ్‌లు విస్మరించబడతాయి. ఈ సమయంలో మద్దతు ఉన్న ఒకే ఒక అల్గారిథమ్ "sha256".
+      subjectPublicKeyInfo హాష్ అనేది అల్గారిథమ్ పేరు, "/" అక్షరం మరియు పేర్కొన్న సర్టిఫికెట్ యొక్క DER-ఎన్‌కోడెడ్ subjectPublicKeyInfoకు వర్తింపజేయబడిన హాష్ అల్గారిథమ్ యొక్క Base64 ఎన్‌కోడింగ్‍‌తో పాటు పేర్కొనబడుతుంది. ఈ Base64 ఎన్‌కోడింగ్ అనేది SPKI వేలిముద్రలా, RFC 7469, విభాగం 2.4లో నిర్వచించిన విధంగా ఉండే ఫార్మాట్. గుర్తించబడని హాష్ అల్గారిథమ్‌లు విస్మరించబడతాయి. ఈ సమయంలో మద్దతు ఉన్న ఒకే ఒక అల్గారిథమ్ "sha256".
 
-      ఈ విధానాన్ని సెట్ చేయకుంటే, సర్టిఫికేట్ పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా సర్టిఫికేట్, సర్టిఫికేట్ పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుంటే, సర్టిఫికెట్ పారదర్శకత ద్వారా బహిరంగపరచాల్సిన ఏదైనా సర్టిఫికెట్, సర్టిఫికెట్ పారదర్శకత విధానానికి అనుగుణంగా బహిరంగపరచని పక్షంలో అవిశ్వసనీయమైనదిగా పరిగణించబడుతుంది.</translation>
 <translation id="7818131573217430250">లాగిన్ స్క్రీన్‌లో అధిక కాంట్రాస్ట్ మోడ్ యొక్క డిఫాల్ట్ స్థితిని సెట్ చేయండి</translation>
-<translation id="7822837118545582721">ఈ విధానం ఒప్పుకు సెట్ చేయబడినప్పుడు, వినియోగదారులు బాహ్య నిల్వ పరికరాలకు ఏమీ వ్రాయలేరు.
+<translation id="7822837118545582721">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు, వినియోగదారులు బాహ్య నిల్వ పరికరాలకు ఏమీ వ్రాయలేరు.
 
-      ఈ విధానం తప్పుకు సెట్ చేయబడినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు భౌతికంగా వ్రాయగలిగే బాహ్య నిల్వ పరికరాల ఫైల్‌లను సృష్టించగలరు మరియు సవరించగలరు.
+      ఈ విధానాన్ని 'తప్పు'గా సెట్ చేసినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు భౌతికంగా వ్రాయగలిగే బాహ్య నిల్వ పరికరాలలోని ఫైల్‌లను సృష్టించగలరు, సవరించగలరు.
 
-     ఈ విధానంతో పోల్చినప్పుడు, ExternalStorageDisabled విధానానికి ప్రాముఖ్యత ఇవ్వబడుతుంది  - ExternalStorageDisabled ఒప్పుకు సెట్ చేయబడినట్లయితే, బాహ్య నిల్వకు అన్ని యాక్సెస్‌లు నిలిపివేయబడతాయి, పర్యవసానంగా ఈ విధానం విస్మరించబడుతుంది.
+      ఈ విధానంతో పోల్చినప్పుడు, ExternalStorageDisabled విధానానికి ప్రాముఖ్యత ఇవ్వబడుతుంది  - ExternalStorageDisabledను 'ఒప్పు'గా సెట్ చేసినట్లయితే, బాహ్య నిల్వకు అన్ని యాక్సెస్‌లు నిలిపివేయబడతాయి, పర్యవసానంగా ఈ విధానం విస్మరించబడుతుంది.
 
-   ఈ విధానం యొక్క చలనశీల పునశ్చరణకు M56 మరియు తదుపరి వాటిలో మద్దతు ఉంటుంది.</translation>
+      M56 మరియు తర్వాతి వెర్షన్‌లలో ఈ విధానం డైనమిక్ రిఫ్రెష్‌కు మద్దతు ఉంటుంది.</translation>
 <translation id="7831595031698917016">విధాన అప్రామాణీకరణను స్వీకరించడం మరియు పరికర నిర్వహణ సేవ నుండి కొత్త విధానాన్ని పొందడం మధ్య గరిష్ట ఆలస్యాన్ని మిల్లీసెకన్లలో పేర్కొంటుంది.
 
       ఈ విధానాన్ని సెట్ చేయడం వలన డిఫాల్ట్ విలువ అయిన 5000 మిల్లీసెకన్లు భర్తీ చేయబడుతుంది. ఈ విధానం కోసం చెల్లుబాటు అయ్యే విలువలు 1000 (1 సెకను) నుండి 300000 (5 నిమిషాల) పరిధిలో ఉంటాయి. ఈ పరిధిలో లేని ఏ విలువలు అయినా సంబంధిత సరిహద్దుకు పరిమితం చేయబడతాయి.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేయడం వలన <ph name="PRODUCT_NAME" /> డిఫాల్ట్ విలువ అయిన 5000 మిల్లీసెకన్లను ఉపయోగించేలా చేయబడుతుంది.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేయడం వలన <ph name="PRODUCT_NAME" /> డిఫాల్ట్ విలువ అయిన 5000 మిల్లీసెకన్ల విలువ ఉపయోగించేలా చేయబడుతుంది.</translation>
 <translation id="7841880500990419427">ఫాల్‌బ్యాక్ చేయవలసిన కనిష్ట TLS వెర్షన్</translation>
 <translation id="7842869978353666042">Google డిస్క్ ఎంపికలను కాన్ఫిగర్ చేయండి</translation>
 <translation id="7858404742201086014">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, పాత ప్లగిన్‌లు సాధారణ ప్లగిన్‌లు లాగా ఉపయోగించబడుతాయి.
@@ -3275,7 +3393,7 @@
       CopyCaCertsకు సెట్ చేస్తే, ARC అనువర్తనాల కోసం <ph name="WEB_TRUSTED_BIT" /> గల అన్ని ONC ఇన్‍స్టాల్ చేసిన CA ప్రమాణపత్రాలు అందుబాటులో ఉంటాయి.</translation>
 <translation id="7882585827992171421">ఈ విధానం రిటైల్ మోడ్‌‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      సైన్-ఇన్ స్క్రీన్‌లో స్క్రీన్ సేవర్‌గా ఉపయోగించబడే ఎక్స్‌టెన్ష‌న్‌ idని నిర్ధారిస్తుంది. ఎక్స్‌టెన్ష‌న్‌ తప్పనిసరిగా DeviceAppPack విధానం ద్వారా ఈ డొమైన్ కోసం కాన్ఫిగర్ చేయబడిన AppPackలో భాగంగా ఉండాలి.</translation>
+      సైన్-ఇన్ స్క్రీన్‌లో స్క్రీన్ సేవర్‌గా ఉపయోగించబడే ఎక్స్‌టెన్షన్ idని నిర్ధారిస్తుంది. ఎక్స్‌టెన్షన్ తప్పనిసరిగా DeviceAppPack విధానం ద్వారా ఈ డొమైన్ కోసం కాన్ఫిగర్ చేయబడిన AppPackలో భాగంగా ఉండాలి.</translation>
 <translation id="7882857838942884046">Google సింక్‌ను నిలిపివేయడం వ‌ల్ల‌ Android బ్యాకప్ మరియు పునరుద్ధరణ సరిగ్గా పనిచేయవు.</translation>
 <translation id="7882890448959833986">OSకి మద్దతు లేదు హెచ్చరికను ఆపివేయి</translation>
 <translation id="7902255855035461275">ఈ జాబితాలోని ఆకృతులు అభ్యర్థిస్తున్న URL భద్రతా మూలాధారంతో సరిపోల్చబడతాయి. సరిపోలినది కనుగొనబడితే, ఎలాంటి ప్రేరేపణ లేకుండా, వీడియోను కాప్చర్ చేసే పరికరాలకు యాక్సెస్ మంజూరు చేయబడుతుంది.
@@ -3288,25 +3406,25 @@
 <translation id="793473937901685727">ARC యాప్‌ల కోసం ప్రమాణపత్ర లభ్యతను సెట్ చేయండి</translation>
 <translation id="7937766917976512374">వీడియో క్యాప్చర్‌ను అనుమతించడం లేదా తిరస్కరించడం</translation>
 <translation id="7941975817681987555">ఏ నెట్‌వర్క్ కనెక్షన్‌లోనూ నెట్‌వర్క్ చర్యలను అంచనా వేయవద్దు</translation>
-<translation id="7952958573604504839">ఈ విధానం <ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" />కు అనుగుణంగా M48లో నిలిపివేయబడింది మరియు M54లో తీసివేయబడింది.
+<translation id="7952958573604504839"><ph name="NETWORK_PREDICTION_OPTIONS_POLICY_NAME" />కు ప్రాధాన్యతనిస్తూ ఈ విధానం M48లో విస్మరించబడింది, M54లో తీసివేయబడింది.
 
-<ph name="PRODUCT_NAME" />లో నెట్‌వర్క్ సూచనను ప్రారంభిస్తుంది మరియు ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నిరోధిస్తుంది.
+<ph name="PRODUCT_NAME" />లో నెట్‌వర్క్ సూచనను ప్రారంభిస్తుంది, ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నిరోధిస్తుంది.
 
-ఇది వెబ్ పేజీల యొక్క DNS పూర్వ యాక్సెస్‌ను మాత్రమే కాకుండా TCP మరియు SSL పూర్వ కనెక్షన్ మరియు పూర్వ అమలును కూడా నియంత్రిస్తుంది. చారిత్రక కారణాల వల్ల విధానం పేరు DNS పూర్వ యాక్సెస్‌ను సూచిస్తుంది.
+ఇది వెబ్ పేజీల DNS పూర్వ యాక్సెస్‌ను మాత్రమే కాకుండా TCP మరియు SSL పూర్వ కనెక్షన్ మరియు పూర్వ అమలును కూడా నియంత్రిస్తుంది. చారిత్రక కారణాల వల్ల విధానం పేరు DNS పూర్వ యాక్సెస్‌ను సూచిస్తుంది.
 
-మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే లేదా నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే లేదా నిలిపివేస్తే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఇది ప్రారంభించబడుతుంది కానీ వినియోగదారు దీన్ని మార్చగలరు.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, ఇది ప్రారంభించబడుతుంది, కానీ వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="7953256619080733119">నిర్వహించబడే వినియోగదారు మాన్యువల్ మినహాయింపు హోస్ట్‌లు</translation>
 <translation id="7958537754689366707">పాస్‌వర్డ్ నమోదు ప్రతి పన్నెండు గంటలకు అవసరమవుతుంది</translation>
 <translation id="7961779417826583251">జాబితాలోని లెగసీ సర్టిఫికేట్ అధికారాల కోసం సర్టిఫికేట్ పారదర్శకత అమలును నిలిపివేయండి</translation>
-<translation id="7974114691960514888">ఈ విధానానికి మద్దతు లేదు. రిమోట్ క్లయింట్‌కు కనెక్ట్ అవుతున్నప్పుడు, STUN మరియు రిల్వే సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది. ఈ సెట్టింగ్ ప్రారంభించబడి ఉంటే, ఈ మెషీన్ రిమోట్ హోస్ట్ మెషీన్‌లు ఫైర్‌వైల్ ద్వారా వేరు చేయబడినా కూడా కనుగొంటుంది మరియు వాటికి కనెక్ట్ చేస్తుంది. ఈ సెట్టింగ్ ఆపివేయబడి మరియు బయటకు వెళ్లే UDP కనెక్షన్‌లు ఫైర్‌వాల్ ద్వారా ఫిల్టర్ చేయబడి ఉంటే, అప్పుడు ఈ మెషీన్ స్థానిక నెట్‌వర్క్‌లోని హోస్ట్ మెషీన్‌లకు మాత్రమే కనెక్ట్ చేస్తుంది.</translation>
+<translation id="7974114691960514888">ఈ విధానానికి మద్దతు లేదు. రిమోట్ క్లయింట్‌కు కనెక్ట్ అవుతున్నప్పుడు, STUN మరియు రిల్వే సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది. ఈ సెట్టింగ్‌ను ప్రారంభించి ఉంటే, రిమోట్ హోస్ట్ మెషీన్‌లు ఫైర్‌వైల్ ద్వారా వేరు చేయబడినా కూడా, ఈ మెషీన్ వాటిని కనుగొని, కనెక్ట్ చేస్తుంది. ఈ సెట్టింగ్ ఆపివేయబడి, బయటకు వెళ్లే UDP కనెక్షన్‌లు ఫైర్‌వాల్ ద్వారా ఫిల్టర్ చేయబడి ఉంటే, అప్పుడు ఈ మెషీన్ స్థానిక నెట్‌వర్క్‌లోని హోస్ట్ మెషీన్‌లకు మాత్రమే కనెక్ట్ చేస్తుంది.</translation>
 <translation id="7976157349247117979"><ph name="PRODUCT_NAME" /> గమ్యస్థానం పేరు</translation>
 <translation id="7980227303582973781">ప్రత్యేక పరిమితులు లేవు</translation>
 <translation id="7985242821674907985"><ph name="PRODUCT_NAME" /></translation>
-<translation id="798856998567564266">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, బుక్‌మార్క్‌లను జోడించవచ్చు, తీసివేయవచ్చు లేదా అప్‌డేట్ చేయవ‌చ్చు. ఈ విధానాన్ని సెట్ చేయనప్పుడు కూడా ఇదే డిఫాల్ట్‌గా ఉంటుంది.
+<translation id="798856998567564266">మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, బుక్‌మార్క్‌లను జోడించవచ్చు, తీసివేయవచ్చు లేదా అప్‌డేట్ చేయవచ్చు. ఈ విధానాన్ని సెట్ చేయనప్పుడు, ఇదే డిఫాల్ట్‌గా ఉంటుంది.
 
-మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, బుక్‌మార్క్‌లను జోడించలేరు, తీసివేయలేరు లేదా అప్‌డేట్ చేయలేరు. ప్రస్తుత‌మున్న‌ బుక్‌మార్క్‌లు ఇంకా అందుబాటులో ఉంటాయి.</translation>
+మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, బుక్‌మార్క్‌లను జోడించలేరు, తీసివేయలేరు లేదా అప్‌డేట్ చేయలేరు. ఉనికిలోని బుక్‌మార్క్‌లు ఇంకా అందుబాటులో ఉంటాయి.</translation>
 <translation id="7992136759457836904">వర్చువల్ మెషీన్‌లు Chrome OSలో అమలు కావాలో లేదో నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
       విధానాన్ని ఒప్పుకు సెట్ చేస్తే, వర్చువల్ మెషీన్‌లను అనుమతించడానికి పరికరం అనుమతించబడుతుంది.
@@ -3333,21 +3451,21 @@
 <translation id="8050080920415773384">స్థానిక ముద్రణ</translation>
 <translation id="8053580360728293758">డిఫాల్ట్ ముద్రణ రంగు మోడ్‌ను భర్తీ చేస్తుంది. మోడ్ అందుబాటులో లేనట్లయితే ఈ విధానం విస్మరించబడుతుంది.</translation>
 <translation id="8059164285174960932">రిమోట్ యాక్సెస్ క్లయింట్‌లు వారి ప్రామాణీకరణ టోకెన్‌ను పొందే URL</translation>
-<translation id="806280865577636339">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, యాక్సెస్‌ ఎంపికలు ఎల్లప్పుడూ సిస్టమ్ ట్రే మెనూలో కనిపిస్తాయి.
+<translation id="806280865577636339">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, యాక్సెస్ ఎంపికలు ఎప్పుడూ సిస్టమ్ ట్రే మెనులో కనిపిస్తాయి.
 
-ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, యాక్సెస్‌ ఎంపికలు ఎప్పటికీ సిస్టమ్ ట్రే మెనూలో కనిపించవు.
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, యాక్సెస్ ఎంపికలు ఎప్పటికీ సిస్టమ్ ట్రే మెనులో కనిపించవు.
 
           
-మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, యాక్సెస్‌ ఎంపికలు సిస్టమ్ ట్రే మెనూలో కనిపించవు, కానీ వినియోగదారు సెట్టింగ్‌ల పేజీ ద్వారా యాక్సెస్‌ ఎంపికలు కనిపించేలా చేయవచ్చు.</translation>
+ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, యాక్సెస్ ఎంపికలు సిస్టమ్ ట్రే మెనులో కనిపించవు, కానీ వినియోగదారు సెట్టింగ్‌ల పేజీ ద్వారా యాక్సెస్ ఎంపికలను కనిపించేలా చేయవచ్చు.</translation>
 <translation id="806523868782250975">నిర్వహించబడే బుక్‌మార్క్‌ల జాబితాను కాన్ఫిగర్ చేస్తుంది.
 
-విధానంలో బుక్‌మార్క్‌ల జాబితా ఉంటుంది, దీనిలోని ప్రతి బుక్‌మార్క్ కూడా "<ph name="NAME" />" మరియు "<ph name="URL_LABEL" />" కీలను కలిగి ఉండే నిఘంటువు, వీటిలో బుక్‌మార్క్ పేరు మరియు దాని లక్ష్యం ఉంటాయి. "<ph name="URL_LABEL" />" కీ లేని, కానీ అదనపు "<ph name="CHILDREN" />" కీ కలిగి ఉండే బుక్‌మార్క్‌ను నిర్వచించడం ద్వారా ఉపఫోల్డర్‌ను కాన్ఫిగర్ చేయవచ్చు, అయితే ఈ ఉపఫోల్డర్ ఎగువ నిర్వచించినట్లు బుక్‌మార్క్‌లను కలిగి ఉంటుంది (వీటిలో కొన్ని మళ్లీ ఫోల్డర్‌లుగా ఉండవచ్చు). ఓమ్నిబాక్స్‌ ద్వారా అసంపూర్ణ URLలు సమర్పించబడితే <ph name="PRODUCT_NAME" /> వాటిని సవరిస్తుంది, ఉదాహరణకు "<ph name="GOOGLE_COM" />" అనేది "<ph name="HTTPS_GOOGLE_COM" />" లాగా మారుతుంది.
+విధానంలో బుక్‌మార్క్‌ల జాబితా ఉంటుంది, దీనిలోని ప్రతి బుక్‌మార్క్ కూడా "<ph name="NAME" />" మరియు "<ph name="URL_LABEL" />" కీలను కలిగి ఉండే నిఘంటువు, వీటిలో బుక్‌మార్క్ పేరు, దాని లక్ష్యం ఉంటాయి. "<ph name="URL_LABEL" />" కీ లేని, కానీ అదనపు "<ph name="CHILDREN" />" కీ కలిగి ఉండే బుక్‌మార్క్‌ను నిర్వచించడం ద్వారా ఉపఫోల్డర్‌ను కాన్ఫిగర్ చేయవచ్చు, అయితే ఎగువ నిర్వచించినట్లుగా, ఈ ఉపఫోల్డర్‌లో బుక్‌మార్క్‌లు ఉంటాయి (వీటిలో కొన్ని మళ్లీ ఫోల్డర్‌లుగా ఉండవచ్చు). ఓమ్నిబాక్స్‌ ద్వారా అసంపూర్ణ URLలు సమర్పించబడితే <ph name="PRODUCT_NAME" /> వాటిని సవరిస్తుంది, ఉదాహరణకు "<ph name="GOOGLE_COM" />" అనేది "<ph name="HTTPS_GOOGLE_COM" />" లాగా మారుతుంది.
 
-ఈ బుక్‌మార్క్‌లు వినియోగదారు సవరించలేని ఫోల్డర్‌లో ఉంచబడతాయి (కానీ వినియోగదారు దాన్ని బుక్‌మార్క్ పట్టీ నుండి దాచడానికి ఎంచుకోవచ్చు). డిఫాల్ట్‌గా ఫోల్డర్ పేరు "నిర్వాహిత‌ బుక్‌మార్క్‌లు" అని ఉంటుంది, కానీ ఇది విలువగా కోరుకున్న ఫోల్డర్ పేరుతో కీ "<ph name="TOPLEVEL_NAME" />" కలిగిన నిఘంటువు బుక్‌మార్క్‌ల జాబితాకు జోడించడం ద్వారా అనుకూలీకరించబడుతుంది.
+ఈ బుక్‌మార్క్‌లు వినియోగదారు సవరించలేని ఫోల్డర్‌లో ఉంచబడతాయి (కానీ వినియోగదారు దానిని బుక్‌మార్క్ బార్ నుండి దాచేలా ఎంచుకోవచ్చు). డిఫాల్ట్‌గా ఫోల్డర్ పేరు "నిర్వహిత బుక్‌మార్క్‌లు" అని ఉంటుంది, కానీ దీనిని అనుకూలీకరించవచ్చు, కోరుకున్న ఫోల్డర్ పేరును విలువగా కీ "<ph name="TOPLEVEL_NAME" />"ను కలిగిన నిఘంటువు బుక్‌మార్క్‌ల జాబితాకు జోడించవచ్చు.
 
-నిర్వాహిత‌ బుక్‌మార్క్‌లు వినియోగదారును ఖాతాకు సింక్ చేయ‌బ‌డ‌వు మరియు ఎక్స్‌టెన్ష‌న్‌ల ద్వారా సవరించబడవు.</translation>
+నిర్వహిత బుక్‌మార్క్‌లు వినియోగదారు ఖాతాకు సింక్ కావు, వాటిని ఎక్స్‌టెన్షన్‌ల ద్వారా సవరించలేరు.</translation>
 <translation id="8078366200175825572">కుక్కీలను సెట్ చేయడానికి అనుమతించబడని సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే 'DefaultCookiesSetting' విధానం సెట్ చేయబడి ఉంటే దాని నుండి లేదంటే వినియోగదారు యొక్క వ్యక్తిగత కాన్ఫిగరేషన్ నుండి గ్లోబల్ డిఫాల్ట్ విలువ అన్ని సైట్‌ల కోసం ఉపయోగించబడుతుంది.
@@ -3363,15 +3481,15 @@
 <translation id="8104962233214241919">ఈ సైట్లకు క్లయింట్ స‌ర్టిఫికెట్‌లు ఆటోమేటిక్‌గా ఎంపిక చేయండి</translation>
 <translation id="8112122435099806139">పరికరం కోసం ఉపయోగించబడే గడియారం ఫార్మాట్‌ను పేర్కొంటుంది.
 
-      ఈ విధానం లాగిన్ స్క్రీన్‌పై ఉపయోగించాల్సిన మరియు వినియోగదారు సెషన్‌ల కోసం డిఫాల్ట్‌గా ఉపయోగించాల్సిన గడియారం ఫార్మాట్‌ను కాన్ఫిగర్ చేస్తుంది. వినియోగదారులు అప్పటికీ వారి ఖాతా కోసం గడియారం ఫార్మాట్‌ను అధిగ‌మించ‌వ‌చ్చు.
+      ఈ విధానం లాగిన్ స్క్రీన్‌పై ఉపయోగించాల్సిన మరియు వినియోగదారు సెషన్‌ల కోసం డిఫాల్ట్‌గా ఉపయోగించాల్సిన గడియారం ఫార్మాట్‌ను కాన్ఫిగర్ చేస్తుంది. వినియోగదారులు అప్పటికీ వారి ఖాతా కోసం గడియారం ఫార్మాట్‌ను భర్తీ చేయవచ్చు.
 
-      విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, పరికరం 24 గంటల గడియారం ఫార్మాట్‌ను ఉపయోగిస్తుంది. విధానాన్ని తప్పున‌కు సెట్ చేస్తే, పరికరం 12 గంటల గడియారం ఫార్మాట్‌ను ఉపయోగిస్తుంది.
+      విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, పరికరం 24 గంటల గడియారం ఫార్మాట్‌ను ఉపయోగిస్తుంది. విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, పరికరం 12 గంటల గడియారం ఫార్మాట్‌ను ఉపయోగిస్తుంది.
 
       ఈ విధానాన్ని సెట్ చేయకపోతే, పరికరం డిఫాల్ట్‌గా 24 గంటల గడియారం ఫార్మాట్‌ను ఉపయోగిస్తుంది.</translation>
 <translation id="8114382167597081590">YouTubeలో పరిమిత మోడ్‌ను అమలు చేయవద్దు</translation>
 <translation id="8118665053362250806">మీడియా డిస్క్ కాష్ పరిమాణాన్ని సెట్ చేస్తుంది</translation>
 <translation id="8124468781472887384">పరికర ప్రింటర్‌ల కాన్ఫిగరేషన్ యాక్సెస్ విధానం.</translation>
-<translation id="8135937294926049787">AC శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ ఆపివేయబడుతుందో పేర్కొంటుంది.
+<translation id="8135937294926049787">AC పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ ఆపివేయబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌‍ను ఆపివేయడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
@@ -3388,45 +3506,45 @@
        <ph name="CHROME_REPORTING_EXTENSION_NAME" />ని ప్రారంభించినప్పుడు, అలాగే మెషీన్‌ని <ph name="MACHINE_LEVEL_USER_CLOUD_POLICY_ENROLLMENT_TOKEN_POLICY_NAME" />తో ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం వర్తిస్తుంది.</translation>
 <translation id="8140204717286305802">నెట్‌వర్క్ ఇంటర్‌ఫేస్‌ల జాబితాను వాటి రకాలు మరియు హార్డ్‌వేర్ చిరునామాలతో సర్వర్‌కు నివేదించండి.
 
-      విధానాన్ని తప్పుకు సెట్ చేస్తే, ఇంటర్‌ఫేస్ జాబితా నివేదించబడదు.</translation>
-<translation id="8141795997560411818">ఈ విధానం Android Google డిస్క్ యాప్‌ను ఉపయోగించకుండా వినియోగదారును నిరోధించలేదు. మీరు Google డిస్క్‌కు యాక్సెస్‌ నిరోధించాలనుకుంటే, మీరు Android Google డిస్క్ యాప్ యొక్క ఇన్‌స్టాలేషన్‌ను కూడా అనుమతించకూడదు.</translation>
+      విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, ఇంటర్‌ఫేస్ జాబితా నివేదించబడదు.</translation>
+<translation id="8141795997560411818">ఈ విధానం Android Google డిస్క్ యాప్‌ను ఉపయోగించకుండా వినియోగదారును నిరోధించలేదు. మీరు Google డిస్క్‌కు యాక్సెస్ నిరోధించాలనుకుంటే, మీరు Android Google డిస్క్ యాప్ ఇన్‌స్టలేషన్‌ను కూడా అనుమతించకూడదు.</translation>
 <translation id="8142894094385450823">నిర్వహిత సెషన్ కోసం సిఫార్సు చేసిన లొకేల్‌లను సెట్ చేస్తుంది</translation>
 <translation id="8146727383888924340">Chrome OS నమోదు ద్వారా ఆఫర్‌లను రీడీమ్ చేయడానికి వినియోగదారులను అనుమతించండి</translation>
 <translation id="8148785525797916822"><ph name="PRODUCT_NAME" /> ప్రస్తుతం మద్దతు లేని కంప్యూటర్ లేదా ఆపరేటింగ్ సిస్టమ్‌లో అమలవుతున్నప్పుడు కనిపించే హెచ్చరికను ఆపివేస్తుంది.</translation>
-<translation id="8148901634826284024">అధిత కాంట్రాస్ట్ మోడ్ యాక్సెస్‌ ఫీచ‌ర్‌ను ప్రారంభించండి.
+<translation id="8148901634826284024">అధిత కాంట్రాస్ట్ మోడ్ యాక్సెస్ ఫీచర్‌ను ప్రారంభించండి.
 
-          ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ఎల్లప్పుడూ ప్రారంభించబడుతుంది.
+          ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ఎప్పుడూ ప్రారంభించబడుతుంది.
 
-          ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ఎల్లప్పుడూ నిలిపివేయబడుతుంది.
+          ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ఎప్పుడూ నిలిపివేయబడుతుంది.
 
-          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+          మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ప్రాథమికంగా నిలిపివేయబడుతుంది. కానీ వినియోగదారు ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
-<translation id="815061180603915310">ప్రారంభించబడేలా సెట్ చేస్తే, ఈ విధానం ప్రొఫైల్ అశాశ్వత మోడ్‌కు మార్చబడేలా నిర్బంధిస్తుంది. ఈ విధానాన్ని OS విధానం (ఉదా. Windowsలో GPO)గా పేర్కొంటే, ఇది సిస్టమ్‌లోని ప్రతి ప్రొఫైల్‌కు వర్తిస్తుంది; విధానాన్ని Cloud విధానంగా సెట్ చేస్తే, ఇది నిర్వాహిత‌ ఖాతాతో సైన్ ఇన్ చేసిన ప్రొఫైల్‌కు మాత్రమే వర్తిస్తుంది.
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, అధిక కాంట్రాస్ట్ మోడ్ ప్రారంభంలో నిలిపివేయబడుతుంది కానీ వినియోగదారు దానిని ఎప్పుడైనా ప్రారంభించవచ్చు.</translation>
+<translation id="815061180603915310">ప్రారంభించబడేలా సెట్ చేస్తే, ఈ విధానం ప్రొఫైల్ అశాశ్వత మోడ్‌కు మార్చబడేలా నిర్బంధిస్తుంది. ఈ విధానాన్ని OS విధానం (ఉదా. Windowsలో GPO)గా పేర్కొంటే, ఇది సిస్టమ్‌లోని ప్రతి ప్రొఫైల్‌కు వర్తిస్తుంది; విధానాన్ని Cloud విధానంగా సెట్ చేస్తే, ఇది నిర్వహిత ఖాతాతో సైన్ ఇన్ చేసిన ప్రొఫైల్‌కు మాత్రమే వర్తిస్తుంది.
 
-      ఈ మోడ్‌లో వినియోగదారు వారి సెషన్‌ను ముగించే వరకు మాత్రమే ప్రొఫైల్ డేటా డిస్క్‌లో ఉంటుంది. బ్రౌజర్ చరిత్ర, ఎక్స్‌టెన్ష‌న్‌ల వంటి ఫీచర్‌లు మరియు వాటి డేటా, కుక్కీలు మరియు వెబ్ డేటాబేస్‌ల వంటి వెబ్ డేటా బ్రౌజర్ మూసివేయబడిన తర్వాత భద్రపరచబడవు. అయితే ఇది మాన్యువల్‌గా డిస్క్‌కు ఏదైనా డేటాను డౌన్‌లోడ్ చేయనీయకుండా, పేజీలను సేవ్ చేయనీయకుండా లేదా వాటిని ముద్రించనీయకుండా వినియోగదారును నిరోధించదు.
+      ఈ మోడ్‌లో వినియోగదారు వారి సెషన్‌ను ముగించే వరకు మాత్రమే ప్రొఫైల్ డేటా డిస్క్‌లో ఉంటుంది. బ్రౌజర్ చరిత్ర, ఎక్స్‌టెన్షన్‌ల వంటి ఫీచర్‌లు మరియు వాటి డేటా, కుక్కీలు మరియు వెబ్ డేటాబేస్‌ల వంటి వెబ్ డేటా బ్రౌజర్ మూసివేయబడిన తర్వాత భద్రపరచబడవు. అయితే ఇది మాన్యువల్‌గా డిస్క్‌కు ఏదైనా డేటాను డౌన్‌లోడ్ చేయనీయకుండా, పేజీలను సేవ్ చేయనీయకుండా లేదా వాటిని ముద్రించనీయకుండా వినియోగదారును నిరోధించదు.
 
-      వినియోగదారు సింక్‌ను ప్రారంభిస్తే ఈ మొత్తం డేటా వారి సింక్‌ ప్రొఫైల్‌లో సాధారణ ప్రొఫైల్‌ల మాదిరిగా భద్రపరచబడుతుంది. విధానం ప్రకారం ప్రత్యేకంగా నిలిపివేయబడి ఉంటే మినహా అజ్ఞాత మోడ్ కూడా అందుబాటులో ఉంటుంది.
+      వినియోగదారు సింక్‌ను ప్రారంభిస్తే ఈ మొత్తం డేటా వారి సింక్ ప్రొఫైల్‌లో సాధారణ ప్రొఫైల్‌ల లాగా భద్రపరచబడుతుంది. విధానాన్ని ప్రత్యేకంగా నిలిపివేసి ఉంటే మినహా అజ్ఞాత మోడ్ కూడా అందుబాటులో ఉంటుంది.
 
-      విధానం నిలిపివేసేలా సెట్ చేసి ఉంటే లేదా ఏమీ సెట్ చేయకుండా ఉంటే, సైన్ ఇన్ చేసినప్పుడు సాధారణ ప్రొఫైల్‌లకు మళ్లించబడుతుంది.</translation>
+      విధానాన్ని నిలిపివేసేలా సెట్ చేస్తే లేదా ఏమీ సెట్ చేయకుండా ఉంటే, సైన్ ఇన్ చేసినప్పుడు సాధారణ ప్రొఫైల్‌లకు మళ్లించబడుతుంది.</translation>
 <translation id="8158758865057576716"><ph name="PRODUCT_NAME" /> ప్రొఫైల్ డేటా యొక్క రోమింగ్ కాపీలను రూపొందించడం ప్రారంభించండి.</translation>
 <translation id="8172676363520748127">ప్రారంభిస్తే స్క్రీన్‌షాట్‌లు కీబోర్డ్ సత్వరమార్గాలు లేదా పొడిగింపు APIలను ఉపయోగించి తీయలేరు.
 
 నిలిపివేస్తే లేదా పేర్కొనకపోతే, స్క్రీన్‌షాట్‌లను తీయడం అనుమతించబడుతుంది.</translation>
 <translation id="817455428376641507">URL నిరోధిత జాబితాకు మినహాయింపులుగా జాబితా చేయబడిన URLలను యాక్సెస్ చేయడానికి అనుమతిస్తుంది.
 
-      ఈ జాబితా యొక్క నమోదుల ఆకృతి కోసం URL నిరోధిత జాబితా విధానం వివరణను చూడండి.
+      ఈ జాబితా నమోదుల ఫార్మాట్ కోసం URL నిరోధిత జాబితా విధానం వివరణను చూడండి.
 
-      ఈ విధానాన్ని పరిమిత నిరోధిత జాబితాలకు మినహాయింపులను తెరవడానికి ఉపయోగించవచ్చు. ఉదాహరణకు, '*'ను అన్ని అభ్యర్థనలను బ్లాక్ చేయడానికి నిరోధిత జాబితాకు జోడించవచ్చు మరియు పరిమిత URLల జాబితాకు యాక్సెస్‌ను అనుమతించడానికి ఈ విధానాన్ని ఉపయోగించవచ్చు. దీన్ని నిర్దిష్ట స్కీమ్‌లు, ఇతర డొమైన్‌ల యొక్క సబ్‌డొమైన్‌లు, పోర్ట్‌లు లేదా నిర్దిష్ట పథాలకు మినహాయింపులను తెరవడానికి ఉపయోగించవచ్చు.
+      ఈ విధానాన్ని పరిమిత నిరోధిత జాబితాలకు మినహాయింపులను తెరవడానికి ఉపయోగించవచ్చు. ఉదాహరణకు, '*'ను అన్ని అభ్యర్థనలను బ్లాక్ చేయడానికి నిరోధిత జాబితాకు జోడించవచ్చు, పరిమిత URLల జాబితాకు యాక్సెస్‌ను అనుమతించడానికి ఈ విధానాన్ని ఉపయోగించవచ్చు. దీనిని నిర్దిష్ట స్కీమ్‌లు, ఇతర డొమైన్‌ల సబ్‌డొమైన్‌లు, పోర్ట్‌లు లేదా నిర్దిష్ట పాత్‌లకు మినహాయింపులను తెరవడానికి ఉపయోగించవచ్చు.
 
-      URL బ్లాక్ చేయబడిందో లేదా అనుమతించబడిందో అత్యంత నిర్దిష్ట ఫిల్టర్ నిశ్చయిస్తుంది. నిరోధిత జాబితా కంటే అనుమతి జాబితాకు ప్రాధాన్యత ఉంటుంది.
+      URL బ్లాక్ చేయబడిందో లేదా అనుమతించబడిందో అత్యంత నిర్దిష్ట ఫిల్టర్ నిశ్చయిస్తుంది. నిరోధిత జాబితా కంటే వైట్‌లిస్ట్‌కు ప్రాధాన్యత ఉంటుంది.
 
-      ఈ విధానం 1000 నమోదులకు పరిమితం చేయబడింది; తదుపరి నమోదులు విస్మరించబడతాయి.
+      ఈ విధానం 1000 నమోదులకు పరిమితం చేయబడింది; తర్వాతి నమోదులు విస్మరించబడతాయి.
 
-      ఈ విధానాన్ని సెట్ చేయకపోతే 'URLBlacklist విధానం నుండి నిరోధిత జాబితాకు మినహాయింపులు ఉండవు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకపోతే 'URLBlacklist' విధానం నుండి నిరోధిత జాబితాకు మినహాయింపులు ఉండవు.</translation>
 <translation id="8176035528522326671">ఎంటర్‌ప్రైజ్ వినియోగదారు కేవలం ప్రాథమిక బహుళ ప్రొఫైల్ వినియోగదారుగా ఉండేలా అనుమతించండి (ఎంటర్‌ప్రైజ్-నిర్వాహిత‌ వినియోగదారుల కోసం డిఫాల్ట్ ప్రవర్తన)</translation>
 <translation id="8214600119442850823">పాస్‌వర్డ్ నిర్వాహికిని కాన్ఫిగర్ చేస్తుంది.</translation>
-<translation id="8217516105848565518">ఈ విధానం నిలిపివేయబడింది. దయచేసి బదులుగా RemoteAccessHostDomainListని ఉపయోగించండి.</translation>
+<translation id="8217516105848565518">ఈ విధానం నిలిపివేయబడింది. బదులుగా, దయచేసి RemoteAccessHostDomainListను ఉపయోగించండి.</translation>
 <translation id="8244525275280476362">విధాన అప్రామాణీకరణ తర్వాత పొందడంలో గరిష్ట ఆలస్యం</translation>
 <translation id="8256688113167012935">సంబంధిత పరికర-స్థానిక ఖాతాకు లాగిన్ స్క్రీన్‌పై <ph name="PRODUCT_OS_NAME" /> చూపే ఖాతా పేరును నియంత్రిస్తుంది.
 
@@ -3435,16 +3553,16 @@
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, <ph name="PRODUCT_OS_NAME" /> లాగిన్ స్క్రీన్‌పై ప్రదర్శన పేరుగా పరికర-స్థానిక ఖాతా యొక్క ఇమెయిల్ ఖాతా IDని ఉపయోగిస్తుంది.
 
       ఈ విధానం సాధారణ వినియోగదారు ఖాతాలకు విస్మరించబడుతుంది.</translation>
-<translation id="8259375588339409826">Chromium మరియు Google Chrome రెండూ ఒకే రకమైన విధానాలకు మద్దతిస్తాయి. దయచేసి నోటీసు లేకుండా మార్చగల లేదా తీసివేయగల విడుదల చేయబడని విధానాలను (అంటే 'మద్దతు ఇచ్చేవి' నమోదులో <ph name="PRODUCT_NAME" /> యొక్క ఇంకా విడుదల కాని వెర్షన్ సూచిస్తుంది) ఈ పత్రం కలిగి ఉండవచ్చు. వాటి కోసం భద్రతా మరియు గోప్యతా లక్షణాలకు సంబంధించిన హామీలతో సహా ఎలాంటి హామీలు ఇవ్వబడవు అని గమనించండి.
+<translation id="8259375588339409826">Chromium మరియు Google Chrome రెండూ ఒకే రకమైన విధానాలకు మద్దతిస్తాయి. నోటీసు లేకుండా మార్చగల లేదా తీసివేయగల విడుదల చేయబడని విధానాలు (అంటే 'మద్దతు ఇచ్చేవి' నమోదులో <ph name="PRODUCT_NAME" /> యొక్క ఇంకా విడుదల కాని వెర్షన్ సూచిస్తుంది) ఈ పత్రంలో ఉండవచ్చని దయచేసి గమనించండి, వాటి కోసం భద్రతా మరియు గోప్యతా ఫీచర్‌లకు సంబంధించిన హామీలతో సహా ఎలాంటి హామీలు ఇవ్వబడవు అని గమనించండి.
 
-ఈ విధానాలు మీ సంస్థలో అంతర్గతంగా <ph name="PRODUCT_NAME" /> సంకేతాలను కాన్ఫిగర్ చేయడం కోసం ఉపయోగించడానికి మాత్రమే ఉద్దేశించబడ్డాయి. ఈ విధానాలను మీ సంస్థ వెలుపల (ఉదాహరణకు, బహిరంగంగా పంపిణీ చేసే ప్రోగ్రామ్‌లో) ఉపయోగించడం అనేది మాల్‌వేర్‌గా పరిగణించబడుతుంది. దీన్ని Google మరియు యాంటీ-వైరస్ విక్రేతలు మాల్‌వేర్‌ లాగా లేబుల్ చేయవచ్చు.
+ఈ విధానాలు మీ సంస్థలో అంతర్గతంగా <ph name="PRODUCT_NAME" /> సంకేతాలను కాన్ఫిగర్ చేయడం కోసం ఉపయోగించడానికి మాత్రమే ఉద్దేశించబడ్డాయి. ఈ విధానాలను మీ సంస్థ వెలుపల (ఉదాహరణకు, బహిరంగంగా పంపిణీ చేసే ప్రోగ్రామ్‌లో) ఉపయోగించడం అనేది మాల్వేర్‌గా పరిగణించబడుతుంది, దీనిని Google మరియు యాంటీ-వైరస్ విక్రేతలు మాల్వేర్ లాగా లేబుల్ చేయవచ్చు.
 
-ఈ సెట్టింగ్‌లను మాన్యువల్‌గా కాన్ఫిగర్ చేయనవవసరం లేదు! Windows, Mac మరియు Linux కోసం సులభ వినియోగ టెంప్లేట్‌లు <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" /> నుండి డౌన్‌లోడ్ చేయడానికి అందుబాటులో ఉన్నాయి.
+ఈ సెట్టింగ్‌లను మాన్యువల్‌గా కాన్ఫిగర్ చేయాల్సిన అవసరం లేదు! Windows, Mac మరియు Linuxల కోసం సులభ వినియోగ టెంప్లేట్‌లు <ph name="POLICY_TEMPLATE_DOWNLOAD_URL" /> వద్ద డౌన్‌లోడ్ చేయడానికి అందుబాటులో ఉన్నాయి.
 
-Windowsలో విధానాన్ని GPO ద్వారా కాన్ఫిగర్ చేయమని సూచించడమైనది. అయినా కూడా రిజిస్ట్రీ ద్వారా విధానాన్ని అందించడం అనేది <ph name="MS_AD_NAME" /> డొమైన్‌కు అనుబంధించిన Windows సందర్భాల‌కు ఇప్పటికీ మద్దతు ఇస్తుంది.</translation>
-<translation id="8259592978873597235">ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలేసినప్పుడు, వీడియో ప్లే అవుతుంటే వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నట్లు పరిగణించబడరు. ఇన్‌యాక్టివ్‌ ఆలస్యం, స్క్రీన్‌ కాంతివిహీనత ఆలస్యం, స్క్రీన్ ఆపివేత ఆలస్యం మరియు స్క్రీన్ లాక్ ఆలస్యం వంటివి ఏర్పడకుండా మరియు సంబంధిత చర్యలు తీసుకోబడకుండా ఇది నిరోధిస్తుంది.
+Windowsలో విధానాన్ని GPO ద్వారా కాన్ఫిగర్ చేయమని సూచించడమైనది, అయినా కూడా రిజిస్ట్రీ ద్వారా విధానాన్ని అందించడం అనేది <ph name="MS_AD_NAME" /> డొమైన్‌కు అనుబంధించిన Windows పర్యాయాలకు ఇప్పటికీ మద్దతు ఇస్తుంది.</translation>
+<translation id="8259592978873597235">ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేసినప్పుడు లేదా సెట్ చేయకుండా వదిలేసినప్పుడు, వీడియో ప్లే అవుతుంటే వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నట్లు పరిగణించబడరు. ఇన్‌యాక్టివ్‌ ఆలస్యం, స్క్రీన్‌ కాంతివిహీనత ఆలస్యం, స్క్రీన్ ఆపివేత ఆలస్యం మరియు స్క్రీన్ లాక్ ఆలస్యం వంటివి ఏర్పడకుండా మరియు సంబంధిత చర్యలు తీసుకోబడకుండా ఇది నిరోధిస్తుంది.
 
-ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే, వీడియో కార్య‌క‌లాపం వినియోగదారును ఇన్‌యాక్టివ్‌గా పరిగణించబడనీయకుండా నిరోధించదు.</translation>
+ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, వీడియో కార్యకాలాపం వినియోగదారును ఇన్‌యాక్టివ్‌గా పరిగణించబడనీయకుండా నిరోధించదు.</translation>
 <translation id="8264653492961233132">వినియోగదారు ప్రమేయం లేకుండా నిశ్శబ్దంగా ఇన్‌స్టాల్ అయ్యే మరియు తిరిగి అన్‌ఇన్‌స్టాల్
           చేయడం లేదా వినియోగదారు నిలిపివేయడం సాధ్యపడని అప్లికేషన్‌లు మరియు
           ఎక్స్‌టెన్షన్‌ల జాబితాను పేర్కొంటుంది. యాప్‌లు/ఎక్స్‌టెన్షన్‌లు అభ్యర్థించే అన్ని
@@ -3475,13 +3593,13 @@
 
       ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే, గణాంకాలు నివేదించబడవు.
       అయితే ఈ విధానాన్ని ఒప్పుకు సెట్ చేసినా చేయకున్నా, గణాంకాలు నివేదించబడతాయి.</translation>
-<translation id="8294750666104911727">సాధారణంగా chrome=1కు సెట్ చేయబడిన X-UA-అనుకూలం గల పేజీలు 'ChromeFrameRendererSettings' విధానంతో సంబంధం లేకుండా <ph name="PRODUCT_FRAME_NAME" />లో రెండర్ చేయబడతాయి.
+<translation id="8294750666104911727">సాధారణంగా X-UA-Compatibleను chrome=1కు సెట్ చేసిన పేజీలు 'ChromeFrameRendererSettings' విధానంతో సంబంధం లేకుండా <ph name="PRODUCT_FRAME_NAME" />లో రెండర్ చేయబడతాయి.
 
           మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, పేజీలు మెటా ట్యాగ్‌ల కోసం స్కాన్ చేయబడవు.
 
           మీరు ఈ సెట్టింగ్‌ను నిలిపివేస్తే, పేజీలు మెటా ట్యాగ్‌ల కోసం స్కాన్ చేయబడతాయి.
 
-          ఈ విధానం సెట్ చేయబడకపోతే, పేజీలు మెటా ట్యాగ్‌ల కోసం స్కాన్ చేయబడతాయి.</translation>
+          ఈ విధానాన్ని సెట్ చేయకపోతే, పేజీలు మెటా ట్యాగ్‌ల కోసం స్కాన్ చేయబడతాయి.</translation>
 <translation id="8300455783946254851">ఒప్పున‌కు సెట్ చేసిన సందర్భంలో, సెల్యులార్ కనెక్షన్‌ను ఉపయోగిస్తున్నప్పుడు <ph name="PRODUCT_OS_NAME" /> ఫైల్స్ యాప్‌లో Google డిస్క్ సింక్‌ను నిలిపివేస్తుంది. ఆ సందర్భంలో, WiFi లేదా Ethernet ద్వారా కనెక్ట్ చేసినప్పుడు డేటా Google డిస్క్‌కు మాత్రమే సింక్ చేయ‌బ‌డుతుంది.
 
           సెట్ చేయకపోతే లేదా తప్పున‌కు సెట్ చేస్తే, అప్పుడు వినియోగదారులు సెల్యులార్ కనెక్షన్‌ల ద్వారా Google డిస్క్‌కు ఫైల్‌లను బదిలీ చేయగలరు.</translation>
@@ -3489,12 +3607,12 @@
 <translation id="8306117673860983372">సైన్ ఇన్ సెట్టింగ్‌లు</translation>
 <translation id="8312129124898414409">కీ ఉత్పాదనను ఉపయోగించడానికి వెబ్‌సైట్‌లను అనుమతించాలో లేదో నిర్ణయించడానికి మిమ్మల్ని అనుమతిస్తుంది. కీ ఉత్పాదనను ఉపయోగించడం అన్ని వెబ్‌సైట్‌లకు అనుమతించబడుతుంది లేదా అన్ని వెబ్‌సైట్‌లకు తిరస్కరించబడుతుంది.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'BlockKeygen' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలుగుతారు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, 'BlockKeygen' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలుగుతారు.</translation>
 <translation id="8329984337216493753">ఈ విధానం రిటైల్ మోడ్‌‌లో మాత్రమే యాక్టివ్‌గా ఉంటుంది.
 
-      DeviceIdleLogoutTimeout పేర్కొనబడినప్పుడు ఈ విధానం లాగ్ అవుట్ అమలు చేయబడటానికి ముందు వినియోగ‌దారుకు చూపించిన కౌంట్ డౌన్ టైమర్‌తో హెచ్చరిక బాక్స్‌ యొక్క వ్యవధిని నిర్వచిస్తుంది.
+      DeviceIdleLogoutTimeout పేర్కొనబడినప్పుడు ఈ విధానం లాగ్ అవుట్ అమలు చేయబడటానికి ముందు వినియోగదారుకు చూపించిన కౌంట్ డౌన్ టైమర్‌తో హెచ్చరిక పెట్టె యొక్క వ్యవధిని నిర్వచిస్తుంది.
 
-      విధానం విలువ తప్పనిసరిగా మిల్లీ సెకన్లల్లో పేర్కొనబడాలి.</translation>
+      విధానం విలువను తప్పనిసరిగా మిల్లీ సెకన్లలలో పేర్కొనాలి.</translation>
 <translation id="8339420913453596618">రెండవ కారకం నిలిపివేయబడింది</translation>
 <translation id="8344454543174932833">మొదటి అమలులోనే డిఫాల్ట్ బ్రౌజర్ నుండి బుక్‌మార్క్‌లను దిగుమతి చేయి</translation>
 <translation id="8357681633047935212">వినియోగదారు సెషన్ నిడివిని పరిమితం చేస్తుంది</translation>
@@ -3506,18 +3624,18 @@
 
       ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే, గణాంకాలు నివేదించబడవు.
       అయితే ఈ విధానాన్ని ఒప్పుకు సెట్ చేసినా చేయకున్నా, గణాంకాలు నివేదించబడతాయి.</translation>
-<translation id="8380490658357556620">రిమోట్ క్లయింట్‌లు ఈ మెషీన్‌కు కనెక్షన్‌ను ఏర్పాటు చేయడానికి ప్రయత్నించేటప్పుడు రిలే సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది.
+<translation id="8380490658357556620">రిమోట్ క్లయింట్‌లు ఈ మెషీన్‌కి కనెక్షన్‌ను ఏర్పాటు చేయడానికి ప్రయత్నించేటప్పుడు రిలే సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది.
 
 ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, అప్పుడు రిమోట్ క్లయింట్‌లు ప్రత్యక్ష కనెక్షన్ అందుబాటులో లేనప్పుడు (ఉదా. ఫైర్‌వాల్ పరిమితుల కారణంగా) ఈ మెషీన్‌కు కనెక్ట్ చేయడానికి రిలే సర్వర్‌లను ఉపయోగించవచ్చు.
 
-విధానం <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" />ను నిలిపివేస్తే, ఈ విధానం విస్మరించబడుతుందని గుర్తుంచుకోండి.
+విధానాన్ని <ph name="REMOTE_ACCESS_HOST_FIREWALL_TRAVERSAL_POLICY_NAME" /> నిలిపివేస్తే, ఈ విధానం విస్మరించబడుతుందని గుర్తుంచుకోండి.
 
 ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, సెట్టింగ్ ప్రారంభించబడుతుంది.</translation>
 <translation id="8382184662529825177">పరికరానికి కంటెంట్ రక్షణ కోసం రిమోట్ ధృవీకరణ యొక్క ఉపయోగాన్ని ప్రారంభించండి</translation>
 <translation id="838870586332499308">డేటా రోమింగ్‌ను ప్రారంభించు</translation>
-<translation id="8390049129576938611"><ph name="PRODUCT_NAME" />లో అంతర్గత PDF వ్యూయర్‌ను నిలిపివేస్తుంది. బదులుగా ఇది దాన్ని డౌన్‌లోడ్ లాగా పరిగణిస్తుంది మరియు డిఫాల్ట్ యాప్తో PDF ఫైల్‌లను తెరవడానికి వినియోగదారును అనుమతిస్తుంది.
+<translation id="8390049129576938611"><ph name="PRODUCT_NAME" />లో అంతర్గత PDF వ్యూయర్‌ను నిలిపివేస్తుంది. బదులుగా ఇది దానిని డౌన్‌లోడ్ లాగా పరిగణించి, డిఫాల్ట్ యాప్‌తో PDF ఫైల్‌లను తెరవడానికి వినియోగదారును అనుమతిస్తుంది.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే లేదా నిలిపివేస్తే, PDF ఫైల్‌లను తెరవడానికి PDF ప్లగిన్ ఉపయోగించబడుతుంది, వినియోగదారు దాన్ని నిలిపివేసి ఉంటే మాత్రమే ఉపయోగించబడదు.</translation>
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే లేదా నిలిపివేస్తే, PDF ఫైల్‌లను తెరవడానికి PDF ప్లగిన్ ఉపయోగించబడుతుంది, వినియోగదారు దానిని నిలిపివేసి ఉంటే మాత్రమే ఉపయోగించబడదు.</translation>
 <translation id="8395749934754392549">Android కంటైనర్ (ARC), Android యాప్‌ల కోసం సెట్టింగ్‌లను నియంత్రిస్తుంది.</translation>
 <translation id="8396145449084377015">ఈ విధానం Internet Explorer SiteList విధానం నుండి నియమాలను లోడ్ చేయాలా వద్దా అనేది నియంత్రిస్తుంది.
 
@@ -3535,13 +3653,13 @@
 <translation id="8433186206711564395">నెట్‌వర్క్ సెట్టింగ్‌లు</translation>
 <translation id="8433423491036718210">పాస్‌వర్డ్‌ రక్షణ సేవ, పాస్‌వర్డ్‌ వేలిముద్రను క్యాప్చర్ చేయాల్సిన ఎంటర్‌ప్రైజ్ లాగిన్ URLల జాబితాను కాన్ఫిగర్ చేయండి.</translation>
 <translation id="8451988835943702790">కొత్త‌ టాబ్ పేజీని హోమ్‌పేజీగా ఉపయోగించు</translation>
-<translation id="8459216513698220096">కంప్యూటర్ GPOలోని వినియోగదారు విధానం ఏ సందర్భాల్లో మరియు ఏ విధంగా ప్రాసెస్ చేయబడుతుంది అనేది పేర్కొంటుంది.
+<translation id="8459216513698220096">కంప్యూటర్ GPOలోని వినియోగదారు విధానం ఏ సందర్భాలలో మరియు ఏ విధంగా ప్రాసెస్ చేయబడుతుంది అనేది పేర్కొంటుంది.
 
       ఒకవేళ విధానాన్ని 'డిఫాల్ట్'కు సెట్ చేసినట్లయితే లేదా సెట్ చేయకుండా వదిలివేసినట్లయితే, వినియోగదారు విధానం కేవలం వినియోగదారు GPOల నుండి మాత్రమే చదవబడుతుంది (కంప్యూటర్ GPOలు విస్మరించబడతాయి).
 
-      ఒకవేళ విధానాన్ని 'విలీనం'కు సెట్ చేసినట్లయితే, వినియోగదారు GPOలలోని వినియోగదారు విధానం కంప్యూటర్ GPOలలోని వినియోగదారు విధానంతో విలీనం చేయబడుతుంది (కంప్యూటర్ GPOలకు ప్రాధాన్యత ఇవ్వబడుతుంది).
+      ఒకవేళ విధానాన్ని 'విలీనం'కి సెట్ చేసినట్లయితే, వినియోగదారు GPOలలోని వినియోగదారు విధానం కంప్యూటర్ GPOలలోని వినియోగదారు విధానంతో విలీనం చేయబడుతుంది (కంప్యూటర్ GPOలకు ప్రాధాన్యత ఇవ్వబడుతుంది).
 
-      ఒకవేళ విధానాన్ని 'భర్తీ'కి సెట్ చేసినట్లయితే, వినియోగదారు GPOలలోని వినియోగదారు విధానం కంప్యూటర్ GPOలలోని వినియోగదారు విధానం ద్వారా అధిగ‌మించ‌బ‌డుతుంది (వినియోగదారు GPOలు విస్మరించబడతాయి).</translation>
+      ఒకవేళ విధానాన్ని 'భర్తీ'కి సెట్ చేసినట్లయితే, వినియోగదారు GPOలలోని వినియోగదారు విధానం కంప్యూటర్ GPOలలోని వినియోగదారు విధానం ద్వారా భర్తీ చేయబడుతుంది (వినియోగదారు GPOలు విస్మరించబడతాయి).</translation>
 <translation id="8465065632133292531">POSTని ఉపయోగించే తక్షణ URL కోసం పరామితులు</translation>
 <translation id="847472800012384958">పాప్‌అప్‌లను చూపడానికి ఏ సైట్‌నూ అనుమతించవద్దు</translation>
 <translation id="8477885780684655676">TLS 1.0</translation>
@@ -3584,12 +3702,12 @@
       హెచ్చరిక: సాఫ్ట్‌వేర్ అప్‌డేట్‌లు మరియు కీలకమైన భద్రతా పరిష్కారాలను పొందనివ్వకుండా వినియోగదారులను నిరోధిస్తుంది కాబట్టి వెర్షన్ పరిమితులను కాన్ఫిగర్ చేయడం సమర్థనీయం కాదు. ఒక నిర్దిష్ట వెర్షన్‌కు అప్‌డేట్‌లను నిరోధించడం వలన వినియోగదారులు ఇబ్బందులకు గురికావచ్చు.</translation>
 <translation id="8519264904050090490">నిర్వహించబడే వినియోగదారు మాన్యువల్ మినహాయింపు URLలు</translation>
 <translation id="8525526490824335042">Linux కంటెయినర్</translation>
-<translation id="8538235451413605457"><ph name="PRODUCT_NAME" /> యొక్క అనుమతించబడిన క‌నిష్ఠ‌ వెర్షన్ ఆవశ్యకతను కాన్ఫిగర్ చేస్తుంది. దిగువ పేర్కొనబడిన వెర్షన్‌లు చెల్లనివిగా పరిగణించబడతాయి మరియు OSను అప్‌డేట్ చేయకుంటే పరికరంలో వినియోగదారు సైన్ ఇన్ అనుమతించబడదు.
+<translation id="8538235451413605457"><ph name="PRODUCT_NAME" /> యొక్క అనుమతించబడిన కనిష్ట వెర్షన్ ఆవశ్యకతను కాన్ఫిగర్ చేస్తుంది. దిగువ పేర్కొనబడిన వెర్షన్‌లు చెల్లనివిగా పరిగణించబడతాయి మరియు OSను అప్‌డేట్ చేయకుంటే పరికరంలో వినియోగదారు సైన్ ఇన్ అనుమతించబడదు.
       వినియోగదారు సెషన్ మధ్యలో కనుక ప్రస్తుత వెర్షన్ చెల్లనిదిగా మారినట్లయితే, వినియోగదారు నిర్బంధంగా సైన్ అవుట్ చేయబడతారు.
 
       ఈ విధానాన్ని సెట్ చేయకుంటే, పరిమితులు వర్తించవు మరియు <ph name="PRODUCT_NAME" /> వెర్షన్‌తో సంబంధం లేకుండా వినియోగదారు సైన్ ఇన్ చేయవచ్చు.
 
-      ఇక్కడ "వెర్షన్" అంటే '61.0.3163.120' వంటి ఖచ్చితమైన వెర్షన్ కావచ్చు లేదా '61.0' వంటి వెర్షన్ ప్రిఫిక్స్‌ కావచ్చు  </translation>
+      ఇక్కడ "వెర్షన్" అంటే '61.0.3163.120' వంటి ఖచ్చితమైన వెర్షన్ కావచ్చు లేదా '61.0' వంటి వెర్షన్ ప్రీఫిక్స్ కావచ్చు  </translation>
 <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" /> కోసం డిఫాల్ట్ HTML ప్రదాత</translation>
 <translation id="8544465954173828789">ఫోన్ నుండి Chromebookకు సమకాలీకరించాల్సిన SMS సందేశాలను అనుమతిస్తుంది.</translation>
 <translation id="8548832052135586762">ముద్రణను, రంగు మాత్రమే, మోనోక్రోమ్ మాత్రమే లేదా రంగు మోడ్ పరిమితి లేదు అని సెట్ చేస్తుంది. సెట్ చేయని విధానం పరిమితి లేనిదిగా పరిగణించబడుతుంది.</translation>
@@ -3602,14 +3720,14 @@
       ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, వినియోగదారు <ph name="PRODUCT_NAME" />కి సైన్ ఇన్ చేయకుండానే బ్రౌజర్‌ను ఉపయోగించవచ్చు.</translation>
 <translation id="8586528890725660268">వినియోగదారు ఉపయోగించకూడని ప్రింటర్‌లను పేర్కొంటుంది.
 
-      <ph name="BULK_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_BLACKLIST" />ను ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
+      <ph name="BULK_PRINTERS_ACCESS_MODE" /> కోసం <ph name="PRINTERS_BLACKLIST" />ని ఎంచుకున్నప్పుడు మాత్రమే ఈ విధానం ఉపయోగించబడుతుంది.
 
       ఈ విధానాన్ని ఉపయోగించినట్లయితే, అన్ని ప్రింటర్‌లు వినియోగదారుకు అందించబడతాయి, కానీ ఈ విధానంలో జాబితా చేసిన idలకు మినహాయించబడతాయి. idలు తప్పనిసరిగా <ph name="BULK_PRINTERS_POLICY" />లో పేర్కొనబడిన ఫైల్‌లోని "id" లేదా "guid" ఫీల్డ్‌లకు సంబంధితంగా ఉండాలి.
       </translation>
 <translation id="8587229956764455752">కొత్త‌ వినియోగదారు ఖాతాల సృష్టిని అనుమతిస్తుంది</translation>
-<translation id="8598350264853261122">విధానాన్ని తప్పునకు సెట్ చేస్తే, అనుబంధితం కాని వినియోగదారులు ARC ఉపయోగించడానికి అనుమతించబడరు.
+<translation id="8598350264853261122">విధానాన్ని 'తప్పు'గా సెట్ చేస్తే, అనుబంధితం కాని వినియోగదారులు ARC ఉపయోగించడానికి అనుమతించబడరు.
 
-      ఒకవేళ విధానాన్ని సెట్ చేయకపోయినా లేదా ఒప్పునకు సెట్ చేసినా, వినియోగదారులందరూ ARC ఉపయోగించడానికి అనుమతించబడతారు (ARCని ఇతర మార్గాలలో నిలిపివేసి ఉంటే మాత్రం ఇది సాధ్యపడదు).
+      ఒకవేళ విధానాన్ని సెట్ చేయకపోయినా లేదా 'ఒప్పు'గా సెట్ చేసినా, వినియోగదారులందరూ ARC ఉపయోగించడానికి అనుమతించబడతారు (ARCని ఇతర మార్గాలలో నిలువరించి ఉంటే మాత్రం ఇది సాధ్యపడకపోవచ్చు).
 
       ARC అమలులో లేనప్పుడు మాత్రమే విధానానికి మార్పులు వర్తింపజేయబడతాయి, ఉదా. Chrome OS ప్రారంభమవుతున్నప్పుడు.</translation>
 <translation id="8615400197788843468">G Suite‌లో <ph name="PRODUCT_NAME" />కి సంబంధించిన నియంత్రిత లాగ్ ఇన్ ఫీచర్‌ని ప్రారంభిస్తుంది మరియు ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
@@ -3642,11 +3760,12 @@
 
           ఈ సెట్టింగ్‌ను 'ఒప్పు'గా సెట్ చేస్తే లేదా సెట్ చేయకపోతే, కంటెంట్ రక్షణ కోసం రిమోట్ ప్రామాణీకరణ ఉపయోగించబడవచ్చు.</translation>
 <translation id="8650974590712548439">Windows క్లయింట్‌ల కోసం Windows రిజిస్ట్రీ స్థానం:</translation>
-<translation id="8654286232573430130">సమీకృత ప్రామాణీకరణ కోసం ఏయే సర్వర్‌లను అనుమతి జాబితాలో ఉంచాలో పేర్కొంటుంది. సమీకృత ప్రామాణీకరణ <ph name="PRODUCT_NAME" /> ప్రాక్సీ నుండి లేదా ఈ అనుమతించబడిన జాబితాలో ఉన్న సర్వర్ నుండి ప్రామాణీకరణ సవాలును స్వీకరించినప్పుడు మాత్రమే ప్రారంభించబడుతుంది.
+<translation id="8654286232573430130">సమీకృత ప్రామాణీకరణ కోసం ఏయే సర్వర్‌లను వైట్‌లిస్ట్‌‌లో ఉంచాలో పేర్కొంటుంది. సమీకృత ప్రామాణీకరణ <ph name="PRODUCT_NAME" /> ప్రాక్సీ నుండి లేదా ఈ అనుమతించబడిన జాబితాలో ఉన్న సర్వర్ నుండి ప్రామాణీకరణ సవాలును స్వీకరించినప్పుడు మాత్రమే ప్రారంభించబడుతుంది.
 
           బహుళ సర్వర్ పేర్లను కామాలతో వేరు చేయండి. వైల్డ్‌కార్డ్‌లు (*) అనుమతించబడతాయి.
 
-          మీరు ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే <ph name="PRODUCT_NAME" /> సర్వర్ ఇంట్రానెట్‌లో ఉంటే గుర్తించడానికి ప్రయత్నించి ఆపై మాత్రమే IWA అభ్యర్థనలకు ప్రతిస్పందిస్తుంది.  సర్వర్ ఇంటర్నెట్‌గా గుర్తించబడితే, అప్పుడు దాని నుండి IWA అభ్యర్థనలను <ph name="PRODUCT_NAME" /> విస్మరిస్తుంది.</translation>
+          మీరు ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే <ph name="PRODUCT_NAME" /> సర్వర్ ఇంట్రానెట్‌లో ఉంటే గుర్తించడానికి ప్రయత్నించి ఆపై మాత్రమే IWA అభ్యర్థనలకు ప్రతిస్పందిస్తుంది. సర్వర్ ఇంటర్నెట్‌గా గుర్తించబడితే, అప్పుడు దాని నుండి IWA అభ్యర్థనలను <ph name="PRODUCT_NAME" /> విస్మరిస్తుంది.</translation>
+<translation id="8661297125441579970">డేటా తరలింపు మరియు ARCని నిరాకరించండి.</translation>
 <translation id="8672321184841719703">లక్షిత స్వీయ అప్‌డేట్ వెర్షన్</translation>
 <translation id="867410340948518937">U2F (సార్వజనీన రెండవ కారకం)</translation>
 <translation id="8682611302223077049">పెండింగ్‌లోని అప్‌డేట్‌ని అమలు చేయడం కోసం <ph name="PRODUCT_NAME" />ని రీలాంచ్ చేయాల్సిన లేదా <ph name="PRODUCT_OS_NAME" /> పరికరాన్ని పునఃప్రారంభించాల్సిన సంగతి వినియోగదారులకు ఎంత సమయ వ్యవధిలో గుర్తు చేయాలో, మిల్లీసెకన్లలో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
@@ -3658,33 +3777,34 @@
 <translation id="8693243869659262736">అంత‌ర్గ‌త‌ DNS క్లయింట్‌ను ఉపయోగించండి</translation>
 <translation id="8703488928438047864">బోర్డ్ పరిస్థితిని నివేదించు</translation>
 <translation id="8704831857353097849">ఆపివేయబడిన ప్లగ్‌ఇన్‌ల జాబితా</translation>
-<translation id="8711086062295757690">కీవర్డ్‌ను పేర్కొంటుంది, ఈ కీవర్డ్ అనేది, ఈ ప్రదాత కోసం శోధనను ప్రారంభించే ఓమ్నిబాక్స్‌లో ఉపయోగించే షార్ట్‌కట్. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, శోధన ప్రదాతను ఏ కీవర్డ్ కూడా యాక్టివేట్ చేయదు. ఈ విధానం, 'DefaultSearchProviderEnabled' విధానం ప్రారంభించబడి ఉన్నప్పుడు మాత్రమే పరిగణించబడుతుంది.</translation>
+<translation id="8711086062295757690">కీవర్డ్‌ను పేర్కొంటుంది, ఈ కీవర్డ్ ఈ ప్రొవైడర్ కోసం శోధనను ప్రారంభించే ఓమ్నిబాక్స్‌‌లో ఉపయోగించే షార్ట్‌కట్. ఈ విధానం ఐచ్ఛికం. సెట్ చేయకపోతే, శోధన ప్రొవైడర్‌ను ఏ కీవర్డ్ కూడా యాక్టివేట్ చేయదు. 'DefaultSearchProviderEnabled' విధానాన్ని ప్రారంభించినప్పుడు మాత్రమే ఈ విధానం పరిగణించబడుతుంది.</translation>
 <translation id="8731693562790917685">నిర్ధిష్ట రకమైన కంటెంట్‌లను (ఉదాహరణకు కుక్కీలు, చిత్రాలు లేదా JavaScript) ఎలా నిర్వహించాలో పేర్కొనడానికి కంటెంట్ సెట్టింగ్‌లు మిమ్మల్ని అనుమతిస్తాయి.</translation>
-<translation id="8733448613597049197"><ph name="PRODUCT_NAME" /> యొక్క సురక్షిత బ్రౌజింగ్ విస్తారిత నివేదనను ప్రారంభిస్తుంది మరియు ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
+<translation id="8733448613597049197"><ph name="PRODUCT_NAME" /> యొక్క సురక్షిత బ్రౌజింగ్ విస్తారిత నివేదనను ప్రారంభిస్తుంది, ఈ సెట్టింగ్‌ను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
 
       విస్తారిత నివేదన అనేది ప్రమాదకరమైన యాప్‌లు మరియు సైట్‌లను గుర్తించడంలో సహాయపడటానికి కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను Google సర్వర్‌లకు పంపుతుంది.
 
-      సెట్టింగ్‌ను ఒప్పు అని సెట్ చేస్తే, అవసరమైనప్పుడు నివేదికలు సృష్టించబడతాయి మరియు పంపబడతాయి (భద్రాతపరమైన మధ్యంతర ప్రకటన ఏదైనా చూపబడటం వంటివి).
+      సెట్టింగ్‌ను ఒప్పు అని సెట్ చేస్తే, అవసరమైనప్పుడు నివేదికలు సృష్టించబడి, పంపబడతాయి (భద్రాతపరమైన మధ్యంతర ప్రకటన ఏదైనా చూపబడటం వంటివి).
 
       సెట్టింగ్‌ను తప్పు అని సెట్ చేస్తే, నివేదకలు ఎప్పుడూ పంపబడవు.
 
       ఈ విధానాన్ని ఒప్పు లేదా తప్పు అని సెట్ చేస్తే, సెట్టింగ్‌ను వినియోగదారు సవరించలేరు.
 
-      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, సెట్టింగ్‌ను వినియోగదారు మార్చగలుగుతారు మరియు నివేదికలను పంపాలో లేదో నిర్ణయించగలుగుతారు.
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, సెట్టింగ్‌ను వినియోగదారు మార్చగలుగుతారు, నివేదికలను పంపాలో లేదో నిర్ణయించగలుగుతారు.
 
       సురక్షిత బ్రౌజింగ్ గురించి మరింత సమాచారం కోసం https://developers.google.com/safe-browsing చూడండి.</translation>
 <translation id="8736538322216687231">కనీస YouTube పరిమిత మోడ్‌ను నిర్బంధించండి</translation>
-<translation id="8749370016497832113"><ph name="PRODUCT_NAME" />లో బ్రౌజర్ చరిత్ర మరియు డౌన్‌లోడ్ చరిత్ర తొలగింపుని ప్రారంభిస్తుంది మరియు ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
+<translation id="8749370016497832113"><ph name="PRODUCT_NAME" />లో బ్రౌజర్ చరిత్ర మరియు డౌన్‌లోడ్ చరిత్ర తొలగింపును ప్రారంభిస్తుంది, ఈ సెట్టింగ్‌ను మార్చనీయకుండా వినియోగదారులను నిరోధిస్తుంది.
 
-      ఈ విధానం నిలిపివేయబడినా కూడా, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్రను అలాగే ఉండేలా హామీ ఇవ్వబడదని గమనించండి: వినియోగదారులు నేరుగా చరిత్ర డేటాబేస్ ఫైల్‌లను సవరించవచ్చు లేదా తొలగించవచ్చు మరియు బ్రౌజర్ ఏ సమయంలోనైనా దానికదే గడువు ముగియవచ్చు లేదంటే ఏదైనా లేదా అన్ని చరిత్ర అంశాలను ఆర్కైవ్ చేయవచ్చు.
+      ఈ విధానాన్ని నిలిపివేసినా కూడా, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్ర అలాగే ఉండేలా హామీ ఇవ్వబడదని గమనించండి: వినియోగదారులు నేరుగా చరిత్ర డేటాబేస్ ఫైల్‌లను సవరించవచ్చు లేదా తొలగించవచ్చు మరియు బ్రౌజర్ ఏ సమయంలోనైనా దానికదే గడువు ముగియవచ్చు లేదంటే ఏదైనా లేదా అన్ని చరిత్ర అంశాలను ఆర్కైవ్ చేయవచ్చు.
 
-      ఈ సెట్టింగ్ ప్రారంభించబడితే లేదా సెట్ చేయబడకపోతే, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్ర తొలగించబడుతుంది.
+      ఈ సెట్టింగ్‌ను ప్రారంభిస్తే లేదా సెట్ చేయకపోతే, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్ర తొలగించబడుతుంది.
 
-      ఈ సెట్టింగ్ నిలిపివేయబడితే, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్ర తొలగించబడదు.</translation>
+      ఈ సెట్టింగ్‌ను నిలిపివేస్తే, బ్రౌజింగ్ మరియు డౌన్‌లోడ్ చరిత్ర తొలగించబడదు.</translation>
+<translation id="8757552286070680084">Wilco DTC కాన్ఫిగరేషన్</translation>
 <translation id="8758831693895931466">తప్పనిసరి క్లౌడ్ నిర్వహణ నమోదును ప్రారంభించండి</translation>
 <translation id="8759829385824155666">అనుమతించిన Kerberos ఎన్‌క్రిప్షన్ రకాలు</translation>
 <translation id="8764119899999036911">రూపొందించబడిన కెర్బెరోస్ SPN సాధారణ DNS పేరు లేదా నమోదు చేసిన అసలు పేరు ఆధారంగా రూపొందించబడిందో పేర్కొంటుంది. మీరు ఈ సెట్టింగ్‌ను ప్రారంభిస్తే, CNAME శోధన దాటవేయబడుతుంది మరియు నమోదు చేసిన సర్వర్ పేరు ఉపయోగించబడుతుంది. మీరు ఈ సెట్టింగ్‌ను నిలిపివేసినా లేదా సెట్ చేయకుండా వదిలివేసినా, సర్వర్ యొక్క సాధారణ పేరు CNAME శోధన ద్వారా నిర్ణయించబడుతుంది.</translation>
-<translation id="8764477907716150749">ఈ విధానం <ph name="PRODUCT_NAME" /> యొక్క అంతర్గత ఉపయోగానికి మాత్రమే.</translation>
+<translation id="8764477907716150749">ఈ విధానం <ph name="PRODUCT_NAME" /> యొక్క అంతర్గత వినియోగానికి మాత్రమే.</translation>
 <translation id="8765776988041674792">పాస్‌వర్డ్ మార్చే URLని (HTTP మరియు HTTPS స్కీమ్‌లు మాత్రమే) కాన్ఫిగర్ చేయండి. పాస్‌వర్డ్ రక్షణ సేవ వినియోగదారులు బ్రౌజర్‌లో హెచ్చరిక చూసిన తర్వాత వారి పాస్‌వర్డ్ మార్చుకోవడానికి ఈ URLకి పంపబడతారు.
       ఈ పాస్‌వర్డ్ మార్పు పేజీలో <ph name="PRODUCT_NAME" /> కొత్త పాస్‌వర్డ్ వేలిముద్రను సరిగ్గా క్యాపర్ చేయడానికి , దయచేసి మీ పాస్‌వర్డ్ మార్పు పేజీ https://www.chromium.org/developers/design-documents/create-amazing-password-formsలోని మార్గదర్శకాలను అనుసరిస్తుందని నిర్ధారించుకోండి.
 
@@ -3693,9 +3813,9 @@
       ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్‌తో అనుబంధితమైన Windows సందర్భాలు లేదా పరికర నిర్వహణ కోసం నమోదైన Windows 10 Pro లేదా Enterprise సందర్భాలలో మాత్రమే అందుబాటులో ఉంటుంది.</translation>
 <translation id="8798099450830957504">డిఫాల్ట్</translation>
 <translation id="8801680448782904838">బ్రౌజర్ రీలాంచ్ లేదా పరికరం పునఃప్రారంభం సిఫార్సు చేస్తున్నట్లు లేదా అవసరమని వినియోగదారుకు తెలియజేస్తుంది</translation>
-<translation id="8818173863808665831">పరికరం యొక్క భౌగోళిక వెర్షన్‌ను నివేదించండి.
+<translation id="8818173863808665831">పరికరం యొక్క భౌగోళిక స్థానాన్ని నివేదించండి.
 
-      విధానాన్ని సెట్ చేయకున్నా లేదా తప్పున‌కు సెట్ చేసినా, స్థానం నివేదించబడదు.</translation>
+      విధానాన్ని సెట్ చేయకున్నా లేదా 'తప్పు'గా సెట్ చేసినా, స్థానం నివేదించబడదు.</translation>
 <translation id="8818768076343557335">నెట్‌వర్క్ చర్యలను సెల్యులార్ కాని ఏ నెట్‌‍వర్క్‌లో అయినా అంచనా వేయండి.
           (50లో నిలిపివేయబడుతుంది, 52లో తీసివేయబడుతుంది. 52 తర్వాత, విలువ 1 సెట్ చేస్తే, 0గా వ్యవహరించబడుతుంది - ఏ నెట్‌వర్క్ కనెక్షన్‌లో అయినా నెట్‌వర్క్ చర్యలు అంచనా వేయబడతాయి.)</translation>
 <translation id="8825782996899863372">ఫిషింగ్ పేజీలో పాస్‌వర్డ్ తిరిగి ఉపయోగించినప్పుడు పాస్‌వర్డ్ రక్షణ హెచ్చరిక సక్రియం చేయబడుతుంది</translation>
@@ -3703,8 +3823,28 @@
 
       కొత్త‌ టాబ్ పేజీగా హోమ్ పేజీని ఎంచుకున్నప్పుడు లేదా దాన్ని URLగా సెట్ చేసి హోమ్ పేజీ URLగా పేర్కొన్నప్పుడు మాత్రమే, వినియోగదారు యొక్క హోమ్ పేజీ సెట్టింగ్‌లు పూర్తిగా లాక్ చేయ‌బడతాయి. మీరు హోమ్ పేజీ URLనుపేర్కొనపోతే, 'chrome://newtab'ను పేర్కొనడం ద్వారా కొత్త‌ టాబ్ పేజీకి వినియోగదారు హోమ్ పేజీని సెట్ చేయ‌గలరు.</translation>
 <translation id="8833109046074170275">డిఫాల్ట్ GAIA విధానం ద్వారా ప్రామాణీకరణ</translation>
-<translation id="8838303810937202360">ప్రతి వినియోగదారు కోసం యాప్‌లు మరియు ఎక్స్‌టెన్ష‌న్‌లను మళ్లీ డౌన్‌లోడ్ చేయడం నివారించడానికి <ph name="PRODUCT_OS_NAME" /> ఒకే పరికరం యొక్క అనేక మంది వినియోగదారులు ఇన్‌స్టాలేషన్ చేయడం కోసం వాటిని కాష్ చేస్తుంది.
+<translation id="8838303810937202360">ప్రతి వినియోగదారు కోసం యాప్‌లు మరియు ఎక్స్‌టెన్షన్‌లను మళ్లీ డౌన్‌లోడ్ చేయడం నివారించడానికి <ph name="PRODUCT_OS_NAME" /> ఒకే పరికరం యొక్క అనేకమంది వినియోగదారులు ఇన్‌స్టాలేషన్ చేయడం కోసం వాటిని కాష్ చేస్తుంది.
       ఈ విధానాన్ని కాన్ఫిగర్ చేయకుంటే లేదా విలువ 1 MB కంటే తక్కువ ఉంటే, <ph name="PRODUCT_OS_NAME" /> డిఫాల్ట్ కాష్ పరిమాణాన్ని ఉపయోగిస్తుంది.</translation>
+<translation id="8851325571441692315"><ph name="PRODUCT_NAME" /> ఉపయోగించే ప్రాక్సీ సర్వర్‌ను పేర్కొనడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు ప్రాక్సీ సెట్టింగ్‌లను మార్చకుండా వినియోగదారులను నివారిస్తుంది.
+
+          <ph name="PROXY_SETTINGS_POLICY_NAME" /> విధానాన్ని పేర్కొనకపోతేనే ఈ విధానం ప్రభావవంతం అవుతుంది.
+
+          ఎప్పటికీ ప్రాక్సీ సర్వర్‌ను ఉపయోగించకుండా, ఎల్లప్పుడూ నేరుగానే కనెక్ట్ చేయాలని మీరు ఎంచుకుంటే, అన్ని ఇతర ఎంపికలు విస్మరించబడతాయి.
+
+          మీరు సిస్టమ్ ప్రాక్సీ సెట్టింగ్‌లను ఉపయోగించాలనుకుంటే, అన్ని ఇతర ఎంపికలు విస్మరించబడతాయి.
+
+          ప్రాక్సీ సర్వర్‌ని స్వయంచాలకంగా గుర్తించాలని మీరు ఎంచుకుంటే, అన్ని ఇతర ఎంపికలు విస్మరించబడతాయి.
+
+          మీరు స్థిరమైన సర్వర్ ప్రాక్సీ మోడ్‌ని ఎంచుకుంటే, మీరు 'ప్రాక్సీ సర్వర్ యొక్క చిరునామా లేదా URL' మరియు 'కామాతో వేరు చేసిన ప్రాక్సీ బైపాస్ నియమాల జాబితా'లో మరిన్ని ఎంపికలను పేర్కొనవచ్చు. ARC-యాప్‌ల కోసం అత్యధిక ప్రాధాన్యత ఉన్న HTTP ప్రాక్సీ సర్వర్ మాత్రమే అందుబాటులో ఉంటుంది.
+
+          మీరు .pac ప్రాక్సీ స్క్రిప్ట్‌ని ఎంచుకుంటే, మీరు స్క్రిప్ట్‌కి URLని 'ప్రాక్సీ .pac ఫైల్‌కి URL'లో పేర్కొనాలి.
+
+          వివరణాత్మక ఉదాహరణల కోసం, ఈ లింక్‌ను సందర్శించండి:
+          <ph name="PROXY_HELP_URL" />.
+
+          మీరు ఈ సెట్టింగ్‌ని ప్రారంభిస్తే, ఆదేశ పంక్తి నుండి పేర్కొన్ని అన్ని ప్రాక్సీకి సంబంధించిన సెట్టింగ్‌లను <ph name="PRODUCT_NAME" /> మరియు ARC-యాప్‌లు విస్మరిస్తాయి.
+
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, వినియోగదారు స్వయంగా తమ స్వంత ప్రాక్సీ సెట్టింగ్‌లను ఎంచుకోగలరు.</translation>
 <translation id="8858642179038618439">నిర్బంధ YouTube భద్రతా మోడ్</translation>
 <translation id="8860342862142842017">జాబితాలోని subjectPublicKeyInfo హాష్‌ల కోసం సర్టిఫికేట్ పారదర్శకత అమలును నిలిపివేయండి</translation>
 <translation id="8864975621965365890">ఏదైనా ఒక సైట్‌ను <ph name="PRODUCT_FRAME_NAME" /> రెండర్ చేసినప్పుడు కనపడే విస్మరణ ప్రాంప్ట్‌ను తీసివేస్తుంది.</translation>
@@ -3721,10 +3861,10 @@
 <translation id="8876188741456358123">డిఫాల్ట్ ప్రింటింగ్ డ్యూప్లెక్స్ మోడ్‌ను భర్తీ చేస్తుంది. మోడ్ అందుబాటులో లేనట్లయితే ఈ విధానం విస్మరించబడుతుంది.</translation>
 <translation id="8882006618241293596">ఈ సైట్‌లలో <ph name="FLASH_PLUGIN_NAME" /> ప్లగ్ఇన్‌‌ను బ్లాక్ చేస్తుంది</translation>
 <translation id="8906768759089290519">అతిథి మోడ్‌ని ప్రారంభించు</translation>
-<translation id="8908294717014659003">మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లు అనుమతించబడ్డాయో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్‌ డిఫాల్ట్‌గా అనుమతించబడుతుంది లేదా వెబ్‌సైట్ మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్‌ను పొందాలనుకునే ప్రతిసారి వినియోగదారును అడుగుతుంది.
+<translation id="8908294717014659003">మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లను అనుమతించాలో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్ డిఫాల్ట్‌గా అనుమతించబడుతుంది లేదా వెబ్‌సైట్ మీడియా క్యాప్చర్ పరికరాలకు యాక్సెస్‌ను పొందాలనుకునే ప్రతిసారీ వినియోగదారును అడుగుతుంది.
 
-          ఈ విధానం సెట్ చేయకుండా వదిలివేయబడితే, 'PromptOnAccess' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీన్ని మార్చగలరు.</translation>
-<translation id="8909280293285028130">AC శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ లాక్ చేయబడుతుందో పేర్కొంటుంది.
+          ఈ విధానం సెట్ చేయకుండా వదిలివేయబడితే, 'PromptOnAccess' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీనిని మార్చగలరు.</translation>
+<translation id="8909280293285028130">AC పవర్‌తో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్‌పుట్ లేకుంటే స్క్రీన్ లాక్ చేయబడుతుందో పేర్కొంటుంది.
 
           ఈ విధానాన్ని సున్నా కంటే ఎక్కువ విలువకు సెట్ చేసినప్పుడు, ఇది <ph name="PRODUCT_OS_NAME" /> స్క్రీన్‌ను లాక్ చేయడానికి ముందు తప్పనిసరిగా వినియోగదారు ఎంత సమయం పాటు ఇన్‌యాక్టివ్‌గా ఉండాలో పేర్కొంటుంది.
 
@@ -3732,9 +3872,9 @@
 
           ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినప్పుడు, డిఫాల్ట్ సమయం ఉపయోగించబడుతుంది.
 
-          స్క్రీన్‌ను తాత్కాలికంగా నిలిపివేసి లాక్ చేయడం మరియు ఇన్‌యాక్టివ్‌ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడటం అనేది స్క్రీన్‌ను లాక్ చేయడానికి సిఫార్సు చేయబడిన విధానం. తాత్కాలికంగా నిలిపివేయడానికి గణనీయమైన సమయం కంటే ముందు స్క్రీన్‌ను లాక్ చేయవలసినప్పుడు లేదా యాక్టివ్‌గా లేనప్పుడు తాత్కాలికంగా నిలిపివేయడాన్ని అన్ని సమయాల్లో కోరుకోనప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
+          స్క్రీన్‌ను తాత్కాలికంగా నిలిపివేసి లాక్ చేయడం మరియు ఇన్‌యాక్టివ్ ఆలస్యం తర్వాత <ph name="PRODUCT_OS_NAME" /> తాత్కాలికంగా నిలిపివేయబడటం అనేది స్క్రీన్‌ను లాక్ చేయడానికి సిఫార్సు చేయబడిన విధానం. తాత్కాలికంగా నిలిపివేయడానికి గణనీయమైన సమయం కంటే ముందు స్క్రీన్‌ను లాక్ చేయవలసినప్పుడు లేదా ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు తాత్కాలికంగా నిలిపివేయడాన్ని అన్ని సమయాలలో కోరుకోనప్పుడు మాత్రమే ఈ విధానాన్ని ఉపయోగించాలి.
 
-          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్‌ ఆలస్యం కంటే తక్కువగా ఉండేలా అమర్చబడతాయి.</translation>
+          విధానం విలువను మిల్లీసెకన్లలో పేర్కొనాలి. విలువలు ఇన్‌యాక్టివ్ ఆలస్యం కంటే తక్కువగా ఉండేలా అమర్చబడతాయి.</translation>
 <translation id="891435090623616439">JSON స్ట్రింగ్‌‌గా ఎన్‌కోడ్ చేయబడుతుంది, వివరాల కోసం <ph name="COMPLEX_POLICIES_URL" /> చూడండి</translation>
 <translation id="8934944553121392674"><ph name="DEVICE_PRINTERS_POLICY" /> నుండి ఏయే ప్రింటర్‌లను వినియోగదారులకు అందుబాటులో ఉంచాలో నియంత్రిస్తుంది.
 
@@ -3778,20 +3918,20 @@
       ఒప్పుకి సెట్ చేయబడినట్లయితే లేదా సెట్ చేయకపోతే, సింక్ సమ్మతి ప్రదర్శించబడుతుంది.</translation>
 <translation id="8947415621777543415">పరికర స్థానాన్ని నివేదించండి</translation>
 <translation id="8951350807133946005">డిస్క్ కాష్ డైరెక్టరీని సెట్ చేయి</translation>
-<translation id="8952317565138994125">Google నిర్వాహిత సింక్‌ సేవలను ఉపయోగించి <ph name="PRODUCT_NAME" />లో డేటా సింక్‌ను నిలిపివేస్తుంది మరియు వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చడాన్ని నిరోధిస్తుంది.
+<translation id="8952317565138994125">Google నిర్వాహిత సింక్ సేవలను ఉపయోగించి <ph name="PRODUCT_NAME" />లో డేటా సింక్‌ను నిలిపివేస్తుంది, వినియోగదారులు ఈ సెట్టింగ్‌ను మార్చడాన్ని నిరోధిస్తుంది.
 
-      మీరు ఈ సెట్టింగ్‌ను ఆరంభించినట్లయితే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+      మీరు ఈ సెట్టింగ్‌ను ఆరంభించినట్లయితే, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్‌ను మార్చలేరు లేదా భర్తీ చేయలేరు.
 
-     ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, Google సింక్‌ ఉపయోగించాలో, వద్దో అనే అంశం వినియోగదారులు నిర్ణయించడానికి అందుబాటులోకి వస్తుంది.
+     ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, Google సింక్ ఉపయోగించాలో, వద్దో అనే అంశం వినియోగదారులు నిర్ణయించడానికి అందుబాటులోకి వస్తుంది.
 
-      Google సింక్‌ను పూర్తిగా నిలిపివేయడానికి, మీరు Google నిర్వాహక కన్సోల్‌లో Google సింక్‌ సేవను నిలిపివేయాల్సిందిగా సిఫార్సు చేయడమైనది.
+      Google సింక్‌ను పూర్తిగా నిలిపివేయడానికి, మీరు Google నిర్వాహక కన్సోల్‌లో Google సింక్ సేవను నిలిపివేయాల్సిందిగా సిఫార్సు చేయడమైనది.
 
-      <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానం ఆరంభించడానికి సెట్ చేసినప్పుడు ఆ ఫీచర్ ఒకే క్లయింట్ త‌ర‌ఫున‌ ఉన్న కార్య‌శీల‌త‌ను షేర్‌ చేస్తుంది కాబట్టి ఈ విధానం ఆరంభించబడకూడదు. ఈ సందర్భంలో Google నిర్వాహిత సింక్‌ పూర్తిగా నిలిపివేయబడింది.</translation>
+      <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> విధానం ఆరంభించడానికి సెట్ చేసినప్పుడు ఆ ఫీచర్ ఒకే క్లయింట్ తరపున ఉన్న కార్యకలాపాన్ని షేర్ చేస్తుంది కాబట్టి ఈ విధానాన్ని ఆరంభించకూడదు. ఈ సందర్భంలో Google నిర్వాహిత సింక్ పూర్తిగా నిలిపివేయబడుతుంది.</translation>
 <translation id="8955719471735800169">ఎగువకు తిరిగి వెళ్ళు</translation>
 <translation id="8959992920425111821">డిఫాల్ట్ కాన్ఫిగరేషన్</translation>
-<translation id="8960850473856121830">ఈ జాబితాలోని నమూనాలు అభ్యర్థిస్తున్న URL భద్రతా మూలాధారంతో
-      సరిపోల్చబడతాయి. సరిపోలినది కనుగొనబడితే, ఆడియో సంగ్రహణ
-      పరికరాలకు ఎలాంటి ప్రాంప్ట్ లేకుండానే యాక్సెస్ మంజూరు చేయబడుతుంది.
+<translation id="8960850473856121830">ఈ జాబితాలోని నమూనాలు, అభ్యర్థిస్తున్న URL భద్రతా మూలాధారంతో
+      సరిపోల్చబడతాయి. సరిపోలినది కనుగొనబడితే, ఆడియో క్యాప్చర్
+      పరికరాలకు ఎలాంటి ప్రాంప్ట్ లేకుండా యాక్సెస్ మంజూరు చేయబడుతుంది.
 
       గమనిక: వెర్షన్ 45 వరకు, ఈ విధానానికి కియోస్క్ మోడ్‌లో మాత్రమే మద్దతు ఇవ్వబడింది.</translation>
 <translation id="8970205333161758602"><ph name="PRODUCT_FRAME_NAME" /> నిలిపివేత ప్రాంప్ట్‌ను నియంత్రించండి</translation>
@@ -3807,9 +3947,9 @@
 ఈ విధానం SAMLను ఉపయోగించి ప్రామాణీకరించబడిన వినియోగదారులను మాత్రమే ప్రభావితం చేస్తుంది.
 
 విధానం విలువను సెకన్లలో పేర్కొనాలి.</translation>
-<translation id="9027787254195333560">ఈ విధానం లాగిన్ స్క్రీన్‌లో వినియోగదారును సూచించే అవతార్ చిత్రాన్ని కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. <ph name="PRODUCT_OS_NAME" /> అవతార్ చిత్రాన్ని ఏ URL నుండి డౌన్‌లోడ్ చేయాలో పేర్కొనడం ద్వారా విధానం సెట్ చేయబడుతుంది మరియు డౌన్‌లోడ్ సమగ్రతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హాష్ ఉపయోగించబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి. దీని పరిమాణం ఎట్టి పరిస్థితుల్లోనూ 512kB మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రామాణీకరణ లేకుండానే యాక్సెస్‌ చేయగలిగేలా ఉండాలి.
+<translation id="9027787254195333560">ఈ విధానం లాగిన్ స్క్రీన్‌లో వినియోగదారును సూచించే అవతార్ చిత్రాన్ని కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. <ph name="PRODUCT_OS_NAME" /> అవతార్ చిత్రాన్ని ఏ URL నుండి డౌన్‌లోడ్ చేయాలో పేర్కొనడం ద్వారా విధానం సెట్ చేయబడుతుంది మరియు డౌన్‌లోడ్ సమగ్రతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హాష్ ఉపయోగించబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి, దీని పరిమాణం 512kB మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రమాణీకరణ లేకుండానే యాక్సెస్ చేయగలిగేలా ఉండాలి.
 
-అవతార్ చిత్రం డౌన్‌లోడ్ చేయబడింది మరియు కాష్ చేయబడింది. URL లేదా హాష్ మారిన ప్రతిసారి ఇది మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
+అవతార్ చిత్రం డౌన్‌లోడ్ చేయబడి, కాష్ చేయబడుతుంది. URL లేదా హాష్ మారిన ప్రతిసారి ఇది మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
 
 విధానం కింది స్కీమాకు అనుగుణంగా ఉంటూ URL మరియు హాష్‌ను JSON ఫార్మాట్‌లో వ్యక్తపరిచే స్ట్రింగ్ రూపంలో పేర్కొనాలి:
       {
@@ -3828,7 +3968,7 @@
 
 ఈ విధానాన్ని సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> అవతార్ చిత్రాన్ని డౌన్‌లోడ్ చేసి, ఉపయోగిస్తుంది.
 
-మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీన్ని మార్చలేరు లేదా అధిగ‌మించ‌లేరు.
+మీరు ఈ విధానాన్ని సెట్ చేస్తే, వినియోగదారులు దీనిని మార్చలేరు లేదా భర్తీ చేయలేరు.
 
 విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, వినియోగదారు లాగిన్ స్క్రీన్‌పై వారిని సూచించే అవతార్ చిత్రాన్ని ఎంచుకోవచ్చు.</translation>
 <translation id="9035964157729712237">ఆమోదంకానిజాబితా నుండి మినహాయింపుకి పొడిగింపు IDలు</translation>
@@ -3865,34 +4005,34 @@
 <ph name="PRODUCT_OS_NAME" /> యొక్క 70వ వెర్షన్ మరియు అంతకంటే తాజా వాటికి మద్దతు ఉంది. పాత క్లయింట్‌ల విషయంలో, ఉపసంహరణ నిలిపివేయబడిందని ఈ విలువ సూచిస్తుంది.</translation>
 <translation id="9096086085182305205">అధికార సర్వర్ ఆమోదజాబితా</translation>
 <translation id="9098553063150791878">HTTP ప్రామాణీకరణ కోసం విధానాలు</translation>
-<translation id="9103061223348895346">ఈ విధానం వినియోగదారు యాక్టివ్‌గా లేనప్పుడు పవర్ నిర్వహణ వ్యూహం కోసం బహుళ సెట్టింగ్‌లను నియంత్రిస్తుంది. 
+<translation id="9103061223348895346">ఈ విధానం వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు పవర్ నిర్వహణ వ్యూహం కోసం బహుళ సెట్టింగ్‌లను నియంత్రిస్తుంది. 
 
-          ఈ విధమైన చర్యల్లో నాలుగు రకాలు ఉన్నాయి:
-          * |ScreenDim| ద్వారా పేర్కొన్న సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉంటే స్క్రీన్ మసకబారుతుంది.
+          ఈ విధమైన చర్యలలో నాలుగు రకాలు ఉన్నాయి:
+          * |ScreenDim| ద్వారా పేర్కొన్న సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉంటే స్క్రీన్ డిమ్‌గా మారుతుంది.
           * |ScreenOff| ద్వారా పేర్కొన్న సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉంటే స్క్రీన్ ఆపివేయబడుతుంది.
           * |IdleWarning| ద్వారా పేర్కొన్న సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉంటే ఇన్‌యాక్టివ్‌ చర్య తీసుకోబడుతుందని వినియోగదారుకు తెలియజేసే హెచ్చరిక డైలాగ్ చూపబడుతుంది.
           * |Idle| ద్వారా పేర్కొన్న సమయం వరకు వినియోగదారు ఇన్‌యాక్టివ్‌గా ఉంటే |IdleAction| ద్వారా పేర్కొన్న చర్య తీసుకోబడుతుంది.
 
-          ఎగువ చర్యల్లో ప్రతి ఒక్కదాని కోసం, జాప్యాన్ని మిల్లీసెకన్లలో పేర్కొనాలి మరియు సంబంధిత చర్యను యాక్టివేట్‌ చేయడానికి సున్నా కంటే పెద్ద విలువకు సెట్ చేయాలి. జాప్యాన్ని సున్నాకు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> సంబంధిత చర్యను తీసుకోదు.
+          ఎగువ చర్యలలో ప్రతి ఒక్కదాని కోసం, జాప్యాన్ని మిల్లీసెకన్లలో పేర్కొనాలి, సంబంధిత చర్యను యాక్టివేట్ చేయడానికి సున్నా కంటే పెద్ద విలువకు సెట్ చేయాలి. జాప్యాన్ని సున్నాకు సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> సంబంధిత చర్యను తీసుకోదు.
 
-          ఎగువ జాప్యాల్లో ప్రతి ఒక్క దాని విషయంలో, కాలవ్యవధిని సెట్ చేయనప్పుడు డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.
+          ఎగువ జాప్యాలలో ప్రతి ఒక్కదాని విషయంలో, కాలవ్యవధిని సెట్ చేయనప్పుడు డిఫాల్ట్ విలువ ఉపయోగించబడుతుంది.
 
           |ScreenDim| విలువలు |ScreenOff| కంటే తక్కువకు లేదా సమానంగా అమర్చబడతాయని, |ScreenOff| మరియు |IdleWarning| విలువలు |Idle| కంటే తక్కువకు లేదా సమానంగా అమర్చబడతాయని గుర్తుంచుకోండి.
 
-          ఈ నాలుగు చర్యల్లో ఏదో ఒకటి కావ‌డానికి అవ‌కాశం ఉంది:
+          |IdleAction| అనేది ఈ నాలుగు చర్యలలో ఏదో ఒకటి కావచ్చు:
           * |Suspend|
           * |Logout|
           * |Shutdown|
           * |DoNothing|
 
-          |IdleAction| సెట్ చేయనప్పుడు, డిఫాల్ట్ చర్య అయిన తాత్కాలిక నిలిపివేత తీసుకోబడుతుంది.
+          |IdleAction|ను సెట్ చేయనప్పుడు, డిఫాల్ట్ చర్య అయిన తాత్కాలిక నిలిపివేత వర్తించబడుతుంది.
 
           AC పవర్ మరియు బ్యాటరీ కోసం ప్రత్యేక సెట్టింగ్‌లు కూడా ఉన్నాయి.
           </translation>
 <translation id="9105265795073104888">Android యాప్‌లకు ప్రాక్సీ కాన్ఫిగరేషన్ ఎంపికల ఉపసమితి మాత్రమే అందుబాటులో ఉంచబడతాయి. Android యాప్‌లు ప్రాక్సీని ఉపయోగించడానికి స్వచ్ఛందంగా ఎంచుకోవచ్చు. మీరు వాటిని ప్రాక్సీని ఉపయోగించడానికి నిర్బంధించలేరు.</translation>
 <translation id="9106865192244721694">ఈ సైట్‌లలో WebUSBని అనుమతించండి</translation>
 <translation id="9112727953998243860">ఎంటర్‌ప్రైజ్ ప్రింటర్ కాన్ఫిగరేషన్ ఫైల్</translation>
-<translation id="9112897538922695510">ప్రోటోకాల్ హ్యాండ్లర్‌ల జాబితాను నమోదు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది కేవలం సిఫార్సు చేయబడిన విధానంగా మాత్రమే పరిగణించబడుతుంది. |protocol| లక్షణాన్ని 'mailto' వంటి స్కీమ్‌కు సెట్ చేయాలి మరియు |url| లక్షణాన్ని స్కీమ్‌ను నిర్వహించే యాప్ యొక్క URL నమూనాకు సెట్ చేయాలి. నమూనాలో '%s' ఉండవచ్చు, ఒకవేళ అది ఉంటే నిర్వహించబడే URL ద్వారా అధిగ‌మించ‌బ‌డుతుంది.
+<translation id="9112897538922695510">ప్రోటోకాల్ హ్యాండ్లర్‌ల జాబితాను నమోదు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది కేవలం సిఫార్సు చేయబడిన విధానంగా మాత్రమే పరిగణించబడుతుంది. |protocol| ఫీచర్‌ను 'mailto' వంటి స్కీమ్‌కు సెట్ చేయాలి మరియు |url| ఫీచర్‌ను స్కీమ్‌ను నిర్వహించే యాప్ యొక్క URL నమూనాకు సెట్ చేయాలి. నమూనాలో '%s' ఉండవచ్చు, ఒకవేళ ఉంటే, దానిని నిర్వహించబడే URL భర్తీ చేస్తుంది.
 
           విధానం ద్వారా నమోదు అయిన ప్రోటోకాల్ హ్యాండ్లర్‌లు వినియోగదారు నమోదు చేసిన హ్యాండ్లర్‌లతో విలీనమవుతాయి మరియు రెండూ వినియోగించడానికి అందుబాటులో ఉంటాయి. వినియోగదారు కొత్త డిఫాల్ట్ హ్యాండ్లర్‌‌ను ఇన్‌స్టాల్ చేసి విధానం ద్వారా ఇన్‌స్టాల్ చేయబడిన ప్రోటోకాల్ హ్యాండ్లర్‌లను భర్తీ చేయవచ్చు, కానీ విధానం నమోదు చేసిన ప్రోటోకాల్ హ్యాండ్లర్‌ను తీసివేయలేరు.</translation>
 <translation id="9123211093995421438">ఏ సమయంలో అయిన స్థిర వెర్షన్ నుండి పునరుద్ధరించడానికి అనుమతించాల్సిన <ph name="PRODUCT_OS_NAME" /> మైలురాళ్ల క‌నిష్ఠ‌ సంఖ్యను పేర్కొంటుంది.
@@ -3911,11 +4051,11 @@
 <translation id="9147029539363974059">సిస్టమ్ లాగ్‌లను పర్యవేక్షించేందుకు నిర్వాహకులను అనుమతించడానికి
       సిస్టమ్ లాగ్‌లను నిర్వహణ సర్వర్‌కు పంపుతుంది.
 
-      ఈ విధానాన్ని ఒప్పుకు సెట్ చేస్తే, సిస్టమ్ లాగ్‌లు పంపబడతాయి. ఒకవేళ తప్పుకు
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, సిస్టమ్ లాగ్‌లు పంపబడతాయి. ఒకవేళ 'తప్పు'గా
       సెట్ చేస్తే లేదా సెట్ చేయకుంటే, సిస్టమ్ లాగ్‌లు ఏవీ పంపబడవు.</translation>
-<translation id="9150416707757015439">ఈ విధానం విలువ తగ్గింది. దయచేసి, దీనికి బదులుగా IncognitoModeAvailabilityను ఉపయోగించండి. <ph name="PRODUCT_NAME" />లో అజ్ఞాత మోడ్‌ను ప్రారంభిస్తుంది. ఈ సెట్టింగ్ ప్రారంభించబడినా లేదా కాన్ఫిగర్ చేయబడకపోయినా, వినియోగదారులు వెబ్ పేజీలను అజ్ఞాత మోడ్‌లో తెరవగలరు. ఈ సెట్టింగ్ ఆపివేయబడితే, వినియోగదారులు వెబ్ పేజీలను అజ్ఞాత మోడ్‌లో తెరువలేరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, ఇది ప్రారంభించబడుతుంది మరియు వినియోగదారు అజ్ఞాత మోడ్‌ను ఉపయోగించగలుగుతారు.</translation>
-<translation id="915194831143859291">ఈ విధానాన్ని తప్పున‌కు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, పరికరాన్ని షట్ డౌన్ చేయడానికి <ph name="PRODUCT_OS_NAME" /> వినియోగదారును అనుమతిస్తుంది.
-      ఈ విధానాన్ని ఒప్పున‌కు సెట్ చేస్తే, వినియోగదారు పరికరాన్ని షట్ డౌన్ చేసినప్పుడు <ph name="PRODUCT_OS_NAME" /> రీబూట్‌ను ట్రిగ్గర్ చేస్తుంది. <ph name="PRODUCT_OS_NAME" /> UIలో అన్ని సందర్భాల్లో కనిపించే షట్‌డౌన్ బటన్‌లను రీబూట్ బటన్‌లతో అధిగ‌మిస్తుంది. వినియోగదారు పవర్ బటన్‌ను ఉపయోగించి పరికరాన్ని షట్ డౌన్ చేస్తే, విధానం ప్రారంభించబడి ఉన్నప్పటికీ ఆటోమేటిక్‌గా రీబూట్ కాదు.</translation>
+<translation id="9150416707757015439">ఈ విధానం విస్మరించబడింది. దీనికి బదులుగా, దయచేసి IncognitoModeAvailabilityను ఉపయోగించండి. <ph name="PRODUCT_NAME" />లో అజ్ఞాత మోడ్‌ను ప్రారంభిస్తుంది. ఈ సెట్టింగ్‌ను ప్రారంభించినా లేదా కాన్ఫిగర్ చేయకపోయినా, వినియోగదారులు వెబ్ పేజీలను అజ్ఞాత మోడ్‌లో తెరవగలరు. ఈ సెట్టింగ్‌ను ఆపివేస్తే, వినియోగదారులు వెబ్ పేజీలను అజ్ఞాత మోడ్‌లో తెరలాగారు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, ఇది ప్రారంభించబడుతుంది, వినియోగదారు అజ్ఞాత మోడ్‌ను ఉపయోగించగలుగుతారు.</translation>
+<translation id="915194831143859291">ఈ విధానాన్ని 'తప్పు'గా సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, పరికరాన్ని షట్ డౌన్ చేయడానికి <ph name="PRODUCT_OS_NAME" /> వినియోగదారును అనుమతిస్తుంది.
+      ఈ విధానాన్ని 'ఒప్పు'గా సెట్ చేస్తే, వినియోగదారు పరికరాన్ని షట్‌డౌన్ చేసినప్పుడు <ph name="PRODUCT_OS_NAME" /> రీబూట్‌ను ట్రిగ్గర్ చేస్తుంది. <ph name="PRODUCT_OS_NAME" /> UIలో అన్ని సందర్భాలలో కనిపించే షట్‌డౌన్ బటన్‌లను రీబూట్ బటన్‌లతో భర్తీ చేస్తుంది. వినియోగదారు పవర్ బటన్‌ను ఉపయోగించి పరికరాన్ని షట్ డౌన్ చేస్తే, విధానం ప్రారంభించబడి ఉన్నప్పటికీ ఆటోమేటిక్‌గా రీబూట్ కాదు.</translation>
 <translation id="9152473318295429890">సంబంధిత వెబ్ పేజీల యొక్క సందర్భోచిత సూచనలను ప్రారంభించండి</translation>
 <translation id="9158929520101169054">బ్రౌజర్‌లో బహుళ సైన్-ఇన్‌లను అనుమతించండి</translation>
 <translation id="9159126470527871268">పెండింగ్‌లోని అప్‌డేట్‌ని అమలు చేయడం కోసం <ph name="PRODUCT_NAME" /> రీలాంచ్ చేయాలని లేదా <ph name="PRODUCT_OS_NAME" /> పునఃప్రారంభించాలని వినియోగదారులకు తెలియజేస్తుంది.
@@ -3923,11 +4063,11 @@
       ఈ విధానం సెట్టింగ్ బ్రౌజర్ రీలాంచ్ లేదా పరికరం పునఃప్రారంభం సిఫార్సు చేస్తున్నట్లు లేదా అవసరమన్నట్లు వినియోగదారుకు తెలియజేయడం కోసం నోటిఫికేషన్‌లను ప్రారంభిస్తుంది. సెట్ చేయకపోతే, దాని మెనూకు సూక్ష్మ మార్పుల ద్వారా రీలాంచ్ అవసరమని <ph name="PRODUCT_NAME" /> వినియోగదారుకు సూచిస్తుంది, దానిని సిస్టమ్ ట్రేలో నోటిఫికేషన్ ద్వారా <ph name="PRODUCT_OS_NAME" /> సూచిస్తుంది. ‘సిఫార్సు చేయబడింది’ అని సెట్ చేస్తే, రీలాంచ్ సిఫార్సు చేయబడిందని వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. రీలాంచ్‌ను వాయిదా వేయడానికి వినియోగదారు ఈ హెచ్చరికను విస్మరించవచ్చు. ‘అవసరం’ అని సెట్ చేస్తే, నోటిఫికేషన్ సమయం దాటిన తర్వాత బ్రౌజర్ రీలాంచ్ తప్పనిసరి అని సూచిస్తూ వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. డిఫాల్ట్ సమయం అనేది <ph name="PRODUCT_NAME" />కు ఏడు రోజులు మరియు <ph name="PRODUCT_OS_NAME" />కు నాలుగు రోజులు, <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" /> విధానం సెట్టింగ్ ద్వారా కాన్ఫిగర్ చేయవచ్చు.
 
       రీలాంచ్/పునఃప్రారంభం తర్వాత వినియోగదారు సెషన్ పునరుద్ధరించబడుతుంది.</translation>
-<translation id="9165792353046089850">కనెక్ట్ చేయబడిన USB పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లను అనుమతించాలో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాక్సెస్‌ను పూర్తిగా బ్లాక్ చేయవచ్చు లేదా కనెక్ట్ చేయబడిన USB పరికరాల యొక్క యాక్సెస్ వెబ్‌సైట్‌కు అవసరమైన ప్రతిసారి వినియోగదారును అడగవచ్చు.
+<translation id="9165792353046089850">కనెక్ట్ చేయబడిన USB పరికరాలకు యాక్సెస్‌ను పొందడానికి వెబ్‌సైట్‌లను అనుమతించాలో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాక్సెస్‌ను పూర్తిగా బ్లాక్ చేయవచ్చు లేదా కనెక్ట్ చేయబడిన USB పరికరాల యొక్క యాక్సెస్ వెబ్‌సైట్‌కు అవసరమైన ప్రతిసారీ వినియోగదారును అడగవచ్చు.
 
-          'WebUsbAskForUrls' మరియు 'WebUsbBlockedForUrls' విధానాలను ఉపయోగించి నిర్దిష్ట URL నమూనాల కోసం ఈ విధానాన్ని అధిగ‌మించ‌వ‌చ్చు.
+          'WebUsbAskForUrls' మరియు 'WebUsbBlockedForUrls' విధానాలను ఉపయోగించి నిర్దిష్ట URL నమూనాల కోసం ఈ విధానాన్ని భర్తీ చేయవచ్చు.
 
-          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినట్లయితే, '3' ఉపయోగించబడుతుంది మరియు వినియోగదారు దీనిని మార్చగలరు.</translation>
+          ఈ విధానాన్ని సెట్ చేయకుండా వదిలేసినట్లయితే, '3' ఉపయోగించబడుతుంది, వినియోగదారు దీనిని మార్చగలరు.</translation>
 <translation id="9167719789236691545"><ph name="PRODUCT_OS_NAME" /> ఫైల్స్‌ యాప్‌లో డిస్క్‌ను నిలిపివేయండి</translation>
 <translation id="9185107612228451403">ఎక్స్‌టెన్ష‌న్‌-సంబంధిత విధానాలను కాన్ఫిగర్ చేస్తుంది. బ్లాక్‌లిస్ట్‌లో ఉన్న ఎక్స్‌టెన్ష‌న్‌లు వైట్‌లిస్ట్‌లో ఉంచబడితే మినహా వినియోగదారు వాటిని ఇన్‌స్టాల్ చేయడానికి అనుమతించబడరు. మీరు ఎక్స్‌టెన్ష‌న్‌లను <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" />లో పేర్కొనడం ద్వారా వాటిని ఆటోమేటిక్‌గా ఇన్‌స్టాల్ చేయమని <ph name="PRODUCT_NAME" />ను కూడా నిర్బంధించవచ్చు. నిర్బంధంగా ఇన్‌స్టాల్ చేయబడిన ఎక్స్‌టెన్ష‌న్‌లు బ్లాక్‌లిస్ట్‌లో ఉన్నప్పటికీ కూడా ఇన్‌స్టాల్ చేయబడతాయి.</translation>
 <translation id="9187743794267626640">బాహ్య నిల్వను మౌంట్ చేయడాన్ని నిలిపివేస్తుంది</translation>
@@ -3940,14 +4080,14 @@
 విధానాన్ని తప్పుకు సెట్ చేస్తే, 'శీర్షికలు మరియు ఫుటర్లు' ముద్రణ ప్రివ్యూ డైలాగ్‌లో ఎంచుకోబడదు మరియు వినియోగదారు దీన్ని మార్చలేరు.
 
 విధానాన్ని ఒప్పుకు సెట్ చేస్తే, 'శీర్షికలు మరియు ఫుటర్లు' ముద్రణ ప్రివ్యూ డైలాగ్‌లో ఎంపిక చేయబడుతుంది మరియు వినియోగదారు దీన్ని మార్చలేరు.</translation>
-<translation id="9210953373038593554">SAML లాగిన్‌ల కోసం ప్రామాణీకరణ రకాన్ని కాన్ఫిగర్ చేస్తుంది.
+<translation id="9210953373038593554">SAML లాగిన్‌ల కోసం ప్రమాణీకరణ రకాన్ని కాన్ఫిగర్ చేస్తుంది.
 
-      ఈ విధానాన్ని సెట్ చేయనప్పుడు లేదా డిఫాల్ట్‌ (విలువ 0)కు సెట్ చేసినప్పుడు, ఇతర కారకాల ఆధారంగా SAML లాగిన్‌ల పద్ధతిని బ్రౌజర్ నిర్ణయిస్తుంది. అత్యంత సాధారణ సందర్భంలో, వినియోగదారు ప్రామాణీకరణ మరియు కాష్ చేయబడిన వినియోగదారు డేటా సంరక్షణ అన్నవి వినియోగదారులు మాన్యువల్‌గా నమోదు చేసిన పాస్‌వర్డ్‌లపై ఆధారపడి ఉంటాయి.
+      ఈ విధానాన్ని సెట్ చేయనప్పుడు లేదా డిఫాల్ట్‌ (విలువ 0)కు సెట్ చేసినప్పుడు, ఇతర కారకాల ఆధారంగా SAML లాగిన్‌ల పద్ధతిని బ్రౌజర్ నిర్ణయిస్తుంది. అత్యంత సాధారణ సందర్భంలో, వినియోగదారు ప్రమాణీకరణ మరియు కాష్ చేయబడిన వినియోగదారు డేటా సంరక్షణ అన్నవి వినియోగదారులు మాన్యువల్‌గా నమోదు చేసిన పాస్‌వర్డ్‌లపై ఆధారపడి ఉంటాయి.
 
-      ఈ విధానాన్ని ClientCertificate (విలువ 1)కు సెట్ చేసినప్పుడు, SAML ద్వారా లాగిన్ చేసే కొత్తగా జోడించబడిన వినియోగదారుల కోసం క్లయింట్ స‌ర్టిఫికెట్‌ ప్రామాణీకరణ ఉపయోగించబడుతుంది. అటువంటి వినియోగదారుల కోసం పాస్‌వర్డ్‌లు ఉపయోగించబడవు మరియు వారి కాష్ చేయబడిన స్థానిక డేటా, సంబంధిత క్రిప్టోగ్రాఫిక్ కీలను ఉపయోగించి రక్షించబడుతుంది. ఉదాహరణకు, స్మార్ట్ కార్డ్ ఆధారిత వినియోగదారు ప్రామాణీకరణను కాన్ఫిగర్ చేయడానికి ఈ సెట్టింగ్ అనుమతిస్తుంది (DeviceLoginScreenAppInstallList విధానం ద్వారా స్మార్ట్ కార్డ్ మిడిల్‌వేర్ యాప్‌లను ఇన్‌స్టాల్ చేయాలని గుర్తుంచుకోండి).
+      ఈ విధానాన్ని ClientCertificate (విలువ 1)కి సెట్ చేసినప్పుడు, SAML ద్వారా లాగిన్ చేసే కొత్తగా జోడించబడిన వినియోగదారుల కోసం క్లయింట్ సర్టిఫికెట్ ప్రమాణీకరణ ఉపయోగించబడుతుంది. అటువంటి వినియోగదారుల కోసం పాస్‌వర్డ్‌లు ఉపయోగించబడవు మరియు వారి కాష్ చేయబడిన స్థానిక డేటా, సంబంధిత క్రిప్టోగ్రాఫిక్ కీలను ఉపయోగించి రక్షించబడుతుంది. ఉదాహరణకు, స్మార్ట్ కార్డ్ ఆధారిత వినియోగదారు ప్రమాణీకరణను కాన్ఫిగర్ చేయడానికి ఈ సెట్టింగ్ అనుమతిస్తుంది (DeviceLoginScreenAppInstallList విధానం ద్వారా స్మార్ట్ కార్డ్ మిడిల్‌వేర్ యాప్‌లను ఇన్‌స్టాల్ చేయాలని గుర్తుంచుకోండి).
 
-      SAMLను ఉపయోగించి ప్రామాణీకరించే వినియోగదారులపై మాత్రమే ఈ విధానం ప్రభావం చూపుతుంది.</translation>
-<translation id="9213347477683611358">పరికరంలోకి ఏ వినియోగదారు ఇంకా సైన్ ఇన్ చేయనట్లయితే, లాగిన్ స్క్రీన్‌పై చూపబడే పరికర-స్థాయి వాల్‌పేపర్ చిత్రాన్ని కాన్ఫిగర్ చేస్తుంది. విధానం Chrome OS పరికరం వాల్‌పేపర్‌ చిత్రాన్ని డౌన్‌లోడ్ చేయగల URLను మరియు డౌన్‌లోడ్ యొక్క సమగ్రత ధృవీకరణకు ఉపయోగించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్‌ను పేర్కొనడం ద్వారా సెట్ చేయబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి, దీని పరిమాణం ఎట్టి పరిస్థితుల్లోనూ 16MB మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రామాణీకరణ లేకుండానే యాక్సెస్‌ చేయగలిగేలా ఉండాలి. వాల్‌పేపర్ చిత్రం డౌన్‌లోడ్ చేయబడుతుంది మరియు కాష్ చేయబడుతుంది. URL లేదా హ్యాష్ మారినప్పుడల్లా మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
+      SAMLని ఉపయోగించి ప్రమాణీకరించే వినియోగదారులపై మాత్రమే ఈ విధానం ప్రభావం చూపుతుంది.</translation>
+<translation id="9213347477683611358">పరికరంలోకి ఏ వినియోగదారూ ఇంకా సైన్ ఇన్ చేయనట్లయితే, లాగిన్ స్క్రీన్‌పై చూపబడే పరికర-స్థాయి వాల్‌పేపర్ చిత్రాన్ని కాన్ఫిగర్ చేస్తుంది. విధానం Chrome OS పరికరం వాల్‌పేపర్‌ చిత్రాన్ని డౌన్‌లోడ్ చేయగల URLను మరియు డౌన్‌లోడ్ సమగ్రతను ధృవీకరించడానికి క్రిప్టోగ్రాఫిక్ హ్యాష్‌ను పేర్కొనడం ద్వారా సెట్ చేయబడుతుంది. చిత్రం తప్పనిసరిగా JPEG ఫార్మాట్‌లో ఉండాలి, దీని పరిమాణం 16MB మించకూడదు. URL తప్పనిసరిగా ఎటువంటి ప్రామాణీకరణ లేకుండానే యాక్సెస్ చేయగలిగేలా ఉండాలి. వాల్‌పేపర్ చిత్రం డౌన్‌లోడ్ చేయబడి, కాష్ చేయబడుతుంది. URL లేదా హ్యాష్ మారినప్పుడల్లా మళ్లీ డౌన్‌లోడ్ చేయబడుతుంది.
 
       విధానాన్ని URL మరియు హ్యాష్‌ను JSON ఫార్మాట్‌లో వ్యక్తపరిచే స్ట్రింగ్ లాగా పేర్కొనాలి, ఉదా.,
       {
@@ -3955,18 +4095,27 @@
         "hash": "examplewallpaperhash"
       }
 
-      పరికరం వాల్‌పేపర్ విధానాన్ని సెట్ చేస్తే, పరికరంలోకి ఏ వినియోగదారు ఇంకా సైన్ ఇన్ చేయనప్పుడు Chrome OS పరికరం లాగిన్ స్క్రీన్‌పై ఉండే వాల్‌పేపర్ చిత్రాన్ని డౌన్‌లోడ్ చేసి, ఉపయోగిస్తుంది. వినియోగదారు లాగిన్ అయిన తర్వాత, వినియోగదారు యొక్క వాల్‌పేపర్ విధానం అమలులోకి వస్తుంది.
+      పరికరం వాల్‌పేపర్ విధానాన్ని సెట్ చేస్తే, పరికరంలోకి ఏ వినియోగదారు ఇంకా సైన్ ఇన్ చేయనప్పుడు Chrome OS పరికరం లాగిన్ స్క్రీన్‌పై ఉండే వాల్‌పేపర్ చిత్రాన్ని డౌన్‌లోడ్ చేసి, ఉపయోగిస్తుంది. వినియోగదారు లాగిన్ అయిన తర్వాత, వినియోగదారు వాల్‌పేపర్ విధానం అమలులోకి వస్తుంది.
 
       పరికరం వాల్‌పేపర్ విధానం సెట్ చేయకుంటే, వినియోగదారు యొక్క వాల్‌పేపర్ విధానం సెట్ చేయబడినప్పుడు ఏమి చూపాలి అనేది వినియోగదారు యొక్క వాల్‌పేపర్ విధానంపై ఆధారపడి ఉంటుంది.</translation>
 <translation id="9217154963008402249">పర్యవేక్షిత నెట్‌వర్క్ ప్యాకెట్‌ల సమయ వ్యవధి</translation>
 <translation id="922540222991413931">ఎక్స్‌టెన్ష‌న్‌ను, యాప్‌ను మరియు వినియోగదారు స్క్రిప్ట్ ఇన్‌స్టాల్ సోర్స్‌లను కాన్ఫిగర్ చేయండి</translation>
 <translation id="924557436754151212">మొదటి అమలులోనే డిఫాల్ట్ బ్రౌజర్ నుండి సేవ్ చేయబడిన పాస్‌వర్డ్‌లను దిగుమతి చేయి</translation>
+<translation id="926146562923985266">Internet Explorer నుండి మారుస్తున్నప్పుడు <ph name="PRODUCT_NAME" />లో URLలను తెరవడానికి ఉపయోగించాల్సిన ఆదేశాన్ని ఈ విధానం నియంత్రిస్తుంది.
+
+      Internet Explorer కోసం 'లెగసీ బ్రౌజర్ మద్దతు' యాడ్-ఇన్‌ను ఇన్‌స్టాల్ చేయకుంటే, ఈ విధానం ఎలాంటి ప్రభావం చూపదు.
+
+      ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, Internet Explorer నుండి <ph name="PRODUCT_NAME" />ను ప్రారంభిస్తున్నప్పుడు <ph name="PRODUCT_NAME" /> దాని స్వంత అమలు నిర్వహణ పాత్‌ను Internet Explorer ఆటోమేటిక్‌గా గుర్తిస్తుంది.
+
+      ఈ విధానాన్ని సెట్ చేసినప్పుడు, Internet Explorer నుండి <ph name="PRODUCT_NAME" />ను ప్రారంభిస్తున్నప్పుడు <ph name="PRODUCT_NAME" />ను ప్రారంభించడానికి ఇది ఉపయోగించబడుతుంది.
+
+      Chrome ఇన్‌స్టాల్ స్థానాన్ని ఆటోమేటిక్‌గా గుర్తించడానికి ఈ విధానాన్ని అమలు చేయగల ఫైల్ పాత్‌కు లేదా ${chrome}కు సెట్ చేయవచ్చు.</translation>
 <translation id="930930237275114205"><ph name="PRODUCT_FRAME_NAME" /> వినియోగదారు డేటా డైరెక్టరీనీ నేరుగా సెట్ చేయండి</translation>
 <translation id="943865157632139008"><ph name="PRODUCT_FRAME_NAME" />ను ఇన్‌స్టాల్ చేసినపుడు డిఫాల్ట్ HTML కాన్ఫిగర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. డిఫాల్ట్ సెట్టింగ్ ప్రకారం, రెండరింగ్ చేయడానికి హోస్ట్ బ్రౌజర్‌ను అనుమతిస్తుంది. అయితే మీరు కోరుకుంటే, దీనిని భర్తీ చేసి డిఫాల్ట్‌గా <ph name="PRODUCT_FRAME_NAME" /> HTML పేజీలను రెండర్ చేసేలా చేయవచ్చు.</translation>
 <translation id="944817693306670849">డిస్క్ కాష్ పరిమాణాన్ని సెట్ చేయి</translation>
-<translation id="966854160628341653">కొత్త వినియోగదారు ఖాతాలను సృష్టించడానికి <ph name="PRODUCT_OS_NAME" /> అనుమతిస్తుందో లేదో అనే దాన్ని నియంత్రిస్తుంది. ఆ విధానం తప్పున‌కు సెట్ చేయబడి ఉంటే, ఇప్పటికే ఖాతా లేని వినియోగదారులు లాగిన్ చేయలేరు.
+<translation id="966854160628341653">కొత్త వినియోగదారు ఖాతాలను సృష్టించడానికి <ph name="PRODUCT_OS_NAME" /> అనుమతిస్తుందో లేదో అనేదాన్ని నియంత్రిస్తుంది. ఆ విధానం 'తప్పు'గా సెట్ చేయబడి ఉంటే, ఇప్పటికే ఖాతా లేని వినియోగదారులు లాగిన్ చేయలేరు.
 
-      ఈ విధానం ఒప్పున‌కు సెట్ చేయబడి ఉంటే లేదా కాన్ఫిగర్ చేయబడకుండా ఉంటే, <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> వినియోగదారును లాగిన్ చేయడానికి అనుమతించే విధంగా సృష్టించడానికి కొత్త వినియోగదారు ఖాతాలు అనుమతించబడతాయి.</translation>
+      ఈ విధానం 'ఒప్పు'గా సెట్ చేయబడి ఉంటే లేదా కాన్ఫిగర్ చేయబడకుండా ఉంటే, <ph name="DEVICE_USER_WHITELIST_POLICY_NAME" /> వినియోగదారును లాగిన్ చేయడానికి అనుమతించే విధంగా సృష్టించడానికి కొత్త వినియోగదారు ఖాతాలు అనుమతించబడతాయి.</translation>
 <translation id="981346395360763138">Google స్థాన సేవలు నిలిపివేయబడ్డాయి</translation>
 <translation id="982497069985795632">స్పెల్‌చెక్‌ను ప్రారంభించండి</translation>
 <translation id="991560005425213776">వినియోగదారు పేరు మరియు ఫైల్ పేరుని స్థానిక ప్రింటర్‌లకు పంపండి</translation>
diff --git a/components/security_interstitials_strings.grdp b/components/security_interstitials_strings.grdp
index fa9a8ec5..e9d9f0c0 100644
--- a/components/security_interstitials_strings.grdp
+++ b/components/security_interstitials_strings.grdp
@@ -66,10 +66,10 @@
 
   <!-- Lookalike URL warning -->
   <message name="IDS_LOOKALIKE_URL_TITLE" desc="Tab title. Context: the requested URL looks like a more popular URL.">
-    Continue to <ph name="DOMAIN">$1<ex>example.com</ex></ph>
+    Continue to <ph name="DOMAIN">$1<ex>example.com</ex></ph>?
   </message>
   <message name="IDS_LOOKALIKE_URL_HEADING" desc="Large heading. Context: the error page that's shown when the requested URL looks like a more popular URL.">
-    Continue to &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN">$1<ex>example.com</ex></ph>&lt;/a&gt;
+    Continue to &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN">$1<ex>example.com</ex></ph>&lt;/a&gt;?
   </message>
   <message name="IDS_LOOKALIKE_URL_IGNORE" desc="Button text. Context: the error page that's shown when the requested URL looks like a more popular URL. This button dismisses the interstitial and navigates to the originally-requested URL.">
     Ignore
diff --git a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_CONTINUE.png.sha1 b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_CONTINUE.png.sha1
index eb038a7..3344389 100644
--- a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_CONTINUE.png.sha1
+++ b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_CONTINUE.png.sha1
@@ -1 +1 @@
-53e9164a74d630be57a73a0c0b642354a6a97ee1
\ No newline at end of file
+1ee52e917f79a3ee7b823706032db17c34e5d0d0
\ No newline at end of file
diff --git a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_HEADING.png.sha1 b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_HEADING.png.sha1
index eb038a7..3344389 100644
--- a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_HEADING.png.sha1
+++ b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_HEADING.png.sha1
@@ -1 +1 @@
-53e9164a74d630be57a73a0c0b642354a6a97ee1
\ No newline at end of file
+1ee52e917f79a3ee7b823706032db17c34e5d0d0
\ No newline at end of file
diff --git a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_IGNORE.png.sha1 b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_IGNORE.png.sha1
index eb038a7..3344389 100644
--- a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_IGNORE.png.sha1
+++ b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_IGNORE.png.sha1
@@ -1 +1 @@
-53e9164a74d630be57a73a0c0b642354a6a97ee1
\ No newline at end of file
+1ee52e917f79a3ee7b823706032db17c34e5d0d0
\ No newline at end of file
diff --git a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH.png.sha1 b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH.png.sha1
index eb038a7..3344389 100644
--- a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH.png.sha1
+++ b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_PRIMARY_PARAGRAPH.png.sha1
@@ -1 +1 @@
-53e9164a74d630be57a73a0c0b642354a6a97ee1
\ No newline at end of file
+1ee52e917f79a3ee7b823706032db17c34e5d0d0
\ No newline at end of file
diff --git a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_TITLE.png.sha1 b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_TITLE.png.sha1
index eb038a7..3344389 100644
--- a/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_TITLE.png.sha1
+++ b/components/security_interstitials_strings_grdp/IDS_LOOKALIKE_URL_TITLE.png.sha1
@@ -1 +1 @@
-53e9164a74d630be57a73a0c0b642354a6a97ee1
\ No newline at end of file
+1ee52e917f79a3ee7b823706032db17c34e5d0d0
\ No newline at end of file
diff --git a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
index 616a430..b0f81322 100644
--- a/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
+++ b/components/send_tab_to_self/send_tab_to_self_bridge_unittest.cc
@@ -419,6 +419,26 @@
             bridge()->GetEntryByGUID(guids[0])->GetURL().spec());
 }
 
+TEST_F(SendTabToSelfBridgeTest, AddInvalidEntries) {
+  InitializeBridge();
+  EXPECT_CALL(*mock_observer(), EntriesAddedRemotely(_)).Times(0);
+
+  // Add Entry should succeed in this case.
+  EXPECT_NE(nullptr, bridge()->AddEntry(GURL("http://www.example.com/"), "d",
+                                        AdvanceAndGetTime()));
+
+  // Add Entry should fail on invalid URLs.
+  EXPECT_EQ(nullptr, bridge()->AddEntry(GURL(), "d", AdvanceAndGetTime()));
+  EXPECT_EQ(nullptr,
+            bridge()->AddEntry(GURL("http://?k=v"), "d", AdvanceAndGetTime()));
+  EXPECT_EQ(nullptr, bridge()->AddEntry(GURL("http//google.com"), "d",
+                                        AdvanceAndGetTime()));
+
+  // Add Entry should fail on an invalid navigation_time.
+  EXPECT_EQ(nullptr, bridge()->AddEntry(GURL("http://www.example.com/"), "d",
+                                        base::Time()));
+}
+
 }  // namespace
 
 }  // namespace send_tab_to_self
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index 7487adf..44daea8 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -248,7 +248,6 @@
 <translation id="2270484714375784793">ስልክ ቁጥር</translation>
 <translation id="2283340219607151381">አድራሻዎችን አስቀምጥ እና ሙላ</translation>
 <translation id="2292556288342944218">የእርስዎ የበየነመረብ መዳረሻ ታግዷል</translation>
-<translation id="2294558542833290837">መጀመሪያ የከፈቱት አገናኝ ያልተለመደ ነው</translation>
 <translation id="2297722699537546652">B5 (የደብዳቤ ፖስታ)</translation>
 <translation id="2310021320168182093">Chou2 (የደብዳቤ ፖስታ)</translation>
 <translation id="2316887270356262533">እስከ 1 ሜባ ቦታ ድረስ ያስለቅቃል። አንዳንድ ጣቢያዎች በሚቀጥለው ጉብኝትዎ ላይ ይበልጥ በዝግታ ሊጫኑ ይችላሉ።</translation>
@@ -490,7 +489,6 @@
 <translation id="3658742229777143148">ክለሳ</translation>
 <translation id="366077651725703012">ክሬዲት ካርድን አዘምን</translation>
 <translation id="3676592649209844519">የመሣሪያ መታወቂያ፦</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; ለማለት ፈልገው ነው?</translation>
 <translation id="3678029195006412963">ጥያቄ ሊፈረም አልተቻለም</translation>
 <translation id="3678529606614285348">ገጹን ማንነት በማያሳውቅ አዲስ መስኮት ውስጥ ይክፈቱ (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">የብልሽት ሪፖርት <ph name="CRASH_TIME" /> ላይ ተይዟል፣ <ph name="UPLOAD_TIME" /> ላይ ተሰቅሏል</translation>
@@ -1401,7 +1399,6 @@
 <translation id="894185898663964645">የእርስዎ አስተዳዳሪ ብጁ የስር እውቅና ማረጋገጫዎችን አዋቅረዋል፣ እነዚህም አስተዳዳሪው እርስዎ የሚጎበኟቸው የድር ጣቢያዎች ይዘትን እንዲመለከቱ ያስችላቸዋል።</translation>
 <translation id="8943282376843390568">ሎሚ ቀለም</translation>
 <translation id="8957210676456822347">የተያዥ መግቢያ ፈቀዳ</translation>
-<translation id="8966619695390250636">ይህን ለማለት ፈልገው ነው?</translation>
 <translation id="8968766641738584599">ካርድ አስቀምጥ</translation>
 <translation id="8971063699422889582">የአገልጋይ እውቅና ማረጋገጫ ጊዜው አልፎበታል።</translation>
 <translation id="8975012916872825179">እንደ ስልክ ቁጥሮች፣ ኢሜይል አድራሻዎች እና የመላኪያ አድራሻዎች ያሉ መረጃዎችን ያካትታል</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index 106e4a7..ae9946e 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">رقم الهاتف</translation>
 <translation id="2283340219607151381">حفظ العناوين وملؤها</translation>
 <translation id="2292556288342944218">تم حظر دخولك إلى الإنترنت</translation>
-<translation id="2294558542833290837">الرابط الذي فتحته أصلاً غير معتاد</translation>
 <translation id="2297722699537546652">‏B5 (مغلف)</translation>
 <translation id="2310021320168182093">‏Chou2 (مغلف)</translation>
 <translation id="2316887270356262533">يوفِّر أقل من 1 ميغابايت. وقد يتم تحميل بعض المواقع بشكل أبطأ عند زيارتها في المرة القادمة.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">التعديل</translation>
 <translation id="366077651725703012">تحديث بطاقة الائتمان</translation>
 <translation id="3676592649209844519">معرِّف الجهاز:</translation>
-<translation id="3677008721441257057">‏هل كنت تقصد &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;؟</translation>
 <translation id="3678029195006412963">تعذر توقيع الطلب</translation>
 <translation id="3678529606614285348">‏يمكنك فتح الصفحة في نافذة جديدة للتصفح المتخفي (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">تم تسجيل تقرير الأعطال في <ph name="CRASH_TIME" />، وتم تحميله في <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">ضبط مشرفك شهادات الجذر المُخصّصة والتي قد تسمح للمشرف بالتعرُّف على محتوى مواقع الويب التي تزورها.</translation>
 <translation id="8943282376843390568">ليموني</translation>
 <translation id="8957210676456822347">تفويض المدخل المقيد</translation>
-<translation id="8966619695390250636">هل كنت تقصد؟</translation>
 <translation id="8968766641738584599">حفظ البطاقة</translation>
 <translation id="8971063699422889582">انتهت صلاحية شهادة الخادم.</translation>
 <translation id="8975012916872825179">يتضمن معلومات مثل أرقام الهواتف وعناوين البريد الإلكتروني وعناوين الشحن.</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index dd06ef93..540c7d9 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Телефонен номер</translation>
 <translation id="2283340219607151381">Запазване и попълване на адреси</translation>
 <translation id="2292556288342944218">Достъпът ви до интернет е блокиран</translation>
-<translation id="2294558542833290837">Първоначално отворената от вас връзка е необичайна</translation>
 <translation id="2297722699537546652">B5 (плик)</translation>
 <translation id="2310021320168182093">Chou2 (плик)</translation>
 <translation id="2316887270356262533">Ще освободите по-малко от 1 МБ. Някои сайтове може да се заредят по-бавно при следващото ви посещение.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Ревизия</translation>
 <translation id="366077651725703012">Актуализиране на кредитната карта</translation>
 <translation id="3676592649209844519">Идент. № на устройството:</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; ли искате да отворите?</translation>
 <translation id="3678029195006412963">Заявката не можа да бъде подписана</translation>
 <translation id="3678529606614285348">Отворете страницата в нов прозорец в режим „инкогнито“ (Ctrl-Shift-N).</translation>
 <translation id="3679803492151881375">Сигналът за срив е записан в/ъв <ph name="CRASH_TIME" /> и качен в/ъв <ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">Администраторът ви е конфигурирал персонализирани основни сертификати, което може да му позволи да вижда съдържанието на посещаваните от вас уебсайтове.</translation>
 <translation id="8943282376843390568">лимоненозелено</translation>
 <translation id="8957210676456822347">Упълномощаване в портал за удостоверяване</translation>
-<translation id="8966619695390250636">Това ли имахте предвид?</translation>
 <translation id="8968766641738584599">Запазване на картата</translation>
 <translation id="8971063699422889582">Сертификатът на сървъра е с изтекла валидност.</translation>
 <translation id="8975012916872825179">Включва информация като телефонни номера, имейл адреси и адреси за доставка</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 03cda26..77aad51 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -252,7 +252,6 @@
 <translation id="2270484714375784793">ফোন নম্বর</translation>
 <translation id="2283340219607151381">অ্যাড্রেস পূরণ করে সেভ করুন</translation>
 <translation id="2292556288342944218">আপনার ইন্টারনেট অ্যাক্সেস অবরুদ্ধ করা হয়েছে</translation>
-<translation id="2294558542833290837">আপনি আসলে যে লিঙ্কটি খুলেছেন, সেটি অস্বাভাবিক</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">১ MB এর চেয়ে কম জায়গা খালি করে। পরের বার যখন দেখবেন তখন কিছু সাইট লোড হতে দেরি হতে পারে।</translation>
@@ -487,6 +486,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">সাইজ ২</translation>
+<translation id="361438452008624280">তালিকার এন্ট্রি "<ph name="LANGUAGE_ID" />": অজানা বা কাজ করে না এমন ভাষা।</translation>
 <translation id="3615877443314183785">মেয়াদ শেষ হওয়ার তারিখের সঠিক মান লিখুন</translation>
 <translation id="36224234498066874">ব্রাউজ করা ডেটা সাফ করুন...</translation>
 <translation id="362276910939193118">সম্পূর্ণ ইতিহাস দেখুন</translation>
@@ -498,7 +498,6 @@
 <translation id="3658742229777143148">পুনর্বিবেচনা</translation>
 <translation id="366077651725703012">ক্রেডিট কার্ড আপডেট করুন</translation>
 <translation id="3676592649209844519">ডিভাইস আইডি:</translation>
-<translation id="3677008721441257057">আপনি কি &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; বোঝাতে চাইছেন?</translation>
 <translation id="3678029195006412963">অনুরোধটি স্বাক্ষরিত করা যায়নি</translation>
 <translation id="3678529606614285348">নতুন ছদ্মবেশী উইন্ডোতে (Ctrl-Shift-N) করে একটি পৃষ্ঠা খুলুন</translation>
 <translation id="3679803492151881375">ক্র্যাশ প্রতিবেদন <ph name="CRASH_TIME" /> এ ক্যাপচার করা হয়েছে, <ph name="UPLOAD_TIME" /> এ আপলোড করা হয়েছে</translation>
@@ -1390,6 +1389,7 @@
 <translation id="8790007591277257123">&amp;মুছে ফেলাকে আবার করুন</translation>
 <translation id="8792621596287649091">আপনি নিজের <ph name="ORG_NAME" /> অ্যাকাউন্টের অ্যাক্সেস হারাতে পারেন অথবা আপনার পরিচয় চুরি হয়ে যেতে পারে। Chromium এখনই আপনার পাসওয়ার্ড পরিবর্তন করার আর্জি জানাচ্ছে।</translation>
 <translation id="8800988563907321413">আপনার জন্য আশেপাশের প্রস্তাবনাগুলি এখানে দেখা যাবে</translation>
+<translation id="8805819170075074995">তালিকার এন্ট্রি "<ph name="LANGUAGE_ID" />": এটি SpellcheckLanguage নীতিতেও অন্তর্ভুক্ত থাকার জন্য এন্ট্রিটি অগ্রাহ্য করা হয়েছে।</translation>
 <translation id="8820817407110198400">বুকমার্কস</translation>
 <translation id="883848425547221593">অন্যান্য বুকমার্ক</translation>
 <translation id="884264119367021077">শিপিং ঠিকানা</translation>
@@ -1410,10 +1410,10 @@
 <translation id="894185898663964645">আপনার অ্যাডমিনিস্ট্রেটর কাস্টম রুট সার্টিফিকেট কনফিগার করেছেন, যার ফলে আপনি যে ওয়েবসাইটে যাচ্ছেন সেটির কন্টেন্ট তিনি দেখতে পেতে পারেন।</translation>
 <translation id="8943282376843390568">লাইম</translation>
 <translation id="8957210676456822347">ক্যাপটিভ পোর্টাল অনুমোদন</translation>
-<translation id="8966619695390250636">আপনি কি এটি বলতে চাইছেন?</translation>
 <translation id="8968766641738584599">কার্ড সেভ করুন</translation>
 <translation id="8971063699422889582">সার্ভারের সার্টিফিকেটের মেয়াদ ফুরিয়েছে৷</translation>
 <translation id="8975012916872825179">ফোন নম্বর, ইমেল আইডি এবং শিপিং ঠিকানার মতো তথ্য এতে আছে</translation>
+<translation id="8975263830901772334">আপনার প্রিন্ট করা ফাইলগুলির নাম</translation>
 <translation id="8978053250194585037">Google Safe Browsing সম্প্রতি <ph name="SITE" /> এ <ph name="BEGIN_LINK" />ফিশিং শনাক্ত করেছে<ph name="END_LINK" />। ফিশিং সাইটগুলি আপনাকে প্রতারিত করার জন্য অন্যান্য সাইট যেমন হয় সেইরকম ভান করে।</translation>
 <translation id="8983003182662520383">Google Pay ব্যবহার করে এমন পেমেন্টের পদ্ধতি এবং ঠিকানা</translation>
 <translation id="8987927404178983737">মাস</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index 5bdb947..0c03dde 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Número de telèfon</translation>
 <translation id="2283340219607151381">Desa i emplena les adreces</translation>
 <translation id="2292556288342944218">El vostre accés a Internet està bloquejat</translation>
-<translation id="2294558542833290837">L'enllaç que has obert en un primer moment és poc habitual</translation>
 <translation id="2297722699537546652">B5 (sobre)</translation>
 <translation id="2310021320168182093">Chou2 (sobre)</translation>
 <translation id="2316887270356262533">Allibera menys d'1 MB. És possible que alguns llocs web es carreguin més a poc a poc la propera vegada que els visitis.</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">Revisió</translation>
 <translation id="366077651725703012">Actualitza la targeta de crèdit</translation>
 <translation id="3676592649209844519">Identificador del dispositiu:</translation>
-<translation id="3677008721441257057">Volies dir &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">La sol·licitud no s'ha pogut signar</translation>
 <translation id="3678529606614285348">Obre la pàgina en una finestra d'incògnit nova (Ctrl+Maj+N)</translation>
 <translation id="3679803492151881375">Informe d'error generat el <ph name="CRASH_TIME" /> i enviat el <ph name="UPLOAD_TIME" /></translation>
@@ -1399,7 +1397,6 @@
 <translation id="894185898663964645">L'administrador ha configurat certificats arrel personalitzats, que li poden permetre veure el contingut dels llocs web que visites.</translation>
 <translation id="8943282376843390568">Verd llima</translation>
 <translation id="8957210676456822347">Autorització de portals captius</translation>
-<translation id="8966619695390250636">Volies dir?</translation>
 <translation id="8968766641738584599">Desa la targeta</translation>
 <translation id="8971063699422889582">El certificat del servidor ha caducat.</translation>
 <translation id="8975012916872825179">Inclou informació com ara números de telèfon, adreces electròniques i adreces d'enviament</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index ccf2004..9fa8cce9 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Telefonní číslo</translation>
 <translation id="2283340219607151381">Ukládat a vyplňovat adresy</translation>
 <translation id="2292556288342944218">Vaše připojení k internetu je blokováno</translation>
-<translation id="2294558542833290837">Odkaz, který jste původně otevřeli, je neobvyklý</translation>
 <translation id="2297722699537546652">B5 (obálka)</translation>
 <translation id="2310021320168182093">Chou2 (obálka)</translation>
 <translation id="2316887270356262533">Uvolní více než 1 MB. Je možné, že se některé weby při příští návštěvě budou načítat pomaleji.</translation>
@@ -485,7 +484,6 @@
 <translation id="3658742229777143148">Verze</translation>
 <translation id="366077651725703012">Aktualizace platební karty</translation>
 <translation id="3676592649209844519">ID zařízení:</translation>
-<translation id="3677008721441257057">Měli jste na mysli &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Požadavek nebylo možné podepsat</translation>
 <translation id="3678529606614285348">Otevřete stránku v novém anonymním okně (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Zpráva o selhání pořízená <ph name="CRASH_TIME" /> byla nahrána <ph name="UPLOAD_TIME" /></translation>
@@ -1394,7 +1392,6 @@
 <translation id="894185898663964645">Váš administrátor nakonfiguroval vlastní kořenové certifikáty, které mu mohou umožnit zobrazit obsah webů, jež navštěvujete.</translation>
 <translation id="8943282376843390568">Limetková</translation>
 <translation id="8957210676456822347">Autorizace captive portálu</translation>
-<translation id="8966619695390250636">Měli jste na mysli:</translation>
 <translation id="8968766641738584599">Uložit kartu</translation>
 <translation id="8971063699422889582">Platnost certifikátu serveru vypršela.</translation>
 <translation id="8975012916872825179">Zahrnuje informace jako telefonní čísla, e-mailové adresy a dodací adresy</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index e432083..c585159 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonnummer</translation>
 <translation id="2283340219607151381">Gem og udfyld adresser</translation>
 <translation id="2292556288342944218">Din internetadgang er blokeret</translation>
-<translation id="2294558542833290837">Det link, du oprindeligt åbnede, er usædvanligt</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Frigiver over 1 MB. Nogle websites indlæses muligvis langsommere under dit næste besøg.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Revision</translation>
 <translation id="366077651725703012">Opdater betalingskort</translation>
 <translation id="3676592649209844519">Enheds-id:</translation>
-<translation id="3677008721441257057">Mente du &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Anmodningen kunne ikke signeres</translation>
 <translation id="3678529606614285348">Åbn siden i et nyt inkognitovindue (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Nedbrud registreret <ph name="CRASH_TIME" />, uploadet <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">Din administrator har konfigureret tilpassede rodcertifikater, hvilket kan give administratoren mulighed for at se indholdet på de websites, du besøger.</translation>
 <translation id="8943282376843390568">Limegrøn</translation>
 <translation id="8957210676456822347">Godkendelse af captive portal</translation>
-<translation id="8966619695390250636">Mente du?</translation>
 <translation id="8968766641738584599">Gem kort</translation>
 <translation id="8971063699422889582">Serverens certifikat er udløbet.</translation>
 <translation id="8975012916872825179">Omfatter oplysninger såsom telefonnumre, mailadresser og leveringsadresser</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 5c67c623..c973f28 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Telefonnummer</translation>
 <translation id="2283340219607151381">Adressen speichern und ausfüllen</translation>
 <translation id="2292556288342944218">Ihre Internetverbindung ist gesperrt</translation>
-<translation id="2294558542833290837">Der Link, den Sie ursprünglich geöffnet haben, ist ungewöhnlich</translation>
 <translation id="2297722699537546652">B5 (Umschlag)</translation>
 <translation id="2310021320168182093">Chou2 (Umschlag)</translation>
 <translation id="2316887270356262533">Es werden weniger als 1 MB Speicherplatz freigegeben. Manche Websites werden beim nächsten Öffnen eventuell langsamer geladen.</translation>
@@ -487,7 +486,6 @@
 <translation id="3658742229777143148">Überarbeitung</translation>
 <translation id="366077651725703012">Kreditkarte aktualisieren</translation>
 <translation id="3676592649209844519">Geräte-ID:</translation>
-<translation id="3677008721441257057">Meinten Sie vielleicht &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Anfrage konnte nicht signiert werden</translation>
 <translation id="3678529606614285348">Seite in einem neuen Inkognitofenster öffnen (Strg + Umschalttaste + N)</translation>
 <translation id="3679803492151881375">Absturz am <ph name="CRASH_TIME" /> erfasst und am <ph name="UPLOAD_TIME" /> hochgeladen</translation>
@@ -1398,7 +1396,6 @@
 <translation id="894185898663964645">Ihr Administrator hat benutzerdefinierte Root-Zertifikate konfiguriert, mit denen er unter Umständen die Inhalte der von Ihnen besuchten Websites sehen kann.</translation>
 <translation id="8943282376843390568">Limone</translation>
 <translation id="8957210676456822347">Erfassungsportal-Autorisierung</translation>
-<translation id="8966619695390250636">Meinten Sie dies?</translation>
 <translation id="8968766641738584599">Karte speichern</translation>
 <translation id="8971063699422889582">Das Serverzertifikat ist abgelaufen.</translation>
 <translation id="8975012916872825179">Enthält Informationen wie Telefonnummern, E-Mail-Adressen und Lieferadressen</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index 4762aed..c918e21 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Αριθμός τηλεφώνου</translation>
 <translation id="2283340219607151381">Αποθήκευση και συμπλήρωση διευθύνσεων</translation>
 <translation id="2292556288342944218">Η πρόσβασή σας στο διαδίκτυο είναι αποκλεισμένη</translation>
-<translation id="2294558542833290837">Ο σύνδεσμος που ανοίξατε αρχικά δεν είναι συνηθισμένος</translation>
 <translation id="2297722699537546652">B5 (Φάκελος)</translation>
 <translation id="2310021320168182093">Chou2 (Φάκελος)</translation>
 <translation id="2316887270356262533">Απελευθερώνει λιγότερο από 1 MB. Ορισμένοι ιστότοποι μπορεί να φορτωθούν πιο αργά κατά την επόμενη επίσκεψή σας.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Αναθεώρηση</translation>
 <translation id="366077651725703012">Ενημέρωση πιστωτικής κάρτας</translation>
 <translation id="3676592649209844519">Αναγνωριστικό συσκευής:</translation>
-<translation id="3677008721441257057">Μήπως εννοούσατε &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;;</translation>
 <translation id="3678029195006412963">Δεν ήταν δυνατή η έγκριση του αιτήματος</translation>
 <translation id="3678529606614285348">Ανοίξτε τη σελίδα σε ένα νέο παράθυρο ανώνυμης περιήγησης (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Η αναφορά σφαλμάτων καταγράφηκε στις <ph name="CRASH_TIME" /> και μεταφορτώθηκε στις <ph name="UPLOAD_TIME" /></translation>
@@ -1412,7 +1410,6 @@
 <translation id="894185898663964645">Ο διαχειριστής σας έχει διαμορφώσει προσαρμοσμένα πιστοποιητικά ρίζας, τα οποία ενδέχεται να επιτρέπουν στον διαχειριστή να βλέπει το περιεχόμενο των ιστοτόπων που επισκέπτεστε.</translation>
 <translation id="8943282376843390568">Λάιμ</translation>
 <translation id="8957210676456822347">Εξουσιοδότηση πύλης υποδοχής</translation>
-<translation id="8966619695390250636">Μήπως εννοείτε;</translation>
 <translation id="8968766641738584599">Αποθήκευση κάρτας</translation>
 <translation id="8971063699422889582">Το πιστοποιητικό του διακομιστή έχει λήξει.</translation>
 <translation id="8975012916872825179">Περιλαμβάνει πληροφορίες, όπως αριθμούς τηλεφώνου, διευθύνσεις ηλεκτρονικού ταχυδρομείου και διευθύνσεις αποστολής</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 77fc5e49e..2765064 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Phone number</translation>
 <translation id="2283340219607151381">Save and fill addresses</translation>
 <translation id="2292556288342944218">Your Internet access is blocked</translation>
-<translation id="2294558542833290837">The link that you originally opened is unusual</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Frees up less than 1 MB. Some sites may load more slowly on your next visit.</translation>
@@ -490,7 +489,6 @@
 <translation id="3658742229777143148">Revision</translation>
 <translation id="366077651725703012">Update credit card</translation>
 <translation id="3676592649209844519">Device ID:</translation>
-<translation id="3677008721441257057">Did you mean &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Request could not be signed</translation>
 <translation id="3678529606614285348">Open page in a new Incognito window (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Crash report captured on <ph name="CRASH_TIME" />, uploaded on <ph name="UPLOAD_TIME" /></translation>
@@ -1401,7 +1399,6 @@
 <translation id="894185898663964645">Your administrator has configured custom root certificates, which may allow the administrator to see the contents of websites that you visit.</translation>
 <translation id="8943282376843390568">Lime</translation>
 <translation id="8957210676456822347">Captive Portal Authorisation</translation>
-<translation id="8966619695390250636">Did you mean?</translation>
 <translation id="8968766641738584599">Save card</translation>
 <translation id="8971063699422889582">Server's certificate has expired.</translation>
 <translation id="8975012916872825179">Includes information such as phone numbers, email addresses and delivery addresses</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index e795e0b9..bd99887 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Número de teléfono</translation>
 <translation id="2283340219607151381">Guardar y completar direcciones</translation>
 <translation id="2292556288342944218">Se bloqueó tu acceso a Internet</translation>
-<translation id="2294558542833290837">El vínculo que abriste originalmente no es común</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Esta acción libera menos de 1 MB. Es posible que algunos sitios se carguen más lento en tu próxima visita.</translation>
@@ -498,7 +497,6 @@
 <translation id="3658742229777143148">Revisión</translation>
 <translation id="366077651725703012">Actualizar tarjeta de crédito</translation>
 <translation id="3676592649209844519">ID de dispositivo:</translation>
-<translation id="3677008721441257057">¿Quisiste decir &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">La solicitud no se pudo firmar</translation>
 <translation id="3678529606614285348">Abre la página en una nueva ventana de incógnito (Ctrl-mayúscula-N).</translation>
 <translation id="3679803492151881375">El informe de fallos se capturó el <ph name="CRASH_TIME" /> y se cargó el <ph name="UPLOAD_TIME" /></translation>
@@ -1412,7 +1410,6 @@
 <translation id="894185898663964645">Tu administrador configuró certificados raíz personalizados, lo que le permite ver el contenido de los sitios web que visites.</translation>
 <translation id="8943282376843390568">Verde lima</translation>
 <translation id="8957210676456822347">Autorización de portal cautivo</translation>
-<translation id="8966619695390250636">¿Quisiste decir…?</translation>
 <translation id="8968766641738584599">Guardar la tarjeta</translation>
 <translation id="8971063699422889582">El certificado del servidor ha caducado.</translation>
 <translation id="8975012916872825179">Incluye información, como números de teléfono, direcciones de correo electrónico y direcciones de envío</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index ec9fabd..9629a55a 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Número de teléfono</translation>
 <translation id="2283340219607151381">Guardar y autocompletar direcciones</translation>
 <translation id="2292556288342944218">Tu acceso a Internet está bloqueado</translation>
-<translation id="2294558542833290837">El enlace que has abierto es inusual</translation>
 <translation id="2297722699537546652">B5 (sobre)</translation>
 <translation id="2310021320168182093">Chou2 (sobre)</translation>
 <translation id="2316887270356262533">Libera menos de 1 MB. Algunos sitios web pueden tardar más en cargarse la próxima vez que accedas a ellos.</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">Revisión</translation>
 <translation id="366077651725703012">Actualizar tarjeta de crédito</translation>
 <translation id="3676592649209844519">ID del dispositivo:</translation>
-<translation id="3677008721441257057">Quizás quisiste decir: &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;</translation>
 <translation id="3678029195006412963">No se ha podido firmar la solicitud</translation>
 <translation id="3678529606614285348">Abre una página en una nueva ventana de incógnito (Ctrl + Mayús + N).</translation>
 <translation id="3679803492151881375">Informe sobre fallos registrado el <ph name="CRASH_TIME" /> y subido el <ph name="UPLOAD_TIME" /></translation>
@@ -1399,7 +1397,6 @@
 <translation id="894185898663964645">Tu administrador ha configurado certificados raíz personalizados que permiten al administrador ver el contenido de los sitios web que visites.</translation>
 <translation id="8943282376843390568">Lima</translation>
 <translation id="8957210676456822347">Autorización de portal cautivo</translation>
-<translation id="8966619695390250636">Quizás quisiste decir:</translation>
 <translation id="8968766641738584599">Guardar tarjeta</translation>
 <translation id="8971063699422889582">El certificado del servidor ha caducado.</translation>
 <translation id="8975012916872825179">Incluye información como números de teléfono, direcciones de correo electrónico y direcciones de envío</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 2c5c76e..e4ccfe6 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefoninumber</translation>
 <translation id="2283340219607151381">Salvesta ja sisesta aadressid</translation>
 <translation id="2292556288342944218">Teie juurdepääs Internetile on blokeeritud</translation>
-<translation id="2294558542833290837">Link, mille algselt avasite, on ebatavaline</translation>
 <translation id="2297722699537546652">B5 (ümbrik)</translation>
 <translation id="2310021320168182093">Chou2 (ümbrik)</translation>
 <translation id="2316887270356262533">Vabastab alla 1 MB. Mõne saidi laadimine võib järgmisel külastusel rohkem aega võtta.</translation>
@@ -498,7 +497,6 @@
 <translation id="3658742229777143148">Redaktsioon</translation>
 <translation id="366077651725703012">Värskenda krediitkaarti</translation>
 <translation id="3676592649209844519">Seadme ID:</translation>
-<translation id="3677008721441257057">Kas mõtlesite domeeni &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Taotlust ei saanud allkirjastada</translation>
 <translation id="3678529606614285348">Avage leht uues inkognito aknas (Ctrl + tõstuklahv + N)</translation>
 <translation id="3679803492151881375">Krahhiaruanne jäädvustati ajal <ph name="CRASH_TIME" />, see laaditi üles ajal <ph name="UPLOAD_TIME" /></translation>
@@ -1412,7 +1410,6 @@
 <translation id="894185898663964645">Teie administraator on seadistanud kohandatud juursertifikaadid, mille loal võib administraator teie külastatud veebisaitide sisu näha.</translation>
 <translation id="8943282376843390568">Laimiroheline</translation>
 <translation id="8957210676456822347">Kontrollportaali volitamine</translation>
-<translation id="8966619695390250636">Kas mõtlesite seda?</translation>
 <translation id="8968766641738584599">Salvesta kaart</translation>
 <translation id="8971063699422889582">Serveri sertifikaat on aegunud.</translation>
 <translation id="8975012916872825179">Hõlmab näiteks telefoninumbreid, e-posti ja postiaadresse</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 0949d26..db214b0 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">شماره تلفن</translation>
 <translation id="2283340219607151381">ذخیره و تکمیل نشانی</translation>
 <translation id="2292556288342944218">دسترسی شما به اینترنت مسدود است</translation>
-<translation id="2294558542833290837">پیوندی که ابتدا باز کرده بودید، نامعمول است</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">کمتر از ۱ مگابایت از فضا را آزاد می‌کند. ممکن است برخی از سایت‌ها در بازدیدهای بعدی کندتر بارگیری شوند.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">ویرایش</translation>
 <translation id="366077651725703012">کارت اعتباری را به‌روزرسانی کنید</translation>
 <translation id="3676592649209844519">شناسه دستگاه:</translation>
-<translation id="3677008721441257057">‏منظورتان &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; است؟</translation>
 <translation id="3678029195006412963">درخواست امضا نشد</translation>
 <translation id="3678529606614285348">‏صفحه را در پنجره‌ «ناشناس» جدیدی باز کنید (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">گزارش خرابی در <ph name="CRASH_TIME" /> ثبت شد، در <ph name="UPLOAD_TIME" /> بارگذاری شد</translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">سرپرستتان گواهینامه‌های ریشه سفارشی پیکربندی کرده است، که ممکن است به او اجازه دهد محتوای وب‌سایت‌هایی که بازدید می‌کنید را ببیند.</translation>
 <translation id="8943282376843390568">لیمویی</translation>
 <translation id="8957210676456822347">مجوز پورتال محدود</translation>
-<translation id="8966619695390250636">منظورتان این بود؟</translation>
 <translation id="8968766641738584599">ذخیره کارت</translation>
 <translation id="8971063699422889582">گواهی سرور منقضی شده است.</translation>
 <translation id="8975012916872825179">شامل اطلاعاتی مانند شماره تلفن، نشانی ایمیل و نشانی تحویل کالا می‌شود</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 3decd8bd..7dad98f 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Puhelinnumero</translation>
 <translation id="2283340219607151381">Tallenna ja täytä osoitteet</translation>
 <translation id="2292556288342944218">Internetyhteytesi on estetty</translation>
-<translation id="2294558542833290837">Alun perin avaamasi linkki on epätavallinen</translation>
 <translation id="2297722699537546652">B5 (kirjekuori)</translation>
 <translation id="2310021320168182093">Chou2 (kirjekuori)</translation>
 <translation id="2316887270356262533">Vapauttaa alle 1 Mt. Jotkin sivustot saattavat latautua hitaammin seuraavalla käynnillä.</translation>
@@ -498,7 +497,6 @@
 <translation id="3658742229777143148">Päivitetty versio</translation>
 <translation id="366077651725703012">Päivitä luottokortti</translation>
 <translation id="3676592649209844519">Laitteen tunnus:</translation>
-<translation id="3677008721441257057">Tarkoititko &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Pyynnön allekirjoittaminen epäonnistui.</translation>
 <translation id="3678529606614285348">Avaa sivu uudessa incognito-ikkunassa (Ctrl + Vaihto + N).</translation>
 <translation id="3679803492151881375">Kaatumisraportti tallennettu <ph name="CRASH_TIME" />, lähetetty <ph name="UPLOAD_TIME" /></translation>
@@ -1412,7 +1410,6 @@
 <translation id="894185898663964645">Järjestelmänvalvoja on määrittänyt yksilöidyt juurivarmenteet, joiden avulla hän voi mahdollisesti nähdä avaamiesi verkkosivustojen sisällön.</translation>
 <translation id="8943282376843390568">Lime</translation>
 <translation id="8957210676456822347">Captive portal -valtuutus</translation>
-<translation id="8966619695390250636">Tarkoititko?</translation>
 <translation id="8968766641738584599">Tallenna kortti</translation>
 <translation id="8971063699422889582">Palvelimen varmenne on vanhentunut.</translation>
 <translation id="8975012916872825179">Tallenna puhelinnumerot, sähköpostiosoitteet, toimitusosoitteet ja muita tietoja</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index c6afa4a..96bcdae 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Numero ng telepono</translation>
 <translation id="2283340219607151381">I-save at punan ang mga address</translation>
 <translation id="2292556288342944218">Naka-block ang iyong access sa Internet</translation>
-<translation id="2294558542833290837">Hindi pangkaraniwan ang link na orihinal mong binuksan</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Magbabakante ng wala pang 1 MB. Maaaring mag-load nang mas mabagal ang ilang site sa iyong susunod na pagbisita.</translation>
@@ -486,6 +485,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">Laki 2</translation>
+<translation id="361438452008624280">Listahan ng entry na "<ph name="LANGUAGE_ID" />": Hindi kilala o hindi sinusuportahang wika.</translation>
 <translation id="3615877443314183785">Maglagay ng wastong petsa ng pag-expire</translation>
 <translation id="36224234498066874">I-clear ang Data sa Pag-browse...</translation>
 <translation id="362276910939193118">Ipakita ang Buong History</translation>
@@ -497,7 +497,6 @@
 <translation id="3658742229777143148">Rebisyon</translation>
 <translation id="366077651725703012">I-update ang Credit Card</translation>
 <translation id="3676592649209844519">Device ID:</translation>
-<translation id="3677008721441257057">Ang ibig mo bang sabihin ay &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Hindi malagdaan ang kahilingan</translation>
 <translation id="3678529606614285348">Buksan ang page sa bagong Incognito window (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Nakuha ang ulat ng pag-crash noong <ph name="CRASH_TIME" />, na-upload noong <ph name="UPLOAD_TIME" /></translation>
@@ -1390,6 +1389,7 @@
 <translation id="8790007591277257123">&amp;Gawing muli ang pagtanggal</translation>
 <translation id="8792621596287649091">Maaari kang mawalan ng access sa iyong account sa <ph name="ORG_NAME" /> o manakawan ng pagkakakilanlan. Inirerekomenda ng Chromium na palitan ang iyong password ngayon.</translation>
 <translation id="8800988563907321413">Lalabas dito ang iyong mga suhestyon na malapit</translation>
+<translation id="8805819170075074995">Listahan ng entry na "<ph name="LANGUAGE_ID" />": Binalewala ang entry dahil kasama rin ito sa patakarang SpellcheckLanguage.</translation>
 <translation id="8820817407110198400">Mga Bookmark</translation>
 <translation id="883848425547221593">Iba Pang Mga Bookmark</translation>
 <translation id="884264119367021077">Shipping address</translation>
@@ -1410,10 +1410,10 @@
 <translation id="894185898663964645">Ang iyong administrator ay may mga naka-configure na custom na root certificate na maaaring payagan ang administrator na makita ang mga content ng mga website na binibisita mo.</translation>
 <translation id="8943282376843390568">Lime</translation>
 <translation id="8957210676456822347">Pagpapahintulot sa Captive Portal</translation>
-<translation id="8966619695390250636">Ang ibig mo bang sabihin ay?</translation>
 <translation id="8968766641738584599">I-save ang card</translation>
 <translation id="8971063699422889582">Nag-expire na ang certificate ng server.</translation>
 <translation id="8975012916872825179">May kasamang impormasyon tulad ng mga numero ng telepono, email address, at address sa pagpapadala</translation>
+<translation id="8975263830901772334">Mga pangalan ng mga file na pini-print mo</translation>
 <translation id="8978053250194585037">May <ph name="BEGIN_LINK" />na-detect na phishing<ph name="END_LINK" /> sa <ph name="SITE" /> kamakailan ang Ligtas na Pag-browse sa Google. Nagpapanggap ang mga phishing site bilang ibang website upang linlangin ka.</translation>
 <translation id="8983003182662520383">Mga Paraan ng Pagbabayad at Address Gamit ang Google Pay</translation>
 <translation id="8987927404178983737">Buwan</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index e4d08e1..22c84975 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">N° de téléphone</translation>
 <translation id="2283340219607151381">Enregistrer et renseigner les adresses</translation>
 <translation id="2292556288342944218">Votre accès à Internet est bloqué</translation>
-<translation id="2294558542833290837">Le lien que vous avez initialement ouvert est inhabituel</translation>
 <translation id="2297722699537546652">B5 (enveloppe)</translation>
 <translation id="2310021320168182093">Chou2 (enveloppe)</translation>
 <translation id="2316887270356262533">Libère moins de 1 Mo. Le chargement de certains sites risque d'être plus lent lors de votre prochaine visite.</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">Révision</translation>
 <translation id="366077651725703012">Mettre à jour la carte de crédit</translation>
 <translation id="3676592649209844519">ID de l'appareil :</translation>
-<translation id="3677008721441257057">Vouliez-vous accéder à &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; ?</translation>
 <translation id="3678029195006412963">Impossible de signer la demande</translation>
 <translation id="3678529606614285348">Ouvrir la page dans une nouvelle fenêtre de navigation privée (Ctrl+Maj+N)</translation>
 <translation id="3679803492151881375">Rapport d'erreur enregistré le <ph name="CRASH_TIME" /> et importé le <ph name="UPLOAD_TIME" /></translation>
@@ -1399,7 +1397,6 @@
 <translation id="894185898663964645">Votre administrateur a configuré des certificats racines personnalisés, qui peuvent permettre à l'administrateur de voir le contenu des sites Web que vous consultez.</translation>
 <translation id="8943282376843390568">Citron vert</translation>
 <translation id="8957210676456822347">Autorisation du portail captif</translation>
-<translation id="8966619695390250636">Essayez avec :</translation>
 <translation id="8968766641738584599">Enregistrer la carte</translation>
 <translation id="8971063699422889582">Le certificat du serveur a expiré.</translation>
 <translation id="8975012916872825179">Y compris les numéros de téléphone, les adresses e-mail et les adresses de livraison</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index ba26e60..43751a2 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">ફોન નંબર</translation>
 <translation id="2283340219607151381">સરનામાં સાચવો અને ભરો</translation>
 <translation id="2292556288342944218">તમારી ઇન્ટરનેટ ઍક્સેસ અવરોધિત છે</translation>
-<translation id="2294558542833290837">તમે મૂળરૂપે ખોલેલી લિંક અસામાન્ય છે</translation>
 <translation id="2297722699537546652">B5 (એન્વલપ)</translation>
 <translation id="2310021320168182093">Chou2 (એન્વલપ)</translation>
 <translation id="2316887270356262533">1 MB કરતાં ઓછું ખાલી કરે છે. તમારી આગલી મુલાકાત સમયે કેટલીક સાઇટો વધુ ધીમે લોડ થઈ શકે છે.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">પુનરાવર્તન</translation>
 <translation id="366077651725703012">ક્રેડિટ કાર્ડ અપડેટ કરો</translation>
 <translation id="3676592649209844519">ડિવાઇસ ID:</translation>
-<translation id="3677008721441257057">શું તમારો અર્થ &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; હતો?</translation>
 <translation id="3678029195006412963">વિનંતી પર સહી કરી શક્યાં નથી</translation>
 <translation id="3678529606614285348">એક નવી છુપી વિંડોમાં પેજ ખોલો (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> એ ક્રૅશ રિપોર્ટ કૅપ્ચર કરી અને <ph name="UPLOAD_TIME" /> એ અપલોડ કર્યો હતો</translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">તમારા વ્યવસ્થાપકે કસ્ટમ રૂટ પ્રમાણપત્રો ગોઠવ્યા છે, જે વ્યવસ્થાપકને તમે મુલાકાત લો તે વેબસાઇટના કન્ટેન્ટને જોવાની મંજૂરી આપી શકે છે.</translation>
 <translation id="8943282376843390568">લાઇમ</translation>
 <translation id="8957210676456822347">કૅપ્ટિવ પોર્ટલ પ્રમાણિત</translation>
-<translation id="8966619695390250636">શું તમારો અર્થ આ હતો?</translation>
 <translation id="8968766641738584599">કાર્ડ સાચવો</translation>
 <translation id="8971063699422889582">સર્વરના પ્રમાણપત્રની સમયસીમા સમાપ્ત થઈ છે.</translation>
 <translation id="8975012916872825179">ફોન નંબર, ઇમેઇલ ઍડ્રેસ અને શિપિંગ સરનામા જેવી માહિતીનો સમાવેશ છે</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index 4803ed4..2836942d 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -247,7 +247,6 @@
 <translation id="2270484714375784793">फ़ोन नंबर</translation>
 <translation id="2283340219607151381">पतों की जानकारी सेव करें और फ़ॉर्म में भरें</translation>
 <translation id="2292556288342944218">आपका इंटरनेट कनेक्शन अवरुद्ध है</translation>
-<translation id="2294558542833290837">आपने सबसे पहले जिस लिंक को खोला था, वह सामान्य लिंक नहीं है</translation>
 <translation id="2297722699537546652">बी5 (एन्वेलप)</translation>
 <translation id="2310021320168182093">शू2 (एन्वेलप)</translation>
 <translation id="2316887270356262533">1 MB से भी कम जगह खाली करता है. जब आप अगली बार विज़िट करेंगे तो, कुछ साइटें और धीमे लोड हो सकती हैं.</translation>
@@ -1404,7 +1403,6 @@
 <translation id="894185898663964645">आपके एडमिन ने कस्टम रूट सर्टिफ़िकेट कॉन्फ़िगर किए हैं, जो एडमिन को उन वेबसाइट की सामग्री देखने दे सकते हैं जिन पर आप जाते हैं.</translation>
 <translation id="8943282376843390568">नींबू पीला</translation>
 <translation id="8957210676456822347">कैप्‍टिव पोर्टल प्राधिकरण</translation>
-<translation id="8966619695390250636">क्या आपका मतलब यह था?</translation>
 <translation id="8968766641738584599">कार्ड सेव करें</translation>
 <translation id="8971063699422889582">सर्वर के प्रमाणपत्र की समय-सीमा समाप्त हो चुकी है.</translation>
 <translation id="8975012916872825179">फ़ोन नंबर, ईमेल पते और शिपिंग पते जैसी जानकारी शामिल है</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index e8a88c9..f9e3b94 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonski broj</translation>
 <translation id="2283340219607151381">Spremi i popuni adrese</translation>
 <translation id="2292556288342944218">Internetski je pristup blokiran</translation>
-<translation id="2294558542833290837">Veza koju ste prvobitno otvorili nije uobičajena</translation>
 <translation id="2297722699537546652">B5 (omotnica)</translation>
 <translation id="2310021320168182093">Chou2 (omotnica)</translation>
 <translation id="2316887270356262533">Oslobodit će se manje od 1 MB. Neke bi se web-lokacije pri sljedećem otvaranju mogle sporije učitavati.</translation>
@@ -496,7 +495,6 @@
 <translation id="3658742229777143148">Izmjena</translation>
 <translation id="366077651725703012">Ažuriraj kreditnu karticu</translation>
 <translation id="3676592649209844519">ID uređaja:</translation>
-<translation id="3677008721441257057">Jeste li mislili &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Zahtjev nije bilo moguće potpisati</translation>
 <translation id="3678529606614285348">Otvorite stranicu u novom anonimnom prozoru (Ctrl – Shift – N)</translation>
 <translation id="3679803492151881375">Izvješće o rušenju programa generirano u <ph name="CRASH_TIME" />, preneseno u <ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">Administrator je konfigurirao prilagođene korijenske certifikate, što mu može omogućiti da vidi sadržaj web-lokacija koje posjećujete.</translation>
 <translation id="8943282376843390568">Limeta</translation>
 <translation id="8957210676456822347">Autorizacija obaveznog portala za autentifikaciju</translation>
-<translation id="8966619695390250636">Jeste li mislili?</translation>
 <translation id="8968766641738584599">Spremanje kartice</translation>
 <translation id="8971063699422889582">Istekao je certifikat poslužitelja.</translation>
 <translation id="8975012916872825179">Sadrži podatke kao što su telefonski brojevi, e-adrese i adrese za dostavu</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index b5c1390..610b4ad 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonszám</translation>
 <translation id="2283340219607151381">Címek mentése és betöltése</translation>
 <translation id="2292556288342944218">Az internethez való hozzáférést a rendszer letiltotta</translation>
-<translation id="2294558542833290837">Az eredetileg megnyitott link szokatlan</translation>
 <translation id="2297722699537546652">B5 (boríték)</translation>
 <translation id="2310021320168182093">Chou2 (boríték)</translation>
 <translation id="2316887270356262533">1 MB-nál kevesebb hely szabadul fel. Előfordulhat, hogy egyes webhelyek lassabban töltődnek be, amikor legközelebb felkeresi őket.</translation>
@@ -495,7 +494,6 @@
 <translation id="3658742229777143148">Ellenőrzés</translation>
 <translation id="366077651725703012">Hitelkártya frissítése</translation>
 <translation id="3676592649209844519">Eszközazonosító:</translation>
-<translation id="3677008721441257057">Erre gondolt: &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">A kérést nem lehetett aláírni</translation>
 <translation id="3678529606614285348">Oldal megnyitása új inkognitóablakban (Ctrl+Shift+N)</translation>
 <translation id="3679803492151881375">A hibajelentés elkészítésének ideje: <ph name="CRASH_TIME" />; a feltöltés ideje: <ph name="UPLOAD_TIME" /></translation>
@@ -1409,7 +1407,6 @@
 <translation id="894185898663964645">A rendszergazda egyéni gyökérszintű tanúsítványokat állított be, amelyekkel láthatja az Ön által meglátogatott webhelyek tartalmát.</translation>
 <translation id="8943282376843390568">Limezöld</translation>
 <translation id="8957210676456822347">Hitelesítés hitelesítési portállal</translation>
-<translation id="8966619695390250636">Erre gondolt?</translation>
 <translation id="8968766641738584599">Kártya mentése</translation>
 <translation id="8971063699422889582">A szerver tanúsítványa lejárt.</translation>
 <translation id="8975012916872825179">Olyan adatokat tartalmaz, mint a telefonszámok, az e-mail-címek és a szállítási címek</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index 27f9ed2..d23acaa 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Nomor telepon</translation>
 <translation id="2283340219607151381">Simpan dan isi alamat</translation>
 <translation id="2292556288342944218">Akses Internet Anda diblokir</translation>
-<translation id="2294558542833290837">Link yang tadinya Anda buka tidak biasa</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Sediakan ruang kurang dari 1 MB. Beberapa situs mungkin dimuat lebih lambat dibuka lagi.</translation>
@@ -485,6 +484,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">Ukuran 2</translation>
+<translation id="361438452008624280">Entri daftar "<ph name="LANGUAGE_ID" />": Bahasa tidak dikenal atau tidak didukung.</translation>
 <translation id="3615877443314183785">Masukkan tanggal masa berlaku yang valid</translation>
 <translation id="36224234498066874">Hapus Data Browsing...</translation>
 <translation id="362276910939193118">Tampilkan Histori Lengkap</translation>
@@ -496,7 +496,6 @@
 <translation id="3658742229777143148">Revisi</translation>
 <translation id="366077651725703012">Perbarui Kartu Kredit</translation>
 <translation id="3676592649209844519">ID Perangkat:</translation>
-<translation id="3677008721441257057">Maksud Anda &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Permintaan tidak dapat ditandatangani</translation>
 <translation id="3678529606614285348">Buka halaman dalam Jendela samaran baru (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Laporan kerusakan direkam pada <ph name="CRASH_TIME" />, diupload pada <ph name="UPLOAD_TIME" /></translation>
@@ -1385,6 +1384,7 @@
 <translation id="8790007591277257123">&amp;Ulangi penghapusan</translation>
 <translation id="8792621596287649091">Anda dapat kehilangan akses ke akun <ph name="ORG_NAME" /> atau mengalami pencurian identitas. Chromium menyarankan Anda untuk mengubah sandi sekarang.</translation>
 <translation id="8800988563907321413">Saran terdekat muncul di sini</translation>
+<translation id="8805819170075074995">Entri daftar "<ph name="LANGUAGE_ID" />": Entri diabaikan karena entri tersebut juga disertakan dalam kebijakan SpellcheckLanguage.</translation>
 <translation id="8820817407110198400">Bookmark</translation>
 <translation id="883848425547221593">Bookmark Lain</translation>
 <translation id="884264119367021077">Alamat pengiriman</translation>
@@ -1405,10 +1405,10 @@
 <translation id="894185898663964645">Administrator telah mengonfigurasi root certificate kustom, yang dapat mengizinkan administrator melihat konten situs yang Anda buka.</translation>
 <translation id="8943282376843390568">Hijau limau</translation>
 <translation id="8957210676456822347">Otorisasi Portal Tawanan</translation>
-<translation id="8966619695390250636">Apakah yang Anda maksud?</translation>
 <translation id="8968766641738584599">Simpan kartu</translation>
 <translation id="8971063699422889582">Sertifikat server telah kedaluwarsa.</translation>
 <translation id="8975012916872825179">Termasuk informasi seperti nomor telepon, alamat email, dan alamat pengiriman</translation>
+<translation id="8975263830901772334">Nama file yang Anda cetak</translation>
 <translation id="8978053250194585037">Google Safe Browsing baru-baru ini <ph name="BEGIN_LINK" />mendeteksi phishing<ph name="END_LINK" /> di <ph name="SITE" />. Situs phishing berpura-pura menjadi situs lain untuk mengelabui Anda.</translation>
 <translation id="8983003182662520383">Metode Pembayaran dan Alamat yang Menggunakan Google Pay</translation>
 <translation id="8987927404178983737">Bulan</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index 82d8423..81ec540 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Numero di telefono</translation>
 <translation id="2283340219607151381">Salva e compila gli indirizzi</translation>
 <translation id="2292556288342944218">L'accesso a Internet è bloccato</translation>
-<translation id="2294558542833290837">Il link che hai aperto in partenza è insolito</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Consente di liberare meno di 1 MB. Alcuni siti potrebbero caricarsi più lentamente alla prossima visita.</translation>
@@ -494,7 +493,6 @@
 <translation id="3658742229777143148">Revisione</translation>
 <translation id="366077651725703012">Aggiorna carta di credito</translation>
 <translation id="3676592649209844519">ID dispositivo:</translation>
-<translation id="3677008721441257057">Forse intendevi &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Impossibile firmare la richiesta</translation>
 <translation id="3678529606614285348">Apri la pagina in un'altra finestra di navigazione in incognito (CTRL-MAIUSC-N)</translation>
 <translation id="3679803492151881375">Rapporto sugli arresti anomali generato in data <ph name="CRASH_TIME" />, caricato in data <ph name="UPLOAD_TIME" /></translation>
@@ -1406,7 +1404,6 @@
 <translation id="894185898663964645">L'amministratore ha configurato certificati radice personalizzati, che potrebbero consentirgli di vedere i contenuti dei siti web che visiti.</translation>
 <translation id="8943282376843390568">Giallo-verde</translation>
 <translation id="8957210676456822347">Autorizzazione Captive Portal</translation>
-<translation id="8966619695390250636">Forse cercavi:</translation>
 <translation id="8968766641738584599">Salva carta</translation>
 <translation id="8971063699422889582">Il certificato del server è scaduto.</translation>
 <translation id="8975012916872825179">Include informazioni come numeri di telefono, indirizzi email e indirizzi di spedizione</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index 089896f2..3481cec9 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">מספר טלפון</translation>
 <translation id="2283340219607151381">שמירה ומילוי של כתובות</translation>
 <translation id="2292556288342944218">הגישה לאינטרנט חסומה</translation>
-<translation id="2294558542833290837">הקישור המקורי שפתחת חריג</translation>
 <translation id="2297722699537546652">B5 (Envelope)‎</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)‎</translation>
 <translation id="2316887270356262533">‏פינוי של פחות מ-‎1 MB‎ מהשטח. ייתכן שחלק מהאתרים ייטענו לאט יותר בביקור הבא שלך.</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">גרסה קודמת</translation>
 <translation id="366077651725703012">עדכון כרטיס אשראי</translation>
 <translation id="3676592649209844519">מזהה מכשיר:</translation>
-<translation id="3677008721441257057">‏התכוונת לכתובת &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">לא ניתן היה לחתום על הבקשה</translation>
 <translation id="3678529606614285348">‏פתח את הדף בחלון חדש של גלישה בסתר (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">דוח קריסה תועד ב-<ph name="CRASH_TIME" />, הועלה ב-<ph name="UPLOAD_TIME" /></translation>
@@ -1405,7 +1403,6 @@
 <translation id="894185898663964645">מנהל המערכת הגדיר אישורי בסיס מותאמים אישית, וייתכן שיש לו אפשרות לראות את תוכן האתרים שנכנסת אליהם.</translation>
 <translation id="8943282376843390568">ליים</translation>
 <translation id="8957210676456822347">הרשאת פורטל חובה</translation>
-<translation id="8966619695390250636">האם התכוונת?</translation>
 <translation id="8968766641738584599">שמירת הכרטיס</translation>
 <translation id="8971063699422889582">פג תוקפו של אישור השרת.</translation>
 <translation id="8975012916872825179">כולל מידע כמו מספרי טלפון, כתובות אימייל וכתובות למשלוח</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index df8b859d..858520c 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">電話番号</translation>
 <translation id="2283340219607151381">住所の保存と入力</translation>
 <translation id="2292556288342944218">インターネット アクセスがブロックされています</translation>
-<translation id="2294558542833290837">最初に開いたリンクは通常とは異なります</translation>
 <translation id="2297722699537546652">B5(封筒)</translation>
 <translation id="2310021320168182093">長2(封筒)</translation>
 <translation id="2316887270356262533">最大で 1 MB を解放します。サイトによっては、次回アクセスする際に読み込みに時間がかかる可能性があります。</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">変更履歴</translation>
 <translation id="366077651725703012">クレジット カードを更新する</translation>
 <translation id="3676592649209844519">端末 ID:</translation>
-<translation id="3677008721441257057">もしかして: &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;</translation>
 <translation id="3678029195006412963">リクエストに署名できませんでした</translation>
 <translation id="3678529606614285348">ページを新しいシークレット ウィンドウで開く(Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> にクラッシュ レポートが作成され、<ph name="UPLOAD_TIME" /> にアップロードされました</translation>
@@ -1400,7 +1398,6 @@
 <translation id="894185898663964645">管理者がカスタムルート証明書を設定しています。管理者は、ユーザーがアクセスしたウェブサイトのコンテンツを表示できます。</translation>
 <translation id="8943282376843390568">ライム</translation>
 <translation id="8957210676456822347">キャプティブ ポータル認証</translation>
-<translation id="8966619695390250636">もしかして:</translation>
 <translation id="8968766641738584599">カードを保存</translation>
 <translation id="8971063699422889582">サーバーの証明書の有効期限が切れています。</translation>
 <translation id="8975012916872825179">電話番号、メールアドレス、配送先住所などの情報が含まれます</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 6c91245..66b9fa8d 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -250,7 +250,6 @@
 <translation id="2270484714375784793">ಫೋನ್ ಸಂಖ್ಯೆ</translation>
 <translation id="2283340219607151381">ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation>
 <translation id="2292556288342944218">ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
-<translation id="2294558542833290837">ನೀವು ಮೂಲತಃ ತೆರೆದಿರುವ ಲಿಂಕ್ ಅಸಹಜವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">1 MB ಕ್ಕಿಂತ ಕಡಿಮೆ ಇರುವುದನ್ನು ತೆಗೆದುಹಾಕಿ. ನಿಮ್ಮ ನಂತರದ ಭೇಟಿಯ ಸಮಯದಲ್ಲಿ ಕೆಲವು ಸೈಟ್‌ಗಳು ನಿಧಾನವಾಗಿ ಲೋಡ್ ಆಗಬಹುದು.</translation>
@@ -482,6 +481,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">ಗಾತ್ರ 2</translation>
+<translation id="361438452008624280">ಪಟ್ಟಿ ನಮೂದು "<ph name="LANGUAGE_ID" />": ಅಪರಿಚಿತ ಭಾಷೆ ಅಥವಾ ಬೆಂಬಲವಿಲ್ಲದ ಭಾಷೆ.</translation>
 <translation id="3615877443314183785">ಮಾನ್ಯವಾದ ಅವಧಿ-ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="36224234498066874">ಬ್ರೌಸ್ ಆಗುತ್ತಿರುವ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ...</translation>
 <translation id="362276910939193118">ಪೂರ್ಣ ಇತಿಹಾಸ ತೋರಿಸಿ</translation>
@@ -492,7 +492,6 @@
 <translation id="3658742229777143148">ಪರಿಷ್ಕರಣೆ</translation>
 <translation id="366077651725703012">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಮಾಹಿತಿಯನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ</translation>
 <translation id="3676592649209844519">ಸಾಧನದ ಐಡಿ:</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; ಎಂಬುದು ನಿಮ್ಮ ಮಾತಿನ ಅರ್ಥವೇ?</translation>
 <translation id="3678029195006412963">ವಿನಂತಿಗೆ ಸಹಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="3678529606614285348">ಪುಟವನ್ನು ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ವರದಿಯನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ, <ph name="UPLOAD_TIME" /> ಸಮಯಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
@@ -1384,6 +1383,7 @@
 <translation id="8790007591277257123">&amp;ಅಳಿಸುವುದನ್ನು ಮತ್ತೆಮಾಡು</translation>
 <translation id="8792621596287649091">ನಿಮ್ಮ <ph name="ORG_NAME" /> ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಗುರುತು ಕಳ್ಳತನಕ್ಕೆ ಒಳಗಾಗಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಇದೀಗ ಬದಲಾಯಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="8800988563907321413">ನಿಮ್ಮ ಸಮೀಪದ ವೆಬ್ ಪುಟದ ಸಲಹೆಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
+<translation id="8805819170075074995">ಪಟ್ಟಿ ನಮೂದು "<ph name="LANGUAGE_ID" />": ಈ ನಮೂದನ್ನು SpellcheckLanguage ಕಾರ್ಯನೀತಿಯಲ್ಲಿ ಸಹ ಸೇರಿಸಿರುವ ಕಾರಣ, ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation>
 <translation id="8820817407110198400">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
 <translation id="883848425547221593">ಇತರ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು:</translation>
 <translation id="884264119367021077">ಶಿಪ್ಪಿಂಗ್‌ ವಿಳಾಸ</translation>
@@ -1404,10 +1404,10 @@
 <translation id="894185898663964645">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕಸ್ಟಮ್ ರೂಟ್ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದಾರೆ, ಇದರಿಂದಾಗಿ ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿನ ವಿಷಯಗಳನ್ನು ನಿರ್ವಾಹಕರು ನೋಡಬಹುದು.</translation>
 <translation id="8943282376843390568">ನಿಂಬೆ ಹಳದಿ</translation>
 <translation id="8957210676456822347">ಕ್ಯಾಪ್ಟಿವ್ ಪೋರ್ಟಲ್ ದೃಢೀಕರಣ</translation>
-<translation id="8966619695390250636">ನೀವು ಹುಡುಕಿದ್ದು ಇದನ್ನೇ?</translation>
 <translation id="8968766641738584599">ಕಾರ್ಡ್‌ ಉಳಿಸಿ</translation>
 <translation id="8971063699422889582">ಸರ್ವರ್‌ನ ಪ್ರಕಮಾಣಪತ್ರದ ಅವಧಿ ಮುಕ್ತಾಯಗೊಂಡಿದೆ.</translation>
 <translation id="8975012916872825179">ಫೋನ್ ಸಂಖ್ಯೆಗಳು, ಇಮೇಲ್ ವಿಳಾಸಗಳು ಮತ್ತು ಶಿಪ್ಪಿಂಗ್ ವಿಳಾಸಗಳಂತಹ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ</translation>
+<translation id="8975263830901772334">ನೀವು ಮುದ್ರಿಸುವ ಫೈಲ್‌ಗಳ ಹೆಸರು</translation>
 <translation id="8978053250194585037">Google ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಇತ್ತೀಚೆಗೆ <ph name="SITE" /> ನಲ್ಲಿ <ph name="BEGIN_LINK" />ಫಿಶಿಂಗ್ ಪತ್ತೆಹಚ್ಚಿದೆ<ph name="END_LINK" />. ಫಿಶಿಂಗ್ ಸೈಟ್‌ಗಳು ನಿಮ್ಮನ್ನು ಮೋಸಗೊಳಿಸಲು ಇತರ ಸೈಟ್‌ಗಳಂತೆ ನಟಿಸುತ್ತವೆ.</translation>
 <translation id="8983003182662520383">Google Pay ಅನ್ನು ಬಳಸುವ ಪಾವತಿ ವಿಧಾನಗಳು ಮತ್ತು ವಿಳಾಸಗಳು</translation>
 <translation id="8987927404178983737">ತಿಂಗಳು</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index f1539ebd..514cf43d 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">전화번호</translation>
 <translation id="2283340219607151381">주소 저장 및 자동 입력</translation>
 <translation id="2292556288342944218">인터넷 액세스가 차단됨</translation>
-<translation id="2294558542833290837">처음에 열어본 링크가 비정상적입니다.</translation>
 <translation id="2297722699537546652">B5(봉투)</translation>
 <translation id="2310021320168182093">Chou2(봉투)</translation>
 <translation id="2316887270356262533">1MB 미만의 저장용량을 확보합니다. 일부 사이트는 다음 방문 시 로드 속도가 느려질 수 있습니다.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">개정</translation>
 <translation id="366077651725703012">신용카드 정보 업데이트</translation>
 <translation id="3676592649209844519">기기 ID:</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;을(를) 찾으셨나요?</translation>
 <translation id="3678029195006412963">요청을 서명할 수 없음</translation>
 <translation id="3678529606614285348">새 시크릿 창에서 페이지 열기(Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" />에 캡처된 비정상 종료 보고서가 <ph name="UPLOAD_TIME" />에 업로드됨</translation>
@@ -1409,7 +1407,6 @@
 <translation id="894185898663964645">관리자가 맞춤 루트 인증서를 구성했으며, 이로 인해 관리자가 내가 방문하는 웹사이트의 콘텐츠를 볼 수 있습니다.</translation>
 <translation id="8943282376843390568">라임색</translation>
 <translation id="8957210676456822347">캡티브 포털 승인</translation>
-<translation id="8966619695390250636">이 URL을 찾으셨나요?</translation>
 <translation id="8968766641738584599">카드 저장</translation>
 <translation id="8971063699422889582">서버 인증서가 만료되었습니다.</translation>
 <translation id="8975012916872825179">전화번호, 이메일 주소, 배송지 주소 등의 정보를 포함합니다.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index 4083fd33..a664e78 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefono numeris</translation>
 <translation id="2283340219607151381">Išsaugoti ir užpildyti adresus</translation>
 <translation id="2292556288342944218">Interneto prieiga užblokuota</translation>
-<translation id="2294558542833290837">Pradinė atidaryta nuoroda neįprasta</translation>
 <translation id="2297722699537546652">B5 (vokas)</translation>
 <translation id="2310021320168182093">„Chou2“ (vokas)</translation>
 <translation id="2316887270356262533">Atlaisvina mažiau nei 1 MB. Per kitą jūsų apsilankymą kai kurios svetainės gali būti įkeliamos lėčiau.</translation>
@@ -499,7 +498,6 @@
 <translation id="3658742229777143148">Peržiūrėtas ir pataisytas leidimas</translation>
 <translation id="366077651725703012">Atnaujinti kredito kortelę</translation>
 <translation id="3676592649209844519">Įrenginio ID:</translation>
-<translation id="3677008721441257057">Ar norėjote apsilankyti &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Nepavyko pasirašyti užklausos</translation>
 <translation id="3678529606614285348">Atidarykite puslapį naujame inkognito lange („Ctrl“ – „Shift“ – N)</translation>
 <translation id="3679803492151881375">Strigčių ataskaita užfiksuota <ph name="CRASH_TIME" />, įkelta <ph name="UPLOAD_TIME" /></translation>
@@ -1414,7 +1412,6 @@
 <translation id="894185898663964645">Administratorius sukonfigūravo tinkintus šakninius sertifikatus, kurie gali leisti jam peržiūrėti svetainių, kuriose lankotės, turinį.</translation>
 <translation id="8943282376843390568">Žaliųjų citrinų spalva</translation>
 <translation id="8957210676456822347">Fiksuotojo portalo autorizavimas</translation>
-<translation id="8966619695390250636">Turėjote omenyje?</translation>
 <translation id="8968766641738584599">Išsaugoti kortelę</translation>
 <translation id="8971063699422889582">Baigėsi serverio sertifikato galiojimo laikas.</translation>
 <translation id="8975012916872825179">Įtraukiama tokia informacija kaip telefono numeriai, el. pašto adresai ir pristatymo adresai</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index a7997a5..8604533d 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -247,7 +247,6 @@
 <translation id="2270484714375784793">Tālruņa numurs</translation>
 <translation id="2283340219607151381">Saglabāt un aizpildīt adreses</translation>
 <translation id="2292556288342944218">Piekļuve internetam ir bloķēta</translation>
-<translation id="2294558542833290837">Saite, ko sākotnēji atvērāt, ir neparasta</translation>
 <translation id="2297722699537546652">B5 (aploksne)</translation>
 <translation id="2310021320168182093">Chou2 (aploksne)</translation>
 <translation id="2316887270356262533">Tiks atbrīvots mazāk nekā 1 MB. Dažas vietnes nākamajā apmeklējumā var ielādēt lēnāk.</translation>
@@ -489,7 +488,6 @@
 <translation id="3658742229777143148">Pārskatīšana</translation>
 <translation id="366077651725703012">Kredītkartes informācijas atjaunināšana</translation>
 <translation id="3676592649209844519">Ierīces ID:</translation>
-<translation id="3677008721441257057">Vai jūs domājāt &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Pieprasījumu nevarēja parakstīt.</translation>
 <translation id="3678529606614285348">Atvērt lapu jaunā inkognito režīma logā (Ctrl+Shift+N)</translation>
 <translation id="3679803492151881375">Avāriju pārskats tverts: <ph name="CRASH_TIME" />; augšupielādēts: <ph name="UPLOAD_TIME" /></translation>
@@ -1400,7 +1398,6 @@
 <translation id="894185898663964645">Administrators ir konfigurējis pielāgotus saknes sertifikātus, kas, iespējams, ļauj administratoram skatīt apmeklēto vietņu saturu.</translation>
 <translation id="8943282376843390568">Laima zaļa</translation>
 <translation id="8957210676456822347">Caurlaides lapas autorizācija</translation>
-<translation id="8966619695390250636">Vai bija domāts?</translation>
 <translation id="8968766641738584599">Saglabāt karti</translation>
 <translation id="8971063699422889582">Servera sertifikātam ir beidzies derīguma termiņš.</translation>
 <translation id="8975012916872825179">Iekļauta tāda informācija kā tālruņa numuri, e-pasta un piegādes adreses</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 23440ed..4ec3c5e 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">ഫോൺ നമ്പർ</translation>
 <translation id="2283340219607151381">വിലാസങ്ങൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation>
 <translation id="2292556288342944218">നിങ്ങളുടെ ഇന്റർനെറ്റ് ആക്‌സസ്സ് ബ്ലോക്കുചെയ്‌തു</translation>
-<translation id="2294558542833290837">നിങ്ങൾ യഥാർത്ഥത്തിൽ തുറന്ന ലിങ്ക് അസാധാരണമായതാണ്</translation>
 <translation id="2297722699537546652">B5 (എൻവലപ്പ്)</translation>
 <translation id="2310021320168182093">Chou2 (എൻവലപ്പ്)</translation>
 <translation id="2316887270356262533">1 MB-യിൽ കുറഞ്ഞ ഡാറ്റ ലാഭിക്കുന്നു. അടുത്തതവണ നിങ്ങൾ സന്ദർശിക്കുമ്പോൾ ചില സൈറ്റുകൾ ഇതിനേക്കാൾ പതുക്കെ ലോഡാകാം.</translation>
@@ -488,7 +487,6 @@
 <translation id="3658742229777143148">പുനരവലോകനം</translation>
 <translation id="366077651725703012">ക്രെഡിറ്റ് കാർഡ് അപ്‌ഡേറ്റ് ചെയ്യുക</translation>
 <translation id="3676592649209844519">ഉപകരണ ഐഡി:</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; എന്നാണോ ഉദ്ദേശിച്ചത്?</translation>
 <translation id="3678029195006412963">അഭ്യർത്ഥന സൈൻ ചെയ്യാനായില്ല</translation>
 <translation id="3678529606614285348">പുതിയ അദൃശ്യ വിൻഡോയിൽ പേജ് തുറക്കുക (കൺട്രോൾ-ഷിഫ്റ്റ്-N)</translation>
 <translation id="3679803492151881375">ക്രാഷ് റിപ്പോർട്ട് <ph name="CRASH_TIME" />-ന് ക്യാപ്‌ചർ ചെയ്‌ത്, <ph name="UPLOAD_TIME" />-ന് അപ്‌ലോഡുചെയ്‌തു</translation>
@@ -1395,7 +1393,6 @@
 <translation id="894185898663964645">നിങ്ങളുടെ അഡ്‌മിനിസ്ട്രേറ്റർ ഇഷ്‌ടാനുസൃത റൂട്ട് സർട്ടിഫിക്കറ്റുകൾ കോൺഫിഗർ ചെയ്‌തിട്ടുണ്ട്, അത് വെബ്‌സൈറ്റുകളുടെ ഉള്ളടക്കം കാണാൻ അഡ്‌മിനിസ്ട്രേറ്ററെ അനുവദിച്ചേക്കാം.</translation>
 <translation id="8943282376843390568">ചെറുനാരങ്ങയുടെ നിറം</translation>
 <translation id="8957210676456822347">ക്യാപ്‌റ്റീവ് പോർട്ടൽ അംഗീകരിക്കൽ</translation>
-<translation id="8966619695390250636">ഇതാണോ നിങ്ങള്‍ ഉദ്ദേശിച്ചത്?</translation>
 <translation id="8968766641738584599">കാർഡ് സംരക്ഷിക്കുക</translation>
 <translation id="8971063699422889582">സെര്‍വറിന്‍റെ സര്‍ട്ടിഫിക്കറ്റ് കാലഹരണപ്പെട്ടു.</translation>
 <translation id="8975012916872825179">ഫോൺ നമ്പറുകൾ, ഇമെയിൽ വിലാസങ്ങൾ, ഷിപ്പിംഗ് വിലാസങ്ങൾ എന്നിവ പോലുള്ള വിവരങ്ങൾ ഉൾപ്പെടുന്നു</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 9906bb935..cb6b76cb 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">फोन नंबर</translation>
 <translation id="2283340219607151381">पत्ते भरा आणि सेव्ह करा</translation>
 <translation id="2292556288342944218">तुमचा इंटरनेट प्रवेश अवरोधित केला आहे</translation>
-<translation id="2294558542833290837">तुम्ही मुळात उघडलेली लिंक असाधारण आहे</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">1 MB पेक्षा कमी जागा मोकळी करते. काही साइट तुमच्या पुढील भेटीच्या वेळी आणखी धीम्या गतीने लोड होऊ शकतात.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">पुनरावृत्ती</translation>
 <translation id="366077651725703012">क्रेडिट कार्ड अपडेट करा</translation>
 <translation id="3676592649209844519">डिव्हाइस आयडी:</translation>
-<translation id="3677008721441257057">तुम्हाला &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; म्हणायचे आहे का?</translation>
 <translation id="3678029195006412963">विनंती स्वाक्षरीकृत करणे शक्य झाले नाही</translation>
 <translation id="3678529606614285348">पेज एका नवीन गुप्त विंडोमध्ये उघडा (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">क्रॅश अहवाल <ph name="CRASH_TIME" /> वाजता कॅप्चर केला, <ph name="UPLOAD_TIME" /> वाजता अपलोड केला</translation>
@@ -1412,7 +1410,6 @@
 <translation id="894185898663964645">तुमच्या अ‍ॅडमिनिस्ट्रेटरने कस्टम रूट सर्टिफिकेट कॉन्फिगर केली आहेत, ज्यामुळे अ‍ॅडमिनिस्ट्रेटरला तुम्ही भेट देत असलेल्या वेबसाइटचे आशय पाहण्यास अनुमती मिळू शकते.</translation>
 <translation id="8943282376843390568">लिंबू</translation>
 <translation id="8957210676456822347">बंद पोर्टल प्राधिकृतता</translation>
-<translation id="8966619695390250636">तुम्हाला असे म्हणायचे होते काय?</translation>
 <translation id="8968766641738584599">कार्ड सेव्ह करा</translation>
 <translation id="8971063699422889582">सर्व्हरचे सर्टिफिकेट एक्स्पायर झाले आहे.</translation>
 <translation id="8975012916872825179">फोन नंबर, ईमेल अॅड्रेस आणि शिपिंग पत्ते यांसारखी माहिती समाविष्ट आहे</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 49c42aa..b97c4a3 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Nombor telefon</translation>
 <translation id="2283340219607151381">Simpan dan lengkapkan alamat</translation>
 <translation id="2292556288342944218">Akses Internet anda disekat</translation>
-<translation id="2294558542833290837">Pautan yang anda buka pada asalnya luar daripada kebiasaan</translation>
 <translation id="2297722699537546652">B5 (Sampul Surat)</translation>
 <translation id="2310021320168182093">Chou2 (Sampul Surat)</translation>
 <translation id="2316887270356262533">Mengosongkan kurang daripada 1 MB. Sesetengah tapak mungkin dimuatkan dengan lebih perlahan pada lawatan anda yang seterusnya.</translation>
@@ -491,7 +490,6 @@
 <translation id="3658742229777143148">Semakan</translation>
 <translation id="366077651725703012">Kemas Kini Kad Kredit</translation>
 <translation id="3676592649209844519">ID peranti:</translation>
-<translation id="3677008721441257057">Adakah anda maksudkan &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Permintaan tidak dapat ditandatangani</translation>
 <translation id="3678529606614285348">Buka halaman dalam tetingkap Inkognito baharu (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Laporan ranap sistem dirakam pada <ph name="CRASH_TIME" />, dimuat naik pada <ph name="UPLOAD_TIME" /></translation>
@@ -1402,7 +1400,6 @@
 <translation id="894185898663964645">Pentadbir anda telah mengkonfigurasikan sijil akar tersuai, yang mungkin membolehkan pentadbir anda melihat kandungan tapak web yang anda lawati.</translation>
 <translation id="8943282376843390568">Hijau pucuk pisang</translation>
 <translation id="8957210676456822347">Keizinan Portal Tawanan</translation>
-<translation id="8966619695390250636">Adakah anda maksudkan?</translation>
 <translation id="8968766641738584599">Simpan kad</translation>
 <translation id="8971063699422889582">Sijil pelayan telah tamat tempoh.</translation>
 <translation id="8975012916872825179">Merangkumi maklumat seperti nombor telefon, alamat e-mel dan alamat penghantaran</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 5682ad7..5fab9487 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Telefoonnummer</translation>
 <translation id="2283340219607151381">Adressen opslaan en invullen</translation>
 <translation id="2292556288342944218">Je toegang tot internet wordt geblokkeerd</translation>
-<translation id="2294558542833290837">De link die je oorspronkelijk hebt geopend, is ongebruikelijk</translation>
 <translation id="2297722699537546652">B5 (envelop)</translation>
 <translation id="2310021320168182093">Chou2 (envelop)</translation>
 <translation id="2316887270356262533">Hiermee wordt minder dan 1 MB vrijgemaakt. Sommige sites kunnen langzamer worden geladen wanneer je ze weer bezoekt.</translation>
@@ -484,7 +483,6 @@
 <translation id="3658742229777143148">Revisie</translation>
 <translation id="366077651725703012">Creditcard updaten</translation>
 <translation id="3676592649209844519">Apparaat-ID:</translation>
-<translation id="3677008721441257057">Bedoelde je &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Verzoek kan niet worden ondertekend</translation>
 <translation id="3678529606614285348">Pagina openen in een nieuw incognitovenster (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Crashrapport vastgelegd op <ph name="CRASH_TIME" />, geüpload op <ph name="UPLOAD_TIME" /></translation>
@@ -1393,7 +1391,6 @@
 <translation id="894185898663964645">Je beheerder heeft custom rootcertificaten geconfigureerd, waardoor de beheerder mogelijk de content kan bekijken van websites die je bezoekt.</translation>
 <translation id="8943282376843390568">Limoengroen</translation>
 <translation id="8957210676456822347">Autorisatie van captive portal</translation>
-<translation id="8966619695390250636">Bedoelde je?</translation>
 <translation id="8968766641738584599">Kaart opslaan</translation>
 <translation id="8971063699422889582">Het servercertificaat is verlopen.</translation>
 <translation id="8975012916872825179">Inclusief informatie als telefoonnummers, e-mailadressen en verzendadressen</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 24f9aa0c..579abba 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonnummer</translation>
 <translation id="2283340219607151381">Lagre og fyll inn adresser</translation>
 <translation id="2292556288342944218">Internett-tilgangen din er blokkert</translation>
-<translation id="2294558542833290837">Linken du opprinnelig åpnet, er uvanlig</translation>
 <translation id="2297722699537546652">B5 (konvolutt)</translation>
 <translation id="2310021320168182093">Chou2 (konvolutt)</translation>
 <translation id="2316887270356262533">Frigjør mindre enn 1 MB. Det kan hende enkelte nettsteder lastes inn tregere neste gang du besøker dem.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Versjon</translation>
 <translation id="366077651725703012">Oppdater kredittkortet</translation>
 <translation id="3676592649209844519">Enhets-ID:</translation>
-<translation id="3677008721441257057">Mente du &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Forespørselen kunne ikke undertegnes</translation>
 <translation id="3678529606614285348">Åpne siden i et nytt inkognitovindu (Ctrl + Shift + N)</translation>
 <translation id="3679803492151881375">Programstopprapport generert <ph name="CRASH_TIME" /> og lastet opp <ph name="UPLOAD_TIME" /></translation>
@@ -1409,7 +1407,6 @@
 <translation id="894185898663964645">Administratoren din har konfigurert tilpassede rotsertifikater, noe som betyr at vedkommende kanskje kan se innholdet på nettsteder du besøker.</translation>
 <translation id="8943282376843390568">Limegrønn</translation>
 <translation id="8957210676456822347">Captive Portal-autorisasjon</translation>
-<translation id="8966619695390250636">Mente du dette?</translation>
 <translation id="8968766641738584599">Lagre kortet</translation>
 <translation id="8971063699422889582">Tjenerens sertifikat er utløpt.</translation>
 <translation id="8975012916872825179">Inkluderer informasjon som telefonnumre, e-postadresser og leveringsadresser</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index b238433..3a5ed9b 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Numer telefonu</translation>
 <translation id="2283340219607151381">Zapisuj i automatycznie uzupełniaj adresy</translation>
 <translation id="2292556288342944218">Masz zablokowany dostęp do internetu</translation>
-<translation id="2294558542833290837">Link, który chcesz otworzyć, wygląda nietypowo</translation>
 <translation id="2297722699537546652">B5 (koperta)</translation>
 <translation id="2310021320168182093">Chou2 (koperta)</translation>
 <translation id="2316887270356262533">Zwolni się mniej niż 1 MB. Podczas następnej wizyty niektóre strony mogą ładować się wolniej.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Wersja</translation>
 <translation id="366077651725703012">Zaktualizuj kartę kredytową</translation>
 <translation id="3676592649209844519">Identyfikator urządzenia:</translation>
-<translation id="3677008721441257057">Czy chodziło Ci o &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Nie udało się podpisać żądania</translation>
 <translation id="3678529606614285348">Otwórz stronę w nowym oknie incognito (Ctrl+Shift+N)</translation>
 <translation id="3679803492151881375">Raport o awarii zarejestrowano: <ph name="CRASH_TIME" />, przesłano: <ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">Administrator skonfigurował niestandardowe certyfikaty główne, które mogą umożliwiać mu wgląd w treści stron, które otwierasz.</translation>
 <translation id="8943282376843390568">Limonkowy</translation>
 <translation id="8957210676456822347">Autoryzacja portalu przechwytującego</translation>
-<translation id="8966619695390250636">Czy chodziło Ci o to?</translation>
 <translation id="8968766641738584599">Zapisz kartę</translation>
 <translation id="8971063699422889582">Ważność certyfikatu serwera wygasła.</translation>
 <translation id="8975012916872825179">Obejmuje numery telefonów, adresy e-mail i adresy dostawy</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 082b65ed..c89a2ea 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Número do telefone</translation>
 <translation id="2283340219607151381">Salvar e preencher endereços</translation>
 <translation id="2292556288342944218">O seu acesso à Internet está bloqueado</translation>
-<translation id="2294558542833290837">O link que você abriu originalmente é incomum</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Libera menos de 1 MB. O carregamento de alguns sites pode ficar mais lento no seu próximo acesso.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Revisão</translation>
 <translation id="366077651725703012">Atualizar cartão de crédito</translation>
 <translation id="3676592649209844519">Código do dispositivo:</translation>
-<translation id="3677008721441257057">Você quis dizer &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Não foi possível assinar a solicitação</translation>
 <translation id="3678529606614285348">Abrir página em uma nova janela anônima (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Relatório de erros registrado em <ph name="CRASH_TIME" />, enviado em <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">Seu administrador configurou certificados raiz personalizados, o que pode permitir que ele veja o conteúdo dos sites que você visita.</translation>
 <translation id="8943282376843390568">Verde-limão</translation>
 <translation id="8957210676456822347">Autorização de portal cativo</translation>
-<translation id="8966619695390250636">Você quis dizer?</translation>
 <translation id="8968766641738584599">Salvar cartão</translation>
 <translation id="8971063699422889582">O certificado do servidor expirou.</translation>
 <translation id="8975012916872825179">Inclui informações como números de telefone, endereços de e-mail e endereços de entrega</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index 21e0b71..6b915bc1 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Número de telefone</translation>
 <translation id="2283340219607151381">Guardar e preencher endereços</translation>
 <translation id="2292556288342944218">O acesso à Internet está bloqueado</translation>
-<translation id="2294558542833290837">O link que abriu inicialmente é pouco habitual.</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Liberta menos de 1 MB. É possível que alguns sites sejam carregados mais lentamente na sua próxima visita.</translation>
@@ -486,6 +485,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">Tamanho 2</translation>
+<translation id="361438452008624280">Entrada da lista "<ph name="LANGUAGE_ID" />": idioma desconhecido ou não suportado.</translation>
 <translation id="3615877443314183785">Introduza uma data de expiração válida</translation>
 <translation id="36224234498066874">Limpar dados de navegação...</translation>
 <translation id="362276910939193118">Mostrar histórico completo</translation>
@@ -497,7 +497,6 @@
 <translation id="3658742229777143148">Revisão</translation>
 <translation id="366077651725703012">Atualizar cartão de crédito</translation>
 <translation id="3676592649209844519">ID do dispositivo:</translation>
-<translation id="3677008721441257057">Será que quis dizer &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Não foi possível assinar o pedido</translation>
 <translation id="3678529606614285348">Abrir a página numa nova janela de navegação anónima (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Relatório de falhas capturado no(a) <ph name="CRASH_TIME" /> e carregado no(a) <ph name="UPLOAD_TIME" /></translation>
@@ -1390,6 +1389,7 @@
 <translation id="8790007591277257123">&amp;Refazer eliminação</translation>
 <translation id="8792621596287649091">Pode perder o acesso à sua conta do serviço <ph name="ORG_NAME" /> ou ser vítima de roubo de identidade. O Chromium recomenda a alteração da palavra-passe agora.</translation>
 <translation id="8800988563907321413">As sugestões próximas aparecem aqui</translation>
+<translation id="8805819170075074995">Entrada da lista "<ph name="LANGUAGE_ID" />": a entrada foi ignorada porque também está incluída na política SpellcheckLanguage.</translation>
 <translation id="8820817407110198400">Marcadores</translation>
 <translation id="883848425547221593">Outros marcadores</translation>
 <translation id="884264119367021077">Endereço para envio</translation>
@@ -1410,10 +1410,10 @@
 <translation id="894185898663964645">O seu administrador configurou certificados de raiz personalizados, os quais podem permitir ao administrador ver os conteúdos dos Websites que visita.</translation>
 <translation id="8943282376843390568">Lima</translation>
 <translation id="8957210676456822347">Autorização de portal cativo</translation>
-<translation id="8966619695390250636">Será que quis dizer...?</translation>
 <translation id="8968766641738584599">Guardar cartão</translation>
 <translation id="8971063699422889582">O certificado do servidor expirou.</translation>
 <translation id="8975012916872825179">Inclui informações como números de telefone, endereços de email e moradas para envio</translation>
+<translation id="8975263830901772334">Nomes dos ficheiros impressos</translation>
 <translation id="8978053250194585037">A Navegação segura do Google <ph name="BEGIN_LINK" />detetou phishing<ph name="END_LINK" /> recentemente em <ph name="SITE" />. Os sites de phishing simulam ser outros Websites para o enganar.</translation>
 <translation id="8983003182662520383">Métodos de pagamento e endereços com o Google Pay</translation>
 <translation id="8987927404178983737">Mês</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 9d12f0c..915e56e 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Număr telefon</translation>
 <translation id="2283340219607151381">Salvează și completează adresele</translation>
 <translation id="2292556288342944218">Accesul la internet este blocat</translation>
-<translation id="2294558542833290837">Linkul pe care l-ai deschis inițial este neobișnuit</translation>
 <translation id="2297722699537546652">B5 (Plic)</translation>
 <translation id="2310021320168182093">Chou2 (Plic)</translation>
 <translation id="2316887270356262533">Eliberează mai puțin de 1 MB. Este posibil ca unele site-uri să se încarce mai lent la următoarea accesare.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Versiune</translation>
 <translation id="366077651725703012">Actualizează cardul de credit</translation>
 <translation id="3676592649209844519">ID dispozitiv:</translation>
-<translation id="3677008721441257057">Ai vrut să accesezi &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Solicitarea nu a putut fi semnată</translation>
 <translation id="3678529606614285348">Deschide pagina într-o fereastră incognito nouă (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Raport de blocare creat <ph name="CRASH_TIME" /> și încărcat <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">Administratorul a configurat certificate rădăcină personalizate, care îi pot permite să vadă conținutul site-urilor pe care le accesezi.</translation>
 <translation id="8943282376843390568">Verde-gălbui</translation>
 <translation id="8957210676456822347">Autorizarea prin portalul captiv</translation>
-<translation id="8966619695390250636">Rezultate aproximative</translation>
 <translation id="8968766641738584599">Salvează cardul</translation>
 <translation id="8971063699422889582">Certificatul serverului a expirat.</translation>
 <translation id="8975012916872825179">Include informații precum numerele de telefon, adresele de e-mail și adresele de expediere</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 2a434b8..7eb7fcc 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Номер телефона</translation>
 <translation id="2283340219607151381">Сохранять и автоматически подставлять адреса</translation>
 <translation id="2292556288342944218">Доступ в Интернет закрыт</translation>
-<translation id="2294558542833290837">Первоначально открытая вами ссылка выглядит необычно</translation>
 <translation id="2297722699537546652">B5 (конверт)</translation>
 <translation id="2310021320168182093">Chou2 (конверт)</translation>
 <translation id="2316887270356262533">Освободится менее 1 МБ пространства. После этого некоторые веб-страницы могут загружаться дольше обычного.</translation>
@@ -488,7 +487,6 @@
 <translation id="3658742229777143148">Версия</translation>
 <translation id="366077651725703012">Изменить данные кредитной карты</translation>
 <translation id="3676592649209844519">Идентификатор устройства:</translation>
-<translation id="3677008721441257057">Возможно, вы хотели открыть сайт &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Не удалось подписать запрос</translation>
 <translation id="3678529606614285348">Открыть страницу в новом окне в режиме инкогнито (Ctrl + Shift + N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" />: отчет о сбоях сохранен. <ph name="UPLOAD_TIME" />: отчет о сбоях загружен.</translation>
@@ -1398,7 +1396,6 @@
 <translation id="894185898663964645">Ваш администратор настроил корневые сертификаты, позволяющие ему просматривать контент посещенных вами сайтов.</translation>
 <translation id="8943282376843390568">Лаймовый</translation>
 <translation id="8957210676456822347">Авторизация через адаптивный портал</translation>
-<translation id="8966619695390250636">Вы не ошиблись?</translation>
 <translation id="8968766641738584599">Сохранить карту</translation>
 <translation id="8971063699422889582">Сертификат сервера устарел.</translation>
 <translation id="8975012916872825179">В том числе телефонные номера, адреса электронной почты и адреса доставки.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 0575e53..bedc61d 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">Telefónne číslo</translation>
 <translation id="2283340219607151381">Ukladať a dopĺňať adresy</translation>
 <translation id="2292556288342944218">Váš prístup k internetu je blokovaný</translation>
-<translation id="2294558542833290837">Pôvodne otvorený odkaz je nezvyčajný</translation>
 <translation id="2297722699537546652">B5 (obálka)</translation>
 <translation id="2310021320168182093">Chou2 (obálka)</translation>
 <translation id="2316887270356262533">Uvoľní menej ako 1 MB. Niektoré weby sa môžu pri ďalšej návšteve načítať pomalšie.</translation>
@@ -485,7 +484,6 @@
 <translation id="3658742229777143148">Verzia</translation>
 <translation id="366077651725703012">Aktualizovať kreditnú kartu</translation>
 <translation id="3676592649209844519">ID zariadenia:</translation>
-<translation id="3677008721441257057">Mysleli ste doménu &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Požiadavku sa nepodarilo podpísať</translation>
 <translation id="3678529606614285348">Otvorte stránku v novom okne inkognito (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Správa o zlyhaní zaznamenaná v čase <ph name="CRASH_TIME" /> bola nahraná o <ph name="UPLOAD_TIME" /></translation>
@@ -1395,7 +1393,6 @@
 <translation id="894185898663964645">Váš správca nakonfiguroval vlastné koreňové certifikáty, ktoré mu môžu umožniť zobrazovať obsah vami navštevovaných webov.</translation>
 <translation id="8943282376843390568">Limetková</translation>
 <translation id="8957210676456822347">Autorizácia portálu na prihlásenie do siete</translation>
-<translation id="8966619695390250636">Mysleli ste?</translation>
 <translation id="8968766641738584599">Uložiť kartu</translation>
 <translation id="8971063699422889582">Platnosť certifikátu servera vypršala.</translation>
 <translation id="8975012916872825179">Zahŕňa informácie, ako sú napríklad telefónne čísla, e‑maily a dodacie adresy</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index aa3f6e2..5314e8e3 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonska številka</translation>
 <translation id="2283340219607151381">Shranjevanje in izpolnjevanje naslovov</translation>
 <translation id="2292556288342944218">Internetni dostop je blokiran</translation>
-<translation id="2294558542833290837">Povezava, ki ste jo prvotno odprli, je nenavadna</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">Sprosti manj kot 1 MB. Nekatera spletna mesta se bodo ob naslednjem obisku morda počasneje naložila.</translation>
@@ -486,6 +485,7 @@
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">Velikost 2</translation>
+<translation id="361438452008624280">Vnos na seznamu »<ph name="LANGUAGE_ID" />«: neznan ali nepodprt jezik.</translation>
 <translation id="3615877443314183785">Vnesite veljaven datum poteka veljavnosti</translation>
 <translation id="36224234498066874">Izbriši podatke brskanja ...</translation>
 <translation id="362276910939193118">Prikaži celotno zgodovino</translation>
@@ -497,7 +497,6 @@
 <translation id="3658742229777143148">Različica</translation>
 <translation id="366077651725703012">Posodobi kreditno kartico</translation>
 <translation id="3676592649209844519">ID naprave:</translation>
-<translation id="3677008721441257057">Ali ste mislili &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Zahteve ni bilo mogoče podpisati</translation>
 <translation id="3678529606614285348">Odpiranje strani v novem oknu brez beleženja zgodovine (Ctrl + Shift + N)</translation>
 <translation id="3679803492151881375">Poročilo o zrušitvi je bilo zajeto takrat: <ph name="CRASH_TIME" />, naloženo takrat: <ph name="UPLOAD_TIME" /></translation>
@@ -1390,6 +1389,7 @@
 <translation id="8790007591277257123">&amp;Uveljavi izbris</translation>
 <translation id="8792621596287649091">Izgubite lahko dostop do računa za <ph name="ORG_NAME" /> ali postanete žrtev kraje identitete. Chromium priporoča, da spremenite geslo.</translation>
 <translation id="8800988563907321413">Tu so prikazani predlogi v bližini</translation>
+<translation id="8805819170075074995">Vnos na seznamu »<ph name="LANGUAGE_ID" />«: vnos je prezrt, ker je vključen tudi v pravilnik SpellcheckLanguage.</translation>
 <translation id="8820817407110198400">Zaznamki</translation>
 <translation id="883848425547221593">Drugi zaznamki</translation>
 <translation id="884264119367021077">Naslov za pošiljanje</translation>
@@ -1410,10 +1410,10 @@
 <translation id="894185898663964645">Skrbnik je konfiguriral korenska potrdila po meri, ki skrbniku morda omogočajo ogled vsebine spletnih mest, ki jih obiščete.</translation>
 <translation id="8943282376843390568">Rumenozelena</translation>
 <translation id="8957210676456822347">Odobritev prestreznega portala</translation>
-<translation id="8966619695390250636">Ali ste morda mislili?</translation>
 <translation id="8968766641738584599">Shrani kartico</translation>
 <translation id="8971063699422889582">Potrdilo strežnika je poteklo.</translation>
 <translation id="8975012916872825179">Vključuje podatke, kot so telefonske številke, e-poštni naslovi in naslovi za pošiljanje</translation>
+<translation id="8975263830901772334">Imena datotek, ki jih natisnete</translation>
 <translation id="8978053250194585037">Google Varno brskanje je nedavno <ph name="BEGIN_LINK" />zaznalo lažno predstavljanje<ph name="END_LINK" /> na spletnem mestu <ph name="SITE" />. Spletna mesta z lažnim predstavljanjem zavajajo ljudi, tako da se izdajajo za druga spletna mesta.</translation>
 <translation id="8983003182662520383">Plačilna sredstva in naslovi z Googlom Pay</translation>
 <translation id="8987927404178983737">Mesec</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index 6537c31..adff818f 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Број телефона</translation>
 <translation id="2283340219607151381">Чувај и уноси адресе</translation>
 <translation id="2292556288342944218">Приступ интернету је блокиран</translation>
-<translation id="2294558542833290837">Линк који сте првобитно отворили је неуобичајен</translation>
 <translation id="2297722699537546652">B5 (коверат)</translation>
 <translation id="2310021320168182093">Chou2 (коверат)</translation>
 <translation id="2316887270356262533">Ослобађа мање од 1 MB. Неки сајтови ће се можда спорије учитавати кад их следећи пут посетите.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Ревизија</translation>
 <translation id="366077651725703012">Ажурирајте кредитну картицу</translation>
 <translation id="3676592649209844519">ИД уређаја:</translation>
-<translation id="3677008721441257057">Да ли сте мислили &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Потписивање захтева није успело</translation>
 <translation id="3678529606614285348">Отворите страницу у ноцом прозору без архивирања (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Извештај о отказивању је снимљен <ph name="CRASH_TIME" />, а отпремљен <ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">Администратор је конфигурисао прилагођене сертификате основног нивоа што може да омогући администратору да види садржај веб-сајтова које посећујете.</translation>
 <translation id="8943282376843390568">Јаркозелена</translation>
 <translation id="8957210676456822347">Овлашћење на улазном порталу</translation>
-<translation id="8966619695390250636">Да ли сте мислили?</translation>
 <translation id="8968766641738584599">Сачувај картицу</translation>
 <translation id="8971063699422889582">Сертификат сервера је истекао.</translation>
 <translation id="8975012916872825179">Обухвата информације попут бројева телефона, имејл адреса и адреса за испоруку</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 3b9c49c..6cd655e 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefonnummer</translation>
 <translation id="2283340219607151381">Spara och fyll i adresser</translation>
 <translation id="2292556288342944218">Internetanslutningen har blockerats</translation>
-<translation id="2294558542833290837">Länken som du öppnade först är ovanlig</translation>
 <translation id="2297722699537546652">B5 (kuvert)</translation>
 <translation id="2310021320168182093">Chou2 (kuvert)</translation>
 <translation id="2316887270356262533">Frigör mindre än 1 MB. Vissa webbplatser kan läsas in långsammare nästa gång du besöker dem.</translation>
@@ -486,6 +485,7 @@
 <translation id="3592413004129370115">Italian (kuvert)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">Storlek 2</translation>
+<translation id="361438452008624280">Listposten <ph name="LANGUAGE_ID" />: Språket är okänt eller stöds inte.</translation>
 <translation id="3615877443314183785">Ange ett giltigt utgångsdatum</translation>
 <translation id="36224234498066874">Rensa webbinformation ...</translation>
 <translation id="362276910939193118">Visa fullständig historik</translation>
@@ -497,7 +497,6 @@
 <translation id="3658742229777143148">Version</translation>
 <translation id="366077651725703012">Uppdatera kreditkortet</translation>
 <translation id="3676592649209844519">Enhets-id:</translation>
-<translation id="3677008721441257057">Menade du &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Begäran kunde inte signeras</translation>
 <translation id="3678529606614285348">Öppna sidan i ett nytt inkognitofönster (Ctrl-Skift-N)</translation>
 <translation id="3679803492151881375">Kraschrapporten skapades den <ph name="CRASH_TIME" /> och laddades upp den <ph name="UPLOAD_TIME" /></translation>
@@ -1391,6 +1390,7 @@
 <translation id="8790007591277257123">&amp;Gör om Ta bort</translation>
 <translation id="8792621596287649091">Du kan förlora åtkomsten till kontot på <ph name="ORG_NAME" /> eller bli utsatt för identitetsstöld. Du rekommenderas att ändra lösenordet nu.</translation>
 <translation id="8800988563907321413">Förslag på webbsidor i närheten visas här</translation>
+<translation id="8805819170075074995">Listposten <ph name="LANGUAGE_ID" />: Posten ignorerades eftersom den även ingår i principen SpellcheckLanguage.</translation>
 <translation id="8820817407110198400">Bokmärken</translation>
 <translation id="883848425547221593">Övriga bokmärken</translation>
 <translation id="884264119367021077">Leveransadress</translation>
@@ -1411,10 +1411,10 @@
 <translation id="894185898663964645">Administratören har konfigurerat anpassade rotcertifikat. Det kan innebära att administratören ser innehållet på de webbplatser du besöker.</translation>
 <translation id="8943282376843390568">Limegrön</translation>
 <translation id="8957210676456822347">Auktorisering av infångstportal</translation>
-<translation id="8966619695390250636">Menade du?</translation>
 <translation id="8968766641738584599">Spara kortet</translation>
 <translation id="8971063699422889582">Servercertifikatet har gått ut.</translation>
 <translation id="8975012916872825179">Gäller uppgifter som telefonnummer, e-postadresser och leveransadresser</translation>
+<translation id="8975263830901772334">Namn på filer du skriver ut</translation>
 <translation id="8978053250194585037"><ph name="BEGIN_LINK" />Nätfiske<ph name="END_LINK" /> upptäcktes nyligen av Google Säker webbsökning på <ph name="SITE" />. Webbplatser som används för nätfiske imiterar andra webbplatser i syfte att lura dig.</translation>
 <translation id="8983003182662520383">Betalningsmetoder och adresser som används med Google Pay</translation>
 <translation id="8987927404178983737">Månad</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 2932d6bc..16bb1900 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Nambari ya simu</translation>
 <translation id="2283340219607151381">Hifadhi na ujaze anwani</translation>
 <translation id="2292556288342944218">Ufikiaji wako wa intaneti umezuiwa</translation>
-<translation id="2294558542833290837">Kiungo ulichofungua mwanzoni si cha kawaida</translation>
 <translation id="2297722699537546652">B5 (Bahasha)</translation>
 <translation id="2310021320168182093">Chou2 (Bahasha)</translation>
 <translation id="2316887270356262533">Huongeza nafasi isiyozidi MB 1. Baadhi ya tovuti huenda zikapakia polepole zaidi utakapozivinjari tena.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Marekebisho</translation>
 <translation id="366077651725703012">Sasisha Kadi ya Mikopo</translation>
 <translation id="3676592649209844519">Kitambulisho cha Kifaa:</translation>
-<translation id="3677008721441257057">Unamaanisha &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Ombi halikutiwa sahihi</translation>
 <translation id="3678529606614285348">Fungua ukurasa kwenye dirisha fiche jipya (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Ripoti ya kuacha kufanya kazi ilitolewa <ph name="CRASH_TIME" /> na kupakiwa <ph name="UPLOAD_TIME" /></translation>
@@ -1407,7 +1405,6 @@
 <translation id="894185898663964645">Msimamizi wako ameweka mipangilio ya vyeti maalum vya msingi, hatua ambayo inaweza kumruhusu msimamizi aone maudhui ya tovuti unazotembelea.</translation>
 <translation id="8943282376843390568">Chokaa</translation>
 <translation id="8957210676456822347">Uidhinishaji wa Ukurasa wa Wavuti</translation>
-<translation id="8966619695390250636">Ulimaanisha?</translation>
 <translation id="8968766641738584599">Hifadhi kadi</translation>
 <translation id="8971063699422889582">Cheti cha seva kimechina.</translation>
 <translation id="8975012916872825179">Hujumuisha maelezo kama nambari za simu, anwani za barua pepe na anwani za mahali bidhaa zitakapopelekwa</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index a5c97e5..71b6a36 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -250,7 +250,6 @@
 <translation id="2270484714375784793">தொலைபேசி எண்</translation>
 <translation id="2283340219607151381">முகவரிகளைச் சேமித்துத் தானாக நிரப்பு</translation>
 <translation id="2292556288342944218">உங்கள் இணைய அணுகல் தடுக்கப்பட்டது</translation>
-<translation id="2294558542833290837">நீங்கள் திறந்துள்ள இணைப்பு வழக்கத்திற்கு மாறானது</translation>
 <translation id="2297722699537546652">B5 (என்வலப்)</translation>
 <translation id="2310021320168182093">Chou2 (என்வலப்)</translation>
 <translation id="2316887270356262533">1 மெ.பை. அளவிற்கும் குறைவான இடத்தைக் காலியாக்கும். நீங்கள் அடுத்த முறை பார்வையிடும் போது, சில தளங்கள் மிகவும் மெதுவாக ஏற்றப்படலாம்.</translation>
@@ -494,7 +493,6 @@
 <translation id="3658742229777143148">மீள்திருத்தங்கள்</translation>
 <translation id="366077651725703012">கிரெடிட் கார்டைப் புதுப்பி</translation>
 <translation id="3676592649209844519">சாதன ஐடி:</translation>
-<translation id="3677008721441257057">இதைக் குறிப்பிட்டீர்களா: &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">கோரிக்கையில் கையொப்பமிட முடியவில்லை</translation>
 <translation id="3678529606614285348">புதிய மறைநிலைச் சாளரத்தில் பக்கத்தைத் திறக்கவும் (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> அன்று சிதைவு அறிக்கை பதிவுசெய்யப்பட்டு, <ph name="UPLOAD_TIME" /> அன்று பதிவேற்றப்பட்டது</translation>
@@ -1406,7 +1404,6 @@
 <translation id="894185898663964645">பிரத்தியேகமான முதன்மை சான்றிதழ்களை உங்கள் நிர்வாகி உள்ளமைத்துள்ளார், இதன் மூலம் நீங்கள் பார்வையிடும் இணையதளங்களின் உள்ளடக்கங்களை நிர்வாகியால் பார்க்க முடியும்.</translation>
 <translation id="8943282376843390568">சுண்ணாம்பு நிறம்</translation>
 <translation id="8957210676456822347">கேப்டிவ் போர்டல் அங்கீகாரம்</translation>
-<translation id="8966619695390250636">இதைக் குறிப்பிடுகிறீர்களா?</translation>
 <translation id="8968766641738584599">கார்டைச் சேமி</translation>
 <translation id="8971063699422889582">சேவையகச் சான்றிதழ் காலாவதியானது.</translation>
 <translation id="8975012916872825179">இதில் ஃபோன் எண்கள், மின்னஞ்சல் முகவரிகள், ஷிப்பிங் முகவரிகள் போன்ற தகவல்கள் உள்ளடங்கும்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 0bcbae4..59d49c1c 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -242,13 +242,12 @@
 <translation id="2224337661447660594">ఇంటర్నెట్ లేదు</translation>
 <translation id="2230458221926704099"><ph name="BEGIN_LINK" />విశ్లేషణల యాప్‌<ph name="END_LINK" />ను ఉపయోగించి మీ కనెక్షన్‌ను సరి చేయండి</translation>
 <translation id="2239100178324503013">ఇప్పుడే పంపండి</translation>
-<translation id="225207911366869382">ఈ విధానం కోసం ఈ విలువ తగ్గించబడింది.</translation>
+<translation id="225207911366869382">ఈ విధానం కోసం ఈ విలువ విస్మరించబడింది.</translation>
 <translation id="2262243747453050782">HTTP ఎర్రర్</translation>
 <translation id="2263079731045660823">Chrome సెట్టింగ్‌లలో క్రెడిట్ కార్డ్ స్వీయ పూరింపు సమాచారాన్ని అప్‌డేట్ చేయండి</translation>
 <translation id="2270484714375784793">ఫోన్ నంబర్</translation>
 <translation id="2283340219607151381">చిరునామాలను సేవ్ చేసి, పూరించండి</translation>
 <translation id="2292556288342944218">మీ ఇంటర్నెట్ యాక్సెస్ బ్లాక్ చేయబడింది</translation>
-<translation id="2294558542833290837">వాస్తవానికి మీరు తెరిచిన లింక్ అసాధారణంగా ఉంది</translation>
 <translation id="2297722699537546652">B5 (ఎన్వలప్)</translation>
 <translation id="2310021320168182093">Chou2 (ఎన్వలప్)</translation>
 <translation id="2316887270356262533">1 MB కంటే తక్కువ స్థలాన్ని ఖాళీ చేస్తుంది. మీ తదుపరి సందర్శనలో కొన్ని సైట్‌లు మరింత నెమ్మదిగా లోడ్ కావచ్చు.</translation>
@@ -480,6 +479,7 @@
 <translation id="3592413004129370115">ఇటాలియన్ (ఎన్వలప్)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
 <translation id="3614103345592970299">పరిమాణం 2</translation>
+<translation id="361438452008624280">జాబితా నమోదు "<ph name="LANGUAGE_ID" />": తెలియని లేదా మద్దతు లేని భాష.</translation>
 <translation id="3615877443314183785">చెల్లుబాటు అయ్యే గడువు ముగింపు తేదీని నమోదు చేయండి</translation>
 <translation id="36224234498066874">బ్రౌజింగ్ డేటాను క్లియర్ చేయి...</translation>
 <translation id="362276910939193118">పూర్తి చరిత్రను చూపించు</translation>
@@ -491,7 +491,6 @@
 <translation id="3658742229777143148">పునర్విమర్శ</translation>
 <translation id="366077651725703012">క్రెడిట్ కార్డ్‌ని అప్‌డేట్ చేయి</translation>
 <translation id="3676592649209844519">పరికర ID:</translation>
-<translation id="3677008721441257057">మీరు &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; గురించి అభ్యర్థిస్తున్నారా?</translation>
 <translation id="3678029195006412963">అభ్యర్థనకు సంతకం అందించడం సాధ్యపడలేదు</translation>
 <translation id="3678529606614285348">కొత్త అజ్ఞాత విండోలో పేజీని తెరవండి (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">క్రాష్ నివేదిక <ph name="CRASH_TIME" />కి క్యాప్చర్ చేయబడింది, <ph name="UPLOAD_TIME" />కి అప్‌లోడ్ చేయబడింది</translation>
@@ -578,19 +577,19 @@
 <translation id="4220128509585149162">క్రాష్‌లు</translation>
 <translation id="422022731706691852"><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="4221630205957821124">&lt;h4&gt;1వ దశ: పోర్టల్‌కు సైన్ ఇన్ చేయండి&lt;/h4&gt;
-    &lt;p&gt;కెఫేలు లేదా విమానాశ్రయాలు వంటి స్థలాల్లో ఉన్న Wi-Fi నెట్‌వర్క్‌ల కోసం మీరు సైన్ ఇన్ చేయాల్సి ఉంటుంది. సైన్ ఇన్ పేజీని చూడటానికి, &lt;code&gt;http://&lt;/code&gt;ను ఉపయోగించే పేజీని సందర్శించండి.&lt;/p&gt;
+    &lt;p&gt;కెఫేలు లేదా విమానాశ్రయాలు వంటి స్థలాలలో ఉన్న Wi-Fi నెట్‌వర్క్‌ల కోసం మీరు సైన్ ఇన్ చేయాల్సి ఉంటుంది. సైన్ ఇన్ పేజీని చూడటానికి, &lt;code&gt;http://&lt;/code&gt;ని ఉపయోగించే పేజీని సందర్శించండి.&lt;/p&gt;
     &lt;ol&gt;
     &lt;li&gt;&lt;code&gt;http://&lt;/code&gt;తో ప్రారంభమయ్యే ఏదైనా వెబ్‌సైట్‌లోకి వెళ్లండి, ఉదాహరణకు, &lt;a href="http://example.com" target="_blank"&gt;http://example.com&lt;/a&gt;.&lt;/li&gt;
-    &lt;li&gt;తెరవబడే సైన్-ఇన్ పేజీలో, ఇంటర్నెట్‌ని ఉపయోగించడం కోసం సైన్ ఇన్ చేయండి.&lt;/li&gt;
+    &lt;li&gt;తెరుచుకునే సైన్-ఇన్ పేజీలో, ఇంటర్నెట్‌ను ఉపయోగించడం కోసం సైన్ ఇన్ చేయండి.&lt;/li&gt;
     &lt;/ol&gt;
     &lt;h4&gt;2వ దశ: అజ్ఞాత మోడ్‌లో పేజీని తెరవండి (కంప్యూటర్ మాత్రమే)&lt;/h4&gt;
     &lt;p&gt;మీరు సందర్శిస్తున్న పేజీని అజ్ఞాత విండోలో తెరవండి.&lt;/p&gt;
-    &lt;p&gt;పేజీ తెరవబడినట్లయితే, Chrome ఎక్స్‌టెన్షన్ సరిగ్గా పని చేయడం లేదని అర్థం. ఎర్రర్‌ని పరిష్కరించడానికి, ఎక్స్‌టెన్షన్‌ను ఆఫ్ చేయండి.&lt;/p&gt;
+    &lt;p&gt;పేజీ తెరుచుకున్నట్లయితే, Chrome ఎక్స్‌టెన్షన్ సరిగ్గా పని చేయడం లేదని అర్థం. ఎర్రర్‌ను పరిష్కరించడానికి, ఎక్స్‌టెన్షన్‌ను ఆఫ్ చేయండి.&lt;/p&gt;
     &lt;h4&gt;3వ దశ: మీ ఆపరేటింగ్ సిస్టమ్‌ను అప్‌డేట్ చేయండి&lt;/h4&gt;
-    &lt;p&gt;మీ పరికరం తాజాగా ఉన్నట్లు నిర్ధారించుకోండి.&lt;/p&gt;
-    &lt;h4&gt;4వ దశ: మీ యాంటీవైరస్‌ని తాత్కాలికంగా ఆఫ్ చేయండి&lt;/h4&gt;
+    &lt;p&gt;మీ పరికరంలో తాజా అప్‌డేట్‌లన్నీ ఇన్‌స్టాల్ చేసినట్లు నిర్ధారించుకోండి.&lt;/p&gt;
+    &lt;h4&gt;4వ దశ: మీ యాంటీవైరస్‌ను తాత్కాలికంగా ఆఫ్ చేయండి&lt;/h4&gt;
     &lt;p&gt;"HTTPS రక్షణ" లేదా "HTTPS స్కానింగ్" వంటివి అందించే యాంటీవైరస్‌ సాఫ్ట్‌వేర్‌ను మీరు ఉపయోగిస్తున్నట్లయితే మీకు ఈ ఎర్రర్ కనిపిస్తుంది. Chrome మీకు భద్రతను అందించకుండా యాంటీవైరస్ నివారిస్తోంది.&lt;/p&gt;
-    &lt;p&gt;సమస్యను పరిష్కరించడానికి, మీ యాంటీవైరస్ సాఫ్ట్‌వేర్‌ని ఆఫ్ చేయండి. సాఫ్ట్‌వేర్‌ను ఆఫ్ చేసిన తర్వాత పేజీ పని చేసినట్లయితే, మీరు సురక్షిత సైట్‌లను ఉపయోగించేటప్పుడు ఈ సాఫ్ట్‌వేర్‌ను ఆఫ్ చేయండి.&lt;/p&gt;
+    &lt;p&gt;సమస్యను పరిష్కరించడానికి, మీ యాంటీవైరస్ సాఫ్ట్‌వేర్‌ను ఆఫ్ చేయండి. సాఫ్ట్‌వేర్‌ను ఆఫ్ చేసిన తర్వాత పేజీ పని చేసినట్లయితే, మీరు సురక్షిత సైట్‌లను ఉపయోగించేటప్పుడు ఈ సాఫ్ట్‌వేర్‌ను ఆఫ్ చేయండి.&lt;/p&gt;
     &lt;p&gt;మీ పని పూర్తయిన తర్వాత మీ యాంటీవైరస్ ప్రోగ్రామ్‌ను తిరిగి ఆన్ చేయడం మర్చిపోవద్దు.&lt;/p&gt;
     &lt;h4&gt;5వ దశ: అదనపు సహాయాన్ని పొందండి&lt;/h4&gt;
     &lt;p&gt;ఇప్పటికీ మీకు ఎర్రర్ కనిపిస్తున్నట్లయితే, వెబ్‌సైట్ యజమానిని సంప్రదించండి.&lt;/p&gt;</translation>
@@ -615,7 +614,7 @@
 <translation id="4325863107915753736">కథనాన్ని కనుగొనడం విఫలమైంది</translation>
 <translation id="4326324639298822553">మీ గడువు ముగింపు తేదీని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి</translation>
 <translation id="4331708818696583467">సురక్షితం కాదు</translation>
-<translation id="4340982228985273705">ఈ కంప్యూటర్‌ను ఎంటర్‌ప్రైజ్ నిర్వహిస్తున్నట్లు గుర్తించబడలేదు, కాబ‌ట్టి Chrome వెబ్‌స్టోర్‌లో హోస్ట్ చేయబడిన ఎక్స్‌టెన్షన్‌లను మాత్రమే విధానం ఆటోమేటిక్‌గా ఇన్‌స్టాల్ చేస్తుంది. Chrome వెబ్‌స్టోర్ అప్‌డేట్ URL "<ph name="CWS_UPDATE_URL" />".</translation>
+<translation id="4340982228985273705">ఈ కంప్యూటర్‌ను ఎంటర్‌ప్రైజ్ నిర్వహిస్తున్నట్లు గుర్తించబడలేదు, కనుక Chrome వెబ్‌స్టోర్‌లో హోస్ట్ చేసిన ఎక్స్‌టెన్షన్‌లను మాత్రమే విధానం ఆటోమేటిక్‌గా ఇన్‌స్టాల్ చేస్తుంది. Chrome వెబ్‌స్టోర్ అప్‌డేట్ URL "<ph name="CWS_UPDATE_URL" />".</translation>
 <translation id="4346197816712207223">ఆమోదించే క్రెడిట్ కార్డ్‌లు</translation>
 <translation id="4346833872170306413">Roc-16K</translation>
 <translation id="4356973930735388585">ఈ సైట్‌లోని దాడి చేసేవారు మీ సమాచారాన్ని (ఉదాహరణకు, ఫోటోలు, పాస్‌వర్డ్‌లు, సందేశాలు మరియు క్రెడిట్ కార్డ్‌లు) దొంగిలించడం కోసం లేదా తొలగించడం కోసం మీ కంప్యూటర్‌లో ప్రమాదకరమైన ప్రోగ్రామ్‌లను ఇన్‌స్టాల్ చేయడానికి ప్రయత్నించవచ్చు.</translation>
@@ -999,7 +998,7 @@
 <translation id="6628463337424475685"><ph name="ENGINE" /> శోధన</translation>
 <translation id="6630809736994426279"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> లో హ్యాకర్‌లు మీ సమాచారాన్ని (ఉదాహరణకు, ఫోటోలు, పాస్‌వర్డ్‌లు, సందేశాలు మరియు క్రెడిట్ కార్డ్‌లు) దొంగిలించగల లేదా తొలగించగల హానికరమైన ప్రోగ్రామ్‌లను మీ Macలో ఇన్‌స్టాల్ చేయడానికి ప్రయత్నించవచ్చు. <ph name="BEGIN_LEARN_MORE_LINK" />మరింత తెలుసుకోండి<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6643016212128521049">క్లియర్ చేయి</translation>
-<translation id="6644283850729428850">ఈ విధానం విలువ తగ్గించబడింది.</translation>
+<translation id="6644283850729428850">ఈ విధానం విస్మరించబడింది.</translation>
 <translation id="6646269444027925224">{COUNT,plural, =0{ఏవీ లేవు}=1{1 సైట్ నుండి (మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు)}other{# సైట్‌ల నుండి (మీరు మీ Google ఖాతా నుండి సైన్ అవుట్ చేయబడరు)}}</translation>
 <translation id="6657585470893396449">పాస్‌వర్డ్</translation>
 <translation id="6670613747977017428">భద్రతకు తిరిగి వెళ్ళు.</translation>
@@ -1019,7 +1018,7 @@
 <translation id="6778737459546443941">మీ తల్లి/తండ్రి దీన్ని ఇంకా ఆమోదించలేదు</translation>
 <translation id="67862343314499040">నీలి ఊదా రంగు</translation>
 <translation id="6786747875388722282">ఎక్స్‌టెన్షన్‌లు</translation>
-<translation id="679355240208270552">విధానం ప్రకారం, డిఫాల్ట్ శోధనను ప్రారంభించలేదు కాబట్టి, విస్మరించబడింది.</translation>
+<translation id="679355240208270552">విధానం ప్రకారం డిఫాల్ట్ శోధన ప్రారంభించబడలేదు కాబట్టి, ఇది విస్మరించబడింది.</translation>
 <translation id="681021252041861472">అవసరమైన ఫీల్డ్</translation>
 <translation id="6810899417690483278">అనుకూలీకరణ ID</translation>
 <translation id="6824266427216888781">ప్రాంతాల డేటాను లోడ్ చేయడం విఫలమైంది</translation>
@@ -1032,7 +1031,7 @@
 <translation id="6874604403660855544">&amp;జోడించడాన్ని పునరావృతం చేయి</translation>
 <translation id="6884662655240309489">పరిమాణం 1</translation>
 <translation id="6886577214605505410"><ph name="LOCATION_TITLE" /> <ph name="SHORT_URL" /></translation>
-<translation id="6891596781022320156">విధానం స్థాయికి మద్దతు లేదు.</translation>
+<translation id="6891596781022320156">విధాన స్థాయికి మద్దతు లేదు.</translation>
 <translation id="6895330447102777224">మీ కార్డ్ నిర్ధారించబడింది</translation>
 <translation id="6897140037006041989">వినియోగదారు ప్రతినిధి</translation>
 <translation id="6903319715792422884"><ph name="BEGIN_WHITEPAPER_LINK" />కొంత సిస్టమ్ సమాచారం మరియు పేజీ కంటెంట్‌<ph name="END_WHITEPAPER_LINK" />ను Googleకి పంపడం ద్వారా సురక్షిత బ్రౌజింగ్‌ని మెరుగుపరచడంలో సహాయపడండి. <ph name="PRIVACY_PAGE_LINK" /></translation>
@@ -1381,6 +1380,7 @@
 <translation id="8790007591277257123">&amp;తొలగించడాన్ని పునరావృతం చేయి</translation>
 <translation id="8792621596287649091">మీరు మీ <ph name="ORG_NAME" /> ఖాతాకు యాక్సెస్‌ని కోల్పోవచ్చు లేదా గుర్తింపు చోరీకి గురి కావచ్చు. మీ పాస్‌వర్డ్‌ని ఇప్పుడే రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation>
 <translation id="8800988563907321413">మీ సమీపంలోని సూచనలు ఇక్కడ కనిపిస్తాయి</translation>
+<translation id="8805819170075074995">జాబితా నమోదు "<ph name="LANGUAGE_ID" />": నమోదు విస్మరించబడింది, ఎందుకంటే ఇది SpellcheckLanguage విధానంలో కూడా ఉంది.</translation>
 <translation id="8820817407110198400">బుక్‌మార్క్‌లు</translation>
 <translation id="883848425547221593">ఇతర బుక్‌మార్క్‌లు:</translation>
 <translation id="884264119367021077">షిప్పింగ్ చిరునామా</translation>
@@ -1401,16 +1401,16 @@
 <translation id="894185898663964645">మీ నిర్వాహకుడు అనుకూల రూట్ సర్టిఫికెట్‌లను కాన్ఫిగర్ చేసారు, ఇవి మీరు సందర్శించే వెబ్‌సైట్‌ల కంటెంట్‌ను చూసేందుకు నిర్వాహకుడిని అనుమతించవచ్చు.</translation>
 <translation id="8943282376843390568">నిమ్మపండు రంగు</translation>
 <translation id="8957210676456822347">క్యాప్టివ్ పోర్టల్ ప్రామాణీకరణ</translation>
-<translation id="8966619695390250636">మీరు దీనిని అడిగారా?</translation>
 <translation id="8968766641738584599">కార్డ్‌ని సేవ్ చేయండి</translation>
 <translation id="8971063699422889582">సర్వర్ ప్రమాణపత్రం గడువు ముగిసింది.</translation>
 <translation id="8975012916872825179">ఫోన్ నంబర్‌లు, ఇమెయిల్ చిరునామాలు మరియు బట్వాడా చిరునామాలు లాంటి సమాచారం ఉంటుంది</translation>
+<translation id="8975263830901772334">మీరు ముద్రించే ఫైల్‌ల పేర్లు</translation>
 <translation id="8978053250194585037">Google సురక్షిత బ్రౌజింగ్ ఇటీవల <ph name="SITE" />లో <ph name="BEGIN_LINK" />ఫిషింగ్‌ని గుర్తించింది<ph name="END_LINK" />. ఫిషింగ్ సైట్‌లు వేరే వెబ్‌సైట్‌ల వలె ప్రవర్తించడం ద్వారా మిమ్మల్ని మాయ చేయవచ్చు.</translation>
 <translation id="8983003182662520383">Google Payని ఉపయోగిస్తున్న చెల్లింపు పద్ధతులు మరియు చిరునామాలు</translation>
 <translation id="8987927404178983737">నెల</translation>
 <translation id="8989148748219918422"><ph name="ORGANIZATION" /> [<ph name="COUNTRY" />]</translation>
 <translation id="8996941253935762404">ఈ సైట్‌లో హానికర ప్రోగ్రామ్‌లు ఉన్నాయి</translation>
-<translation id="8997023839087525404">సర్వర్ ప్రమాణపత్ర పారదర్శకత విధానాన్ని ఉపయోగించి పబ్లిక్‌గా బహిరంగపరచబడని ప్రమాణపత్రాన్ని అందించింది. కొన్ని ప్రమాణపత్రాలకు, అవి విశ్వసనీయమైనవని మరియు దాడి చేసేవారి నుండి రక్షణ కల్పించగలవని నిర్ధారించడానికి, ఇది ఆవశ్యకం.</translation>
+<translation id="8997023839087525404">సర్టిఫికెట్ పారదర్శకత విధానాన్ని ఉపయోగించి పబ్లిక్‌గా బహిరంగపరచబడని సర్టిఫికెట్‌ను ఈ సర్వర్ అందించింది. కొన్ని సర్టిఫికెట్‌లకు, అవి విశ్వసనీయమైనవని మరియు దాడి చేసేవారి నుండి రక్షణ కల్పించగలవని నిర్ధారించడానికి, ఇది ఆవశ్యకం.</translation>
 <translation id="9001074447101275817"><ph name="DOMAIN" /> ప్రాక్సీకి వినియోగదారు పేరు మరియు పాస్‌వర్డ్ అవసరం.</translation>
 <translation id="9005998258318286617">PDF పత్రాన్ని లోడ్ చేయడం విఫలమైంది.</translation>
 <translation id="9008201768610948239">విస్మరించు</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 74fe9d6..8333b540 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">หมายเลขโทรศัพท์</translation>
 <translation id="2283340219607151381">บันทึกและกรอกที่อยู่</translation>
 <translation id="2292556288342944218">การเข้าถึงอินเทอร์เน็ตของคุณถูกบล็อก</translation>
-<translation id="2294558542833290837">ลิงก์ที่คุณเปิดครั้งแรกมีความผิดปกติ</translation>
 <translation id="2297722699537546652">B5 (ซองจดหมาย)</translation>
 <translation id="2310021320168182093">Chou2 (ซองจดหมาย)</translation>
 <translation id="2316887270356262533">หากเพิ่มพื้นที่ว่างไม่ถึง 1 MB ไซต์บางแห่งอาจโหลดช้าลงเมื่อคุณเข้าชมครั้งถัดไป</translation>
@@ -496,7 +495,6 @@
 <translation id="3658742229777143148">การแก้ไข</translation>
 <translation id="366077651725703012">อัปเดตบัตรเครดิต</translation>
 <translation id="3676592649209844519">รหัสอุปกรณ์:</translation>
-<translation id="3677008721441257057">คุณหมายถึง &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; ใช่ไหม</translation>
 <translation id="3678029195006412963">ไม่สามารถลงนามคำขอ</translation>
 <translation id="3678529606614285348">เปิดหน้าเว็บในหน้าต่างที่ไม่ระบุตัวตนใหม่ (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">รายงานข้อขัดข้องเมื่อ <ph name="CRASH_TIME" /> อัปโหลดเมื่อ <ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">ผู้ดูแลระบบได้กำหนดค่าใบรับรองรูทที่กำหนดเอง ซึ่งอาจทำให้ผู้ดูแลระบบดูเนื้อหาของเว็บไซต์ที่คุณเข้าชมได้</translation>
 <translation id="8943282376843390568">เหลืองมะนาว</translation>
 <translation id="8957210676456822347">การให้สิทธิ์แคปทีฟพอร์ทัล</translation>
-<translation id="8966619695390250636">หรือคุณหมายถึง</translation>
 <translation id="8968766641738584599">บันทึกบัตร</translation>
 <translation id="8971063699422889582">ใบรับรองของเซิร์ฟเวอร์หมดอายุแล้ว</translation>
 <translation id="8975012916872825179">รวมข้อมูล เช่น หมายเลขโทรศัพท์ ที่อยู่อีเมล และที่อยู่สำหรับจัดส่ง</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index 23b4413c..d8a62508 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Telefon numarası</translation>
 <translation id="2283340219607151381">Adresleri kaydet ve doldur</translation>
 <translation id="2292556288342944218">İnternet erişiminiz engellendi</translation>
-<translation id="2294558542833290837">Başta açtığınız bağlantı normal değil</translation>
 <translation id="2297722699537546652">B5 (Zarf)</translation>
 <translation id="2310021320168182093">Chou2 (Zarf)</translation>
 <translation id="2316887270356262533">1 MB'tan az yer açar. Bir sonraki ziyaretinizde bazı siteler daha yavaş yüklenebilir.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Düzeltme</translation>
 <translation id="366077651725703012">Kredi Kartını Güncelle</translation>
 <translation id="3676592649209844519">Cihaz kimliği:</translation>
-<translation id="3677008721441257057">&lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; adresine gitmek mi istemiştiniz?</translation>
 <translation id="3678029195006412963">İstek imzalanamadı</translation>
 <translation id="3678529606614285348">Sayfayı yeni Gizli pencerede açın (Ctrl-Üst Karakter-N)</translation>
 <translation id="3679803492151881375">Kilitlenme raporunun oluşturulma zamanı: <ph name="CRASH_TIME" />, raporun yüklenme zamanı: <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">Yöneticiniz, ziyaret ettiğiniz web sitelerinin içeriğinin yönetici tarafından görülmesini sağlayabilen özel kök sertifikalar yapılandırmış.</translation>
 <translation id="8943282376843390568">Küf yeşili</translation>
 <translation id="8957210676456822347">Giriş Portalı Yetkilendirmesi</translation>
-<translation id="8966619695390250636">Bunu mu arıyordunuz?</translation>
 <translation id="8968766641738584599">Kartı kaydet</translation>
 <translation id="8971063699422889582">Sunucu sertifikasının süresi doldu.</translation>
 <translation id="8975012916872825179">Telefon numaraları, e-posta adresleri ve gönderim adresleri gibi bilgileri içerir</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 17f492b5..75ffc85 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Номер телефону</translation>
 <translation id="2283340219607151381">Зберігати й заповнювати адреси</translation>
 <translation id="2292556288342944218">Ваш доступ до Інтернету заблоковано</translation>
-<translation id="2294558542833290837">Посилання, яке ви початково відкрили, незвичне</translation>
 <translation id="2297722699537546652">B5 (конверт)</translation>
 <translation id="2310021320168182093">Chou2 (конверт)</translation>
 <translation id="2316887270356262533">Звільняє менше 1 Мб. Деякі сайти можуть завантажуватися повільніше під час наступного відвідування.</translation>
@@ -498,7 +497,6 @@
 <translation id="3658742229777143148">Редакція</translation>
 <translation id="366077651725703012">Оновити кредитну картку</translation>
 <translation id="3676592649209844519">Ідентифікатор пристрою:</translation>
-<translation id="3677008721441257057">Ви мали на увазі &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Не вдалося підписати запит</translation>
 <translation id="3678529606614285348">Відкрийте сторінку в анонімному вікні (Ctrl+Shift+N)</translation>
 <translation id="3679803492151881375">Звіт про аварійне завершення роботи створено: <ph name="CRASH_TIME" />, завантажено: <ph name="UPLOAD_TIME" /></translation>
@@ -1413,7 +1411,6 @@
 <translation id="894185898663964645">Адміністратор налаштував власні кореневі сертифікати, які дозволяють йому переглядати вміст відвіданих вами веб-сайтів.</translation>
 <translation id="8943282376843390568">Лаймовий</translation>
 <translation id="8957210676456822347">Авторизація приєднаного порталу</translation>
-<translation id="8966619695390250636">Ви мали на увазі?</translation>
 <translation id="8968766641738584599">Зберегти картку</translation>
 <translation id="8971063699422889582">Термін дії сертифіката сервера завершився.</translation>
 <translation id="8975012916872825179">Номери телефонів, електронні адреси, адреси доставки тощо</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index 33fe9c7..1e9e03c 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">Số điện thoại</translation>
 <translation id="2283340219607151381">Lưu và điền địa chỉ</translation>
 <translation id="2292556288342944218">Quyền truy cập Internet của bạn bị chặn</translation>
-<translation id="2294558542833290837">Đường dẫn liên kết bạn mở ban đầu là không bình thường</translation>
 <translation id="2297722699537546652">B5 (Phong bì)</translation>
 <translation id="2310021320168182093">Chou2 (Phong bì)</translation>
 <translation id="2316887270356262533">Bộ nhớ đệm còn chưa đầy 1 MB. Một số trang web có thể tải chậm hơn vào lần tới bạn truy cập.</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">Bản sửa đổi</translation>
 <translation id="366077651725703012">Cập nhật thẻ tín dụng</translation>
 <translation id="3676592649209844519">ID thiết bị:</translation>
-<translation id="3677008721441257057">Ý bạn là &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">Không thể ký yêu cầu</translation>
 <translation id="3678529606614285348">Mở trang trong cửa sổ Ẩn danh mới (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Báo cáo sự cố được ghi lại vào <ph name="CRASH_TIME" />, được tải lên vào <ph name="UPLOAD_TIME" /></translation>
@@ -1411,7 +1409,6 @@
 <translation id="894185898663964645">Quản trị viên của bạn đã định cấu hình chứng chỉ gốc tùy chỉnh. Điều này có thể cho phép quản trị viên xem nội dung của các trang web mà bạn truy cập.</translation>
 <translation id="8943282376843390568">Vàng chanh</translation>
 <translation id="8957210676456822347">Ủy quyền cổng bị khóa</translation>
-<translation id="8966619695390250636">Ý bạn là?</translation>
 <translation id="8968766641738584599">Lưu thẻ</translation>
 <translation id="8971063699422889582">Chứng chỉ của máy chủ đã hết hạn.</translation>
 <translation id="8975012916872825179">Bao gồm các thông tin như số điện thoại, địa chỉ email và địa chỉ giao hàng</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 19c12ac..ef1c415 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -246,7 +246,6 @@
 <translation id="2270484714375784793">电话号码</translation>
 <translation id="2283340219607151381">保存并填写地址</translation>
 <translation id="2292556288342944218">您被禁止访问互联网</translation>
-<translation id="2294558542833290837">您最初打开的链接存在异常</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
 <translation id="2316887270356262533">释放了不到 1 MB。当您下次访问时,某些网站的加载速度可能会更慢。</translation>
@@ -485,7 +484,6 @@
 <translation id="3658742229777143148">修订版本</translation>
 <translation id="366077651725703012">更新信用卡</translation>
 <translation id="3676592649209844519">设备 ID:</translation>
-<translation id="3677008721441257057">您是想访问 &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt; 吧?</translation>
 <translation id="3678029195006412963">无法签署该请求</translation>
 <translation id="3678529606614285348">在新的无痕式窗口中打开网页 (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">崩溃报告的获取时间:<ph name="CRASH_TIME" />;上传时间:<ph name="UPLOAD_TIME" /></translation>
@@ -1395,7 +1393,6 @@
 <translation id="894185898663964645">您的管理员配置了自定义根证书,这些证书可能会允许管理员查看您所访问的网站的内容。</translation>
 <translation id="8943282376843390568">绿黄色</translation>
 <translation id="8957210676456822347">强制门户授权</translation>
-<translation id="8966619695390250636">您是想?</translation>
 <translation id="8968766641738584599">保存卡片</translation>
 <translation id="8971063699422889582">服务器的证书已过期。</translation>
 <translation id="8975012916872825179">包括电话号码、电子邮件地址和送货地址等信息</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index e6b672de..bdebb1e 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -251,7 +251,6 @@
 <translation id="2270484714375784793">電話號碼</translation>
 <translation id="2283340219607151381">儲存及填入地址</translation>
 <translation id="2292556288342944218">您的網際網路存取權遭到封鎖</translation>
-<translation id="2294558542833290837">你原先開啟的連結有異常之處</translation>
 <translation id="2297722699537546652">B5 (信封)</translation>
 <translation id="2310021320168182093">Chou2 (信封)</translation>
 <translation id="2316887270356262533">釋出不到 1 MB。下次造訪部分網站時,載入速度可能會變慢。</translation>
@@ -497,7 +496,6 @@
 <translation id="3658742229777143148">修訂版本</translation>
 <translation id="366077651725703012">更新信用卡</translation>
 <translation id="3676592649209844519">裝置 ID:</translation>
-<translation id="3677008721441257057">你是否要前往 &lt;a href="#" id="dont-proceed-link"&gt;<ph name="DOMAIN" />&lt;/a&gt;?</translation>
 <translation id="3678029195006412963">無法簽署要求</translation>
 <translation id="3678529606614285348">在新的無痕式視窗中開啟網頁 (Ctrl + Shift + N 鍵)</translation>
 <translation id="3679803492151881375">當機報告擷取時間:<ph name="CRASH_TIME" />,報告上傳時間:<ph name="UPLOAD_TIME" /></translation>
@@ -1410,7 +1408,6 @@
 <translation id="894185898663964645">你的系統管理員已設定自訂根憑證,這項設定將能允許系統管理員查看你所造訪網站的內容。</translation>
 <translation id="8943282376843390568">萊姆綠</translation>
 <translation id="8957210676456822347">監控式入口網站授權</translation>
-<translation id="8966619695390250636">你是不是要前往:</translation>
 <translation id="8968766641738584599">儲存卡片</translation>
 <translation id="8971063699422889582">伺服器憑證已過期。</translation>
 <translation id="8975012916872825179">包括電話號碼、電子郵件地址和運送地址等資訊</translation>
diff --git a/components/viz/host/renderer_settings_creation.cc b/components/viz/host/renderer_settings_creation.cc
index 5d064360..78a6b5739 100644
--- a/components/viz/host/renderer_settings_creation.cc
+++ b/components/viz/host/renderer_settings_creation.cc
@@ -19,6 +19,7 @@
 
 #if defined(USE_OZONE)
 #include "components/viz/common/switches.h"
+#include "ui/ozone/public/ozone_platform.h"
 #endif
 
 namespace viz {
@@ -84,11 +85,17 @@
   }
 
 #if defined(USE_OZONE)
-  // TODO(crbug.com/930173): Add the default set of overlay strategies if flag
-  // isn't present but ozone platform supports overlays.
   if (command_line->HasSwitch(switches::kEnableHardwareOverlays)) {
     renderer_settings.overlay_strategies = ParseOverlayStategies(
         command_line->GetSwitchValueASCII(switches::kEnableHardwareOverlays));
+  } else {
+    auto& host_properties =
+        ui::OzonePlatform::GetInstance()->GetInitializedHostProperties();
+    if (host_properties.supports_overlays) {
+      renderer_settings.overlay_strategies = {OverlayStrategy::kFullscreen,
+                                              OverlayStrategy::kSingleOnTop,
+                                              OverlayStrategy::kUnderlay};
+    }
   }
 #endif
 
diff --git a/components/viz/service/display/bsp_walk_action.cc b/components/viz/service/display/bsp_walk_action.cc
index b3634fd..49420c6 100644
--- a/components/viz/service/display/bsp_walk_action.cc
+++ b/components/viz/service/display/bsp_walk_action.cc
@@ -27,7 +27,12 @@
       item->original_ref()
           ->shared_quad_state->quad_to_target_transform.GetInverse(
               &inverse_transform);
-  DCHECK(invertible);
+
+  // Skip degenerate quads
+  if (!invertible) {
+    return;
+  }
+
   item->TransformToLayerSpace(inverse_transform);
   renderer_->DoDrawPolygon(*item, render_pass_scissor_,
                            using_scissor_as_optimization_);
diff --git a/components/viz/service/display/overlay_processor.cc b/components/viz/service/display/overlay_processor.cc
index 1d7a526..85d82d035 100644
--- a/components/viz/service/display/overlay_processor.cc
+++ b/components/viz/service/display/overlay_processor.cc
@@ -263,6 +263,8 @@
   gfx::Rect output_surface_overlay_damage_rect;
   gfx::Rect this_frame_underlay_rect;
   for (const OverlayCandidate& overlay : *candidates) {
+    bool has_damage = false;
+
     if (overlay.plane_z_order >= 0) {
       const gfx::Rect overlay_display_rect =
           ToEnclosedRect(overlay.display_rect);
@@ -301,7 +303,7 @@
           overlay.is_unoccluded && !previous_frame_underlay_was_unoccluded;
       bool always_unoccluded =
           overlay.is_unoccluded && previous_frame_underlay_was_unoccluded;
-      bool has_damage = std::any_of(
+      has_damage = std::any_of(
           quad_list->begin(), quad_list->end(), [](const auto& quad) {
             bool solid_opaque_tranparent =
                 !quad->ShouldDrawWithBlending() &&
@@ -319,6 +321,12 @@
       }
       previous_frame_underlay_was_unoccluded_ = overlay.is_unoccluded;
     }
+
+    if (overlay.plane_z_order) {
+      RecordOverlayDamageRectHistograms(
+          (overlay.plane_z_order > 0), has_damage, damage_rect->IsEmpty(),
+          false /* occluding_damage_equal_to_damage_rect */);
+    }
   }
 
   if (this_frame_underlay_rect != previous_frame_underlay_rect)
diff --git a/components/zucchini/disassembler_elf.cc b/components/zucchini/disassembler_elf.cc
index ef050a4..474f43e6 100644
--- a/components/zucchini/disassembler_elf.cc
+++ b/components/zucchini/disassembler_elf.cc
@@ -371,13 +371,12 @@
 
   ConstBufferView region(image_.begin() + section.sh_offset, section.sh_size);
   Abs32GapFinder gap_finder(image_, region, abs32_locations_, 4);
-  std::unique_ptr<Rel32FinderIntel> finder =
-      std::make_unique<typename Traits::Rel32FinderUse>(image_);
+  typename Traits::Rel32FinderUse finder;
   for (auto gap = gap_finder.GetNext(); gap.has_value();
        gap = gap_finder.GetNext()) {
-    finder->Reset(gap.value());
-    for (auto rel32 = finder->GetNext(); rel32.has_value();
-         rel32 = finder->GetNext()) {
+    finder.SetRegion(gap.value());
+    for (auto rel32 = finder.GetNext(); rel32.has_value();
+         rel32 = finder.GetNext()) {
       offset_t rel32_offset =
           base::checked_cast<offset_t>(rel32->location - image_.begin());
       rva_t rel32_rva = rva_t(rel32_offset + from_offset_to_rva);
@@ -385,7 +384,7 @@
       if (target_rva_checker.IsValid(target_rva) &&
           (rel32->can_point_outside_section ||
            (start_rva <= target_rva && target_rva < end_rva))) {
-        finder->Accept();
+        finder.Accept();
         rel32_locations_.push_back(rel32_offset);
       }
     }
diff --git a/components/zucchini/disassembler_win32.cc b/components/zucchini/disassembler_win32.cc
index 01c4fde2..645ea076 100644
--- a/components/zucchini/disassembler_win32.cc
+++ b/components/zucchini/disassembler_win32.cc
@@ -377,11 +377,11 @@
         image_[{section.file_offset_of_raw_data, section.size_of_raw_data}];
     Abs32GapFinder gap_finder(image_, region, abs32_locations_,
                               Traits::kVAWidth);
-    typename Traits::RelFinder finder(image_);
+    typename Traits::RelFinder finder;
     // Iterate over gaps between abs32 references, to avoid collision.
     for (auto gap = gap_finder.GetNext(); gap.has_value();
          gap = gap_finder.GetNext()) {
-      finder.Reset(gap.value());
+      finder.SetRegion(gap.value());
       // Iterate over heuristically detected rel32 references, validate, and add
       // to |rel32_locations_|.
       for (auto rel32 = finder.GetNext(); rel32.has_value();
diff --git a/components/zucchini/rel32_finder.cc b/components/zucchini/rel32_finder.cc
index f010aaf..8fb88f5 100644
--- a/components/zucchini/rel32_finder.cc
+++ b/components/zucchini/rel32_finder.cc
@@ -63,52 +63,74 @@
 
 /******** Rel32Finder ********/
 
-Rel32Finder::Rel32Finder() = default;
-
-Rel32Finder::Rel32Finder(ConstBufferView region)
-    : region_(region), next_cursor_(region_.begin()) {}
+Rel32Finder::Rel32Finder() {}
 
 Rel32Finder::~Rel32Finder() = default;
 
+void Rel32Finder::SetRegion(ConstBufferView region) {
+  region_ = region;
+  accept_it_ = region.begin();
+}
+
+bool Rel32Finder::FindNext() {
+  NextIterators next_iters = Scan(region_);
+  if (next_iters.reject == nullptr) {
+    region_.seek(region_.end());
+    return false;
+  }
+  region_.seek(next_iters.reject);
+  accept_it_ = next_iters.accept;
+  DCHECK_GE(accept_it_, region_.begin());
+  DCHECK_LE(accept_it_, region_.end());
+  return true;
+}
+
+void Rel32Finder::Accept() {
+  region_.seek(accept_it_);
+}
+
+/******** Rel32FinderIntel ********/
+
+Rel32Finder::NextIterators Rel32FinderIntel::SetResult(
+    ConstBufferView::const_iterator cursor,
+    uint32_t opcode_size,
+    bool can_point_outside_section) {
+  rel32_ = {cursor + opcode_size, can_point_outside_section};
+  return {cursor + 1, cursor + (opcode_size + 4)};
+}
+
 /******** Rel32FinderX86 ********/
 
-ConstBufferView Rel32FinderX86::Scan(ConstBufferView region) {
+Rel32Finder::NextIterators Rel32FinderX86::Scan(ConstBufferView region) {
   ConstBufferView::const_iterator cursor = region.begin();
   while (cursor < region.end()) {
     // Heuristic rel32 detection by looking for opcodes that use them.
     if (cursor + 5 <= region.end()) {
-      if (cursor[0] == 0xE8 || cursor[0] == 0xE9) {  // JMP rel32; CALL rel32
-        rel32_ = {cursor + 1, false};
-        return ConstBufferView::FromRange(cursor, rel32_.location + 4);
-      }
+      if (cursor[0] == 0xE8 || cursor[0] == 0xE9)  // JMP rel32; CALL rel32
+        return SetResult(cursor, 1, false);
     }
     if (cursor + 6 <= region.end()) {
-      if (cursor[0] == 0x0F && (cursor[1] & 0xF0) == 0x80) {  // Jcc long form
-        rel32_ = {cursor + 2, false};
-        return ConstBufferView::FromRange(cursor, rel32_.location + 4);
-      }
+      if (cursor[0] == 0x0F && (cursor[1] & 0xF0) == 0x80)  // Jcc long form
+        return SetResult(cursor, 2, false);
     }
     ++cursor;
   }
-  return {region.end(), 0};
+  return {nullptr, nullptr};
 }
 
 /******** Rel32FinderX64 ********/
 
-ConstBufferView Rel32FinderX64::Scan(ConstBufferView region) {
+Rel32Finder::NextIterators Rel32FinderX64::Scan(ConstBufferView region) {
   ConstBufferView::const_iterator cursor = region.begin();
   while (cursor < region.end()) {
     // Heuristic rel32 detection by looking for opcodes that use them.
     if (cursor + 5 <= region.end()) {
-      if (cursor[0] == 0xE8 || cursor[0] == 0xE9) {  // JMP rel32; CALL rel32
-        rel32_ = {cursor + 1, false};
-        return ConstBufferView::FromRange(cursor, rel32_.location + 4);
-      }
+      if (cursor[0] == 0xE8 || cursor[0] == 0xE9)  // JMP rel32; CALL rel32
+        return SetResult(cursor, 1, false);
     }
     if (cursor + 6 <= region.end()) {
       if (cursor[0] == 0x0F && (cursor[1] & 0xF0) == 0x80) {  // Jcc long form
-        rel32_ = {cursor + 2, false};
-        return ConstBufferView::FromRange(cursor, rel32_.location + 4);
+        return SetResult(cursor, 2, false);
       } else if ((cursor[0] == 0xFF &&
                   (cursor[1] == 0x15 || cursor[1] == 0x25)) ||
                  ((cursor[0] == 0x89 || cursor[0] == 0x8B ||
@@ -128,13 +150,12 @@
         //  ModR/M : MMRRRMMM
         //   MM = 00 & MMM = 101 => rip+disp32
         //   RRR: selects reg operand from [eax|ecx|...|edi]
-        rel32_ = {cursor + 2, true};
-        return ConstBufferView::FromRange(cursor, rel32_.location + 4);
+        return SetResult(cursor, 2, true);
       }
     }
     ++cursor;
   }
-  return {region.end(), 0};
+  return {nullptr, nullptr};
 }
 
 }  // namespace zucchini
diff --git a/components/zucchini/rel32_finder.h b/components/zucchini/rel32_finder.h
index 798983e..a4691fd 100644
--- a/components/zucchini/rel32_finder.h
+++ b/components/zucchini/rel32_finder.h
@@ -17,36 +17,35 @@
 
 namespace zucchini {
 
-// See README.md for definitions on abs32 and rel32 references. We assume the
-// following:
-// - Abs32 locations have fixed lengths, and never overlap.
-// - Rel32 locations can be reasonably identified by heuristically disassembling
-//   machine code.
-// - Rel32 locations never overlap with each other, and never with abs32
-//   locations.
+// See README.md for definitions on abs32 and rel32 references. The following
+// are assumed:
+// * Abs32 reference bodies have fixed widths.
+// * Rel32 locations can be identified by heuristically disassembling machine
+//   code, and errors are tolerated.
+// * The collection all abs32 and rel32 reference bodies do not overlap.
 
-// Abs32GapFinder is a class that iterates over all contiguous gaps in |region|
-// that lie outside of |abs32_locations| elements, each spanning |abs_width|
-// bytes. For example, given
-//   region = [base_ + 8, base_ + 25),
+// A class to visit non-empty contiguous gaps in |region| that lie outside of
+// |abs32_locations| elements, each with a body that spans |abs32_width_| bytes.
+// For example, given:
+//   region = [base_ + 4, base_ + 26),
 //   abs32_locations = {2, 6, 15, 20, 27},
 //   abs32_width_ = 4,
-// we obtain the following:
+// the following is obtained:
 //             111111111122222222223   -> offsets
 //   0123456789012345678901234567890
-//   ........*****************......   -> region = *
+//   ....**********************.....   -> region = *
 //     ^   ^        ^    ^      ^      -> abs32 locations
-//     aaaaaaaa     aaaa aaaa   aaaa   -> abs32 locations with width
-//   ........--*****----*----*......   -> region excluding abs32 -> 3 gaps
-// The resulting gaps (must be non-empty) are:
-//   [10, 15), [19, 20), [24, 25).
+//     aaaaaaaa     aaaa aaaa   aaaa   -> abs32 bodies
+//   ....------*****----*----**.....   -> regions excluding abs32 -> 3 gaps
+// The resulting gaps (non-empty, so [6, 6) is excluded) are:
+//   [10, 15), [19, 20), [24, 26).
 // These gaps can then be passed to Rel32Finder (below) to find rel32 references
-// that are guaranteed to not overlap with any abs32 references.
+// with bodies that are guaranteed to not overlap with any abs32 bodies.
 class Abs32GapFinder {
  public:
-  // |abs32_locations| is a sorted list of non-overlapping abs32 reference
-  // locations in |image|, each spanning |abs32_width| bytes. Gaps are searched
-  // in |region|, which must be part of |image|.
+  // |abs32_locations| is a sorted list of non-overlapping abs32 locations in
+  // |image|, each spanning |abs32_width| bytes. Gaps are searched in |region|,
+  // which must be part of |image|.
   Abs32GapFinder(ConstBufferView image,
                  ConstBufferView region,
                  const std::vector<offset_t>& abs32_locations,
@@ -67,61 +66,54 @@
   DISALLOW_COPY_AND_ASSIGN(Abs32GapFinder);
 };
 
-// A class to parse executable bytes of an image to find rel32 locations.
-// Architecture-specific parse details are delegated to inherited classes.
-// This is typically used along with Abs32GapFinder to find search regions.
-// The caller may filter rel32 locations, based on rel32 targets.
+// A class to scan regions within an image to find successive rel32 references.
+// Architecture-specific parsing and result extraction are delegated to
+// inherited classes. This is typically used along with Abs32GapFinder to find
+// search regions.
 class Rel32Finder {
  public:
   Rel32Finder();
-  // |region| is the region being scanned for rel32 references.
-  explicit Rel32Finder(ConstBufferView region);
   virtual ~Rel32Finder();
 
-  // Reset object to start scanning for rel32 references in |region|.
-  void Reset(ConstBufferView region) {
-    next_cursor_ = region.begin();
-    region_ = region;
-  }
+  // Assigns the scan |region| for rel32 references to enable FindNext() use.
+  void SetRegion(ConstBufferView region);
 
-  // Accept the last reference found. Next call to FindNext() will scan starting
-  // beyond that reference, instead of the current search position.
-  void Accept() { region_.seek(next_cursor_); }
+  // When a rel32 reference is found, the caller needs to decide whether to keep
+  // the result (perhaps following more validation). If it decides to keep the
+  // result, then it must call Accept(), so the next call to FindNext() can skip
+  // the accepted rel32 reference.
+  void Accept();
 
   // Accessors for unittest.
-  ConstBufferView::const_iterator next_cursor() const { return next_cursor_; }
+  ConstBufferView::const_iterator accept_it() const { return accept_it_; }
   ConstBufferView region() const { return region_; }
 
  protected:
-  // Scans for the next rel32 reference. If a reference is found, advances the
-  // search position beyond it and returns true. Otherwise, moves the search
-  // position to the end of the region and returns false.
-  bool FindNext() {
-    ConstBufferView result = Scan(region_);
-    region_.seek(result.begin());
-    next_cursor_ = result.end();
-    if (region_.empty())
-      return false;
-    region_.remove_prefix(1);
-    DCHECK_GE(next_cursor_, region_.begin());
-    DCHECK_LE(next_cursor_, region_.end());
-    return true;
-  }
+  // Alternatives for where to continue the next scan when a rel32 reference is
+  // found. nulls indicate that no rel32 references remain.
+  struct NextIterators {
+    // The next iterator if the caller does not call Accept().
+    ConstBufferView::const_iterator reject;
 
-  // Architecture-specific rel32 reference detection, which scans executable
-  // bytes given by |region|. For each rel32 reference found, the implementation
-  // should cache the necessary data to be retrieved via accessors and return a
-  // region starting at the current search position, and ending beyond the
-  // reference that was just found, or an empty region starting at the end of
-  // the search region if no more reference is found. By default, the next time
-  // FindNext() is called, |region| will start at the current search position,
-  // unless Accept() was called, in which case |region| will start beyond the
-  // last reference.
-  virtual ConstBufferView Scan(ConstBufferView region) = 0;
+    // The next iterator if the caller calls Accept().
+    ConstBufferView::const_iterator accept;
+  };
+
+  // Scans for the next rel32 reference, and returns whether any is found, so a
+  // "while" loop can be used for iterative rel32 extraction. The results are
+  // cached in Rel32Finder_Impl and obtained by Rel32Finder_Impl::GetRel32().
+  bool FindNext();
+
+  // Detects and extracts architecture-specific rel32 reference. For each one
+  // found, the implementation should cache the necessary data to be retrieved
+  // via accessors. Returns a NextIterators that stores alternatives for where
+  // to continue the scan. If no rel32 reference is found then the returned
+  // NextIterators are nulls.
+  virtual NextIterators Scan(ConstBufferView region) = 0;
 
  private:
   ConstBufferView region_;
-  ConstBufferView::const_iterator next_cursor_ = nullptr;
+  ConstBufferView::const_iterator accept_it_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(Rel32Finder);
 };
@@ -150,11 +142,16 @@
   }
 
  protected:
+  // Helper for Scan() that also assigns |rel32_|.
+  Rel32Finder::NextIterators SetResult(ConstBufferView::const_iterator cursor,
+                                       uint32_t code_size,
+                                       bool can_point_outside_section);
+
   // Cached results.
   Result rel32_;
 
   // Rel32Finder:
-  ConstBufferView Scan(ConstBufferView region) override = 0;
+  NextIterators Scan(ConstBufferView region) override = 0;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(Rel32FinderIntel);
@@ -167,7 +164,7 @@
 
  private:
   // Rel32Finder:
-  ConstBufferView Scan(ConstBufferView region) override;
+  NextIterators Scan(ConstBufferView region) override;
 
   DISALLOW_COPY_AND_ASSIGN(Rel32FinderX86);
 };
@@ -179,7 +176,7 @@
 
  private:
   // Rel32Finder:
-  ConstBufferView Scan(ConstBufferView region) override;
+  NextIterators Scan(ConstBufferView region) override;
 
   DISALLOW_COPY_AND_ASSIGN(Rel32FinderX64);
 };
diff --git a/components/zucchini/rel32_finder_unittest.cc b/components/zucchini/rel32_finder_unittest.cc
index 2da76ad..c32f814 100644
--- a/components/zucchini/rel32_finder_unittest.cc
+++ b/components/zucchini/rel32_finder_unittest.cc
@@ -122,12 +122,12 @@
  public:
   using Rel32Finder::Rel32Finder;
 
-  bool GetNext() { return Rel32Finder::FindNext(); }
-
   // Rel32Finder:
-  ConstBufferView Scan(ConstBufferView region) override { return next_result; }
+  NextIterators Scan(ConstBufferView region) override { return next_result; }
 
-  ConstBufferView next_result;
+  bool GetNext() { return FindNext(); }
+
+  NextIterators next_result;
 };
 
 }  // namespace
@@ -137,47 +137,48 @@
   std::vector<uint8_t> buffer(kRegionTotal);
   ConstBufferView image(buffer.data(), buffer.size());
 
-  TestRel32Finder finder(image);
+  TestRel32Finder finder;
+  finder.SetRegion(image);
 
   auto check_finder_state = [&](const TestRel32Finder& finder,
                                 size_t expected_cursor,
-                                size_t expected_next_cursor) {
+                                size_t expected_accept_it) {
     CHECK_LE(expected_cursor, kRegionTotal);
-    CHECK_LE(expected_next_cursor, kRegionTotal);
+    CHECK_LE(expected_accept_it, kRegionTotal);
 
     EXPECT_EQ(image.begin() + expected_cursor, finder.region().begin());
-    EXPECT_EQ(image.begin() + expected_next_cursor, finder.next_cursor());
+    EXPECT_EQ(image.begin() + expected_accept_it, finder.accept_it());
   };
 
   check_finder_state(finder, 0, 0);
 
-  finder.next_result = ConstBufferView(image.begin() + 0, 1);
+  finder.next_result = {image.begin() + 1, image.begin() + 1};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 1, 1);
 
-  finder.next_result = ConstBufferView(image.begin() + 1, 1);
+  finder.next_result = {image.begin() + 2, image.begin() + 2};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 2, 2);
 
-  finder.next_result = ConstBufferView(image.begin() + 4, 2);
+  finder.next_result = {image.begin() + 5, image.begin() + 6};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 5, 6);
   finder.Accept();
   check_finder_state(finder, 6, 6);
 
-  finder.next_result = ConstBufferView(image.begin() + 6, 1);
+  finder.next_result = {image.begin() + 7, image.begin() + 7};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 7, 7);
 
-  finder.next_result = ConstBufferView(image.begin() + 7, 1);
+  finder.next_result = {image.begin() + 8, image.begin() + 8};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 8, 8);
 
-  finder.next_result = ConstBufferView(image.begin() + 98, 1);
+  finder.next_result = {image.begin() + 99, image.begin() + 99};
   EXPECT_TRUE(finder.GetNext());
   check_finder_state(finder, 99, 99);
 
-  finder.next_result = ConstBufferView(image.end(), 0);
+  finder.next_result = {nullptr, nullptr};
   EXPECT_FALSE(finder.GetNext());
   check_finder_state(finder, 99, 99);
 }
@@ -211,9 +212,10 @@
   ConstBufferView image =
       ConstBufferView::FromRange(std::begin(data), std::end(data));
 
-  Rel32FinderX86 rel_finder(image);
+  Rel32FinderX86 rel_finder;
+  rel_finder.SetRegion(image);
 
-  // List of expected locations as pairs of (cursor position, rel32 position).
+  // List of expected locations as pairs of {cursor offset, rel32 offset}.
   std::vector<std::pair<size_t, size_t>> expected_locations = {
       {0x04, 0x04}, {0x09, 0x09}, {0x0E, 0x0F}, {0x14, 0x15}, {0x1A, 0x1B},
       {0x20, 0x21}, {0x26, 0x27}, {0x2C, 0x2D}, {0x32, 0x33}, {0x38, 0x39},
@@ -228,7 +230,7 @@
     EXPECT_EQ(location.first,
               size_t(rel_finder.region().begin() - image.begin()));
     EXPECT_EQ(location.second, size_t(result->location - image.begin()));
-    EXPECT_EQ(result->location + 4, rel_finder.next_cursor());
+    EXPECT_EQ(result->location + 4, rel_finder.accept_it());
     EXPECT_FALSE(result->can_point_outside_section);
     rel_finder.Accept();
   }
@@ -245,20 +247,21 @@
   ConstBufferView image =
       ConstBufferView::FromRange(std::begin(data), std::end(data));
 
-  auto next_location = [&](Rel32FinderX86& rel_finder) {
+  auto next_location = [&](Rel32FinderX86& rel_finder) -> size_t {
     auto result = rel_finder.GetNext();
     EXPECT_TRUE(result.has_value());
     return result->location - image.begin();
   };
 
-  Rel32FinderX86 rel_finder(image);
+  Rel32FinderX86 rel_finder;
+  rel_finder.SetRegion(image);
 
-  EXPECT_EQ(0x05, next_location(rel_finder));  // False positive.
+  EXPECT_EQ(0x05U, next_location(rel_finder));  // False positive.
   rel_finder.Accept();
   // False negative: shadowed by 0x05
   // EXPECT_EQ(0x06, next_location(rel_finder));
-  EXPECT_EQ(0x0A, next_location(rel_finder));  // False positive.
-  EXPECT_EQ(0x0B, next_location(rel_finder));  // Found if 0x0A is discarded.
+  EXPECT_EQ(0x0AU, next_location(rel_finder));  // False positive.
+  EXPECT_EQ(0x0BU, next_location(rel_finder));  // Found if 0x0A is discarded.
 }
 
 TEST(Rel32FinderX64Test, FindNext) {
@@ -308,9 +311,10 @@
   ConstBufferView image =
       ConstBufferView::FromRange(std::begin(data), std::end(data));
 
-  Rel32FinderX64 rel_finder(image);
+  Rel32FinderX64 rel_finder;
+  rel_finder.SetRegion(image);
 
-  // Lists of expected locations as pairs of (cursor position, rel32 position).
+  // Lists of expected locations as pairs of {cursor offset, rel32 offset}.
   std::vector<std::pair<size_t, size_t>> expected_locations = {
       {0x04, 0x04}, {0x09, 0x09}, {0x0E, 0x0F}, {0x14, 0x15}, {0x1A, 0x1B},
       {0x20, 0x21}, {0x26, 0x27}, {0x2C, 0x2D}, {0x32, 0x33}, {0x38, 0x39},
@@ -323,25 +327,25 @@
       {0xAF, 0xB0}, {0xB6, 0xB7}, {0xBD, 0xBE}, {0xC4, 0xC5}, {0xCB, 0xCC},
       {0xD2, 0xD3}, {0xD9, 0xDA}, {0xE0, 0xE1},
   };
+  // Jump instructions, which cannot point outside section.
   for (auto location : expected_locations) {
     auto result = rel_finder.GetNext();
     EXPECT_TRUE(result.has_value());
-
     EXPECT_EQ(location.first,
               size_t(rel_finder.region().begin() - image.begin()));
     EXPECT_EQ(location.second, size_t(result->location - image.begin()));
-    EXPECT_EQ(result->location + 4, rel_finder.next_cursor());
+    EXPECT_EQ(result->location + 4, rel_finder.accept_it());
     EXPECT_FALSE(result->can_point_outside_section);
     rel_finder.Accept();
   }
+  // PC-relative data access instructions, which can point outside section.
   for (auto location : expected_locations_rip) {
     auto result = rel_finder.GetNext();
     EXPECT_TRUE(result.has_value());
-
     EXPECT_EQ(location.first,
               size_t(rel_finder.region().begin() - image.begin()));
     EXPECT_EQ(location.second, size_t(result->location - image.begin()));
-    EXPECT_EQ(result->location + 4, rel_finder.next_cursor());
+    EXPECT_EQ(result->location + 4, rel_finder.accept_it());
     EXPECT_TRUE(result->can_point_outside_section);
     rel_finder.Accept();
   }
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 9bccad4..a420ebf 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -2427,6 +2427,8 @@
       "speech/speech_recognizer_impl.h",
 
       # Most webauth code is non-Android
+      "webauth/authenticator_common.cc",
+      "webauth/authenticator_common.h",
       "webauth/authenticator_impl.cc",
       "webauth/authenticator_impl.h",
       "webauth/authenticator_type_converters.cc",
diff --git a/content/browser/accessibility/accessibility_auralinux_browsertest.cc b/content/browser/accessibility/accessibility_auralinux_browsertest.cc
index ab4aad7..7335c1f 100644
--- a/content/browser/accessibility/accessibility_auralinux_browsertest.cc
+++ b/content/browser/accessibility/accessibility_auralinux_browsertest.cc
@@ -2,12 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Chromium cannot upgrade to ATK 2.12 API as it still needs to run
-// valid builds for Ubuntu Trusty.
-// TODO(accessibility): Remove this when Chromium drops support for ATK
-// older than 2.12.
-#define ATK_DISABLE_DEPRECATION_WARNINGS
-
 #include <atk/atk.h>
 
 #include "base/bind_helpers.h"
diff --git a/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc b/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
index 5a662f8..2eb811e0 100644
--- a/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
+++ b/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
@@ -329,6 +329,14 @@
     }
   }
 
+  const base::ListValue* value_info;
+  node.GetList("value", &value_info);
+  for (auto it = value_info->begin(); it != value_info->end(); ++it) {
+    std::string value_property;
+    if (it->GetAsString(&value_property))
+      WriteAttribute(true, value_property, &line);
+  }
+
   const base::ListValue* table_info;
   node.GetList("table", &table_info);
   for (auto it = table_info->begin(); it != table_info->end(); ++it) {
diff --git a/content/browser/accessibility/accessibility_win_browsertest.cc b/content/browser/accessibility/accessibility_win_browsertest.cc
index 9729751..6c2a84c 100644
--- a/content/browser/accessibility/accessibility_win_browsertest.cc
+++ b/content/browser/accessibility/accessibility_win_browsertest.cc
@@ -27,6 +27,7 @@
 #include "content/browser/accessibility/browser_accessibility_manager_win.h"
 #include "content/browser/accessibility/browser_accessibility_win.h"
 #include "content/browser/renderer_host/render_view_host_impl.h"
+#include "content/browser/renderer_host/render_widget_host_view_aura.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/browser/web_contents/web_contents_view_aura.h"
 #include "content/public/browser/notification_service.h"
@@ -44,6 +45,7 @@
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "third_party/iaccessible2/ia2_api_all.h"
 #include "third_party/isimpledom/ISimpleDOMNode.h"
+#include "ui/accessibility/accessibility_switches.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
 
@@ -3243,4 +3245,57 @@
   EXPECT_EQ(VARIANT_FALSE, result.ptr()->boolVal);
 }
 
+IN_PROC_BROWSER_TEST_F(AccessibilityWinBrowserTest, TestIFrameRootNodeChange) {
+  base::CommandLine::ForCurrentProcess()->AppendSwitch(
+      ::switches::kEnableExperimentalUIAutomation);
+
+  LoadInitialAccessibilityTreeFromHtml(
+      R"HTML(<!DOCTYPE html>
+      <html>
+      </html>)HTML");
+
+  // Request an automation element for the legacy window to ensure that the
+  // fragment root is created before the iframe content tree shows up.
+  Microsoft::WRL::ComPtr<IUIAutomation> uia;
+  ASSERT_HRESULT_SUCCEEDED(CoCreateInstance(CLSID_CUIAutomation, nullptr,
+                                            CLSCTX_INPROC_SERVER,
+                                            IID_IUIAutomation, &uia));
+
+  RenderWidgetHostViewAura* render_widget_host_view_aura =
+      static_cast<RenderWidgetHostViewAura*>(
+          shell()->web_contents()->GetRenderWidgetHostView());
+  ASSERT_NE(nullptr, render_widget_host_view_aura);
+  HWND hwnd = render_widget_host_view_aura->AccessibilityGetAcceleratedWidget();
+  ASSERT_NE(gfx::kNullAcceleratedWidget, hwnd);
+  Microsoft::WRL::ComPtr<IUIAutomationElement> root_element;
+  ASSERT_HRESULT_SUCCEEDED(uia->ElementFromHandle(hwnd, &root_element));
+  ASSERT_NE(nullptr, root_element.Get());
+
+  // Insert a new iframe and wait for tree update.
+  AccessibilityNotificationWaiter waiter(shell()->web_contents(),
+                                         ui::kAXModeComplete,
+                                         ax::mojom::Event::kLayoutComplete);
+  ExecuteScript(
+      L"let new_frame = document.createElement('iframe');"
+      L"new_frame.setAttribute('src', 'about:blank');"
+      L"document.body.appendChild(new_frame);");
+  waiter.WaitForNotification();
+
+  // Content root node's parent's child should still be the content root node.
+  Microsoft::WRL::ComPtr<IRawElementProviderFragment> content_root;
+  ASSERT_HRESULT_SUCCEEDED(
+      GetManager()->GetRoot()->GetNativeViewAccessible()->QueryInterface(
+          IID_PPV_ARGS(&content_root)));
+
+  Microsoft::WRL::ComPtr<IRawElementProviderFragment> parent;
+  ASSERT_HRESULT_SUCCEEDED(
+      content_root->Navigate(NavigateDirection_Parent, &parent));
+  ASSERT_NE(nullptr, parent.Get());
+
+  Microsoft::WRL::ComPtr<IRawElementProviderFragment> first_child;
+  ASSERT_HRESULT_SUCCEEDED(
+      parent->Navigate(NavigateDirection_FirstChild, &first_child));
+  EXPECT_EQ(content_root.Get(), first_child.Get());
+}
+
 }  // namespace content
diff --git a/content/browser/accessibility/browser_accessibility_manager_win.cc b/content/browser/accessibility/browser_accessibility_manager_win.cc
index 9480d880..7350db70 100644
--- a/content/browser/accessibility/browser_accessibility_manager_win.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_win.cc
@@ -305,7 +305,7 @@
   BrowserAccessibilityManager::OnAtomicUpdateFinished(tree, root_changed,
                                                       changes);
 
-  if (root_changed &&
+  if (root_changed && IsRootTree() &&
       switches::IsExperimentalAccessibilityPlatformUIAEnabled()) {
     // If a fragment root has been created, inform it that the content root has
     // changed.
diff --git a/content/browser/accessibility/dump_accessibility_browsertest_base.cc b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
index 150f0f7..bb43d97a 100644
--- a/content/browser/accessibility/dump_accessibility_browsertest_base.cc
+++ b/content/browser/accessibility/dump_accessibility_browsertest_base.cc
@@ -389,9 +389,7 @@
     // Block until the next accessibility notification in any frame.
     VLOG(1) << "Waiting until the next accessibility event";
     AccessibilityNotificationWaiter accessibility_waiter(
-        main_frame, ax::mojom::Event::kNone);
-    for (FrameTreeNode* node : frame_tree->Nodes())
-      accessibility_waiter.ListenToAdditionalFrame(node->current_frame_host());
+        web_contents, ui::AXMode(), ax::mojom::Event::kNone);
     accessibility_waiter.WaitForNotification();
   }
 
diff --git a/content/browser/accessibility/hit_testing_browsertest.cc b/content/browser/accessibility/hit_testing_browsertest.cc
index 77099e2..0c81a45 100644
--- a/content/browser/accessibility/hit_testing_browsertest.cc
+++ b/content/browser/accessibility/hit_testing_browsertest.cc
@@ -31,14 +31,11 @@
       ax::mojom::Event event_to_fire) {
     WebContentsImpl* web_contents =
         static_cast<WebContentsImpl*>(shell()->web_contents());
-    FrameTree* frame_tree = web_contents->GetFrameTree();
     BrowserAccessibilityManager* manager =
         web_contents->GetRootBrowserAccessibilityManager();
 
     AccessibilityNotificationWaiter event_waiter(
         shell()->web_contents(), ui::kAXModeComplete, event_to_fire);
-    for (FrameTreeNode* node : frame_tree->Nodes())
-      event_waiter.ListenToAdditionalFrame(node->current_frame_host());
     ui::AXActionData action_data;
     action_data.action = ax::mojom::Action::kHitTest;
     action_data.target_point =
@@ -62,15 +59,9 @@
   }
 
   BrowserAccessibility* TapAndWaitForResult(const gfx::Point& point) {
-    WebContentsImpl* web_contents =
-        static_cast<WebContentsImpl*>(shell()->web_contents());
-    FrameTree* frame_tree = web_contents->GetFrameTree();
-
     AccessibilityNotificationWaiter event_waiter(shell()->web_contents(),
                                                  ui::kAXModeComplete,
                                                  ax::mojom::Event::kClicked);
-    for (FrameTreeNode* node : frame_tree->Nodes())
-      event_waiter.ListenToAdditionalFrame(node->current_frame_host());
 
     SimulateTapAt(shell()->web_contents(), point);
     event_waiter.WaitForNotification();
@@ -86,7 +77,6 @@
   BrowserAccessibility* CallCachingAsyncHitTest(const gfx::Point& point) {
     WebContentsImpl* web_contents =
         static_cast<WebContentsImpl*>(shell()->web_contents());
-    FrameTree* frame_tree = web_contents->GetFrameTree();
     BrowserAccessibilityManager* manager =
         web_contents->GetRootBrowserAccessibilityManager();
     gfx::Point screen_point =
@@ -96,8 +86,6 @@
     // event received. Block until we receive it.
     AccessibilityNotificationWaiter hover_waiter(
         shell()->web_contents(), ui::kAXModeComplete, ax::mojom::Event::kHover);
-    for (FrameTreeNode* node : frame_tree->Nodes())
-      hover_waiter.ListenToAdditionalFrame(node->current_frame_host());
     BrowserAccessibility* result = manager->CachingAsyncHitTest(screen_point);
     hover_waiter.WaitForNotification();
     return result;
diff --git a/content/browser/accessibility/touch_accessibility_aura_browsertest.cc b/content/browser/accessibility/touch_accessibility_aura_browsertest.cc
index 8df6bc7d..fe2dfff6 100644
--- a/content/browser/accessibility/touch_accessibility_aura_browsertest.cc
+++ b/content/browser/accessibility/touch_accessibility_aura_browsertest.cc
@@ -140,7 +140,8 @@
   // Send a touch exploration event to the button in the first iframe.
   // A touch exploration event is just a mouse move event with
   // the ui::EF_TOUCH_ACCESSIBILITY flag set.
-  AccessibilityNotificationWaiter waiter(child_frame, ax::mojom::Event::kHover);
+  AccessibilityNotificationWaiter waiter(shell()->web_contents(), ui::AXMode(),
+                                         ax::mojom::Event::kHover);
   SendTouchExplorationEvent(50, 350);
   waiter.WaitForNotification();
   int target_id = waiter.event_target_id();
@@ -177,7 +178,8 @@
   // Send a touch exploration event to the button in the first iframe.
   // A touch exploration event is just a mouse move event with
   // the ui::EF_TOUCH_ACCESSIBILITY flag set.
-  AccessibilityNotificationWaiter waiter(child_frame, ax::mojom::Event::kHover);
+  AccessibilityNotificationWaiter waiter(shell()->web_contents(), ui::AXMode(),
+                                         ax::mojom::Event::kHover);
   SendTouchExplorationEvent(50, 350);
   waiter.WaitForNotification();
   int target_id = waiter.event_target_id();
diff --git a/content/browser/appcache/appcache_update_url_loader_request.cc b/content/browser/appcache/appcache_update_url_loader_request.cc
index acc8941..dd51fd3 100644
--- a/content/browser/appcache/appcache_update_url_loader_request.cc
+++ b/content/browser/appcache/appcache_update_url_loader_request.cc
@@ -171,7 +171,6 @@
 
 void AppCacheUpdateJob::UpdateURLLoaderRequest::OnTransferSizeUpdated(
     int32_t transfer_size_diff) {
-  NOTIMPLEMENTED();
 }
 
 void AppCacheUpdateJob::UpdateURLLoaderRequest::OnStartLoadingResponseBody(
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc
index ff36afe2..c56f60d 100644
--- a/content/browser/background_sync/background_sync_manager.cc
+++ b/content/browser/background_sync/background_sync_manager.cc
@@ -240,9 +240,7 @@
 }
 
 void BackgroundSyncManager::DidResolveRegistration(
-    int64_t sw_registration_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type) {
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   if (disabled_)
@@ -250,8 +248,8 @@
   op_scheduler_.ScheduleOperation(
       CacheStorageSchedulerOp::kBackgroundSync,
       base::BindOnce(&BackgroundSyncManager::DidResolveRegistrationImpl,
-                     weak_ptr_factory_.GetWeakPtr(), sw_registration_id, tag,
-                     sync_type));
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(registration_info)));
 }
 
 void BackgroundSyncManager::GetRegistrations(
@@ -573,8 +571,9 @@
           &NotifyBackgroundSyncRegisteredOnUIThread, service_worker_context_,
           url::Origin::Create(sw_registration->scope().GetOrigin())));
 
-  BackgroundSyncRegistration* existing_registration = LookupActiveRegistration(
-      sw_registration_id, options.tag, GetBackgroundSyncType(options));
+  BackgroundSyncRegistration* existing_registration =
+      LookupActiveRegistration(blink::mojom::BackgroundSyncRegistrationInfo(
+          sw_registration_id, options.tag, GetBackgroundSyncType(options)));
   if (existing_registration) {
     DCHECK(existing_registration->options()->Equals(options));
 
@@ -671,20 +670,19 @@
 }
 
 BackgroundSyncRegistration* BackgroundSyncManager::LookupActiveRegistration(
-    int64_t sw_registration_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type) {
+    const blink::mojom::BackgroundSyncRegistrationInfo& registration_info) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
-  auto it = active_registrations_.find(sw_registration_id);
+  auto it = active_registrations_.find(
+      registration_info.service_worker_registration_id);
   if (it == active_registrations_.end())
     return nullptr;
 
   BackgroundSyncRegistrations& registrations = it->second;
   DCHECK(!registrations.origin.opaque());
 
-  auto key_and_registration_iter =
-      registrations.registration_map.find({tag, sync_type});
+  auto key_and_registration_iter = registrations.registration_map.find(
+      {registration_info.tag, registration_info.sync_type});
   if (key_and_registration_iter == registrations.registration_map.end())
     return nullptr;
 
@@ -765,13 +763,11 @@
 }
 
 void BackgroundSyncManager::DidResolveRegistrationImpl(
-    int64_t sw_registration_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type) {
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   BackgroundSyncRegistration* registration =
-      LookupActiveRegistration(sw_registration_id, tag, sync_type);
+      LookupActiveRegistration(*registration_info);
   if (!registration) {
     // There might not be a registration if the client ack's a registration that
     // was a duplicate in the first place and was already firing and finished by
@@ -786,16 +782,15 @@
 }
 
 void BackgroundSyncManager::RemoveActiveRegistration(
-    int64_t sw_registration_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type) {
+    const blink::mojom::BackgroundSyncRegistrationInfo& registration_info) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  DCHECK(LookupActiveRegistration(sw_registration_id, tag, sync_type));
+  DCHECK(LookupActiveRegistration(registration_info));
 
   BackgroundSyncRegistrations* registrations =
-      &active_registrations_[sw_registration_id];
+      &active_registrations_[registration_info.service_worker_registration_id];
 
-  registrations->registration_map.erase({tag, sync_type});
+  registrations->registration_map.erase(
+      {registration_info.tag, registration_info.sync_type});
 }
 
 void BackgroundSyncManager::AddActiveRegistration(
@@ -963,10 +958,9 @@
 void BackgroundSyncManager::RunInBackgroundIfNecessary() {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   base::TimeDelta soonest_wakeup_delta = base::TimeDelta::Max();
-
-  for (const auto& sw_id_and_registrations : active_registrations_) {
+  for (const auto& sw_reg_id_and_registrations : active_registrations_) {
     for (const auto& key_and_registration :
-         sw_id_and_registrations.second.registration_map) {
+         sw_reg_id_and_registrations.second.registration_map) {
       const BackgroundSyncRegistration& registration =
           key_and_registration.second;
       if (registration.sync_state() ==
@@ -1037,32 +1031,21 @@
   }
 
   // Find the registrations that are ready to run.
-  struct RegistrationsToFire {
-    RegistrationsToFire(int64_t service_worker_registration_id_,
-                        std::string tag_,
-                        blink::mojom::BackgroundSyncType sync_type_)
-        : service_worker_registration_id(service_worker_registration_id_),
-          tag(tag_),
-          sync_type(sync_type_) {}
-    int64_t service_worker_registration_id;
-    std::string tag;
-    blink::mojom::BackgroundSyncType sync_type;
-  };
-  std::vector<RegistrationsToFire> to_fire;
+  std::vector<blink::mojom::BackgroundSyncRegistrationInfoPtr> to_fire;
 
-  for (auto& sw_id_and_registrations : active_registrations_) {
+  for (auto& sw_reg_id_and_registrations : active_registrations_) {
     const int64_t service_worker_registration_id =
-        sw_id_and_registrations.first;
+        sw_reg_id_and_registrations.first;
     for (auto& key_and_registration :
-         sw_id_and_registrations.second.registration_map) {
+         sw_reg_id_and_registrations.second.registration_map) {
       BackgroundSyncRegistration* registration = &key_and_registration.second;
 
       if (IsRegistrationReadyToFire(*registration,
                                     service_worker_registration_id)) {
-        to_fire.emplace_back(
+        to_fire.emplace_back(blink::mojom::BackgroundSyncRegistrationInfo::New(
             service_worker_registration_id,
             /* tag= */ key_and_registration.first.first,
-            /* sync_type= */ key_and_registration.first.second);
+            /* sync_type= */ key_and_registration.first.second));
 
         // The state change is not saved to persistent storage because
         // if the sync event is killed mid-sync then it should return to
@@ -1095,28 +1078,24 @@
                                           to_fire.size()));
 
   for (auto& registration_info : to_fire) {
-    const BackgroundSyncRegistration* registration = LookupActiveRegistration(
-        registration_info.service_worker_registration_id, registration_info.tag,
-        registration_info.sync_type);
+    const BackgroundSyncRegistration* registration =
+        LookupActiveRegistration(*registration_info);
     DCHECK(registration);
 
+    int64_t service_worker_registration_id =
+        registration_info->service_worker_registration_id;
     service_worker_context_->FindReadyRegistrationForId(
-        registration_info.service_worker_registration_id,
-        active_registrations_[registration_info.service_worker_registration_id]
-            .origin.GetURL(),
+        service_worker_registration_id,
+        active_registrations_[service_worker_registration_id].origin.GetURL(),
         base::BindOnce(
             &BackgroundSyncManager::FireReadyEventsDidFindRegistration,
-            weak_ptr_factory_.GetWeakPtr(),
-            registration_info.service_worker_registration_id,
-            std::move(registration_info.tag), registration_info.sync_type,
+            weak_ptr_factory_.GetWeakPtr(), std::move(registration_info),
             events_fired_barrier_closure, events_completed_barrier_closure));
   }
 }
 
 void BackgroundSyncManager::FireReadyEventsDidFindRegistration(
-    int64_t service_worker_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type,
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
     base::OnceClosure event_fired_callback,
     base::OnceClosure event_completed_callback,
     blink::ServiceWorkerStatusCode service_worker_status,
@@ -1124,7 +1103,7 @@
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   BackgroundSyncRegistration* registration =
-      LookupActiveRegistration(service_worker_id, tag, sync_type);
+      LookupActiveRegistration(*registration_info);
 
   if (service_worker_status != blink::ServiceWorkerStatusCode::kOk) {
     if (registration)
@@ -1136,15 +1115,18 @@
     return;
   }
 
-  DCHECK_EQ(service_worker_id, service_worker_registration->id());
+  DCHECK_EQ(registration_info->service_worker_registration_id,
+            service_worker_registration->id());
   DCHECK(registration);
 
   // Don't dispatch a sync event if the sync is periodic.
   // TODO(crbug.com/925297): Remove this code when we've added the logic to
   // dispatch periodic sync events.
-  if (registration && sync_type == blink::mojom::BackgroundSyncType::PERIODIC) {
-    RemoveActiveRegistration(service_worker_id, tag, sync_type);
-    StoreRegistrations(service_worker_id, base::DoNothing());
+  if (registration && registration_info->sync_type ==
+                          blink::mojom::BackgroundSyncType::PERIODIC) {
+    RemoveActiveRegistration(*registration_info);
+    StoreRegistrations(registration_info->service_worker_registration_id,
+                       base::DoNothing());
     base::ThreadTaskRunnerHandle::Get()->PostTask(
         FROM_HERE, std::move(event_fired_callback));
     base::ThreadTaskRunnerHandle::Get()->PostTask(
@@ -1179,10 +1161,10 @@
   DispatchSyncEvent(
       registration->options()->tag,
       service_worker_registration->active_version(), last_chance,
-      base::BindOnce(
-          &BackgroundSyncManager::EventComplete, weak_ptr_factory_.GetWeakPtr(),
-          service_worker_registration, service_worker_registration->id(), tag,
-          sync_type, std::move(event_completed_callback)));
+      base::BindOnce(&BackgroundSyncManager::EventComplete,
+                     weak_ptr_factory_.GetWeakPtr(),
+                     service_worker_registration, std::move(registration_info),
+                     std::move(event_completed_callback)));
 
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, std::move(event_fired_callback));
@@ -1200,9 +1182,7 @@
 // while the event is firing.
 void BackgroundSyncManager::EventComplete(
     scoped_refptr<ServiceWorkerRegistration> service_worker_registration,
-    int64_t service_worker_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type,
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
     base::OnceClosure callback,
     blink::ServiceWorkerStatusCode status_code) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -1216,15 +1196,13 @@
   op_scheduler_.ScheduleOperation(
       CacheStorageSchedulerOp::kBackgroundSync,
       base::BindOnce(&BackgroundSyncManager::EventCompleteImpl,
-                     weak_ptr_factory_.GetWeakPtr(), service_worker_id, tag,
-                     sync_type, status_code,
+                     weak_ptr_factory_.GetWeakPtr(),
+                     std::move(registration_info), status_code,
                      op_scheduler_.WrapCallbackToRunNext(std::move(callback))));
 }
 
 void BackgroundSyncManager::EventCompleteImpl(
-    int64_t service_worker_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type,
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
     blink::ServiceWorkerStatusCode status_code,
     base::OnceClosure callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -1238,7 +1216,7 @@
   num_firing_registrations_ -= 1;
 
   BackgroundSyncRegistration* registration =
-      LookupActiveRegistration(service_worker_id, tag, sync_type);
+      LookupActiveRegistration(*registration_info);
   if (!registration) {
     base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
                                                   std::move(callback));
@@ -1253,7 +1231,8 @@
   // The event ran to completion, we should count it, no matter what happens
   // from here.
   ServiceWorkerRegistration* sw_registration =
-      service_worker_context_->GetLiveRegistration(service_worker_id);
+      service_worker_context_->GetLiveRegistration(
+          registration_info->service_worker_registration_id);
   url::Origin origin =
       url::Origin::Create(sw_registration->scope().GetOrigin());
   if (sw_registration) {
@@ -1282,11 +1261,12 @@
     registration_completed = false;
 
     if (devtools_context_->IsRecording(devtools::proto::BACKGROUND_SYNC) &&
-        sync_type == blink::mojom::BackgroundSyncType::ONE_SHOT) {
+        registration_info->sync_type ==
+            blink::mojom::BackgroundSyncType::ONE_SHOT) {
       devtools_context_->LogBackgroundServiceEvent(
           sw_registration->id(), origin, devtools::proto::BACKGROUND_SYNC,
           /* event_name= */ "Sync Event Failed",
-          /* instance_id= */ tag,
+          /* instance_id= */ registration_info->tag,
           /* event_metadata= */
           {{"Next Attempt Delay (ms)",
             base::NumberToString(delay.InMilliseconds())}});
@@ -1294,24 +1274,26 @@
   }
 
   if (registration_completed) {
-    RemoveActiveRegistration(service_worker_id, tag, sync_type);
+    RemoveActiveRegistration(*registration_info);
 
     if (devtools_context_->IsRecording(devtools::proto::BACKGROUND_SYNC) &&
-        sync_type == blink::mojom::BackgroundSyncType::ONE_SHOT) {
+        registration_info->sync_type ==
+            blink::mojom::BackgroundSyncType::ONE_SHOT) {
       bool succeded = status_code == blink::ServiceWorkerStatusCode::kOk;
       devtools_context_->LogBackgroundServiceEvent(
           sw_registration->id(), origin, devtools::proto::BACKGROUND_SYNC,
           /* event_name= */ "Sync Complete",
-          /* instance_id= */ tag,
+          /* instance_id= */ registration_info->tag,
           /* event_metadata= */
           {{"Succeeded", succeded ? "Yes" : "No"}});
     }
   }
 
   StoreRegistrations(
-      service_worker_id,
+      registration_info->service_worker_registration_id,
       base::BindOnce(&BackgroundSyncManager::EventCompleteDidStore,
-                     weak_ptr_factory_.GetWeakPtr(), service_worker_id,
+                     weak_ptr_factory_.GetWeakPtr(),
+                     registration_info->service_worker_registration_id,
                      std::move(callback)));
 }
 
diff --git a/content/browser/background_sync/background_sync_manager.h b/content/browser/background_sync/background_sync_manager.h
index 299b17d..3fe217b 100644
--- a/content/browser/background_sync/background_sync_manager.h
+++ b/content/browser/background_sync/background_sync_manager.h
@@ -81,9 +81,8 @@
 
   // Called after the client has resolved its registration promise. At this
   // point it's safe to fire any pending registrations.
-  void DidResolveRegistration(int64_t sw_registration_id,
-                              const std::string& tag,
-                              blink::mojom::BackgroundSyncType sync_type);
+  void DidResolveRegistration(
+      blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info);
 
   // Finds the background sync registrations associated with
   // |sw_registration_id|. Calls |callback| with BACKGROUND_SYNC_STATUS_OK on
@@ -169,8 +168,6 @@
     url::Origin origin;
   };
 
-  using SWIdToRegistrationsMap = std::map<int64_t, BackgroundSyncRegistrations>;
-
   static const size_t kMaxTagLength = 10240;
 
   // Disable the manager. Already queued operations will abort once they start
@@ -188,9 +185,7 @@
 
   // Returns the existing registration or nullptr if it cannot be found.
   BackgroundSyncRegistration* LookupActiveRegistration(
-      int64_t sw_registration_id,
-      const std::string& tag,
-      blink::mojom::BackgroundSyncType sync_type);
+      const blink::mojom::BackgroundSyncRegistrationInfo& registration_info);
 
   // Write all registrations for a given |sw_registration_id| to persistent
   // storage.
@@ -198,9 +193,8 @@
                           ServiceWorkerStorage::StatusCallback callback);
 
   // Removes the active registration if it is in the map.
-  void RemoveActiveRegistration(int64_t sw_registration_id,
-                                const std::string& tag,
-                                blink::mojom::BackgroundSyncType sync_type);
+  void RemoveActiveRegistration(
+      const blink::mojom::BackgroundSyncRegistrationInfo& registration_info);
 
   void AddActiveRegistration(
       int64_t sw_registration_id,
@@ -240,9 +234,8 @@
                         blink::ServiceWorkerStatusCode status);
 
   // DidResolveRegistration callbacks
-  void DidResolveRegistrationImpl(int64_t sw_registration_id,
-                                  const std::string& tag,
-                                  blink::mojom::BackgroundSyncType sync_type);
+  void DidResolveRegistrationImpl(
+      blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info);
 
   // GetRegistrations callbacks
   void GetRegistrationsImpl(int64_t sw_registration_id,
@@ -267,9 +260,7 @@
 
   void FireReadyEventsImpl(base::OnceClosure callback);
   void FireReadyEventsDidFindRegistration(
-      int64_t service_worker_id,
-      const std::string& tag,
-      blink::mojom::BackgroundSyncType sync_type,
+      blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
       base::OnceClosure event_fired_callback,
       base::OnceClosure event_completed_callback,
       blink::ServiceWorkerStatusCode service_worker_status,
@@ -279,16 +270,13 @@
   // Called when a sync event has completed.
   void EventComplete(
       scoped_refptr<ServiceWorkerRegistration> service_worker_registration,
-      int64_t service_worker_id,
-      const std::string& tag,
-      blink::mojom::BackgroundSyncType sync_type,
+      blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
       base::OnceClosure callback,
       blink::ServiceWorkerStatusCode status_code);
-  void EventCompleteImpl(int64_t service_worker_id,
-                         const std::string& tag,
-                         blink::mojom::BackgroundSyncType sync_type,
-                         blink::ServiceWorkerStatusCode status_code,
-                         base::OnceClosure callback);
+  void EventCompleteImpl(
+      blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info,
+      blink::ServiceWorkerStatusCode status_code,
+      base::OnceClosure callback);
   void EventCompleteDidStore(int64_t service_worker_id,
                              base::OnceClosure callback,
                              blink::ServiceWorkerStatusCode status_code);
@@ -315,7 +303,10 @@
   blink::ServiceWorkerStatusCode CanEmulateSyncEvent(
       scoped_refptr<ServiceWorkerVersion> active_version);
 
-  SWIdToRegistrationsMap active_registrations_;
+  // Map from service worker registration id to its Background Sync
+  // registrations.
+  std::map<int64_t, BackgroundSyncRegistrations> active_registrations_;
+
   CacheStorageScheduler op_scheduler_;
   scoped_refptr<ServiceWorkerContextWrapper> service_worker_context_;
   scoped_refptr<DevToolsBackgroundServicesContext> devtools_context_;
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc
index 902679c4..5531c64 100644
--- a/content/browser/background_sync/background_sync_manager_unittest.cc
+++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -275,8 +275,6 @@
       int64_t sw_registration_id,
       blink::mojom::SyncRegistrationOptions options) {
     bool was_called = false;
-    const std::string tag = options.tag;
-    blink::mojom::BackgroundSyncType sync_type = GetBackgroundSyncType(options);
     background_sync_manager_->Register(
         sw_registration_id, std::move(options),
         base::BindOnce(
@@ -288,8 +286,9 @@
     // Mock the client receiving the response and calling
     // DidResolveRegistration.
     if (callback_status_ == BACKGROUND_SYNC_STATUS_OK) {
-      background_sync_manager_->DidResolveRegistration(sw_registration_id, tag,
-                                                       sync_type);
+      background_sync_manager_->DidResolveRegistration(
+          blink::mojom::BackgroundSyncRegistrationInfo::New(
+              sw_registration_id, options.tag, GetBackgroundSyncType(options)));
       base::RunLoop().RunUntilIdle();
     }
 
@@ -492,8 +491,9 @@
   EXPECT_EQ(0, sync_events_called_);
 
   background_sync_manager_->DidResolveRegistration(
-      sw_registration_id_1_, sync_options_1_.tag,
-      GetBackgroundSyncType(sync_options_1_));
+      blink::mojom::BackgroundSyncRegistrationInfo::New(
+          sw_registration_id_1_, sync_options_1_.tag,
+          GetBackgroundSyncType(sync_options_1_)));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(1, sync_events_called_);
 }
@@ -514,8 +514,9 @@
 
   // Resolve a non-existing registration.
   background_sync_manager_->DidResolveRegistration(
-      sw_registration_id_1_, "unknown_tag",
-      GetBackgroundSyncType(sync_options_1_));
+      blink::mojom::BackgroundSyncRegistrationInfo::New(
+          sw_registration_id_1_, "unknown_tag",
+          GetBackgroundSyncType(sync_options_1_)));
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(0, sync_events_called_);
 }
diff --git a/content/browser/background_sync/background_sync_service_impl.cc b/content/browser/background_sync/background_sync_service_impl.cc
index e64b103..24a6427 100644
--- a/content/browser/background_sync/background_sync_service_impl.cc
+++ b/content/browser/background_sync/background_sync_service_impl.cc
@@ -75,16 +75,13 @@
 }
 
 void BackgroundSyncServiceImpl::DidResolveRegistration(
-    int64_t sw_registration_id,
-    const std::string& tag,
-    blink::mojom::BackgroundSyncType sync_type) {
+    blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
 
   BackgroundSyncManager* background_sync_manager =
       background_sync_context_->background_sync_manager();
   DCHECK(background_sync_manager);
-  background_sync_manager->DidResolveRegistration(sw_registration_id, tag,
-                                                  sync_type);
+  background_sync_manager->DidResolveRegistration(std::move(registration_info));
 }
 
 void BackgroundSyncServiceImpl::GetRegistrations(
diff --git a/content/browser/background_sync/background_sync_service_impl.h b/content/browser/background_sync/background_sync_service_impl.h
index e064e96f..8c0f6f5 100644
--- a/content/browser/background_sync/background_sync_service_impl.h
+++ b/content/browser/background_sync/background_sync_service_impl.h
@@ -38,10 +38,8 @@
   void Register(blink::mojom::SyncRegistrationOptionsPtr options,
                 int64_t sw_registration_id,
                 RegisterCallback callback) override;
-  void DidResolveRegistration(
-      int64_t sw_registration_id,
-      const std::string& tag,
-      blink::mojom::BackgroundSyncType sync_type) override;
+  void DidResolveRegistration(blink::mojom::BackgroundSyncRegistrationInfoPtr
+                                  registration_info) override;
   void GetRegistrations(int64_t sw_registration_id,
                         GetRegistrationsCallback callback) override;
 
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc
index ff4e310..69f379e 100644
--- a/content/browser/compositor/gpu_process_transport_factory.cc
+++ b/content/browser/compositor/gpu_process_transport_factory.cc
@@ -22,6 +22,7 @@
 #include "cc/base/histograms.h"
 #include "cc/raster/single_thread_task_graph_runner.h"
 #include "cc/raster/task_graph_runner.h"
+#include "components/viz/common/display/renderer_settings.h"
 #include "components/viz/common/features.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "components/viz/common/frame_sinks/begin_frame_source.h"
@@ -163,7 +164,6 @@
     viz::ServerSharedBitmapManager* server_shared_bitmap_manager,
     scoped_refptr<base::SingleThreadTaskRunner> resize_task_runner)
     : frame_sink_id_allocator_(kDefaultClientId),
-      renderer_settings_(viz::CreateRendererSettings()),
       resize_task_runner_(std::move(resize_task_runner)),
       task_graph_runner_(new cc::SingleThreadTaskGraphRunner),
       shared_worker_context_provider_factory_(
@@ -263,10 +263,9 @@
 
   ui::OzonePlatform* ozone_platform = ui::OzonePlatform::GetInstance();
   DCHECK(ozone_platform);
-  ui::OverlayManagerOzone* overlay_manager =
-      ozone_platform->GetOverlayManager();
+  auto& host_properties = ozone_platform->GetInitializedHostProperties();
   if (!command_line->HasSwitch(switches::kEnableHardwareOverlays) &&
-      overlay_manager->SupportsOverlays()) {
+      host_properties.supports_overlays) {
     enable_overlay_flag = "single-fullscreen,single-on-top,underlay";
   }
   if (!enable_overlay_flag.empty()) {
@@ -561,7 +560,7 @@
 
   // The Display owns and uses the |display_output_surface| created above.
   data->display = std::make_unique<viz::Display>(
-      server_shared_bitmap_manager_, renderer_settings_,
+      server_shared_bitmap_manager_, viz::CreateRendererSettings(),
       compositor->frame_sink_id(), std::move(display_output_surface),
       std::move(scheduler), compositor->task_runner());
   data->display_client =
diff --git a/content/browser/compositor/gpu_process_transport_factory.h b/content/browser/compositor/gpu_process_transport_factory.h
index 4c45480..dd97989 100644
--- a/content/browser/compositor/gpu_process_transport_factory.h
+++ b/content/browser/compositor/gpu_process_transport_factory.h
@@ -16,7 +16,6 @@
 #include "base/memory/weak_ptr.h"
 #include "base/observer_list.h"
 #include "build/build_config.h"
-#include "components/viz/common/display/renderer_settings.h"
 #include "components/viz/common/gpu/context_lost_observer.h"
 #include "components/viz/common/surfaces/frame_sink_id_allocator.h"
 #include "components/viz/host/host_frame_sink_manager.h"
@@ -151,7 +150,6 @@
       PerCompositorDataMap;
   PerCompositorDataMap per_compositor_data_;
 
-  const viz::RendererSettings renderer_settings_;
   scoped_refptr<ws::ContextProviderCommandBuffer> shared_main_thread_contexts_;
   base::ObserverList<ui::ContextFactoryObserver>::Unchecked observer_list_;
   scoped_refptr<base::SingleThreadTaskRunner> resize_task_runner_;
diff --git a/content/browser/media/hardware_key_media_controller.cc b/content/browser/media/hardware_key_media_controller.cc
index 0d47843..402e55e 100644
--- a/content/browser/media/hardware_key_media_controller.cc
+++ b/content/browser/media/hardware_key_media_controller.cc
@@ -14,6 +14,7 @@
 #include "services/media_session/public/mojom/media_session.mojom.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "ui/base/accelerators/accelerator.h"
+#include "ui/base/accelerators/media_keys_util.h"
 
 namespace content {
 
@@ -114,23 +115,26 @@
   switch (action) {
     case MediaSessionAction::kPreviousTrack:
       media_controller_ptr_->PreviousTrack();
-      RecordAction(MediaHardwareKeyAction::kActionPreviousTrack);
+      ui::RecordMediaHardwareKeyAction(
+          ui::MediaHardwareKeyAction::kPreviousTrack);
       return;
     case MediaSessionAction::kPlay:
       media_controller_ptr_->Resume();
-      RecordAction(MediaHardwareKeyAction::kActionPlay);
+      ui::RecordMediaHardwareKeyAction(ui::MediaHardwareKeyAction::kPlay);
       return;
     case MediaSessionAction::kPause:
       media_controller_ptr_->Suspend();
-      RecordAction(MediaHardwareKeyAction::kActionPause);
+      ui::RecordMediaHardwareKeyAction(
+          ui::MediaHardwareKeyAction::kPause);
       return;
     case MediaSessionAction::kNextTrack:
       media_controller_ptr_->NextTrack();
-      RecordAction(MediaHardwareKeyAction::kActionNextTrack);
+      ui::RecordMediaHardwareKeyAction(
+          ui::MediaHardwareKeyAction::kNextTrack);
       return;
     case MediaSessionAction::kStop:
       media_controller_ptr_->Stop();
-      RecordAction(MediaHardwareKeyAction::kActionStop);
+      ui::RecordMediaHardwareKeyAction(ui::MediaHardwareKeyAction::kStop);
       return;
     case MediaSessionAction::kSeekBackward:
     case MediaSessionAction::kSeekForward:
@@ -140,10 +144,6 @@
   }
 }
 
-void HardwareKeyMediaController::RecordAction(MediaHardwareKeyAction action) {
-  UMA_HISTOGRAM_ENUMERATION("Media.HardwareKeyPressed", action);
-}
-
 MediaSessionAction HardwareKeyMediaController::KeyCodeToMediaSessionAction(
     ui::KeyboardCode key_code) const {
   switch (key_code) {
diff --git a/content/browser/media/hardware_key_media_controller.h b/content/browser/media/hardware_key_media_controller.h
index 873f146..0bb6cdf 100644
--- a/content/browser/media/hardware_key_media_controller.h
+++ b/content/browser/media/hardware_key_media_controller.h
@@ -51,17 +51,6 @@
   }
 
  private:
-  // These values are persisted to logs. Entries should not be renumbered and
-  // numeric values should never be reused.
-  enum class MediaHardwareKeyAction {
-    kActionPlay = 0,
-    kActionPause,
-    kActionStop,
-    kActionNextTrack,
-    kActionPreviousTrack,
-    kMaxValue = kActionPreviousTrack
-  };
-
   // Used for converting between MediaSessionAction and KeyboardCode.
   media_session::mojom::MediaSessionAction KeyCodeToMediaSessionAction(
       ui::KeyboardCode key_code) const;
@@ -73,7 +62,6 @@
 
   bool SupportsAction(media_session::mojom::MediaSessionAction action) const;
   void PerformAction(media_session::mojom::MediaSessionAction action);
-  void RecordAction(MediaHardwareKeyAction action);
 
   // Used to control the active session.
   media_session::mojom::MediaControllerPtr media_controller_ptr_;
diff --git a/content/browser/renderer_host/input/input_router_client.h b/content/browser/renderer_host/input/input_router_client.h
index 19f2f0c..2bd8ae5 100644
--- a/content/browser/renderer_host/input/input_router_client.h
+++ b/content/browser/renderer_host/input/input_router_client.h
@@ -77,6 +77,12 @@
   // Called to toggle whether the RenderWidgetHost should capture all mouse
   // input.
   virtual void SetMouseCapture(bool capture) = 0;
+
+  virtual void FallbackCursorModeLockCursor(bool left,
+                                            bool right,
+                                            bool up,
+                                            bool down) = 0;
+  virtual void FallbackCursorModeSetCursorVisibility(bool visible) = 0;
 };
 
 } // namespace content
diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc
index b103fee2..64bb4b9c 100644
--- a/content/browser/renderer_host/input/input_router_impl.cc
+++ b/content/browser/renderer_host/input/input_router_impl.cc
@@ -264,6 +264,19 @@
   }
 }
 
+#if defined(OS_ANDROID)
+void InputRouterImpl::FallbackCursorModeLockCursor(bool left,
+                                                   bool right,
+                                                   bool up,
+                                                   bool down) {
+  client_->FallbackCursorModeLockCursor(left, right, up, down);
+}
+
+void InputRouterImpl::FallbackCursorModeSetCursorVisibility(bool visible) {
+  client_->FallbackCursorModeSetCursorVisibility(visible);
+}
+#endif
+
 void InputRouterImpl::SetTouchActionFromMain(cc::TouchAction touch_action) {
   if (compositor_touch_action_enabled_) {
     touch_action_filter_.OnSetTouchAction(touch_action);
diff --git a/content/browser/renderer_host/input/input_router_impl.h b/content/browser/renderer_host/input/input_router_impl.h
index c6836df..d928651c 100644
--- a/content/browser/renderer_host/input/input_router_impl.h
+++ b/content/browser/renderer_host/input/input_router_impl.h
@@ -14,6 +14,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "base/time/time.h"
+#include "build/build_config.h"
 #include "cc/input/touch_action.h"
 #include "content/browser/renderer_host/input/fling_scheduler.h"
 #include "content/browser/renderer_host/input/gesture_event_queue.h"
@@ -89,6 +90,13 @@
   void ForceSetTouchActionAuto() override;
 
   // InputHandlerHost impl
+#if defined(OS_ANDROID)
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override;
+  void FallbackCursorModeSetCursorVisibility(bool visible) override;
+#endif
   void SetTouchActionFromMain(cc::TouchAction touch_action) override;
   void SetWhiteListedTouchAction(cc::TouchAction touch_action,
                                  uint32_t unique_touch_event_id,
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 cee66ad8..7375569 100644
--- a/content/browser/renderer_host/input/input_router_impl_unittest.cc
+++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc
@@ -107,6 +107,13 @@
 
   void SetMouseCapture(bool capture) override {}
 
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override {}
+
+  void FallbackCursorModeSetCursorVisibility(bool visible) override {}
+
   MockWidgetInputHandler::MessageVector GetAndResetDispatchedMessages() {
     return widget_input_handler_.GetAndResetDispatchedMessages();
   }
diff --git a/content/browser/renderer_host/input/mock_input_router_client.h b/content/browser/renderer_host/input/mock_input_router_client.h
index 80bac5d8..fda1e1f 100644
--- a/content/browser/renderer_host/input/mock_input_router_client.h
+++ b/content/browser/renderer_host/input/mock_input_router_client.h
@@ -42,6 +42,11 @@
   bool IsWheelScrollInProgress() override;
   bool IsAutoscrollInProgress() override;
   void SetMouseCapture(bool capture) override {}
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override {}
+  void FallbackCursorModeSetCursorVisibility(bool visible) override {}
 
   bool GetAndResetFilterEventCalled();
   ui::DidOverscrollParams GetAndResetOverscroll();
diff --git a/content/browser/renderer_host/input/touch_action_browsertest.cc b/content/browser/renderer_host/input/touch_action_browsertest.cc
index 538e8181..4805119 100644
--- a/content/browser/renderer_host/input/touch_action_browsertest.cc
+++ b/content/browser/renderer_host/input/touch_action_browsertest.cc
@@ -348,10 +348,10 @@
         )HTML";
 
     base::JSONReader json_reader;
-    std::unique_ptr<base::Value> params =
-        json_reader.ReadToValueDeprecated(pointer_actions_json);
-    ASSERT_TRUE(params.get()) << json_reader.GetErrorMessage();
-    ActionsParser actions_parser(params.get());
+    base::Optional<base::Value> params =
+        json_reader.ReadToValue(pointer_actions_json);
+    ASSERT_TRUE(params.has_value()) << json_reader.GetErrorMessage();
+    ActionsParser actions_parser(std::move(params.value()));
 
     ASSERT_TRUE(actions_parser.ParsePointerActionSequence());
 
@@ -387,10 +387,10 @@
         )HTML";
 
     base::JSONReader json_reader;
-    std::unique_ptr<base::Value> params =
-        json_reader.ReadToValueDeprecated(pointer_actions_json);
-    ASSERT_TRUE(params.get()) << json_reader.GetErrorMessage();
-    ActionsParser actions_parser(params.get());
+    base::Optional<base::Value> params =
+        json_reader.ReadToValue(pointer_actions_json);
+    ASSERT_TRUE(params.has_value()) << json_reader.GetErrorMessage();
+    ActionsParser actions_parser(std::move(params.value()));
 
     ASSERT_TRUE(actions_parser.ParsePointerActionSequence());
 
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 19cb147..db609c4 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -3268,6 +3268,10 @@
   }
 #endif
 
+  // Allow tests to watch IPCs sent to the renderer.
+  if (ipc_send_watcher_for_testing_)
+    ipc_send_watcher_for_testing_.Run(*message);
+
   return channel_->Send(message.release());
 }
 
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 4cde04b..e723ef6 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -486,6 +486,11 @@
   // destroyed (see |cleanup_corb_exception_for_plugin_upon_destruction_|).
   static void AddCorbExceptionForPlugin(int process_id);
 
+  using IpcSendWatcher = base::RepeatingCallback<void(const IPC::Message& msg)>;
+  void SetIpcSendWatcherForTesting(IpcSendWatcher watcher) {
+    ipc_send_watcher_for_testing_ = std::move(watcher);
+  }
+
  protected:
   // A proxy for our IPC::Channel that lives on the IO thread.
   std::unique_ptr<IPC::ChannelProxy> channel_;
@@ -919,6 +924,8 @@
   // exit code.
   int shutdown_exit_code_;
 
+  IpcSendWatcher ipc_send_watcher_for_testing_;
+
   base::WeakPtrFactory<RenderProcessHostImpl> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(RenderProcessHostImpl);
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index a69f75996..72d9088 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2537,6 +2537,17 @@
   delegate_->GetInputEventRouter()->SetMouseCaptureTarget(GetView(), capture);
 }
 
+void RenderWidgetHostImpl::FallbackCursorModeLockCursor(bool left,
+                                                        bool right,
+                                                        bool up,
+                                                        bool down) {
+  GetView()->FallbackCursorModeLockCursor(left, right, up, down);
+}
+
+void RenderWidgetHostImpl::FallbackCursorModeSetCursorVisibility(bool visible) {
+  GetView()->FallbackCursorModeSetCursorVisibility(visible);
+}
+
 void RenderWidgetHostImpl::OnInvalidFrameToken(uint32_t frame_token) {
   bad_message::ReceivedBadMessage(GetProcess(),
                                   bad_message::RWH_INVALID_FRAME_TOKEN);
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index ce8bfd8..e79017f0 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -675,6 +675,11 @@
   bool IsWheelScrollInProgress() override;
   bool IsAutoscrollInProgress() override;
   void SetMouseCapture(bool capture) override;
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override;
+  void FallbackCursorModeSetCursorVisibility(bool visible) override;
 
   // FrameTokenMessageQueue::Client:
   void OnInvalidFrameToken(uint32_t frame_token) override;
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index b72093a..b670ba9 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -1604,6 +1604,20 @@
          view_.OnUnconsumedKeyboardEventAck(event.event.native_key_code);
 }
 
+void RenderWidgetHostViewAndroid::FallbackCursorModeLockCursor(bool left,
+                                                               bool right,
+                                                               bool up,
+                                                               bool down) {
+  DCHECK(fallback_cursor_mode_enabled_);
+  view_.FallbackCursorModeLockCursor(left, right, up, down);
+}
+
+void RenderWidgetHostViewAndroid::FallbackCursorModeSetCursorVisibility(
+    bool visible) {
+  DCHECK(fallback_cursor_mode_enabled_);
+  view_.FallbackCursorModeSetCursorVisibility(visible);
+}
+
 InputEventAckState RenderWidgetHostViewAndroid::FilterInputEvent(
     const blink::WebInputEvent& input_event) {
   if (overscroll_controller_ &&
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 9cfc5139..ce2f0cf 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -141,6 +141,11 @@
                        InputEventAckState ack_result) override;
   bool OnUnconsumedKeyboardEventAck(
       const NativeWebKeyboardEventWithLatencyInfo& event) override;
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override;
+  void FallbackCursorModeSetCursorVisibility(bool visible) override;
   BrowserAccessibilityManager* CreateBrowserAccessibilityManager(
       BrowserAccessibilityDelegate* delegate, bool for_root_frame) override;
   bool LockMouse() override;
diff --git a/content/browser/renderer_host/render_widget_host_view_base.cc b/content/browser/renderer_host/render_widget_host_view_base.cc
index be38173..63712a2 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.cc
+++ b/content/browser/renderer_host/render_widget_host_view_base.cc
@@ -387,6 +387,14 @@
   return false;
 }
 
+void RenderWidgetHostViewBase::FallbackCursorModeLockCursor(bool left,
+                                                            bool right,
+                                                            bool up,
+                                                            bool down) {}
+
+void RenderWidgetHostViewBase::FallbackCursorModeSetCursorVisibility(
+    bool visible) {}
+
 void RenderWidgetHostViewBase::ForwardTouchpadZoomEventIfNecessary(
     const blink::WebGestureEvent& event,
     InputEventAckState ack_result) {
diff --git a/content/browser/renderer_host/render_widget_host_view_base.h b/content/browser/renderer_host/render_widget_host_view_base.h
index 6aa5e70..dd73c06 100644
--- a/content/browser/renderer_host/render_widget_host_view_base.h
+++ b/content/browser/renderer_host/render_widget_host_view_base.h
@@ -259,6 +259,13 @@
   virtual bool OnUnconsumedKeyboardEventAck(
       const NativeWebKeyboardEventWithLatencyInfo& event);
 
+  // Call platform APIs for Fallback Cursor Mode.
+  virtual void FallbackCursorModeLockCursor(bool left,
+                                            bool right,
+                                            bool up,
+                                            bool down);
+  virtual void FallbackCursorModeSetCursorVisibility(bool visible);
+
   // Create a platform specific SyntheticGestureTarget implementation that will
   // be used to inject synthetic input events.
   virtual std::unique_ptr<SyntheticGestureTarget>
diff --git a/content/browser/renderer_host/render_widget_host_view_cocoa.mm b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
index d04130dc..95ddd12e 100644
--- a/content/browser/renderer_host/render_widget_host_view_cocoa.mm
+++ b/content/browser/renderer_host/render_widget_host_view_cocoa.mm
@@ -480,7 +480,10 @@
   // Traverse the superview hierarchy as the hitTest will return the frontmost
   // view, such as an NSTextView, while nonWebContentView may be specified by
   // its parent view.
+  BOOL hitSelf = NO;
   while (view) {
+    if (view == self)
+      hitSelf = YES;
     if ([view respondsToSelector:nonWebContentViewSelector] &&
         [view performSelector:nonWebContentViewSelector]) {
       // The cursor is over a nonWebContentView - ignore this mouse event.
@@ -500,7 +503,9 @@
     }
     view = [view superview];
   }
-  return NO;
+  // Ignore events which don't hit test to this subtree (and hit, for example,
+  // an overlapping view instead).
+  return !hitSelf;
 }
 
 - (void)mouseEvent:(NSEvent*)theEvent {
@@ -553,6 +558,7 @@
       clientHelper_->ForwardMouseEvent(exitEvent);
     }
     mouseEventWasIgnored_ = YES;
+    [self updateCursor:nil];
     return;
   }
 
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
index e208dedd..8bc5274 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -255,8 +255,12 @@
                                   CGEventMouseSubtype subtype,
                                   bool is_entering_proximity = false,
                                   bool is_pen_tip = false) {
+  // CGEvents have their origin at the *top* left screen corner. Converting to
+  // an NSEvent, below, flips the location back to bottom left origin.
+  CGPoint cg_location =
+      CGPointMake(location.x, NSHeight(NSScreen.screens[0].frame) - location.y);
   CGEventRef cg_event =
-      CGEventCreateMouseEvent(NULL, mouse_type, location, button);
+      CGEventCreateMouseEvent(NULL, mouse_type, cg_location, button);
   CGEventSetIntegerValueField(cg_event, kCGMouseEventSubtype, subtype);
   CGEventSetIntegerValueField(cg_event, kCGTabletProximityEventEnterProximity,
                               is_entering_proximity);
@@ -1034,7 +1038,7 @@
             GetPointerType(events));
   events.clear();
 
-  event = cocoa_test_event_utils::EnterEvent();
+  event = cocoa_test_event_utils::EnterEvent({1, 1}, window_);
   [rwhv_mac_->cocoa_view() mouseEntered:event];
   base::RunLoop().RunUntilIdle();
   events = host_->GetAndResetDispatchedMessages();
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 6317b97..a6cebe61 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -446,19 +446,19 @@
 };
 
 bool ConvertJSONToPoint(const std::string& str, gfx::PointF* point) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(str);
-  if (!value)
+  base::Optional<base::Value> value = base::JSONReader::Read(str);
+  if (!value.has_value())
     return false;
-  base::DictionaryValue* root;
-  if (!value->GetAsDictionary(&root))
+  if (!value->is_dict())
     return false;
-  double x, y;
-  if (!root->GetDouble("x", &x))
+  base::Optional<double> x = value->FindDoubleKey("x");
+  base::Optional<double> y = value->FindDoubleKey("y");
+  if (!x.has_value())
     return false;
-  if (!root->GetDouble("y", &y))
+  if (!y.has_value())
     return false;
-  point->set_x(x);
-  point->set_y(y);
+  point->set_x(x.value());
+  point->set_y(y.value());
   return true;
 }
 
@@ -13713,10 +13713,10 @@
       base::StringPrintf(actions_template.c_str(), tap_position.x(),
                          tap_position.y(), tap_position.x(), tap_position.y());
   base::JSONReader json_reader;
-  std::unique_ptr<base::Value> params =
-      json_reader.ReadToValueDeprecated(double_tap_actions_json);
-  ASSERT_TRUE(params.get()) << json_reader.GetErrorMessage();
-  ActionsParser actions_parser(params.get());
+  base::Optional<base::Value> params =
+      json_reader.ReadToValue(double_tap_actions_json);
+  ASSERT_TRUE(params.has_value()) << json_reader.GetErrorMessage();
+  ActionsParser actions_parser(std::move(params.value()));
 
   ASSERT_TRUE(actions_parser.ParsePointerActionSequence());
   auto synthetic_gesture_doubletap =
@@ -14404,10 +14404,10 @@
       scroll_start_location_in_screen.y(), scroll_end_location_in_screen.x(),
       scroll_end_location_in_screen.y());
   base::JSONReader json_reader;
-  std::unique_ptr<base::Value> touch_params =
-      json_reader.ReadToValueDeprecated(touch_move_sequence_json);
-  ASSERT_TRUE(touch_params.get()) << json_reader.GetErrorMessage();
-  ActionsParser actions_parser(touch_params.get());
+  base::Optional<base::Value> touch_params =
+      json_reader.ReadToValue(touch_move_sequence_json);
+  ASSERT_TRUE(touch_params.has_value()) << json_reader.GetErrorMessage();
+  ActionsParser actions_parser(std::move(touch_params.value()));
 
   ASSERT_TRUE(actions_parser.ParsePointerActionSequence());
   auto synthetic_scroll_gesture =
@@ -14561,9 +14561,9 @@
       // Need user gesture for 'beforeunload' to fire.
       PrepContentsForBeforeUnloadTest(web_contents);
       // Simulate user choosing to stay on the page after beforeunload fired.
-      SetShouldProceedOnBeforeUnload(
-          Shell::FromRenderViewHost(web_contents->GetRenderViewHost()),
-          true /* always_proceed */, proceed_through_beforeunload);
+      SetShouldProceedOnBeforeUnload(Shell::FromWebContents(web_contents),
+                                     true /* always_proceed */,
+                                     proceed_through_beforeunload);
       RenderFrameHost::PrepareForInnerWebContentsAttachCallback callback =
           base::BindOnce(&PrepareFrameJob::OnPrepare, base::Unretained(this));
       original_render_frame_host->PrepareForInnerWebContentsAttach(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 487d587..eaf728b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -690,6 +690,7 @@
   // Do not update state as the WebContents is being destroyed.
   frame_tree_.root()->ResetNavigationRequest(true, true);
   if (root->speculative_frame_host()) {
+    root->speculative_frame_host()->DeleteRenderFrame();
     root->speculative_frame_host()->SetRenderFrameCreated(false);
     root->speculative_frame_host()->ResetNavigationRequests();
   }
@@ -2825,10 +2826,6 @@
     AddDestructionObserver(new_contents_impl);
   }
 
-  // Track the delegate on which WebContentsCreated may be called.
-  // TODO(ericrk): Remove this once debugging complete. https://crbug.com/758186
-  web_contents_created_delegate_ = delegate_;
-  web_contents_added_to_delegate_ = false;
   if (delegate_) {
     delegate_->WebContentsCreated(this, render_process_id,
                                   opener->GetRoutingID(), params.frame_name,
@@ -2960,18 +2957,6 @@
 
   // The delegate can be null in tests, so we must check for it :(.
   if (delegate) {
-    // TODO(ericrk): Remove this once debugging complete.
-    // https://crbug.com/758186
-    if (web_contents_created_delegate_ != delegate_) {
-      LOG(ERROR) << "AddNewContents called on different delegate from "
-                    "WebContentsCreated. "
-                 << delegate_ << " vs " << web_contents_created_delegate_;
-    }
-    if (web_contents_added_to_delegate_) {
-      LOG(ERROR) << "WebContents added to delegate twice";
-    }
-    web_contents_added_to_delegate_ = true;
-
     // Mark the web contents as pending resume, then immediately do
     // the resume if the delegate wants it.
     created->is_resume_pending_ = true;
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 70f816e..be9931e 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -1849,11 +1849,6 @@
   // WebContents can be found by using GetOuterWebContents().
   Portal* portal_ = nullptr;
 
-  // TODO(ericrk): Variable to debug https://crbug.com/758186. Remove when
-  // debugging concluded.
-  WebContentsDelegate* web_contents_created_delegate_ = nullptr;
-  bool web_contents_added_to_delegate_ = false;
-
   base::WeakPtrFactory<WebContentsImpl> loading_weak_factory_;
   base::WeakPtrFactory<WebContentsImpl> weak_factory_;
 
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
index 82fffbc8..5a5610db 100644
--- a/content/browser/web_contents/web_contents_impl_browsertest.cc
+++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -3330,4 +3330,57 @@
                     ->RegisteredViewCountForTesting());
 }
 
+IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest,
+                       ShutdownDuringSpeculativeNavigation) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  GURL url(embedded_test_server()->GetURL("/hello.html"));
+
+  WebContents* attached_web_contents = shell()->web_contents();
+
+  WebContents::CreateParams create_params(
+      attached_web_contents->GetBrowserContext(), /*site_instance=*/nullptr);
+  create_params.initial_size = gfx::Size(100, 100);
+  std::unique_ptr<WebContents> public_web_contents =
+      WebContents::Create(create_params);
+  auto* web_contents = static_cast<WebContentsImpl*>(public_web_contents.get());
+
+  FrameTreeNode* root = web_contents->GetFrameTree()->root();
+
+  // Complete a navigation.
+  GURL url1 = embedded_test_server()->GetURL("a.com", "/title1.html");
+  EXPECT_TRUE(NavigateToURL(web_contents, url1));
+
+  // Start navigating to a second page.
+  GURL url2 = embedded_test_server()->GetURL("b.com", "/title2.html");
+  TestNavigationManager manager(web_contents, url2);
+  web_contents->GetController().LoadURL(
+      url2, Referrer(), ui::PAGE_TRANSITION_LINK, std::string());
+  EXPECT_TRUE(manager.WaitForRequestStart());
+
+  // While there is a speculative RenderFrameHost in the root FrameTreeNode...
+  ASSERT_TRUE(root->render_manager()->speculative_frame_host());
+
+  auto* frame_process = static_cast<RenderProcessHostImpl*>(
+      root->render_manager()->speculative_frame_host()->GetProcess());
+  int frame_routing_id =
+      root->render_manager()->speculative_frame_host()->GetRoutingID();
+
+  std::vector<int> deleted_routing_ids;
+  auto watcher = base::BindRepeating(
+      [](std::vector<int>* deleted_routing_ids, const IPC::Message& message) {
+        if (message.type() == FrameMsg_Delete::ID) {
+          deleted_routing_ids->push_back(message.routing_id());
+        }
+      },
+      &deleted_routing_ids);
+  frame_process->SetIpcSendWatcherForTesting(watcher);
+
+  // ...shutdown the WebContents.
+  public_web_contents.reset();
+
+  // What should have happened is the speculative RenderFrameHost deletes the
+  // provisional RenderFrame. The |watcher| verifies that this happened.
+  EXPECT_THAT(deleted_routing_ids, testing::Contains(frame_routing_id));
+}
+
 }  // namespace content
diff --git a/content/browser/webauth/authenticator_common.cc b/content/browser/webauth/authenticator_common.cc
index 71080c8b..fb81156 100644
--- a/content/browser/webauth/authenticator_common.cc
+++ b/content/browser/webauth/authenticator_common.cc
@@ -86,7 +86,7 @@
   // kQueried indicates that the embedder was queried in order to determine
   // whether attestation information should be returned to the origin.
   kQueried = 0,
-  // kTimeout indicates that a timeout occured while awaiting the result of an
+  // kTimeout indicates that a timeout occurred while awaiting the result of an
   // attestation query.
   kTimeout = 1,
   // kAllowed indicates that the query to the embedder was resolved positively.
@@ -241,7 +241,7 @@
 
   // At this point we diverge from the specification in order to avoid the
   // complexity of making a network request which isn't believed to be
-  // neccessary in practice. See also
+  // necessary in practice. See also
   // https://bugzilla.mozilla.org/show_bug.cgi?id=1244959#c8
   if (net::registry_controlled_domains::SameDomainOrHost(
           appid_url, origin,
@@ -518,20 +518,14 @@
 
 }  // namespace
 
-AuthenticatorCommon::AuthenticatorCommon(RenderFrameHost* render_frame_host)
-    : AuthenticatorCommon(render_frame_host,
-                        nullptr /* connector */,
-                        std::make_unique<base::OneShotTimer>()) {}
-
-AuthenticatorCommon::AuthenticatorCommon(RenderFrameHost* render_frame_host,
-                                     service_manager::Connector* connector,
-                                     std::unique_ptr<base::OneShotTimer> timer)
-    : WebContentsObserver(WebContents::FromRenderFrameHost(render_frame_host)),
-      render_frame_host_(render_frame_host),
+AuthenticatorCommon::AuthenticatorCommon(
+    RenderFrameHost* render_frame_host,
+    service_manager::Connector* connector,
+    std::unique_ptr<base::OneShotTimer> timer)
+    : render_frame_host_(render_frame_host),
       connector_(connector),
       transports_(GetTransportsEnabledByFlags()),
       timer_(std::move(timer)),
-      binding_(this),
       weak_factory_(this) {
   DCHECK(render_frame_host_);
   DCHECK(timer_);
@@ -543,17 +537,6 @@
   render_frame_host_->GetRoutingID();
 }
 
-void AuthenticatorCommon::Bind(blink::mojom::AuthenticatorRequest request) {
-  // If |render_frame_host_| is being unloaded then binding requests are
-  // rejected.
-  if (!render_frame_host_->IsCurrent()) {
-    return;
-  }
-
-  DCHECK(!binding_.is_bound());
-  binding_.Bind(std::move(request));
-}
-
 void AuthenticatorCommon::UpdateRequestDelegate() {
   DCHECK(!request_delegate_);
   request_delegate_ =
@@ -597,11 +580,11 @@
 
 // mojom::Authenticator
 void AuthenticatorCommon::MakeCredential(
+    url::Origin caller_origin,
     blink::mojom::PublicKeyCredentialCreationOptionsPtr options,
-    MakeCredentialCallback callback) {
+    blink::mojom::Authenticator::MakeCredentialCallback callback) {
   if (request_) {
-    if (OriginIsCryptoTokenExtension(
-            render_frame_host_->GetLastCommittedOrigin())) {
+    if (OriginIsCryptoTokenExtension(caller_origin)) {
       // Requests originating from cryptotoken will generally outlive any
       // navigation events on the tab of the request's sender. Evict pending
       // requests if cryptotoken sends a new one such that requests from before
@@ -626,12 +609,11 @@
 
   if (!IsFocused()) {
     InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::NOT_FOCUSED,
-                             nullptr, Focus::kDontCheck);
+                             blink::mojom::AuthenticatorStatus::NOT_FOCUSED);
     return;
   }
 
-  caller_origin_ = render_frame_host_->GetLastCommittedOrigin();
+  caller_origin_ = caller_origin;
   relying_party_id_ = options->relying_party->id;
 
   if (!HasValidEffectiveDomain(caller_origin_)) {
@@ -661,8 +643,7 @@
     // Disallow the creation of resident credentials.
     InvokeCallbackAndCleanup(
         std::move(callback),
-        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED,
-        nullptr, Focus::kDontCheck);
+        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED);
     return;
   }
 
@@ -756,11 +737,11 @@
 
 // mojom:Authenticator
 void AuthenticatorCommon::GetAssertion(
+    url::Origin caller_origin,
     blink::mojom::PublicKeyCredentialRequestOptionsPtr options,
-    GetAssertionCallback callback) {
+    blink::mojom::Authenticator::GetAssertionCallback callback) {
   if (request_) {
-    if (OriginIsCryptoTokenExtension(
-            render_frame_host_->GetLastCommittedOrigin())) {
+    if (OriginIsCryptoTokenExtension(caller_origin)) {
       // Requests originating from cryptotoken will generally outlive any
       // navigation events on the tab of the request's sender. Evict pending
       // requests if cryptotoken sends a new one such that requests from before
@@ -783,12 +764,12 @@
     return;
   }
 
-  caller_origin_ = render_frame_host_->GetLastCommittedOrigin();
+  caller_origin_ = caller_origin;
 
   // Save client data to return with the authenticator response.
   // TODO(kpaulhamus): Fetch and add the Channel ID/Token Binding ID public key
   // used to communicate with the origin.
-  if (OriginIsCryptoTokenExtension(caller_origin_)) {
+  if (OriginIsCryptoTokenExtension(caller_origin)) {
     request_delegate_->DisableUI();
 
     // As Cryptotoken validates the origin, accept the relying party id as the
@@ -828,8 +809,7 @@
     // Chrome currently does not support any resident keys.
     InvokeCallbackAndCleanup(
         std::move(callback),
-        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED,
-        nullptr);
+        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED);
     return;
   }
 
@@ -894,14 +874,15 @@
 }
 
 void AuthenticatorCommon::IsUserVerifyingPlatformAuthenticatorAvailable(
-    IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) {
+    blink::mojom::Authenticator::
+        IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) {
   const bool result = IsUserVerifyingPlatformAuthenticatorAvailableImpl();
   base::SequencedTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(std::move(callback), result));
 }
 
 bool AuthenticatorCommon::IsUserVerifyingPlatformAuthenticatorAvailableImpl() {
-  //  N.B. request_delegate_ may be nullptr at this point.
+  // N.B. request_delegate_ may be nullptr at this point.
   // All platform authenticators are disabled in incognito mode.
   // TODO(martinkr): Revisit incognito handling (crbug/908622).
   if (browser_context()->IsOffTheRecord())
@@ -925,23 +906,6 @@
 #endif
 }
 
-void AuthenticatorCommon::DidFinishNavigation(
-    NavigationHandle* navigation_handle) {
-  // If the RenderFrameHost itself is navigated then this function will cause
-  // request state to be cleaned up. It's also possible for a navigation in the
-  // same frame to use a fresh RenderFrameHost. In this case,
-  // |render_frame_host_->IsCurrent()| will start returning false, causing all
-  // focus checks to fail if any Mojo requests are made in that state.
-  if (!navigation_handle->HasCommitted() ||
-      navigation_handle->IsSameDocument() ||
-      navigation_handle->GetRenderFrameHost() != render_frame_host_) {
-    return;
-  }
-
-  binding_.Close();
-  Cleanup();
-}
-
 // Callback to handle the async registration response from a U2fDevice.
 void AuthenticatorCommon::OnRegisterResponse(
     device::FidoReturnCode status_code,
@@ -1064,7 +1028,7 @@
   awaiting_attestation_response_ = false;
   if (!request_) {
     // The request has already been cleaned up, probably because a navigation
-    // occured while the permissions prompt was pending.
+    // occurred while the permissions prompt was pending.
     return;
   }
 
@@ -1137,7 +1101,7 @@
       // The response from the authenticator was corrupted.
       InvokeCallbackAndCleanup(
           std::move(get_assertion_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr);
+          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR);
       return;
     case device::FidoReturnCode::kUserConsentButCredentialExcluded:
       // TODO(crbug/876109): This isn't strictly unreachable.
@@ -1146,7 +1110,7 @@
     case device::FidoReturnCode::kUserConsentDenied:
       InvokeCallbackAndCleanup(
           std::move(get_assertion_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr);
+          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR);
       return;
     case device::FidoReturnCode::kSoftPINBlock:
       SignalFailureToRequestDelegate(
@@ -1237,11 +1201,10 @@
          get_assertion_response_callback_);
   if (make_credential_response_callback_) {
     InvokeCallbackAndCleanup(std::move(make_credential_response_callback_),
-                             error_awaiting_user_acknowledgement_, nullptr,
-                             Focus::kDontCheck);
+                             error_awaiting_user_acknowledgement_);
   } else if (get_assertion_response_callback_) {
     InvokeCallbackAndCleanup(std::move(get_assertion_response_callback_),
-                             error_awaiting_user_acknowledgement_, nullptr);
+                             error_awaiting_user_acknowledgement_);
   }
 }
 
@@ -1268,7 +1231,7 @@
 }
 
 void AuthenticatorCommon::InvokeCallbackAndCleanup(
-    MakeCredentialCallback callback,
+    blink::mojom::Authenticator::MakeCredentialCallback callback,
     blink::mojom::AuthenticatorStatus status,
     blink::mojom::MakeCredentialAuthenticatorResponsePtr response,
     Focus check_focus) {
@@ -1283,7 +1246,7 @@
 }
 
 void AuthenticatorCommon::InvokeCallbackAndCleanup(
-    GetAssertionCallback callback,
+    blink::mojom::Authenticator::GetAssertionCallback callback,
     blink::mojom::AuthenticatorStatus status,
     blink::mojom::GetAssertionAuthenticatorResponsePtr response) {
   std::move(callback).Run(status, std::move(response));
diff --git a/content/browser/webauth/authenticator_common.h b/content/browser/webauth/authenticator_common.h
index 7f19f167..70935f8c 100644
--- a/content/browser/webauth/authenticator_common.h
+++ b/content/browser/webauth/authenticator_common.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <string>
+#include <utility>
 #include <vector>
 
 #include "base/containers/flat_set.h"
@@ -18,12 +19,10 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/authenticator_request_client_delegate.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "crypto/sha2.h"
 #include "device/fido/authenticator_get_assertion_response.h"
 #include "device/fido/authenticator_make_credential_response.h"
 #include "device/fido/fido_constants.h"
 #include "device/fido/fido_transport_protocol.h"
-#include "mojo/public/cpp/bindings/binding.h"
 #include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
 #include "url/origin.h"
 
@@ -62,26 +61,34 @@
 CONTENT_EXPORT extern const char kGetType[];
 }  // namespace client_data
 
-// Implementation of the public Authenticator interface.
-class CONTENT_EXPORT AuthenticatorCommon : public blink::mojom::Authenticator,
-                                         public WebContentsObserver {
+// Common code for any WebAuthn Authenticator interfaces.
+class CONTENT_EXPORT AuthenticatorCommon {
  public:
-  explicit AuthenticatorCommon(RenderFrameHost* render_frame_host);
-
-  // Permits setting connector and timer for testing. Using this constructor
-  // will also empty out the protocol set, since no device discovery will take
-  // place during tests.
+  // Permits setting connector and timer for testing.
   AuthenticatorCommon(RenderFrameHost* render_frame_host,
-                    service_manager::Connector*,
-                    std::unique_ptr<base::OneShotTimer>);
-  ~AuthenticatorCommon() override;
+                      service_manager::Connector*,
+                      std::unique_ptr<base::OneShotTimer>);
+  virtual ~AuthenticatorCommon();
 
-  // Creates a binding between this implementation and |request|.
-  //
-  // Note that one AuthenticatorCommon instance can be bound to exactly one
-  // interface connection at a time, and disconnected when the frame navigates
-  // to a new active document.
-  void Bind(blink::mojom::AuthenticatorRequest request);
+  // This is not-quite an implementation of blink::mojom::Authenticator. The
+  // first two functions take the caller's origin explicitly. This allows the
+  // caller origin to be overridden if needed.
+  void MakeCredential(
+      url::Origin caller_origin,
+      blink::mojom::PublicKeyCredentialCreationOptionsPtr options,
+      blink::mojom::Authenticator::MakeCredentialCallback callback);
+  void GetAssertion(url::Origin caller_origin,
+                    blink::mojom::PublicKeyCredentialRequestOptionsPtr options,
+                    blink::mojom::Authenticator::GetAssertionCallback callback);
+  void IsUserVerifyingPlatformAuthenticatorAvailable(
+      blink::mojom::Authenticator::
+          IsUserVerifyingPlatformAuthenticatorAvailableCallback callback);
+
+  // Synchronous implementation of
+  // IsUserVerifyingPlatformAuthenticatorAvailable.
+  bool IsUserVerifyingPlatformAuthenticatorAvailableImpl();
+
+  void Cleanup();
 
   base::flat_set<device::FidoTransportProtocol> enabled_transports_for_testing()
       const {
@@ -98,7 +105,7 @@
   std::unique_ptr<AuthenticatorRequestClientDelegate> request_delegate_;
 
  private:
-  friend class AuthenticatorCommonTest;
+  friend class AuthenticatorImplTest;
 
   // Enumerates whether or not to check that the WebContents has focus.
   enum class Focus {
@@ -121,21 +128,6 @@
       base::span<const uint8_t> challenge,
       bool use_legacy_u2f_type_key = false);
 
-  // mojom:Authenticator
-  void MakeCredential(
-      blink::mojom::PublicKeyCredentialCreationOptionsPtr options,
-      MakeCredentialCallback callback) override;
-  void GetAssertion(blink::mojom::PublicKeyCredentialRequestOptionsPtr options,
-                    GetAssertionCallback callback) override;
-  void IsUserVerifyingPlatformAuthenticatorAvailable(
-      IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) override;
-
-  // Synchronous implementation of IsUserVerfyingPlatformAuthenticatorAvailable.
-  bool IsUserVerifyingPlatformAuthenticatorAvailableImpl();
-
-  // WebContentsObserver:
-  void DidFinishNavigation(NavigationHandle* navigation_handle) override;
-
   // Callback to handle the async response from a U2fDevice.
   void OnRegisterResponse(
       device::FidoReturnCode status_code,
@@ -169,15 +161,14 @@
       AuthenticatorRequestClientDelegate::InterestingFailureReason reason);
 
   void InvokeCallbackAndCleanup(
-      MakeCredentialCallback callback,
+      blink::mojom::Authenticator::MakeCredentialCallback callback,
       blink::mojom::AuthenticatorStatus status,
-      blink::mojom::MakeCredentialAuthenticatorResponsePtr response,
-      Focus focus_check);
+      blink::mojom::MakeCredentialAuthenticatorResponsePtr response = nullptr,
+      Focus focus_check = Focus::kDontCheck);
   void InvokeCallbackAndCleanup(
-      GetAssertionCallback callback,
+      blink::mojom::Authenticator::GetAssertionCallback callback,
       blink::mojom::AuthenticatorStatus status,
-      blink::mojom::GetAssertionAuthenticatorResponsePtr response);
-  void Cleanup();
+      blink::mojom::GetAssertionAuthenticatorResponsePtr response = nullptr);
 
   base::Optional<device::PlatformAuthenticatorInfo>
   CreatePlatformAuthenticatorIfAvailable();
@@ -192,8 +183,10 @@
   base::flat_set<device::FidoTransportProtocol> transports_;
 
   std::unique_ptr<device::FidoRequestHandlerBase> request_;
-  MakeCredentialCallback make_credential_response_callback_;
-  GetAssertionCallback get_assertion_response_callback_;
+  blink::mojom::Authenticator::MakeCredentialCallback
+      make_credential_response_callback_;
+  blink::mojom::Authenticator::GetAssertionCallback
+      get_assertion_response_callback_;
   std::string client_data_json_;
   bool attestation_requested_;
   url::Origin caller_origin_;
@@ -206,9 +199,6 @@
   blink::mojom::AuthenticatorStatus error_awaiting_user_acknowledgement_ =
       blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
 
-  // Owns pipes to this Authenticator from |render_frame_host_|.
-  mojo::Binding<blink::mojom::Authenticator> binding_;
-
   base::WeakPtrFactory<AuthenticatorCommon> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(AuthenticatorCommon);
diff --git a/content/browser/webauth/authenticator_impl.cc b/content/browser/webauth/authenticator_impl.cc
index 3cf5f7f..3b1488d 100644
--- a/content/browser/webauth/authenticator_impl.cc
+++ b/content/browser/webauth/authenticator_impl.cc
@@ -4,537 +4,36 @@
 
 #include "content/browser/webauth/authenticator_impl.h"
 
-#include <array>
 #include <string>
 #include <utility>
-#include <vector>
 
-#include "base/base64url.h"
-#include "base/bind.h"
-#include "base/json/json_writer.h"
-#include "base/logging.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/rand_util.h"
-#include "base/strings/string_piece.h"
 #include "base/timer/timer.h"
-#include "build/build_config.h"
-#include "content/browser/bad_message.h"
+#include "content/browser/webauth/authenticator_common.h"
 #include "content/browser/webauth/authenticator_type_converters.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/content_browser_client.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
-#include "content/public/browser/render_process_host.h"
-#include "content/public/browser/render_widget_host_view.h"
 #include "content/public/browser/web_contents.h"
-#include "content/public/common/content_client.h"
-#include "content/public/common/content_features.h"
-#include "content/public/common/origin_util.h"
-#include "content/public/common/service_manager_connection.h"
-#include "crypto/sha2.h"
-#include "device/base/features.h"
-#include "device/bluetooth/bluetooth_adapter_factory.h"
-#include "device/fido/attestation_statement.h"
-#include "device/fido/authenticator_selection_criteria.h"
-#include "device/fido/ctap_get_assertion_request.h"
-#include "device/fido/ctap_make_credential_request.h"
-#include "device/fido/features.h"
-#include "device/fido/fido_authenticator.h"
-#include "device/fido/fido_constants.h"
-#include "device/fido/fido_transport_protocol.h"
-#include "device/fido/get_assertion_request_handler.h"
-#include "device/fido/make_credential_request_handler.h"
-#include "device/fido/public_key_credential_descriptor.h"
-#include "device/fido/public_key_credential_params.h"
-#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
-#include "net/cert/asn1_util.h"
-#include "net/der/input.h"
-#include "net/der/parse_values.h"
-#include "net/der/parser.h"
-#include "net/url_request/url_request_context.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "services/service_manager/public/cpp/connector.h"
-#include "url/url_constants.h"
-#include "url/url_util.h"
-
-#if defined(OS_MACOSX)
-#include "device/fido/mac/authenticator.h"
-#endif
-
-#if defined(OS_WIN)
-#include "device/fido/win/authenticator.h"
-#endif
+#include "url/origin.h"
 
 namespace content {
 
-namespace client_data {
-const char kCreateType[] = "webauthn.create";
-const char kGetType[] = "webauthn.get";
-const char kU2fSignType[] = "navigator.id.getAssertion";
-const char kU2fRegisterType[] = "navigator.id.finishEnrollment";
-}  // namespace client_data
-
-namespace {
-
-constexpr char kCryptotokenOrigin[] =
-    "chrome-extension://kmendfapggjehodndflmmgagdbamhnfd";
-
-// AttestationPromptResult enumerates events related to attestation prompts.
-// These values are recorded in an UMA histogram and so should not be
-// reassigned.
-enum class AttestationPromptResult {
-  // kQueried indicates that the embedder was queried in order to determine
-  // whether attestation information should be returned to the origin.
-  kQueried = 0,
-  // kTimeout indicates that a timeout occured while awaiting the result of an
-  // attestation query.
-  kTimeout = 1,
-  // kAllowed indicates that the query to the embedder was resolved positively.
-  // (E.g. the user clicked to allow, or the embedded allowed immediately by
-  // policy.)
-  kAllowed = 2,
-  // kBlocked indicates that the query to the embedder was resolved negatively.
-  // (E.g. the user clicked to block, or closed the dialog.)
-  kBlocked = 3,
-  // kAbandoned indications that the user closed the tab or navigated away while
-  // the attestation prompt was showing.
-  kAbandoned = 4,
-  kMaxValue = kAbandoned,
-};
-
-// The following enums correspond to UMA histograms and should not be
-// reassigned.
-enum class RelyingPartySecurityCheckFailure {
-  kOpaqueOrNonSecureOrigin = 0,
-  kRelyingPartyIdInvalid = 1,
-  kAppIdExtensionInvalid = 2,
-  kAppIdExtensionDomainMismatch = 3,
-  kMaxValue = kAppIdExtensionDomainMismatch,
-};
-
-void ReportSecurityCheckFailure(RelyingPartySecurityCheckFailure error) {
-  UMA_HISTOGRAM_ENUMERATION(
-      "WebAuthentication.RelyingPartySecurityCheckFailure", error);
-}
-
-bool OriginIsCryptoTokenExtension(const url::Origin& origin) {
-  auto cryptotoken_origin = url::Origin::Create(GURL(kCryptotokenOrigin));
-  return cryptotoken_origin == origin;
-}
-
-// Ensure that the origin's effective domain is a valid domain.
-// Only the domain format of host is valid.
-// Reference https://url.spec.whatwg.org/#valid-domain-string and
-// https://html.spec.whatwg.org/multipage/origin.html#concept-origin-effective-domain.
-bool HasValidEffectiveDomain(url::Origin caller_origin) {
-  // For calls originating in the CryptoToken U2F extension, allow CryptoToken
-  // to validate domain.
-  if (OriginIsCryptoTokenExtension(caller_origin) &&
-      base::FeatureList::IsEnabled(device::kWebAuthProxyCryptotoken))
-    return true;
-
-  return !caller_origin.opaque() &&
-         !url::HostIsIPAddress(caller_origin.host()) &&
-         content::IsOriginSecure(caller_origin.GetURL()) &&
-         // Additionally, the scheme is required to be HTTP(S). Other schemes
-         // may be supported in the future but the webauthn relying party is
-         // just the domain of the origin so we would have to define how the
-         // authority part of other schemes maps to a "domain" without
-         // collisions. Given the |IsOriginSecure| check, just above, HTTP is
-         // effectively restricted to just "localhost".
-         (caller_origin.scheme() == url::kHttpScheme ||
-          caller_origin.scheme() == url::kHttpsScheme);
-}
-
-// Ensure the relying party ID is a registrable domain suffix of or equal
-// to the origin's effective domain. Reference:
-// https://html.spec.whatwg.org/multipage/origin.html#is-a-registrable-domain-suffix-of-or-is-equal-to.
-bool IsRelyingPartyIdValid(const std::string& relying_party_id,
-                           url::Origin caller_origin) {
-  if (OriginIsCryptoTokenExtension(caller_origin) &&
-      base::FeatureList::IsEnabled(device::kWebAuthProxyCryptotoken))
-    return true;
-
-  if (relying_party_id.empty())
-    return false;
-
-  if (caller_origin.host() == relying_party_id)
-    return true;
-
-  if (!caller_origin.DomainIs(relying_party_id))
-    return false;
-  if (!net::registry_controlled_domains::HostHasRegistryControlledDomain(
-          caller_origin.host(),
-          net::registry_controlled_domains::INCLUDE_UNKNOWN_REGISTRIES,
-          net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES))
-    return false;
-  if (!net::registry_controlled_domains::HostHasRegistryControlledDomain(
-          relying_party_id,
-          net::registry_controlled_domains::INCLUDE_UNKNOWN_REGISTRIES,
-          net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES))
-    // TODO(crbug.com/803414): Accept corner-case situations like the following
-    // origin: "https://login.awesomecompany",
-    // relying_party_id: "awesomecompany".
-    return false;
-  return true;
-}
-
-// Validates whether the given origin is authorized to use the provided App
-// ID value, mostly according to the rules in
-// https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-appid-and-facets-v1.2-ps-20170411.html#determining-if-a-caller-s-facetid-is-authorized-for-an-appid.
-//
-// Returns the App ID to use for the request, or base::nullopt if the origin
-// is not authorized to use the provided value.
-base::Optional<std::string> ProcessAppIdExtension(std::string appid,
-                                                  const url::Origin& origin) {
-  // The CryptoToken U2F extension checks the appid before calling the WebAuthn
-  // API so there is no need to validate it here.
-  if (OriginIsCryptoTokenExtension(origin) &&
-      base::FeatureList::IsEnabled(device::kWebAuthProxyCryptotoken)) {
-    if (!GURL(appid).is_valid()) {
-      DCHECK(false) << "cryptotoken request did not set a valid App ID";
-      return base::nullopt;
-    }
-    return appid;
-  }
-
-  // Step 1: "If the AppID is not an HTTPS URL, and matches the FacetID of the
-  // caller, no additional processing is necessary and the operation may
-  // proceed."
-
-  // Webauthn is only supported on secure origins and |HasValidEffectiveDomain|
-  // has already checked this property of |origin| before this call. Thus this
-  // step is moot.
-  DCHECK(content::IsOriginSecure(origin.GetURL()));
-
-  // Step 2: "If the AppID is null or empty, the client must set the AppID to be
-  // the FacetID of the caller, and the operation may proceed without additional
-  // processing."
-  if (appid.empty()) {
-    // While the U2F spec says to default the App ID to the Facet ID, which is
-    // the origin plus a trailing forward slash [1], cryptotoken and Firefox
-    // just use the site's Origin without trailing slash. We follow their
-    // implementations rather than the spec.
-    //
-    // [1]https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-appid-and-facets-v2.0-id-20180227.html#determining-the-facetid-of-a-calling-application
-    appid = origin.Serialize();
-  }
-
-  // Step 3: "If the caller's FacetID is an https:// Origin sharing the same
-  // host as the AppID, (e.g. if an application hosted at
-  // https://fido.example.com/myApp set an AppID of
-  // https://fido.example.com/myAppId), no additional processing is necessary
-  // and the operation may proceed."
-  GURL appid_url = GURL(appid);
-  if (!appid_url.is_valid() || appid_url.scheme() != url::kHttpsScheme ||
-      appid_url.scheme_piece() != origin.scheme()) {
-    ReportSecurityCheckFailure(
-        RelyingPartySecurityCheckFailure::kAppIdExtensionInvalid);
-    return base::nullopt;
-  }
-
-  // This check is repeated inside |SameDomainOrHost|, just after this. However
-  // it's cheap and mirrors the structure of the spec.
-  if (appid_url.host_piece() == origin.host()) {
-    return appid;
-  }
-
-  // At this point we diverge from the specification in order to avoid the
-  // complexity of making a network request which isn't believed to be
-  // neccessary in practice. See also
-  // https://bugzilla.mozilla.org/show_bug.cgi?id=1244959#c8
-  if (net::registry_controlled_domains::SameDomainOrHost(
-          appid_url, origin,
-          net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES)) {
-    return appid;
-  }
-
-  // As a compatibility hack, sites within google.com are allowed to assert two
-  // special-case AppIDs. Firefox also does this:
-  // https://groups.google.com/forum/#!msg/mozilla.dev.platform/Uiu3fwnA2xw/201ynAiPAQAJ
-  const GURL kGstatic1 =
-      GURL("https://www.gstatic.com/securitykey/origins.json");
-  const GURL kGstatic2 =
-      GURL("https://www.gstatic.com/securitykey/a/google.com/origins.json");
-  DCHECK(kGstatic1.is_valid() && kGstatic2.is_valid());
-
-  if (origin.DomainIs("google.com") && !appid_url.has_ref() &&
-      (appid_url.EqualsIgnoringRef(kGstatic1) ||
-       appid_url.EqualsIgnoringRef(kGstatic2))) {
-    return appid;
-  }
-
-  ReportSecurityCheckFailure(
-      RelyingPartySecurityCheckFailure::kAppIdExtensionDomainMismatch);
-
-  return base::nullopt;
-}
-
-device::CtapMakeCredentialRequest CreateCtapMakeCredentialRequest(
-    const std::string& client_data_json,
-    const blink::mojom::PublicKeyCredentialCreationOptionsPtr& options,
-    bool is_incognito) {
-  auto credential_params = mojo::ConvertTo<
-      std::vector<device::PublicKeyCredentialParams::CredentialInfo>>(
-      options->public_key_parameters);
-
-  device::CtapMakeCredentialRequest make_credential_param(
-      client_data_json,
-      mojo::ConvertTo<device::PublicKeyCredentialRpEntity>(
-          options->relying_party),
-      mojo::ConvertTo<device::PublicKeyCredentialUserEntity>(options->user),
-      device::PublicKeyCredentialParams(std::move(credential_params)));
-
-  auto exclude_list =
-      mojo::ConvertTo<std::vector<device::PublicKeyCredentialDescriptor>>(
-          options->exclude_credentials);
-
-  make_credential_param.SetExcludeList(std::move(exclude_list));
-  make_credential_param.SetHmacSecret(options->hmac_create_secret);
-  make_credential_param.set_is_incognito_mode(is_incognito);
-  return make_credential_param;
-}
-
-device::CtapGetAssertionRequest CreateCtapGetAssertionRequest(
-    const std::string& client_data_json,
-    const blink::mojom::PublicKeyCredentialRequestOptionsPtr& options,
-    base::Optional<std::string> app_id,
-    bool is_incognito) {
-  device::CtapGetAssertionRequest request_parameter(options->relying_party_id,
-                                                    client_data_json);
-
-  auto allowed_list =
-      mojo::ConvertTo<std::vector<device::PublicKeyCredentialDescriptor>>(
-          options->allow_credentials);
-
-  request_parameter.SetAllowList(std::move(allowed_list));
-  request_parameter.SetUserVerification(
-      mojo::ConvertTo<device::UserVerificationRequirement>(
-          options->user_verification));
-
-  if (app_id) {
-    request_parameter.SetAppId(std::move(*app_id));
-  }
-
-  if (!options->cable_authentication_data.empty()) {
-    request_parameter.SetCableExtension(
-        mojo::ConvertTo<std::vector<device::CableDiscoveryData>>(
-            options->cable_authentication_data));
-  }
-  request_parameter.set_is_incognito_mode(is_incognito);
-  return request_parameter;
-}
-
-// The application parameter is the SHA-256 hash of the UTF-8 encoding of
-// the application identity (i.e. relying_party_id) of the application
-// requesting the registration.
-std::array<uint8_t, crypto::kSHA256Length> CreateApplicationParameter(
-    const std::string& relying_party_id) {
-  std::array<uint8_t, crypto::kSHA256Length> application_parameter;
-  crypto::SHA256HashString(relying_party_id, application_parameter.data(),
-                           application_parameter.size());
-  return application_parameter;
-}
-
-// Parses the FIDO transport types extension from the DER-encoded, X.509
-// certificate in |der_cert| and appends any unique transport types found to
-// |out_transports|.
-void AppendUniqueTransportsFromCertificate(
-    base::span<const uint8_t> der_cert,
-    std::vector<device::FidoTransportProtocol>* out_transports) {
-  // See
-  // https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-authenticator-transports-extension-v1.2-ps-20170411.html#fido-u2f-certificate-transports-extension
-  static constexpr uint8_t kTransportTypesOID[] = {
-      0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xe5, 0x1c, 0x02, 0x01, 0x01};
-  bool present, critical;
-  base::StringPiece contents;
-  if (!net::asn1::ExtractExtensionFromDERCert(
-          base::StringPiece(reinterpret_cast<const char*>(der_cert.data()),
-                            der_cert.size()),
-          base::StringPiece(reinterpret_cast<const char*>(kTransportTypesOID),
-                            sizeof(kTransportTypesOID)),
-          &present, &critical, &contents) ||
-      !present) {
-    return;
-  }
-
-  const net::der::Input contents_der(contents);
-  net::der::Parser contents_parser(contents_der);
-  net::der::BitString transport_bits;
-  if (!contents_parser.ReadBitString(&transport_bits)) {
-    return;
-  }
-
-  // The certificate extension contains a BIT STRING where different bits
-  // indicate support for different transports. The following array maps
-  // between these bit indexes and the FidoTransportProtocol enum.
-  static constexpr struct {
-    uint8_t bit_index;
-    device::FidoTransportProtocol transport;
-  } kTransportMapping[] = {
-      // Bit 0 is "Bluetooth Classic", not BLE. Since webauthn doesn't define a
-      // transport type for this we ignore it.
-      {1, device::FidoTransportProtocol::kBluetoothLowEnergy},
-      {2, device::FidoTransportProtocol::kUsbHumanInterfaceDevice},
-      {3, device::FidoTransportProtocol::kNearFieldCommunication},
-      {4, device::FidoTransportProtocol::kInternal},
-  };
-
-  for (const auto& mapping : kTransportMapping) {
-    if (transport_bits.AssertsBit(mapping.bit_index) &&
-        !base::ContainsValue(*out_transports, mapping.transport)) {
-      out_transports->push_back(mapping.transport);
-    }
-  }
-}
-
-enum class AttestationErasureOption {
-  kIncludeAttestation,
-  kEraseAttestationButIncludeAaguid,
-  kEraseAttestationAndAaguid,
-};
-
-blink::mojom::MakeCredentialAuthenticatorResponsePtr
-CreateMakeCredentialResponse(
-    const std::string& client_data_json,
-    device::AuthenticatorMakeCredentialResponse response_data,
-    AttestationErasureOption attestation_erasure) {
-  auto response = blink::mojom::MakeCredentialAuthenticatorResponse::New();
-  auto common_info = blink::mojom::CommonCredentialInfo::New();
-  common_info->client_data_json.assign(client_data_json.begin(),
-                                       client_data_json.end());
-  common_info->raw_id = response_data.raw_credential_id();
-  common_info->id = response_data.GetId();
-  response->info = std::move(common_info);
-
-  // The transport list must not contain duplicates but the order doesn't matter
-  // because Blink will sort the resulting strings before returning them.
-  std::vector<device::FidoTransportProtocol> transports;
-  if (response_data.transport_used()) {
-    transports.push_back(*response_data.transport_used());
-  }
-  // If the attestation certificate specifies that the token supports any other
-  // transports, include them in the list.
-  base::Optional<base::span<const uint8_t>> leaf_cert =
-      response_data.attestation_object()
-          .attestation_statement()
-          .GetLeafCertificate();
-  if (leaf_cert) {
-    AppendUniqueTransportsFromCertificate(*leaf_cert, &transports);
-  }
-
-  for (auto transport : transports) {
-    response->transports.push_back(
-        mojo::ConvertTo<blink::mojom::AuthenticatorTransport>(transport));
-  }
-
-  const base::Optional<cbor::Value>& maybe_extensions =
-      response_data.attestation_object().authenticator_data().extensions();
-  if (maybe_extensions) {
-    DCHECK(maybe_extensions->is_map());
-    const cbor::Value::MapValue& extensions = maybe_extensions->GetMap();
-    const auto hmac_secret_it =
-        extensions.find(cbor::Value(device::kExtensionHmacSecret));
-    if (hmac_secret_it != extensions.end() &&
-        hmac_secret_it->second.is_bool()) {
-      response->echo_hmac_create_secret = true;
-      response->hmac_create_secret = hmac_secret_it->second.GetBool();
-    }
-  }
-
-  switch (attestation_erasure) {
-    case AttestationErasureOption::kIncludeAttestation:
-      break;
-    case AttestationErasureOption::kEraseAttestationButIncludeAaguid:
-      response_data.EraseAttestationStatement(
-          device::AttestationObject::AAGUID::kInclude);
-      break;
-    case AttestationErasureOption::kEraseAttestationAndAaguid:
-      response_data.EraseAttestationStatement(
-          device::AttestationObject::AAGUID::kErase);
-      break;
-  }
-  response->attestation_object =
-      response_data.GetCBOREncodedAttestationObject();
-
-  return response;
-}
-
-blink::mojom::GetAssertionAuthenticatorResponsePtr CreateGetAssertionResponse(
-    const std::string& client_data_json,
-    device::AuthenticatorGetAssertionResponse response_data,
-    base::Optional<bool> echo_appid_extension) {
-  auto response = blink::mojom::GetAssertionAuthenticatorResponse::New();
-  auto common_info = blink::mojom::CommonCredentialInfo::New();
-  common_info->client_data_json.assign(client_data_json.begin(),
-                                       client_data_json.end());
-  common_info->raw_id = response_data.raw_credential_id();
-  common_info->id = response_data.GetId();
-  response->info = std::move(common_info);
-  response->authenticator_data =
-      response_data.auth_data().SerializeToByteArray();
-  response->signature = response_data.signature();
-  if (echo_appid_extension) {
-    response->echo_appid_extension = true;
-    response->appid_extension = *echo_appid_extension;
-  }
-  response_data.user_entity()
-      ? response->user_handle.emplace(response_data.user_entity()->user_id())
-      : response->user_handle.emplace();
-  return response;
-}
-
-std::string Base64UrlEncode(const base::span<const uint8_t> input) {
-  std::string ret;
-  base::Base64UrlEncode(
-      base::StringPiece(reinterpret_cast<const char*>(input.data()),
-                        input.size()),
-      base::Base64UrlEncodePolicy::OMIT_PADDING, &ret);
-  return ret;
-}
-
-base::flat_set<device::FidoTransportProtocol> GetTransportsEnabledByFlags() {
-  base::flat_set<device::FidoTransportProtocol> transports;
-  transports.insert(device::FidoTransportProtocol::kUsbHumanInterfaceDevice);
-  transports.insert(device::FidoTransportProtocol::kInternal);
-
-  // TODO(crbug.com/885165): We should not directly access the BLE stack here.
-  // It is used by //device/fido, so its availability should be checked there.
-  if (!device::BluetoothAdapterFactory::Get().IsLowEnergySupported())
-    return transports;
-
-  if (base::FeatureList::IsEnabled(features::kWebAuthBle)) {
-    transports.insert(device::FidoTransportProtocol::kBluetoothLowEnergy);
-  }
-
-  // caBLE is independent of the BLE transport.
-  if (base::FeatureList::IsEnabled(features::kWebAuthCable)) {
-    transports.insert(
-        device::FidoTransportProtocol::kCloudAssistedBluetoothLowEnergy);
-  }
-
-  return transports;
-}
-
-}  // namespace
-
 AuthenticatorImpl::AuthenticatorImpl(RenderFrameHost* render_frame_host)
     : AuthenticatorImpl(render_frame_host,
-                        nullptr /* connector */,
-                        std::make_unique<base::OneShotTimer>()) {}
+                        std::make_unique<AuthenticatorCommon>(
+                            render_frame_host,
+                            nullptr /* connector */,
+                            std::make_unique<base::OneShotTimer>())) {}
 
-AuthenticatorImpl::AuthenticatorImpl(RenderFrameHost* render_frame_host,
-                                     service_manager::Connector* connector,
-                                     std::unique_ptr<base::OneShotTimer> timer)
+AuthenticatorImpl::AuthenticatorImpl(
+    RenderFrameHost* render_frame_host,
+    std::unique_ptr<AuthenticatorCommon> authenticator_common)
     : WebContentsObserver(WebContents::FromRenderFrameHost(render_frame_host)),
       render_frame_host_(render_frame_host),
-      connector_(connector),
-      transports_(GetTransportsEnabledByFlags()),
-      timer_(std::move(timer)),
+      authenticator_common_(std::move(authenticator_common)),
       binding_(this),
       weak_factory_(this) {
   DCHECK(render_frame_host_);
-  DCHECK(timer_);
+  DCHECK(authenticator_common_);
 }
 
 AuthenticatorImpl::~AuthenticatorImpl() {
@@ -554,375 +53,28 @@
   binding_.Bind(std::move(request));
 }
 
-void AuthenticatorImpl::UpdateRequestDelegate() {
-  DCHECK(!request_delegate_);
-  request_delegate_ =
-      GetContentClient()->browser()->GetWebAuthenticationRequestDelegate(
-          render_frame_host_);
-}
-
-bool AuthenticatorImpl::IsFocused() const {
-  return render_frame_host_->IsCurrent() && request_delegate_->IsFocused();
-}
-
-// static
-std::string AuthenticatorImpl::SerializeCollectedClientDataToJson(
-    const std::string& type,
-    const std::string& origin,
-    base::span<const uint8_t> challenge,
-    bool use_legacy_u2f_type_key /* = false */) {
-  static constexpr char kChallengeKey[] = "challenge";
-  static constexpr char kOriginKey[] = "origin";
-
-  base::DictionaryValue client_data;
-  client_data.SetKey(use_legacy_u2f_type_key ? "typ" : "type",
-                     base::Value(type));
-  client_data.SetKey(kChallengeKey, base::Value(Base64UrlEncode(challenge)));
-  client_data.SetKey(kOriginKey, base::Value(origin));
-
-  if (base::RandDouble() < 0.2) {
-    // An extra key is sometimes added to ensure that RPs do not make
-    // unreasonably specific assumptions about the clientData JSON. This is
-    // done in the fashion of
-    // https://tools.ietf.org/html/draft-davidben-tls-grease-01
-    client_data.SetKey("new_keys_may_be_added_here",
-                       base::Value("do not compare clientDataJSON against a "
-                                   "template. See https://goo.gl/yabPex"));
-  }
-
-  std::string json;
-  base::JSONWriter::Write(client_data, &json);
-  return json;
-}
-
 // mojom::Authenticator
 void AuthenticatorImpl::MakeCredential(
     blink::mojom::PublicKeyCredentialCreationOptionsPtr options,
     MakeCredentialCallback callback) {
-  if (request_) {
-    if (OriginIsCryptoTokenExtension(
-            render_frame_host_->GetLastCommittedOrigin())) {
-      // Requests originating from cryptotoken will generally outlive any
-      // navigation events on the tab of the request's sender. Evict pending
-      // requests if cryptotoken sends a new one such that requests from before
-      // a navigation event do not prevent new requests. See
-      // https://crbug.com/935480.
-      Cancel();
-    } else {
-      std::move(callback).Run(
-          blink::mojom::AuthenticatorStatus::PENDING_REQUEST, nullptr);
-      return;
-    }
-  }
-  DCHECK(!request_);
-
-  UpdateRequestDelegate();
-  if (!request_delegate_) {
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::PENDING_REQUEST,
-                             nullptr, Focus::kDontCheck);
-    return;
-  }
-
-  if (!IsFocused()) {
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::NOT_FOCUSED,
-                             nullptr, Focus::kDontCheck);
-    return;
-  }
-
-  caller_origin_ = render_frame_host_->GetLastCommittedOrigin();
-  relying_party_id_ = options->relying_party->id;
-
-  if (!HasValidEffectiveDomain(caller_origin_)) {
-    ReportSecurityCheckFailure(
-        RelyingPartySecurityCheckFailure::kOpaqueOrNonSecureOrigin);
-    bad_message::ReceivedBadMessage(render_frame_host_->GetProcess(),
-                                    bad_message::AUTH_INVALID_EFFECTIVE_DOMAIN);
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::INVALID_DOMAIN,
-                             nullptr, Focus::kDontCheck);
-    return;
-  }
-
-  if (!IsRelyingPartyIdValid(relying_party_id_, caller_origin_)) {
-    ReportSecurityCheckFailure(
-        RelyingPartySecurityCheckFailure::kRelyingPartyIdInvalid);
-    bad_message::ReceivedBadMessage(render_frame_host_->GetProcess(),
-                                    bad_message::AUTH_INVALID_RELYING_PARTY);
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::INVALID_DOMAIN,
-                             nullptr, Focus::kDontCheck);
-    return;
-  }
-
-  if (options->authenticator_selection &&
-      options->authenticator_selection->require_resident_key) {
-    // Disallow the creation of resident credentials.
-    InvokeCallbackAndCleanup(
-        std::move(callback),
-        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED,
-        nullptr, Focus::kDontCheck);
-    return;
-  }
-
-  DCHECK(make_credential_response_callback_.is_null());
-  make_credential_response_callback_ = std::move(callback);
-
-  timer_->Start(
-      FROM_HERE, options->adjusted_timeout,
-      base::BindOnce(&AuthenticatorImpl::OnTimeout, base::Unretained(this)));
-  if (!connector_)
-    connector_ = ServiceManagerConnection::GetForProcess()->GetConnector();
-
-  // Save client data to return with the authenticator response.
-  // TODO(kpaulhamus): Fetch and add the Channel ID/Token Binding ID public key
-  // used to communicate with the origin.
-  if (OriginIsCryptoTokenExtension(caller_origin_)) {
-    // Cryptotoken requests should be proxied without UI.
-    request_delegate_->DisableUI();
-    // As Cryptotoken validates the origin, accept the relying party id as the
-    // origin from requests originating from Cryptotoken. The origin is provided
-    // in Cryptotoken requests as the relying party name, which should be used
-    // as part of client data.
-    client_data_json_ = SerializeCollectedClientDataToJson(
-        client_data::kU2fRegisterType, options->relying_party->name,
-        std::move(options->challenge), true /* use_legacy_u2f_type_key */);
-  } else {
-    client_data_json_ = SerializeCollectedClientDataToJson(
-        client_data::kCreateType, caller_origin_.Serialize(),
-        std::move(options->challenge));
-  }
-
-  UMA_HISTOGRAM_COUNTS_100(
-      "WebAuthentication.MakeCredentialExcludeCredentialsCount",
-      options->exclude_credentials.size());
-
-  // U2F requests proxied from the cryptotoken extension are limited to USB
-  // devices.
-  const auto transports =
-      OriginIsCryptoTokenExtension(caller_origin_)
-          ? base::flat_set<device::FidoTransportProtocol>(
-                {device::FidoTransportProtocol::kUsbHumanInterfaceDevice})
-          : transports_;
-
-  auto authenticator_selection_criteria =
-      options->authenticator_selection
-          ? mojo::ConvertTo<device::AuthenticatorSelectionCriteria>(
-                options->authenticator_selection)
-          : device::AuthenticatorSelectionCriteria();
-
-  auto ctap_request = CreateCtapMakeCredentialRequest(
-      client_data_json_, options, browser_context()->IsOffTheRecord());
-  // On dual protocol CTAP2/U2F devices, force credential creation over U2F.
-  ctap_request.set_is_u2f_only(OriginIsCryptoTokenExtension(caller_origin_));
-
-  // Compute the effective attestation conveyance preference and set
-  // |attestation_requested_| for showing the attestation consent prompt later.
-  auto attestation = mojo::ConvertTo<::device::AttestationConveyancePreference>(
-      options->attestation);
-  if (attestation == ::device::AttestationConveyancePreference::ENTERPRISE &&
-      !request_delegate_->ShouldPermitIndividualAttestation(
-          relying_party_id_)) {
-    attestation = ::device::AttestationConveyancePreference::DIRECT;
-  }
-  ctap_request.set_attestation_preference(attestation);
-  attestation_requested_ =
-      attestation != ::device::AttestationConveyancePreference::NONE;
-
-  request_ = std::make_unique<device::MakeCredentialRequestHandler>(
-      connector_, transports, std::move(ctap_request),
-      std::move(authenticator_selection_criteria),
-      base::BindOnce(&AuthenticatorImpl::OnRegisterResponse,
-                     weak_factory_.GetWeakPtr()));
-
-  request_delegate_->RegisterActionCallbacks(
-      base::BindOnce(&AuthenticatorImpl::Cancel,
-                     weak_factory_.GetWeakPtr()) /* cancel_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::StartAuthenticatorRequest,
-          request_->GetWeakPtr()) /* request_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::PowerOnBluetoothAdapter,
-          request_->GetWeakPtr()) /* bluetooth_adapter_power_on_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::InitiatePairingWithDevice,
-          request_->GetWeakPtr()) /* ble_pairing_callback */);
-  request_->set_observer(request_delegate_.get());
-
-  request_->SetPlatformAuthenticatorOrMarkUnavailable(
-      CreatePlatformAuthenticatorIfAvailable());
+  authenticator_common_->MakeCredential(
+      render_frame_host_->GetLastCommittedOrigin(), std::move(options),
+      std::move(callback));
 }
 
 // mojom:Authenticator
 void AuthenticatorImpl::GetAssertion(
     blink::mojom::PublicKeyCredentialRequestOptionsPtr options,
     GetAssertionCallback callback) {
-  if (request_) {
-    if (OriginIsCryptoTokenExtension(
-            render_frame_host_->GetLastCommittedOrigin())) {
-      // Requests originating from cryptotoken will generally outlive any
-      // navigation events on the tab of the request's sender. Evict pending
-      // requests if cryptotoken sends a new one such that requests from before
-      // a navigation event do not prevent new requests. See
-      // https://crbug.com/935480.
-      Cancel();
-    } else {
-      std::move(callback).Run(
-          blink::mojom::AuthenticatorStatus::PENDING_REQUEST, nullptr);
-      return;
-    }
-  }
-  DCHECK(!request_);
-
-  UpdateRequestDelegate();
-  if (!request_delegate_) {
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::PENDING_REQUEST,
-                             nullptr);
-    return;
-  }
-
-  caller_origin_ = render_frame_host_->GetLastCommittedOrigin();
-
-  // Save client data to return with the authenticator response.
-  // TODO(kpaulhamus): Fetch and add the Channel ID/Token Binding ID public key
-  // used to communicate with the origin.
-  if (OriginIsCryptoTokenExtension(caller_origin_)) {
-    request_delegate_->DisableUI();
-
-    // As Cryptotoken validates the origin, accept the relying party id as the
-    // origin from requests originating from Cryptotoken.
-    client_data_json_ = SerializeCollectedClientDataToJson(
-        client_data::kU2fSignType, options->relying_party_id,
-        std::move(options->challenge), true /* use_legacy_u2f_type_key */);
-  } else {
-    client_data_json_ = SerializeCollectedClientDataToJson(
-        client_data::kGetType, caller_origin_.Serialize(),
-        std::move(options->challenge));
-  }
-
-  if (!HasValidEffectiveDomain(caller_origin_)) {
-    ReportSecurityCheckFailure(
-        RelyingPartySecurityCheckFailure::kOpaqueOrNonSecureOrigin);
-    bad_message::ReceivedBadMessage(render_frame_host_->GetProcess(),
-                                    bad_message::AUTH_INVALID_EFFECTIVE_DOMAIN);
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::INVALID_DOMAIN,
-                             nullptr);
-    return;
-  }
-
-  if (!IsRelyingPartyIdValid(options->relying_party_id, caller_origin_)) {
-    ReportSecurityCheckFailure(
-        RelyingPartySecurityCheckFailure::kRelyingPartyIdInvalid);
-    bad_message::ReceivedBadMessage(render_frame_host_->GetProcess(),
-                                    bad_message::AUTH_INVALID_RELYING_PARTY);
-    InvokeCallbackAndCleanup(std::move(callback),
-                             blink::mojom::AuthenticatorStatus::INVALID_DOMAIN,
-                             nullptr);
-    return;
-  }
-
-  if (options->allow_credentials.empty()) {
-    // Chrome currently does not support any resident keys.
-    InvokeCallbackAndCleanup(
-        std::move(callback),
-        blink::mojom::AuthenticatorStatus::RESIDENT_CREDENTIALS_UNSUPPORTED,
-        nullptr);
-    return;
-  }
-
-  if (options->appid) {
-    app_id_ = ProcessAppIdExtension(*options->appid, caller_origin_);
-    if (!app_id_) {
-      std::move(callback).Run(blink::mojom::AuthenticatorStatus::INVALID_DOMAIN,
-                              nullptr);
-      return;
-    }
-  }
-
-  // U2F requests proxied from the cryptotoken extension are limited to USB
-  // devices.
-  const auto transports =
-      OriginIsCryptoTokenExtension(caller_origin_)
-          ? base::flat_set<device::FidoTransportProtocol>(
-                {device::FidoTransportProtocol::kUsbHumanInterfaceDevice})
-          : transports_;
-
-  UMA_HISTOGRAM_COUNTS_100(
-      "WebAuthentication.CredentialRequestAllowCredentialsCount",
-      options->allow_credentials.size());
-
-  DCHECK(get_assertion_response_callback_.is_null());
-  get_assertion_response_callback_ = std::move(callback);
-
-  timer_->Start(
-      FROM_HERE, options->adjusted_timeout,
-      base::BindOnce(&AuthenticatorImpl::OnTimeout, base::Unretained(this)));
-
-  if (!connector_)
-    connector_ = ServiceManagerConnection::GetForProcess()->GetConnector();
-
-  auto ctap_request = CreateCtapGetAssertionRequest(
-      client_data_json_, std::move(options), app_id_,
-      browser_context()->IsOffTheRecord());
-  auto opt_platform_authenticator_info =
-      CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
-          ctap_request);
-  request_ = std::make_unique<device::GetAssertionRequestHandler>(
-      connector_, transports, std::move(ctap_request),
-      base::BindOnce(&AuthenticatorImpl::OnSignResponse,
-                     weak_factory_.GetWeakPtr()));
-
-  request_delegate_->RegisterActionCallbacks(
-      base::BindOnce(&AuthenticatorImpl::Cancel,
-                     weak_factory_.GetWeakPtr()) /* cancel_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::StartAuthenticatorRequest,
-          request_->GetWeakPtr()) /* request_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::PowerOnBluetoothAdapter,
-          request_->GetWeakPtr()) /* bluetooth_adapter_power_on_callback */,
-      base::BindRepeating(
-          &device::FidoRequestHandlerBase::InitiatePairingWithDevice,
-          request_->GetWeakPtr()) /* ble_pairing_callback*/);
-  request_->set_observer(request_delegate_.get());
-
-  request_->SetPlatformAuthenticatorOrMarkUnavailable(
-      std::move(opt_platform_authenticator_info));
+  authenticator_common_->GetAssertion(
+      render_frame_host_->GetLastCommittedOrigin(), std::move(options),
+      std::move(callback));
 }
 
 void AuthenticatorImpl::IsUserVerifyingPlatformAuthenticatorAvailable(
     IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) {
-  const bool result = IsUserVerifyingPlatformAuthenticatorAvailableImpl();
-  base::SequencedTaskRunnerHandle::Get()->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback), result));
-}
-
-bool AuthenticatorImpl::IsUserVerifyingPlatformAuthenticatorAvailableImpl() {
-  //  N.B. request_delegate_ may be nullptr at this point.
-  // All platform authenticators are disabled in incognito mode.
-  // TODO(martinkr): Revisit incognito handling (crbug/908622).
-  if (browser_context()->IsOffTheRecord())
-    return false;
-
-#if defined(OS_MACOSX)
-  // Touch ID is disabled, regardless of hardware support, if the embedder
-  // doesn't support it.
-  if (!GetContentClient()
-           ->browser()
-           ->IsWebAuthenticationTouchIdAuthenticatorSupported())
-    return false;
-
-  return device::fido::mac::TouchIdAuthenticator::IsAvailable();
-#elif defined(OS_WIN)
-  return base::FeatureList::IsEnabled(device::kWebAuthUseNativeWinApi) &&
-         device::WinWebAuthnApiAuthenticator::
-             IsUserVerifyingPlatformAuthenticatorAvailable();
-#else
-  return false;
-#endif
+  authenticator_common_->IsUserVerifyingPlatformAuthenticatorAvailable(
+      std::move(callback));
 }
 
 void AuthenticatorImpl::DidFinishNavigation(
@@ -939,432 +91,7 @@
   }
 
   binding_.Close();
-  Cleanup();
-}
-
-// Callback to handle the async registration response from a U2fDevice.
-void AuthenticatorImpl::OnRegisterResponse(
-    device::FidoReturnCode status_code,
-    base::Optional<device::AuthenticatorMakeCredentialResponse> response_data,
-    base::Optional<device::FidoTransportProtocol> transport_used) {
-  if (!request_) {
-    // Either the callback was called immediately and |request_| has not yet
-    // been assigned (this is a bug), or a navigation caused the request to be
-    // canceled while a callback was enqueued.
-    return;
-  }
-
-  switch (status_code) {
-    case device::FidoReturnCode::kUserConsentButCredentialExcluded:
-      // Duplicate registration: the new credential would be created on an
-      // authenticator that already contains one of the credentials in
-      // |exclude_credentials|.
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kKeyAlreadyRegistered);
-      return;
-    case device::FidoReturnCode::kAuthenticatorResponseInvalid:
-      // The response from the authenticator was corrupted.
-      InvokeCallbackAndCleanup(
-          std::move(make_credential_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr,
-          Focus::kDoCheck);
-      return;
-    case device::FidoReturnCode::kUserConsentButCredentialNotRecognized:
-      // TODO(crbug/876109): This isn't strictly unreachable.
-      NOTREACHED();
-      return;
-    case device::FidoReturnCode::kUserConsentDenied:
-      InvokeCallbackAndCleanup(
-          std::move(make_credential_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr,
-          Focus::kDoCheck);
-      return;
-    case device::FidoReturnCode::kSoftPINBlock:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kSoftPINBlock);
-      return;
-    case device::FidoReturnCode::kHardPINBlock:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kHardPINBlock);
-      return;
-    case device::FidoReturnCode::kAuthenticatorRemovedDuringPINEntry:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kAuthenticatorRemovedDuringPINEntry);
-      return;
-    case device::FidoReturnCode::kSuccess:
-      DCHECK(response_data.has_value());
-
-      if (transport_used) {
-        request_delegate_->UpdateLastTransportUsed(*transport_used);
-      }
-
-      if (attestation_requested_) {
-        // Cryptotoken requests may bypass the attestation prompt because the
-        // extension implements its own. Invoking the attestation prompt code
-        // here would not work anyway, because the WebContents associated with
-        // the extension is not associated with any tab and therefore cannot
-        // draw modal dialogs for the UI.
-        //
-        // Note that for AttestationConveyancePreference::NONE, attestation
-        // erasure is still performed as usual.
-        if (OriginIsCryptoTokenExtension(caller_origin_)) {
-          InvokeCallbackAndCleanup(
-              std::move(make_credential_response_callback_),
-              blink::mojom::AuthenticatorStatus::SUCCESS,
-              CreateMakeCredentialResponse(
-                  std::move(client_data_json_), std::move(*response_data),
-                  AttestationErasureOption::kIncludeAttestation),
-              Focus::kDoCheck);
-          return;
-        }
-
-        UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
-                                  AttestationPromptResult::kQueried);
-        awaiting_attestation_response_ = true;
-        request_delegate_->ShouldReturnAttestation(
-            relying_party_id_,
-            base::BindOnce(
-                &AuthenticatorImpl::OnRegisterResponseAttestationDecided,
-                weak_factory_.GetWeakPtr(), std::move(*response_data)));
-        return;
-      }
-
-      AttestationErasureOption attestation_erasure =
-          AttestationErasureOption::kEraseAttestationAndAaguid;
-      if (response_data->IsSelfAttestation()) {
-        attestation_erasure = AttestationErasureOption::kIncludeAttestation;
-      } else if (transport_used &&
-                 *transport_used == device::FidoTransportProtocol::kInternal) {
-        // Contrary to what the WebAuthn spec says, for internal (platform)
-        // authenticators we do not erase the AAGUID from authenticatorData,
-        // even if requested attestationConveyancePreference is "none".
-        attestation_erasure =
-            AttestationErasureOption::kEraseAttestationButIncludeAaguid;
-      }
-
-      InvokeCallbackAndCleanup(
-          std::move(make_credential_response_callback_),
-          blink::mojom::AuthenticatorStatus::SUCCESS,
-          CreateMakeCredentialResponse(std::move(client_data_json_),
-                                       std::move(*response_data),
-                                       attestation_erasure),
-          Focus::kDoCheck);
-      return;
-  }
-  NOTREACHED();
-}
-
-void AuthenticatorImpl::OnRegisterResponseAttestationDecided(
-    device::AuthenticatorMakeCredentialResponse response_data,
-    bool attestation_permitted) {
-  awaiting_attestation_response_ = false;
-  if (!request_) {
-    // The request has already been cleaned up, probably because a navigation
-    // occured while the permissions prompt was pending.
-    return;
-  }
-
-  DCHECK(attestation_requested_);
-
-  if (!attestation_permitted) {
-    UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
-                              AttestationPromptResult::kBlocked);
-    InvokeCallbackAndCleanup(
-        std::move(make_credential_response_callback_),
-        blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr,
-        Focus::kDoCheck);
-    return;
-  }
-
-  UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
-                            AttestationPromptResult::kAllowed);
-  AttestationErasureOption attestation_erasure =
-      AttestationErasureOption::kIncludeAttestation;
-
-  // The check for IsAttestationCertificateInappropriatelyIdentifying is
-  // performed after the permissions prompt, even though we know the answer
-  // before, because this still effectively discloses the make & model of
-  // the authenticator: If an RP sees a "none" attestation from Chrome after
-  // requesting direct attestation then it knows that it was one of the
-  // tokens with inappropriate certs.
-  if (response_data.IsAttestationCertificateInappropriatelyIdentifying() &&
-      !request_delegate_->ShouldPermitIndividualAttestation(
-          relying_party_id_)) {
-    // The attestation response is incorrectly individually identifiable, but
-    // the consent is for make & model information about a token, not for
-    // individually-identifiable information. Erase the attestation to stop it
-    // begin a tracking signal.
-
-    // The only way to get the underlying attestation will be to list the RP ID
-    // in the enterprise policy, because that enables the individual attestation
-    // bit in the register request and permits individual attestation generally.
-    attestation_erasure = AttestationErasureOption::kEraseAttestationAndAaguid;
-  }
-
-  InvokeCallbackAndCleanup(std::move(make_credential_response_callback_),
-                           blink::mojom::AuthenticatorStatus::SUCCESS,
-                           CreateMakeCredentialResponse(
-                               std::move(client_data_json_),
-                               std::move(response_data), attestation_erasure),
-                           Focus::kDoCheck);
-}
-
-void AuthenticatorImpl::OnSignResponse(
-    device::FidoReturnCode status_code,
-    base::Optional<std::vector<device::AuthenticatorGetAssertionResponse>>
-        response_data,
-    base::Optional<device::FidoTransportProtocol> transport_used) {
-  DCHECK(!response_data || !response_data->empty());  // empty vector is invalid
-
-  if (!request_) {
-    // Either the callback was called immediately and |request_| has not yet
-    // been assigned (this is a bug), or a navigation caused the request to be
-    // canceled while a callback was enqueued.
-    return;
-  }
-
-  switch (status_code) {
-    case device::FidoReturnCode::kUserConsentButCredentialNotRecognized:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kKeyNotRegistered);
-      return;
-    case device::FidoReturnCode::kAuthenticatorResponseInvalid:
-      // The response from the authenticator was corrupted.
-      InvokeCallbackAndCleanup(
-          std::move(get_assertion_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr);
-      return;
-    case device::FidoReturnCode::kUserConsentButCredentialExcluded:
-      // TODO(crbug/876109): This isn't strictly unreachable.
-      NOTREACHED();
-      return;
-    case device::FidoReturnCode::kUserConsentDenied:
-      InvokeCallbackAndCleanup(
-          std::move(get_assertion_response_callback_),
-          blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR, nullptr);
-      return;
-    case device::FidoReturnCode::kSoftPINBlock:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kSoftPINBlock);
-      return;
-    case device::FidoReturnCode::kHardPINBlock:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kHardPINBlock);
-      return;
-    case device::FidoReturnCode::kAuthenticatorRemovedDuringPINEntry:
-      SignalFailureToRequestDelegate(
-          AuthenticatorRequestClientDelegate::InterestingFailureReason::
-              kAuthenticatorRemovedDuringPINEntry);
-      return;
-    case device::FidoReturnCode::kSuccess:
-      DCHECK(response_data.has_value());
-      // Resident keys are not yet supported so there must be a single response.
-      DCHECK_EQ(1u, response_data->size());
-      auto& response = response_data.value()[0];
-
-      if (transport_used) {
-        request_delegate_->UpdateLastTransportUsed(*transport_used);
-      }
-
-      base::Optional<bool> echo_appid_extension;
-      if (app_id_) {
-        echo_appid_extension =
-            (response.GetRpIdHash() == CreateApplicationParameter(*app_id_));
-      }
-      InvokeCallbackAndCleanup(std::move(get_assertion_response_callback_),
-                               blink::mojom::AuthenticatorStatus::SUCCESS,
-                               CreateGetAssertionResponse(
-                                   std::move(client_data_json_),
-                                   std::move(response), echo_appid_extension));
-      return;
-  }
-  NOTREACHED();
-}
-
-void AuthenticatorImpl::SignalFailureToRequestDelegate(
-    AuthenticatorRequestClientDelegate::InterestingFailureReason reason) {
-  blink::mojom::AuthenticatorStatus status =
-      blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-
-  switch (reason) {
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::
-        kKeyAlreadyRegistered:
-      status = blink::mojom::AuthenticatorStatus::CREDENTIAL_EXCLUDED;
-      break;
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::
-        kKeyNotRegistered:
-      status = blink::mojom::AuthenticatorStatus::CREDENTIAL_NOT_RECOGNIZED;
-      break;
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::kTimeout:
-      status = blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-      break;
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::
-        kSoftPINBlock:
-      status = blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-      break;
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::
-        kHardPINBlock:
-      status = blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-      break;
-    case AuthenticatorRequestClientDelegate::InterestingFailureReason::
-        kAuthenticatorRemovedDuringPINEntry:
-      status = blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-      break;
-  }
-
-  error_awaiting_user_acknowledgement_ = status;
-
-  // If WebAuthnUi is enabled, this error blocks until after receiving user
-  // acknowledgement. Otherwise, the error is returned right away.
-  if (request_delegate_->DoesBlockRequestOnFailure(reason)) {
-    // Cancel pending authenticator requests before the error dialog is shown.
-    request_->CancelActiveAuthenticators();
-    return;
-  }
-
-  FailWithErrorAndCleanup();
-}  // namespace content
-
-void AuthenticatorImpl::FailWithErrorAndCleanup() {
-  DCHECK(make_credential_response_callback_ ||
-         get_assertion_response_callback_);
-  if (make_credential_response_callback_) {
-    InvokeCallbackAndCleanup(std::move(make_credential_response_callback_),
-                             error_awaiting_user_acknowledgement_, nullptr,
-                             Focus::kDontCheck);
-  } else if (get_assertion_response_callback_) {
-    InvokeCallbackAndCleanup(std::move(get_assertion_response_callback_),
-                             error_awaiting_user_acknowledgement_, nullptr);
-  }
-}
-
-// TODO(crbug.com/814418): Add web tests to verify timeouts are
-// indistinguishable from NOT_ALLOWED_ERROR cases.
-void AuthenticatorImpl::OnTimeout() {
-  DCHECK(request_delegate_);
-  if (awaiting_attestation_response_) {
-    UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
-                              AttestationPromptResult::kTimeout);
-    awaiting_attestation_response_ = false;
-  }
-
-  SignalFailureToRequestDelegate(
-      AuthenticatorRequestClientDelegate::InterestingFailureReason::kTimeout);
-}
-
-void AuthenticatorImpl::Cancel() {
-  // If response callback is invoked already, then ignore cancel request.
-  if (!make_credential_response_callback_ && !get_assertion_response_callback_)
-    return;
-
-  FailWithErrorAndCleanup();
-}
-
-void AuthenticatorImpl::InvokeCallbackAndCleanup(
-    MakeCredentialCallback callback,
-    blink::mojom::AuthenticatorStatus status,
-    blink::mojom::MakeCredentialAuthenticatorResponsePtr response,
-    Focus check_focus) {
-  if (check_focus != Focus::kDontCheck && !(request_delegate_ && IsFocused())) {
-    std::move(callback).Run(blink::mojom::AuthenticatorStatus::NOT_FOCUSED,
-                            nullptr);
-  } else {
-    std::move(callback).Run(status, std::move(response));
-  }
-
-  Cleanup();
-}
-
-void AuthenticatorImpl::InvokeCallbackAndCleanup(
-    GetAssertionCallback callback,
-    blink::mojom::AuthenticatorStatus status,
-    blink::mojom::GetAssertionAuthenticatorResponsePtr response) {
-  std::move(callback).Run(status, std::move(response));
-  Cleanup();
-}
-
-void AuthenticatorImpl::Cleanup() {
-  if (awaiting_attestation_response_) {
-    UMA_HISTOGRAM_ENUMERATION("WebAuthentication.AttestationPromptResult",
-                              AttestationPromptResult::kAbandoned);
-    awaiting_attestation_response_ = false;
-  }
-
-  timer_->Stop();
-  request_.reset();
-  request_delegate_.reset();
-  make_credential_response_callback_.Reset();
-  get_assertion_response_callback_.Reset();
-  client_data_json_.clear();
-  app_id_.reset();
-  attestation_requested_ = false;
-  error_awaiting_user_acknowledgement_ =
-      blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
-}
-
-BrowserContext* AuthenticatorImpl::browser_context() const {
-  return content::WebContents::FromRenderFrameHost(render_frame_host_)
-      ->GetBrowserContext();
-}
-
-#if defined(OS_MACOSX)
-namespace {
-std::unique_ptr<device::fido::mac::TouchIdAuthenticator>
-CreateTouchIdAuthenticatorIfAvailable(
-    const AuthenticatorRequestClientDelegate* request_delegate) {
-  // Not all embedders may provide an authenticator config.
-  auto opt_authenticator_config =
-      request_delegate->GetTouchIdAuthenticatorConfig();
-  if (!opt_authenticator_config) {
-    return nullptr;
-  }
-  return device::fido::mac::TouchIdAuthenticator::CreateIfAvailable(
-      std::move(opt_authenticator_config->keychain_access_group),
-      std::move(opt_authenticator_config->metadata_secret));
-}
-}  // namespace
-#endif
-
-base::Optional<device::PlatformAuthenticatorInfo>
-AuthenticatorImpl::CreatePlatformAuthenticatorIfAvailable() {
-  // Incognito mode disables platform authenticators, so check for availability
-  // first.
-  if (!IsUserVerifyingPlatformAuthenticatorAvailableImpl()) {
-    return base::nullopt;
-  }
-#if defined(OS_MACOSX)
-  return device::PlatformAuthenticatorInfo(
-      CreateTouchIdAuthenticatorIfAvailable(request_delegate_.get()), false);
-#else
-  return base::nullopt;
-#endif
-}
-
-base::Optional<device::PlatformAuthenticatorInfo> AuthenticatorImpl::
-    CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
-        const device::CtapGetAssertionRequest& request) {
-  // Incognito mode disables platform authenticators, so check for availability
-  // first.
-  if (!IsUserVerifyingPlatformAuthenticatorAvailableImpl()) {
-    return base::nullopt;
-  }
-#if defined(OS_MACOSX)
-  std::unique_ptr<device::fido::mac::TouchIdAuthenticator> authenticator =
-      CreateTouchIdAuthenticatorIfAvailable(request_delegate_.get());
-  const bool has_credential =
-      authenticator->HasCredentialForGetAssertionRequest(request);
-  return device::PlatformAuthenticatorInfo(std::move(authenticator),
-                                           has_credential);
-#else
-  return base::nullopt;
-#endif
+  authenticator_common_->Cleanup();
 }
 
 }  // namespace content
diff --git a/content/browser/webauth/authenticator_impl.h b/content/browser/webauth/authenticator_impl.h
index 97151dc0..8b004ed 100644
--- a/content/browser/webauth/authenticator_impl.h
+++ b/content/browser/webauth/authenticator_impl.h
@@ -9,23 +9,13 @@
 
 #include <memory>
 #include <string>
-#include <vector>
 
-#include "base/containers/flat_set.h"
-#include "base/containers/span.h"
 #include "base/macros.h"
-#include "base/optional.h"
+#include "content/browser/webauth/authenticator_common.h"
 #include "content/common/content_export.h"
-#include "content/public/browser/authenticator_request_client_delegate.h"
 #include "content/public/browser/web_contents_observer.h"
-#include "crypto/sha2.h"
-#include "device/fido/authenticator_get_assertion_response.h"
-#include "device/fido/authenticator_make_credential_response.h"
-#include "device/fido/fido_constants.h"
-#include "device/fido/fido_transport_protocol.h"
 #include "mojo/public/cpp/bindings/binding.h"
 #include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h"
-#include "url/origin.h"
 
 namespace base {
 class OneShotTimer;
@@ -51,29 +41,20 @@
 
 namespace content {
 
-class BrowserContext;
 class RenderFrameHost;
 
-namespace client_data {
-// These enumerate the possible values for the `type` member of
-// CollectedClientData. See
-// https://w3c.github.io/webauthn/#dom-collectedclientdata-type
-CONTENT_EXPORT extern const char kCreateType[];
-CONTENT_EXPORT extern const char kGetType[];
-}  // namespace client_data
-
 // Implementation of the public Authenticator interface.
 class CONTENT_EXPORT AuthenticatorImpl : public blink::mojom::Authenticator,
                                          public WebContentsObserver {
  public:
   explicit AuthenticatorImpl(RenderFrameHost* render_frame_host);
 
-  // Permits setting connector and timer for testing. Using this constructor
-  // will also empty out the protocol set, since no device discovery will take
-  // place during tests.
+  // By being able to set AuthenticatorCommon, this constructor permits setting
+  // the connector and timer for testing. Using this constructor will also empty
+  // out the protocol set, since no device discovery will take place during
+  // tests.
   AuthenticatorImpl(RenderFrameHost* render_frame_host,
-                    service_manager::Connector*,
-                    std::unique_ptr<base::OneShotTimer>);
+                    std::unique_ptr<AuthenticatorCommon> authenticator_common);
   ~AuthenticatorImpl() override;
 
   // Creates a binding between this implementation and |request|.
@@ -83,43 +64,12 @@
   // to a new active document.
   void Bind(blink::mojom::AuthenticatorRequest request);
 
-  base::flat_set<device::FidoTransportProtocol> enabled_transports_for_testing()
-      const {
-    return transports_;
-  }
-  void set_transports_for_testing(
-      base::flat_set<device::FidoTransportProtocol> transports) {
-    transports_ = transports;
-  }
-
- protected:
-  virtual void UpdateRequestDelegate();
-
-  std::unique_ptr<AuthenticatorRequestClientDelegate> request_delegate_;
-
  private:
   friend class AuthenticatorImplTest;
 
-  // Enumerates whether or not to check that the WebContents has focus.
-  enum class Focus {
-    kDoCheck,
-    kDontCheck,
-  };
-
-  bool IsFocused() const;
-
-  // Builds the CollectedClientData[1] dictionary with the given values,
-  // serializes it to JSON, and returns the resulting string. For legacy U2F
-  // requests coming from the CryptoToken U2F extension, modifies the object key
-  // 'type' as required[2].
-  // [1] https://w3c.github.io/webauthn/#dictdef-collectedclientdata
-  // [2]
-  // https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html#client-data
-  static std::string SerializeCollectedClientDataToJson(
-      const std::string& type,
-      const std::string& origin,
-      base::span<const uint8_t> challenge,
-      bool use_legacy_u2f_type_key = false);
+  AuthenticatorCommon* get_authenticator_common_for_testing() {
+    return authenticator_common_.get();
+  }
 
   // mojom:Authenticator
   void MakeCredential(
@@ -130,81 +80,11 @@
   void IsUserVerifyingPlatformAuthenticatorAvailable(
       IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) override;
 
-  // Synchronous implementation of IsUserVerfyingPlatformAuthenticatorAvailable.
-  bool IsUserVerifyingPlatformAuthenticatorAvailableImpl();
-
   // WebContentsObserver:
   void DidFinishNavigation(NavigationHandle* navigation_handle) override;
 
-  // Callback to handle the async response from a U2fDevice.
-  void OnRegisterResponse(
-      device::FidoReturnCode status_code,
-      base::Optional<device::AuthenticatorMakeCredentialResponse> response_data,
-      base::Optional<device::FidoTransportProtocol> transport_used);
-
-  // Callback to complete the registration process once a decision about
-  // whether or not to return attestation data has been made.
-  void OnRegisterResponseAttestationDecided(
-      device::AuthenticatorMakeCredentialResponse response_data,
-      bool attestation_permitted);
-
-  // Callback to handle the async response from a U2fDevice.
-  void OnSignResponse(
-      device::FidoReturnCode status_code,
-      base::Optional<std::vector<device::AuthenticatorGetAssertionResponse>>
-          response_data,
-      base::Optional<device::FidoTransportProtocol> transport_used);
-
-  void FailWithErrorAndCleanup();
-
-  // Runs when timer expires and cancels all issued requests to a U2fDevice.
-  void OnTimeout();
-  // Runs when the user cancels WebAuthN request via UI dialog.
-  void Cancel();
-
-  // Decides whether or not UI is present that needs to block on user
-  // acknowledgement before returning the error, and handles the error
-  // appropriately.
-  void SignalFailureToRequestDelegate(
-      AuthenticatorRequestClientDelegate::InterestingFailureReason reason);
-
-  void InvokeCallbackAndCleanup(
-      MakeCredentialCallback callback,
-      blink::mojom::AuthenticatorStatus status,
-      blink::mojom::MakeCredentialAuthenticatorResponsePtr response,
-      Focus focus_check);
-  void InvokeCallbackAndCleanup(
-      GetAssertionCallback callback,
-      blink::mojom::AuthenticatorStatus status,
-      blink::mojom::GetAssertionAuthenticatorResponsePtr response);
-  void Cleanup();
-
-  base::Optional<device::PlatformAuthenticatorInfo>
-  CreatePlatformAuthenticatorIfAvailable();
-  base::Optional<device::PlatformAuthenticatorInfo>
-  CreatePlatformAuthenticatorIfAvailableAndCheckIfCredentialExists(
-      const device::CtapGetAssertionRequest& request);
-
-  BrowserContext* browser_context() const;
-
   RenderFrameHost* const render_frame_host_;
-  service_manager::Connector* connector_ = nullptr;
-  base::flat_set<device::FidoTransportProtocol> transports_;
-
-  std::unique_ptr<device::FidoRequestHandlerBase> request_;
-  MakeCredentialCallback make_credential_response_callback_;
-  GetAssertionCallback get_assertion_response_callback_;
-  std::string client_data_json_;
-  bool attestation_requested_;
-  url::Origin caller_origin_;
-  std::string relying_party_id_;
-  std::unique_ptr<base::OneShotTimer> timer_;
-  base::Optional<std::string> app_id_;
-  // awaiting_attestation_response_ is true if the embedder has been queried
-  // about an attestsation decision and the response is still pending.
-  bool awaiting_attestation_response_ = false;
-  blink::mojom::AuthenticatorStatus error_awaiting_user_acknowledgement_ =
-      blink::mojom::AuthenticatorStatus::NOT_ALLOWED_ERROR;
+  std::unique_ptr<AuthenticatorCommon> authenticator_common_;
 
   // Owns pipes to this Authenticator from |render_frame_host_|.
   mojo::Binding<blink::mojom::Authenticator> binding_;
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc
index 04593738..607d6ba 100644
--- a/content/browser/webauth/authenticator_impl_unittest.cc
+++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -25,6 +25,7 @@
 #include "build/build_config.h"
 #include "components/cbor/reader.h"
 #include "components/cbor/values.h"
+#include "content/browser/webauth/authenticator_common.h"
 #include "content/public/browser/authenticator_request_client_delegate.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/common/content_features.h"
@@ -351,8 +352,9 @@
   AuthenticatorPtr ConnectToAuthenticator(
       service_manager::Connector* connector,
       std::unique_ptr<base::OneShotTimer> timer) {
-    authenticator_impl_.reset(
-        new AuthenticatorImpl(main_rfh(), connector, std::move(timer)));
+    authenticator_impl_.reset(new AuthenticatorImpl(
+        main_rfh(), std::make_unique<AuthenticatorCommon>(main_rfh(), connector,
+                                                          std::move(timer))));
     AuthenticatorPtr authenticator;
     authenticator_impl_->Bind(mojo::MakeRequest(&authenticator));
     return authenticator;
@@ -382,7 +384,7 @@
   }
 
   std::string GetTestClientDataJSON(std::string type) {
-    return AuthenticatorImpl::SerializeCollectedClientDataToJson(
+    return AuthenticatorCommon::SerializeCollectedClientDataToJson(
         std::move(type), GetTestOrigin().Serialize(), GetTestChallengeBytes());
   }
 
@@ -406,7 +408,14 @@
 
   bool SupportsTransportProtocol(::device::FidoTransportProtocol protocol) {
     return base::ContainsKey(
-        authenticator_impl_->enabled_transports_for_testing(), protocol);
+        authenticator_impl_->get_authenticator_common_for_testing()
+            ->enabled_transports_for_testing(),
+        protocol);
+  }
+
+  void SetTransports(base::flat_set<device::FidoTransportProtocol> transports) {
+    authenticator_impl_->get_authenticator_common_for_testing()
+        ->set_transports_for_testing(transports);
   }
 
   void EnableFeature(const base::Feature& feature) {
@@ -832,8 +841,7 @@
       base::Time::Now(), base::TimeTicks::Now());
   url::AddStandardScheme("chrome-extension", url::SCHEME_WITH_HOST);
   auto authenticator = ConstructAuthenticatorWithTimer(task_runner);
-  authenticator_impl_->set_transports_for_testing(
-      device::GetAllTransportProtocols());
+  SetTransports(device::GetAllTransportProtocols());
   SetUpMockBluetooth();
 
   for (const bool is_cryptotoken_request : {false, true}) {
@@ -2143,22 +2151,22 @@
   DISALLOW_COPY_AND_ASSIGN(MockAuthenticatorRequestDelegateObserver);
 };
 
-// Fake test construct that shares all other behavior with AuthenticatorImpl
+// Fake test construct that shares all other behavior with AuthenticatorCommon
 // except that:
-//  - FakeAuthenticatorImpl does not trigger UI activity.
+//  - FakeAuthenticatorCommon does not trigger UI activity.
 //  - MockAuthenticatorRequestDelegateObserver is injected to
 //  |request_delegate_|
 //    instead of ChromeAuthenticatorRequestDelegate.
-class FakeAuthenticatorImpl : public AuthenticatorImpl {
+class FakeAuthenticatorCommon : public AuthenticatorCommon {
  public:
-  explicit FakeAuthenticatorImpl(
+  explicit FakeAuthenticatorCommon(
       RenderFrameHost* render_frame_host,
       service_manager::Connector* connector,
       std::unique_ptr<base::OneShotTimer> timer,
       std::unique_ptr<MockAuthenticatorRequestDelegateObserver> mock_delegate)
-      : AuthenticatorImpl(render_frame_host, connector, std::move(timer)),
+      : AuthenticatorCommon(render_frame_host, connector, std::move(timer)),
         mock_delegate_(std::move(mock_delegate)) {}
-  ~FakeAuthenticatorImpl() override = default;
+  ~FakeAuthenticatorCommon() override = default;
 
   void UpdateRequestDelegate() override {
     DCHECK(mock_delegate_);
@@ -2186,8 +2194,10 @@
       std::unique_ptr<MockAuthenticatorRequestDelegateObserver> delegate,
       service_manager::Connector* connector,
       std::unique_ptr<base::OneShotTimer> timer) {
-    authenticator_impl_.reset(new FakeAuthenticatorImpl(
-        main_rfh(), connector, std::move(timer), std::move(delegate)));
+    authenticator_impl_.reset(new AuthenticatorImpl(
+        main_rfh(),
+        std::make_unique<FakeAuthenticatorCommon>(
+            main_rfh(), connector, std::move(timer), std::move(delegate))));
     AuthenticatorPtr authenticator;
     authenticator_impl_->Bind(mojo::MakeRequest(&authenticator));
     return authenticator;
@@ -2213,7 +2223,7 @@
   }
 
  protected:
-  std::unique_ptr<FakeAuthenticatorImpl> authenticator_impl_;
+  std::unique_ptr<AuthenticatorImpl> authenticator_impl_;
 };
 
 TEST_F(AuthenticatorImplRequestDelegateTest,
diff --git a/content/common/input/actions_parser.cc b/content/common/input/actions_parser.cc
index db404a9..e140870 100644
--- a/content/common/input/actions_parser.cc
+++ b/content/common/input/actions_parser.cc
@@ -4,6 +4,8 @@
 
 #include "content/common/input/actions_parser.h"
 
+#include <utility>
+
 #include "base/format_macros.h"
 #include "base/strings/stringprintf.h"
 #include "base/values.h"
@@ -75,22 +77,20 @@
 
 }  // namespace
 
-ActionsParser::ActionsParser(base::Value* pointer_actions_value)
+ActionsParser::ActionsParser(base::Value pointer_actions_value)
     : longest_action_sequence_(0),
-      pointer_actions_value_(pointer_actions_value),
+      pointer_actions_value_(std::move(pointer_actions_value)),
       action_index_(0) {}
 
 ActionsParser::~ActionsParser() {}
 
 bool ActionsParser::ParsePointerActionSequence() {
-  const base::ListValue* pointer_list;
-  if (!pointer_actions_value_ ||
-      !pointer_actions_value_->GetAsList(&pointer_list)) {
-    error_message_ = std::string("pointer_list is missing or not a list");
+  if (!pointer_actions_value_.is_list()) {
+    error_message_ = std::string("provided value is not a list");
     return false;
   }
 
-  for (const auto& pointer_value : *pointer_list) {
+  for (const auto& pointer_value : pointer_actions_value_.GetList()) {
     const base::DictionaryValue* pointer_actions;
     if (!pointer_value.GetAsDictionary(&pointer_actions)) {
       error_message_ =
diff --git a/content/common/input/actions_parser.h b/content/common/input/actions_parser.h
index 01b022b5..a11a6cb 100644
--- a/content/common/input/actions_parser.h
+++ b/content/common/input/actions_parser.h
@@ -14,16 +14,17 @@
 namespace base {
 class DictionaryValue;
 class ListValue;
+class Value;
 }  // namespace base
 
 namespace content {
 
-// This class takes the arugment of json format from
+// This class takes the argument of json format from
 // GpuBenchmarking::PointerActionSequence, parses it and warps
 // it into a SyntheticPointerActionListParams object.
 class CONTENT_EXPORT ActionsParser {
  public:
-  explicit ActionsParser(base::Value* value);
+  explicit ActionsParser(base::Value value);
   ~ActionsParser();
   bool ParsePointerActionSequence();
   std::string error_message() { return error_message_; }
@@ -46,7 +47,7 @@
   std::string pointer_type_;
   std::string error_message_;
 
-  base::Value* pointer_actions_value_;
+  base::Value pointer_actions_value_;
   int action_index_;
   std::set<int> pointer_id_set_;
   std::set<std::string> pointer_name_set_;
diff --git a/content/common/input/actions_parser_unittest.cc b/content/common/input/actions_parser_unittest.cc
index a1b135f6..5479393 100644
--- a/content/common/input/actions_parser_unittest.cc
+++ b/content/common/input/actions_parser_unittest.cc
@@ -4,13 +4,15 @@
 
 #include "content/common/input/actions_parser.h"
 
+#include <utility>
+
 #include "base/json/json_reader.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace content {
 
 TEST(ActionsParserTest, ParseMousePointerActionSequence) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 2, "y": 3,
                          "button": 0},
@@ -19,7 +21,7 @@
             "parameters": {"pointerType": "mouse"},
             "id": "1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -37,7 +39,7 @@
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequence) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 3, "y": 5},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -51,7 +53,7 @@
             "parameters": {"pointerType": "touch"},
             "id": "pointer2"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -70,7 +72,7 @@
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceWithPause) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 3, "y": 5},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -83,7 +85,7 @@
                        {"type":"pause"}],
             "id":"0"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -119,7 +121,7 @@
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceIdNotString) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 0, "y": 0},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -133,14 +135,14 @@
             "parameters": {"pointerType": "touch"},
             "id": 2}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer name is missing or not a string",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceDuplicateId) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 0, "y": 0},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -154,13 +156,13 @@
             "parameters": {"pointerType": "touch"},
             "id": "pointer1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer name already exists", actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseMousePointerActionSequenceNoParameters) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 2, "y": 3,
                          "button": 0},
@@ -168,14 +170,14 @@
                          "button": 0}],
             "id": "pointer1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("action sequence parameters is missing for pointer type",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseMousePointerActionSequenceNoPointerType) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 2, "y": 3,
                          "button": 0},
@@ -184,25 +186,25 @@
             "parameters": {},
             "id": "pointer1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("action sequence pointer type is missing or not a string",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseMousePointerActionSequenceNoAction) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer", "parameters": {"pointerType": "mouse"},
             "id": "pointer1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer[0].actions is missing or not a list",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseMousePointerActionSequenceUnsupportedButton) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 2, "y": 3,
                          "button": -1},
@@ -211,14 +213,14 @@
             "parameters": {"pointerType": "mouse"},
             "id": "1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("actions[0].actions.button is an unsupported button",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceMultiActionsType) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "key",
             "actions": [{"type":"keyDown","value":"p"},
                         {"type":"keyUp","value":"p"},
@@ -226,14 +228,14 @@
                         {"type":"keyUp","value":"a"}],
             "id": "1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("we do not support action sequence type of key",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceMultiPointerType) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 3, "y": 5},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -247,14 +249,14 @@
             "parameters": {"pointerType": "mouse"},
             "id": "1"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("currently multiple action sequence pointer type are not supported",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, ParseTouchPointerActionSequenceMultiMouse) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"type": "pointer",
             "actions": [{"type": "pointerDown", "x": 3, "y": 5},
                         {"type": "pointerMove", "x": 30, "y": 30},
@@ -268,21 +270,21 @@
             "parameters": {"pointerType": "mouse"},
             "id": "2"}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("for input type of mouse and pen, we only support one device",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseMousePointerActionSequence) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "mouse", "id": 0,
             "actions": [{"name": "pointerDown", "x": 2, "y": 3,
                          "button": 0},
                         {"name": "pointerUp", "x": 2, "y": 3,
                          "button": 0}]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -300,7 +302,7 @@
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequence1) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": 1,
             "actions": [{"name": "pointerDown", "x": 3, "y": 5},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -310,7 +312,7 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -329,7 +331,7 @@
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceWithoutId) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": 0,
             "actions": [{"name": "pointerDown", "x": 3, "y": 5},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -339,7 +341,7 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_TRUE(actions_parser.ParsePointerActionSequence());
   SyntheticPointerActionListParams action_list_params =
       actions_parser.gesture_params();
@@ -358,7 +360,7 @@
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceIdNotInt) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": "0",
             "actions": [{"name": "pointerDown", "x": 0, "y": 0},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -368,13 +370,13 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer id is not an integer", actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceIdNegative) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": -1,
             "actions": [{"name": "pointerDown", "x": 0, "y": 0},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -384,13 +386,13 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer id can not be negative", actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceDuplicateId) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": 0,
             "actions": [{"name": "pointerDown", "x": 0, "y": 0},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -400,13 +402,13 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer id already exists", actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceNoId) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": 0,
             "actions": [{"name": "pointerDown", "x": 0, "y": 0},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -416,14 +418,14 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("this pointer does not have a pointer id",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceMissingId) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch",
             "actions": [{"name": "pointerDown", "x": 0, "y": 0},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -433,51 +435,51 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("some pointers do not have a pointer id",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseMousePointerActionSequenceNoSource) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"id": 0, "actions": [{"name": "pointerDown", "x": 2, "y": 3,
                                   "button": 0},
                                  {"name": "pointerUp", "x": 2, "y": 3,
                                   "button": 0}]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("source type is missing or not a string",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseMousePointerActionSequenceNoAction) {
-  std::unique_ptr<base::Value> value =
-      base::JSONReader::ReadDeprecated(R"( [{"source": "mouse", "id": 0}] )");
+  base::Optional<base::Value> value =
+      base::JSONReader::Read(R"( [{"source": "mouse", "id": 0}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("pointer[0].actions is missing or not a list",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseMousePointerActionSequenceUnsupportedButton) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "mouse", "id": 0,
             "actions": [{"name": "pointerDown", "x": 2, "y": 3,
                          "button": -1},
                         {"name": "pointerUp", "x": 2, "y": 3,
                          "button": 0}]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("actions[0].actions.button is an unsupported button",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceMultiSource) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "touch", "id": 1,
             "actions": [{"name": "pointerDown", "x": 3, "y": 5},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -487,14 +489,14 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("currently multiple input sources are not not supported",
             actions_parser.error_message());
 }
 
 TEST(ActionsParserTest, OldParseTouchPointerActionSequenceMultiMouse) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "mouse", "id": 1,
             "actions": [{"name": "pointerDown", "x": 3, "y": 5},
                         {"name": "pointerMove", "x": 30, "y": 30},
@@ -504,7 +506,7 @@
                         {"name": "pointerMove", "x": 50, "y": 50},
                         {"name": "pointerUp" } ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ(
       "for input source type of mouse and pen, we only support one device in "
@@ -513,12 +515,12 @@
 }
 
 TEST(ActionsParserTest, OldParsePointerActionSequenceInvalidKey) {
-  std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(
+  base::Optional<base::Value> value = base::JSONReader::Read(
       R"( [{"source": "mouse", "id": 0,
             "actions": [{"name": "pointerDown", "x": 3, "y": 5,
                          "keys": "Ctrl"} ]}] )");
 
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(std::move(value.value()));
   EXPECT_FALSE(actions_parser.ParsePointerActionSequence());
   EXPECT_EQ("actions[0].actions.key is not a valid key",
             actions_parser.error_message());
diff --git a/content/common/input/input_handler.mojom b/content/common/input/input_handler.mojom
index 749a04b1..5ffd883 100644
--- a/content/common/input/input_handler.mojom
+++ b/content/common/input/input_handler.mojom
@@ -156,6 +156,12 @@
 // contained in here are state changes that the renderer has taken
 // that the browser must be aware of.
 interface WidgetInputHandlerHost {
+  // Call platform Fallback Cursor Mode APIs.
+  [EnableIf=is_android]
+  FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
+  [EnableIf=is_android]
+  FallbackCursorModeSetCursorVisibility(bool visible);
+
   // When the renderer's main thread computes the touch action, send this to the
   // browser.
   SetTouchActionFromMain(TouchAction touch_action);
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/BrowserTaskExecutor.java b/content/public/android/java/src/org/chromium/content_public/browser/BrowserTaskExecutor.java
index de9e111..42b2a3ae 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/BrowserTaskExecutor.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/BrowserTaskExecutor.java
@@ -14,6 +14,7 @@
 import org.chromium.base.task.TaskTraits;
 import org.chromium.content.browser.UiThreadTaskTraitsImpl;
 
+import java.lang.ref.WeakReference;
 import java.util.WeakHashMap;
 
 import javax.annotation.concurrent.GuardedBy;
@@ -43,14 +44,18 @@
     @Override
     public SingleThreadTaskRunner createSingleThreadTaskRunner(TaskTraits taskTraits) {
         synchronized (mTaskRunners) {
-            SingleThreadTaskRunner taskRunner = mTaskRunners.get(taskTraits);
-            if (taskRunner != null) return taskRunner;
+            WeakReference<SingleThreadTaskRunner> weakRef = mTaskRunners.get(taskTraits);
+            if (weakRef != null) {
+                SingleThreadTaskRunner taskRunner = weakRef.get();
+                if (taskRunner != null) return taskRunner;
+            }
 
             // TODO(alexclarke): ThreadUtils.getUiThreadHandler shouldn't be in base.
-            taskRunner = new SingleThreadTaskRunnerImpl(ThreadUtils.getUiThreadHandler(),
-                    taskTraits, shouldPrioritizeTraits(taskTraits));
+            SingleThreadTaskRunner taskRunner =
+                    new SingleThreadTaskRunnerImpl(ThreadUtils.getUiThreadHandler(), taskTraits,
+                            shouldPrioritizeTraits(taskTraits));
             taskRunner.disableLifetimeCheck();
-            mTaskRunners.put(taskTraits, taskRunner);
+            mTaskRunners.put(taskTraits, new WeakReference<>(taskRunner));
             return taskRunner;
         }
     }
@@ -99,7 +104,7 @@
     }
 
     @GuardedBy("mTaskRunners")
-    private final WeakHashMap<TaskTraits, SingleThreadTaskRunner> mTaskRunners =
+    private final WeakHashMap<TaskTraits, WeakReference<SingleThreadTaskRunner>> mTaskRunners =
             new WeakHashMap<>();
 
     private static boolean sRegistered;
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index dfd9705..7524984 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -271,7 +271,8 @@
 // Enables/disables the video capture service.
 const base::Feature kMojoVideoCapture {
   "MojoVideoCapture",
-#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_CHROMEOS)
+#if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_CHROMEOS) || \
+    defined(OS_ANDROID)
       base::FEATURE_ENABLED_BY_DEFAULT
 #else
       base::FEATURE_DISABLED_BY_DEFAULT
@@ -339,7 +340,7 @@
 
 // Whether PDF files should be rendered in diffent processes based on origin.
 const base::Feature kPdfIsolation = {"PdfIsolation",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
+                                     base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Whether we should use the navigation_client mojo interface for navigations.
 const base::Feature kPerNavigationMojoInterface = {
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
index b946a64c..a820de5 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -1917,14 +1917,6 @@
   return false;
 }
 
-bool ListenToGuestWebContents(
-    AccessibilityNotificationWaiter* accessibility_waiter,
-    WebContents* web_contents) {
-  accessibility_waiter->ListenToAdditionalFrame(
-      static_cast<RenderFrameHostImpl*>(web_contents->GetMainFrame()));
-  return true;
-}
-
 void WaitForAccessibilityTreeToContainNodeWithName(WebContents* web_contents,
                                                    const std::string& name) {
   WebContentsImpl* web_contents_impl = static_cast<WebContentsImpl*>(
@@ -1933,24 +1925,10 @@
       web_contents_impl->GetMainFrame());
   BrowserAccessibilityManager* main_frame_manager =
       main_frame->browser_accessibility_manager();
-  FrameTree* frame_tree = web_contents_impl->GetFrameTree();
   while (!main_frame_manager || !AccessibilityTreeContainsNodeWithName(
              main_frame_manager->GetRoot(), name)) {
     AccessibilityNotificationWaiter accessibility_waiter(
-        main_frame, ax::mojom::Event::kNone);
-    for (FrameTreeNode* node : frame_tree->Nodes()) {
-      accessibility_waiter.ListenToAdditionalFrame(
-          node->current_frame_host());
-    }
-
-    content::BrowserPluginGuestManager* guest_manager =
-        web_contents_impl->GetBrowserContext()->GetGuestManager();
-    if (guest_manager) {
-      guest_manager->ForEachGuest(web_contents_impl,
-                                  base::BindRepeating(&ListenToGuestWebContents,
-                                                      &accessibility_waiter));
-    }
-
+        web_contents, ui::AXMode(), ax::mojom::Event::kNone);
     accessibility_waiter.WaitForNotification();
     main_frame_manager = main_frame->browser_accessibility_manager();
   }
diff --git a/content/public/test/test_navigation_observer.cc b/content/public/test/test_navigation_observer.cc
index ab1fa25..e589d26 100644
--- a/content/public/test/test_navigation_observer.cc
+++ b/content/public/test/test_navigation_observer.cc
@@ -146,11 +146,7 @@
 void TestNavigationObserver::OnWebContentsDestroyed(
     TestWebContentsObserver* observer,
     WebContents* web_contents) {
-  web_contents_observers_.erase(std::find_if(
-      web_contents_observers_.begin(), web_contents_observers_.end(),
-      [observer](const std::unique_ptr<TestWebContentsObserver>& ptr) {
-        return ptr.get() == observer;
-      }));
+  web_contents_observers_.erase(web_contents_observers_.find(observer));
 }
 
 void TestNavigationObserver::OnNavigationEntryCommitted(
diff --git a/content/public/test/test_navigation_observer.h b/content/public/test/test_navigation_observer.h
index ced3c2e..3e19c26 100644
--- a/content/public/test/test_navigation_observer.h
+++ b/content/public/test/test_navigation_observer.h
@@ -9,6 +9,7 @@
 #include <set>
 
 #include "base/callback.h"
+#include "base/containers/unique_ptr_adapters.h"
 #include "base/macros.h"
 #include "content/public/browser/navigation_type.h"
 #include "content/public/test/test_utils.h"
@@ -143,7 +144,8 @@
   base::Callback<void(WebContents*)> web_contents_created_callback_;
 
   // Living TestWebContentsObservers created by this observer.
-  std::set<std::unique_ptr<TestWebContentsObserver>> web_contents_observers_;
+  std::set<std::unique_ptr<TestWebContentsObserver>, base::UniquePtrComparator>
+      web_contents_observers_;
 
   DISALLOW_COPY_AND_ASSIGN(TestNavigationObserver);
 };
diff --git a/content/public/test/url_loader_interceptor.cc b/content/public/test/url_loader_interceptor.cc
index 633becc..ae4befa 100644
--- a/content/public/test/url_loader_interceptor.cc
+++ b/content/public/test/url_loader_interceptor.cc
@@ -8,6 +8,7 @@
 #include <utility>
 
 #include "base/bind.h"
+#include "base/containers/unique_ptr_adapters.h"
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/path_service.h"
@@ -171,7 +172,8 @@
   std::unique_ptr<Interceptor> rmf_interceptor_;
   // For intercepting subresources with network service. There is one per
   // active render frame commit. Only accessed on IO thread.
-  std::set<std::unique_ptr<SubresourceWrapper>> subresource_wrappers_;
+  std::set<std::unique_ptr<SubresourceWrapper>, base::UniquePtrComparator>
+      subresource_wrappers_;
   std::set<std::unique_ptr<URLLoaderFactoryNavigationWrapper>>
       navigation_wrappers_;
 
@@ -574,14 +576,9 @@
 void URLLoaderInterceptor::IOState::SubresourceWrapperBindingError(
     SubresourceWrapper* wrapper) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
-  for (auto& it : subresource_wrappers_) {
-    if (it.get() == wrapper) {
-      subresource_wrappers_.erase(it);
-      return;
-    }
-  }
-
-  NOTREACHED();
+  auto it = subresource_wrappers_.find(wrapper);
+  DCHECK(it != subresource_wrappers_.end());
+  subresource_wrappers_.erase(it);
 }
 
 void URLLoaderInterceptor::IOState::Initialize(base::OnceClosure closure) {
diff --git a/content/renderer/compositor/layer_tree_view.cc b/content/renderer/compositor/layer_tree_view.cc
index b35a4665..7cc50e8d 100644
--- a/content/renderer/compositor/layer_tree_view.cc
+++ b/content/renderer/compositor/layer_tree_view.cc
@@ -335,12 +335,6 @@
   layer_tree_host_->SetNeedsAnimate();
 }
 
-void LayerTreeView::SetPaintWorkletLayerPainterClient(
-    std::unique_ptr<cc::PaintWorkletLayerPainter> client) {
-  TRACE_EVENT0("cc", "LayerTreeView::SetPaintWorkletLayerPainterClient");
-  layer_tree_host_->SetPaintWorkletLayerPainter(std::move(client));
-}
-
 void LayerTreeView::ForceRecalculateRasterScales() {
   layer_tree_host_->SetNeedsRecalculateRasterScales();
 }
diff --git a/content/renderer/compositor/layer_tree_view.h b/content/renderer/compositor/layer_tree_view.h
index fab9877..975563b1 100644
--- a/content/renderer/compositor/layer_tree_view.h
+++ b/content/renderer/compositor/layer_tree_view.h
@@ -151,8 +151,6 @@
       override;
   void StartDeferringCommits(base::TimeDelta timeout) override;
   void StopDeferringCommits() override;
-  void SetPaintWorkletLayerPainterClient(
-      std::unique_ptr<cc::PaintWorkletLayerPainter>) override;
   void ForceRecalculateRasterScales() override;
   void SetEventListenerProperties(
       cc::EventListenerClass eventClass,
diff --git a/content/renderer/gpu_benchmarking_extension.cc b/content/renderer/gpu_benchmarking_extension.cc
index 63138f0..232c323c 100644
--- a/content/renderer/gpu_benchmarking_extension.cc
+++ b/content/renderer/gpu_benchmarking_extension.cc
@@ -1066,10 +1066,17 @@
       context.web_frame()->MainWorldScriptContext();
   std::unique_ptr<base::Value> value =
       V8ValueConverter::Create()->FromV8Value(obj, v8_context);
+  if (!value.get()) {
+    // TODO(dtapuska): Throw an error here, some web tests start
+    // failing when this is done though.
+    // args->ThrowTypeError(actions_parser.error_message());
+    return false;
+  }
 
   // Get all the pointer actions from the user input and wrap them into a
   // SyntheticPointerActionListParams object.
-  ActionsParser actions_parser(value.get());
+  ActionsParser actions_parser(
+      base::Value::FromUniquePtrValue(std::move(value)));
   if (!actions_parser.ParsePointerActionSequence()) {
     // TODO(dtapuska): Throw an error here, some web tests start
     // failing when this is done though.
diff --git a/content/renderer/input/widget_input_handler_manager.cc b/content/renderer/input/widget_input_handler_manager.cc
index e9fa2f0..b511966 100644
--- a/content/renderer/input/widget_input_handler_manager.cc
+++ b/content/renderer/input/widget_input_handler_manager.cc
@@ -441,6 +441,24 @@
       base::BindOnce(&WaitForInputProcessedFromMain, render_widget_));
 }
 
+void WidgetInputHandlerManager::FallbackCursorModeLockCursor(bool left,
+                                                             bool right,
+                                                             bool up,
+                                                             bool down) {
+#if defined(OS_ANDROID)
+  if (mojom::WidgetInputHandlerHost* host = GetWidgetInputHandlerHost())
+    host->FallbackCursorModeLockCursor(left, right, up, down);
+#endif
+}
+
+void WidgetInputHandlerManager::FallbackCursorModeSetCursorVisibility(
+    bool visible) {
+#if defined(OS_ANDROID)
+  if (mojom::WidgetInputHandlerHost* host = GetWidgetInputHandlerHost())
+    host->FallbackCursorModeSetCursorVisibility(visible);
+#endif
+}
+
 void WidgetInputHandlerManager::InitOnInputHandlingThread(
     const base::WeakPtr<cc::InputHandler>& input_handler,
     bool smooth_scroll_enabled,
diff --git a/content/renderer/input/widget_input_handler_manager.h b/content/renderer/input/widget_input_handler_manager.h
index 74d1393..9da9944 100644
--- a/content/renderer/input/widget_input_handler_manager.h
+++ b/content/renderer/input/widget_input_handler_manager.h
@@ -95,6 +95,9 @@
   void InputWasProcessed(const gfx::PresentationFeedback& feedback);
   void WaitForInputProcessed(base::OnceClosure callback);
 
+  void FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
+  void FallbackCursorModeSetCursorVisibility(bool visible);
+
  protected:
   friend class base::RefCountedThreadSafe<WidgetInputHandlerManager>;
   ~WidgetInputHandlerManager() override;
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 2002ea3d..7ee4d6a2 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -464,22 +464,7 @@
 
 RenderViewImpl::RenderViewImpl(CompositorDependencies* compositor_deps,
                                const mojom::CreateViewParams& params)
-    : render_widget_([compositor_deps, &params] {
-        // TODO(https://crbug.com/545684): This is a transitor hack
-        // until the creation of RenderWidget is taken out of the constructor.
-        auto render_widget = RenderWidget::CreateForFrame(
-            params.main_frame_widget_routing_id, compositor_deps,
-            params.visual_properties.screen_info,
-            params.visual_properties.display_mode,
-            /*is_frozen=*/params.main_frame_routing_id == MSG_ROUTING_NONE,
-            params.hidden, params.never_visible,
-            /*widget_request=*/nullptr);
-        // The lifetime |render_widget_| is handled manually for the
-        // mainframe widget. The matching Release() is in Initialize().
-        render_widget->AddRef();
-        return render_widget.get();
-      }()),
-      routing_id_(params.view_id),
+    : routing_id_(params.view_id),
       renderer_wide_named_frame_lookup_(
           params.renderer_wide_named_frame_lookup),
       webkit_preferences_(params.web_preferences),
@@ -487,21 +472,24 @@
       weak_ptr_factory_(this) {
   DCHECK(!session_storage_namespace_id_.empty())
       << "Session storage namespace must be populated.";
+  // Please put all logic in RenderViewImpl::Initialize().
+}
 
+void RenderViewImpl::Initialize(
+    RenderWidget* render_widget,
+    mojom::CreateViewParamsPtr params,
+    RenderWidget::ShowCallback show_callback,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
   // RenderView used to inherit from RenderWidget. Creating a delegate
   // interface and explicitly passing ownership of ourselves to the
   // RenderWidget preserves the lifetime semantics. This is a stepping
   // stone to having RenderWidget creation taken out of the RenderViewImpl
   // constructor. See the corresponding explicit reset() of the delegate
   // in the ~RenderWidget(). Also, I hate inheritance.
+  render_widget_ = render_widget;
   GetWidget()->set_delegate(base::WrapUnique(this));
   RenderThread::Get()->AddRoute(routing_id_, this);
-}
 
-void RenderViewImpl::Initialize(
-    mojom::CreateViewParamsPtr params,
-    RenderWidget::ShowCallback show_callback,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
 #if defined(OS_ANDROID)
   bool has_show_callback = !!show_callback;
 #endif
@@ -515,13 +503,13 @@
                              /*compositing_enabled=*/true,
                              opener_frame ? opener_frame->View() : nullptr);
 
-  // The GetWidget->Init() call causes an AddRef() to itself meaning that
-  // IPC system has taken conceptual ownership of the object. RenderView
-  // can and must now manually Release() the RenderWidget to balance out the
-  // extra refcount it had been using to preserve the RenderWidget from
-  // construction to initialization.
+  // Note: The GetWidget->Init() call causes an AddRef() to itself meaning that
+  // IPC system has taken conceptual ownership of the object. Though it is
+  // tempting to have RenderView retain the RenderWidget(), this lifecycle
+  // only requires single ownership and adding scoped_refptr<RenderWidget>
+  // muddies this unnecessarily -- especially since this RenderWidget should
+  // ultimately be own by the main frame.
   GetWidget()->Init(std::move(show_callback), webview_->MainFrameWidget());
-  GetWidget()->Release();
 
   g_view_map.Get().insert(std::make_pair(webview(), this));
   g_routing_id_view_map.Get().insert(std::make_pair(GetRoutingID(), this));
@@ -1040,13 +1028,27 @@
   DCHECK(params->view_id != MSG_ROUTING_NONE);
   DCHECK(params->main_frame_widget_routing_id != MSG_ROUTING_NONE);
   RenderViewImpl* render_view;
-  if (g_create_render_view_impl)
-    render_view = g_create_render_view_impl(compositor_deps, *params);
-  else
-    render_view = new RenderViewImpl(compositor_deps, *params);
 
-  render_view->Initialize(std::move(params), std::move(show_callback),
-                          std::move(task_runner));
+  auto render_widget = RenderWidget::CreateForFrame(
+      params->main_frame_widget_routing_id, compositor_deps,
+      params->visual_properties.screen_info,
+      params->visual_properties.display_mode,
+      /*is_frozen=*/params->main_frame_routing_id == MSG_ROUTING_NONE,
+      params->hidden, params->never_visible,
+      /*widget_request=*/nullptr);
+
+  if (g_create_render_view_impl) {
+    render_view = g_create_render_view_impl(compositor_deps, *params);
+  } else {
+    render_view = new RenderViewImpl(compositor_deps, *params);
+  }
+
+  // After this call, the |render_widget| will be self-owning.
+  //
+  // TODO(http://crbug.com/419087): This refcoutning is messy. get the
+  // RenderWidget initialization out of the render_view::Initialize() function.
+  render_view->Initialize(render_widget.get(), std::move(params),
+                          std::move(show_callback), std::move(task_runner));
   return render_view;
 }
 
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h
index d8d10187..7e00a5cf 100644
--- a/content/renderer/render_view_impl.h
+++ b/content/renderer/render_view_impl.h
@@ -313,10 +313,6 @@
   RenderViewImpl(CompositorDependencies* compositor_deps,
                  const mojom::CreateViewParams& params);
 
-  void Initialize(mojom::CreateViewParamsPtr params,
-                  RenderWidget::ShowCallback show_callback,
-                  scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
   // Called when Page visibility is changed, to update the View/Page in blink.
   // This is separate from the IPC handlers as tests may call this and need to
   // be able to specify |initial_setting| where IPC handlers do not.
@@ -388,6 +384,15 @@
 
   static scoped_refptr<base::SingleThreadTaskRunner> GetCleanupTaskRunner();
 
+  // Initialize() is separated out from the constructor because it is possible
+  // to accidentally call virtual functions. All RenderViewImpl creation is
+  // fronted by the Create() method which ensures Initialize() is always called
+  // before any other code can interact with instances of this call.
+  void Initialize(RenderWidget* render_widget,
+                  mojom::CreateViewParamsPtr params,
+                  RenderWidget::ShowCallback show_callback,
+                  scoped_refptr<base::SingleThreadTaskRunner> task_runner);
+
   // RenderWidgetDelegate implementation ----------------------------------
 
   blink::WebWidget* GetWebWidgetForWidget() const override;
@@ -536,7 +541,7 @@
   // fullscreen widgets are never contained by this pointer. Child frame
   // local roots are owned by a RenderFrame. The others are owned by the IPC
   // system.
-  RenderWidget* render_widget_;
+  RenderWidget* render_widget_ = nullptr;
 
   // Routing ID that allows us to communicate with the corresponding
   // RenderViewHost in the parent browser process.
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index dd7a1cb4..a82b787 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -1208,6 +1208,12 @@
   layer_tree_view_->layer_tree_host()->SetLayerTreeMutator(std::move(mutator));
 }
 
+void RenderWidget::SetPaintWorkletLayerPainterClient(
+    std::unique_ptr<cc::PaintWorkletLayerPainter> client) {
+  layer_tree_view_->layer_tree_host()->SetPaintWorkletLayerPainter(
+      std::move(client));
+}
+
 void RenderWidget::SetRootLayer(scoped_refptr<cc::Layer> layer) {
   layer_tree_view_->layer_tree_host()->SetRootLayer(std::move(layer));
 }
@@ -3286,6 +3292,18 @@
   layer_tree_view_->layer_tree_host()->RegisterSelection(selection);
 }
 
+void RenderWidget::FallbackCursorModeLockCursor(bool left,
+                                                bool right,
+                                                bool up,
+                                                bool down) {
+  widget_input_handler_manager_->FallbackCursorModeLockCursor(left, right, up,
+                                                              down);
+}
+
+void RenderWidget::FallbackCursorModeSetCursorVisibility(bool visible) {
+  widget_input_handler_manager_->FallbackCursorModeSetCursorVisibility(visible);
+}
+
 void RenderWidget::RequestUnbufferedInputEvents() {
   if (input_event_queue_)
     input_event_queue_->RequestUnbufferedInputEvents();
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index 4bbc7c8..41066fb 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -378,6 +378,8 @@
 
   // blink::WebWidgetClient
   void SetLayerTreeMutator(std::unique_ptr<cc::LayerTreeMutator>) override;
+  void SetPaintWorkletLayerPainterClient(
+      std::unique_ptr<cc::PaintWorkletLayerPainter>) override;
   void SetRootLayer(scoped_refptr<cc::Layer> layer) override;
   void ScheduleAnimation() override;
   void SetShowFPSCounter(bool show) override;
@@ -431,6 +433,11 @@
   void RegisterViewportLayers(
       const cc::ViewportLayers& viewport_layers) override;
   void RegisterSelection(const cc::LayerSelection& selection) override;
+  void FallbackCursorModeLockCursor(bool left,
+                                    bool right,
+                                    bool up,
+                                    bool down) override;
+  void FallbackCursorModeSetCursorVisibility(bool visible) override;
 
   // Override point to obtain that the current input method state and caret
   // position.
diff --git a/content/renderer/render_widget_unittest.cc b/content/renderer/render_widget_unittest.cc
index 4cae36b0a..e656cc6 100644
--- a/content/renderer/render_widget_unittest.cc
+++ b/content/renderer/render_widget_unittest.cc
@@ -88,6 +88,12 @@
   MockWidgetInputHandlerHost(
       mojo::InterfaceRequest<mojom::WidgetInputHandlerHost> request)
       : binding_(this, std::move(request)) {}
+#if defined(OS_ANDROID)
+  MOCK_METHOD4(FallbackCursorModeLockCursor, void(bool, bool, bool, bool));
+
+  MOCK_METHOD1(FallbackCursorModeSetCursorVisibility, void(bool));
+#endif
+
   MOCK_METHOD1(SetTouchActionFromMain, void(cc::TouchAction));
 
   MOCK_METHOD3(SetWhiteListedTouchAction,
diff --git a/content/shell/android/BUILD.gn b/content/shell/android/BUILD.gn
index 14ac609..d1e5690 100644
--- a/content/shell/android/BUILD.gn
+++ b/content/shell/android/BUILD.gn
@@ -164,6 +164,7 @@
 
 android_apk("content_shell_apk") {
   testonly = true
+  enable_multidex = true
   deps = [
     ":content_shell_apk_java",
     ":content_shell_assets",
@@ -222,10 +223,6 @@
   ]
   apk_under_test = ":content_shell_apk"
   apk_name = "ContentShellTest"
-
-  # Explicitly disabling multidex since there are build errors with this
-  # apk_under_test providing the same classes as the instrumentation_test_apk.
-  enable_multidex = false
   shared_libraries = [ ":libcontent_native_test" ]
   android_manifest = "javatests/AndroidManifest.xml"
 }
@@ -255,6 +252,7 @@
 
   android_apk(_linker_test_apk_target_name) {
     testonly = true
+    enable_multidex = true
     deps = [
       ":content_shell_assets",
       ":content_shell_java",
diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc
index 14dab8cb..6889a55 100644
--- a/content/shell/browser/shell.cc
+++ b/content/shell/browser/shell.cc
@@ -201,11 +201,10 @@
   shell_created_callback_ = std::move(shell_created_callback);
 }
 
-Shell* Shell::FromRenderViewHost(RenderViewHost* rvh) {
-  for (size_t i = 0; i < windows_.size(); ++i) {
-    if (windows_[i]->web_contents() &&
-        windows_[i]->web_contents()->GetRenderViewHost() == rvh) {
-      return windows_[i];
+Shell* Shell::FromWebContents(WebContents* web_contents) {
+  for (Shell* window : windows_) {
+    if (window->web_contents() && window->web_contents() == web_contents) {
+      return window;
     }
   }
   return nullptr;
diff --git a/content/shell/browser/shell.h b/content/shell/browser/shell.h
index 031aa82..3363971 100644
--- a/content/shell/browser/shell.h
+++ b/content/shell/browser/shell.h
@@ -103,8 +103,8 @@
       const gfx::Size& initial_size,
       scoped_refptr<SessionStorageNamespace> session_storage_namespace);
 
-  // Returns the Shell object corresponding to the given RenderViewHost.
-  static Shell* FromRenderViewHost(RenderViewHost* rvh);
+  // Returns the Shell object corresponding to the given WebContents.
+  static Shell* FromWebContents(WebContents* web_contents);
 
   // Returns the currently open windows.
   static std::vector<Shell*>& windows() { return windows_; }
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index d0706a7..2e60501c 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1179,6 +1179,7 @@
   }
 
   if (is_android) {
+    enable_multidex = true
     if (is_component_build) {
       sources += [ "../browser/android/render_widget_host_connector.cc" ]
     }
@@ -1348,6 +1349,10 @@
     check_includes = false
   }
 
+  if (is_android) {
+    enable_multidex = true
+  }
+
   defines = []
   sources = [
     "../browser/accessibility/browser_accessibility_mac_unittest.mm",
diff --git a/content/test/accessibility_browser_test_utils.cc b/content/test/accessibility_browser_test_utils.cc
index d6b8330e..73bae2a 100644
--- a/content/test/accessibility_browser_test_utils.cc
+++ b/content/test/accessibility_browser_test_utils.cc
@@ -14,6 +14,8 @@
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/browser_context.h"
+#include "content/public/browser/browser_plugin_guest_manager.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/common/url_constants.h"
 #include "content/public/test/test_utils.h"
@@ -28,7 +30,7 @@
       generated_event_to_wait_for_(base::nullopt),
       loop_runner_(std::make_unique<base::RunLoop>()),
       weak_factory_(this) {
-  RenderFrameHostChanged(nullptr, web_contents->GetMainFrame());
+  ListenToAllFrames(web_contents);
 }
 
 AccessibilityNotificationWaiter::AccessibilityNotificationWaiter(
@@ -40,22 +42,12 @@
       generated_event_to_wait_for_(base::nullopt),
       loop_runner_(std::make_unique<base::RunLoop>()),
       weak_factory_(this) {
-  RenderFrameHostChanged(nullptr, web_contents->GetMainFrame());
+  ListenToAllFrames(web_contents);
   static_cast<WebContentsImpl*>(web_contents)
       ->AddAccessibilityMode(accessibility_mode);
 }
 
 AccessibilityNotificationWaiter::AccessibilityNotificationWaiter(
-    RenderFrameHostImpl* frame_host,
-    ax::mojom::Event event_type)
-    : event_to_wait_for_(event_type),
-      generated_event_to_wait_for_(base::nullopt),
-      loop_runner_(std::make_unique<base::RunLoop>()),
-      weak_factory_(this) {
-  RenderFrameHostChanged(nullptr, frame_host);
-}
-
-AccessibilityNotificationWaiter::AccessibilityNotificationWaiter(
     WebContents* web_contents,
     ui::AXMode accessibility_mode,
     ui::AXEventGenerator::Event event_type)
@@ -64,24 +56,39 @@
       generated_event_to_wait_for_(event_type),
       loop_runner_(std::make_unique<base::RunLoop>()),
       weak_factory_(this) {
-  RenderFrameHostChanged(nullptr, web_contents->GetMainFrame());
+  ListenToAllFrames(web_contents);
   static_cast<WebContentsImpl*>(web_contents)
       ->AddAccessibilityMode(accessibility_mode);
 }
 
-AccessibilityNotificationWaiter::AccessibilityNotificationWaiter(
-    RenderFrameHostImpl* frame_host,
-    ui::AXEventGenerator::Event event_type)
-    : event_to_wait_for_(base::nullopt),
-      generated_event_to_wait_for_(event_type),
-      loop_runner_(std::make_unique<base::RunLoop>()),
-      weak_factory_(this) {
-  RenderFrameHostChanged(nullptr, frame_host);
-}
-
 AccessibilityNotificationWaiter::~AccessibilityNotificationWaiter() {}
 
-void AccessibilityNotificationWaiter::ListenToAdditionalFrame(
+void AccessibilityNotificationWaiter::ListenToAllFrames(
+    WebContents* web_contents) {
+  WebContentsImpl* web_contents_impl =
+      static_cast<WebContentsImpl*>(web_contents);
+  FrameTree* frame_tree = web_contents_impl->GetFrameTree();
+  for (FrameTreeNode* node : frame_tree->Nodes())
+    ListenToFrame(node->current_frame_host());
+
+  BrowserPluginGuestManager* guest_manager =
+      web_contents_impl->GetBrowserContext()->GetGuestManager();
+  if (guest_manager) {
+    guest_manager->ForEachGuest(
+        web_contents_impl,
+        base::BindRepeating(
+            &AccessibilityNotificationWaiter::ListenToGuestWebContents,
+            base::Unretained(this)));
+  }
+}
+
+bool AccessibilityNotificationWaiter::ListenToGuestWebContents(
+    WebContents* web_contents) {
+  ListenToAllFrames(web_contents);
+  return true;
+}
+
+void AccessibilityNotificationWaiter::ListenToFrame(
     RenderFrameHostImpl* frame_host) {
   if (event_to_wait_for_)
     BindOnAccessibilityEvent(frame_host);
@@ -99,7 +106,9 @@
 
 const ui::AXTree& AccessibilityNotificationWaiter::GetAXTree() const {
   static base::NoDestructor<ui::AXTree> empty_tree;
-  const ui::AXTree* tree = frame_host_->GetAXTreeForTesting();
+  RenderFrameHostImpl* main_frame =
+      static_cast<RenderFrameHostImpl*>(web_contents()->GetMainFrame());
+  const ui::AXTree* tree = main_frame->GetAXTreeForTesting();
   return tree ? *tree : *empty_tree;
 }
 
@@ -159,10 +168,7 @@
 void AccessibilityNotificationWaiter::RenderFrameHostChanged(
     RenderFrameHost* old_host,
     RenderFrameHost* new_host) {
-  if (frame_host_ != old_host)
-    return;
-  frame_host_ = static_cast<RenderFrameHostImpl*>(new_host);
-  ListenToAdditionalFrame(frame_host_);
+  ListenToFrame(static_cast<RenderFrameHostImpl*>(new_host));
 }
 
 }  // namespace content
diff --git a/content/test/accessibility_browser_test_utils.h b/content/test/accessibility_browser_test_utils.h
index aba9fcd..0d07291 100644
--- a/content/test/accessibility_browser_test_utils.h
+++ b/content/test/accessibility_browser_test_utils.h
@@ -36,17 +36,11 @@
   AccessibilityNotificationWaiter(WebContents* web_contents,
                                   ui::AXMode accessibility_mode,
                                   ax::mojom::Event event);
-  AccessibilityNotificationWaiter(RenderFrameHostImpl* frame_host,
-                                  ax::mojom::Event event);
   AccessibilityNotificationWaiter(WebContents* web_contents,
                                   ui::AXMode accessibility_mode,
                                   ui::AXEventGenerator::Event event);
-  AccessibilityNotificationWaiter(RenderFrameHostImpl* frame_host,
-                                  ui::AXEventGenerator::Event event);
   ~AccessibilityNotificationWaiter() override;
 
-  void ListenToAdditionalFrame(RenderFrameHostImpl* frame_host);
-
   // Blocks until the specific accessibility notification registered in
   // AccessibilityNotificationWaiter is received. Ignores notifications for
   // "about:blank".
@@ -71,6 +65,17 @@
                               RenderFrameHost* new_host) override;
 
  private:
+  // Listen to all frames within the frame tree of this WebContents.
+  void ListenToAllFrames(WebContents* web_contents);
+
+  // Called when iterating over guest web contents so we can listen to
+  // all frames within guests.
+  bool ListenToGuestWebContents(WebContents* web_contents);
+
+  // Bind either the OnAccessibilityEvent or OnGeneratedEvent callback
+  // for a given frame within the WebContent's frame tree.
+  void ListenToFrame(RenderFrameHostImpl* frame_host);
+
   // Helper to bind the OnAccessibilityEvent callback
   void BindOnAccessibilityEvent(RenderFrameHostImpl* frame_host);
 
@@ -91,7 +96,6 @@
   // GetAXTree() is about the page with the url "about:blank".
   bool IsAboutBlank();
 
-  RenderFrameHostImpl* frame_host_ = nullptr;
   base::Optional<ax::mojom::Event> event_to_wait_for_;
   base::Optional<ui::AXEventGenerator::Event> generated_event_to_wait_for_;
   std::unique_ptr<base::RunLoop> loop_runner_;
diff --git a/content/test/data/accessibility/html/hr-expected-auralinux.txt b/content/test/data/accessibility/html/hr-expected-auralinux.txt
index 91f6f2b1..c57ff0e 100644
--- a/content/test/data/accessibility/html/hr-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/hr-expected-auralinux.txt
@@ -1,9 +1,9 @@
 [document web]
 ++[paragraph]
 ++++[text] name='Before.'
-++[separator] name='Dividing line' horizontal
+++[separator] name='Dividing line' horizontal current=0.000000 minimum=0.000000 maximum=0.000000
 ++[paragraph]
 ++++[text] name='Middle.'
-++[separator] horizontal
+++[separator] horizontal current=0.000000 minimum=0.000000 maximum=0.000000
 ++[paragraph]
 ++++[text] name='After.'
diff --git a/content/test/data/accessibility/html/input-datetime-local-expected-auralinux.txt b/content/test/data/accessibility/html/input-datetime-local-expected-auralinux.txt
index 697e413..d054fb8 100644
--- a/content/test/data/accessibility/html/input-datetime-local-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-datetime-local-expected-auralinux.txt
@@ -3,21 +3,21 @@
 ++++[dateeditor]
 ++++++[section]
 ++++++++[section]
-++++++++++[spin button] name='Month'
+++++++++++[spin button] name='Month' current=0.000000 minimum=1.000000 maximum=12.000000
 ++++++++++++[text] name='mm'
 ++++++++++[text] name='/'
-++++++++++[spin button] name='Day'
+++++++++++[spin button] name='Day' current=0.000000 minimum=1.000000 maximum=31.000000
 ++++++++++++[text] name='dd'
 ++++++++++[text] name='/'
-++++++++++[spin button] name='Year'
+++++++++++[spin button] name='Year' current=0.000000 minimum=1.000000 maximum=275760.000000
 ++++++++++++[text] name='yyyy'
 ++++++++++[text] name=', '
-++++++++++[spin button] name='Hours'
+++++++++++[spin button] name='Hours' current=0.000000 minimum=1.000000 maximum=12.000000
 ++++++++++++[text] name='--'
 ++++++++++[text] name=':'
-++++++++++[spin button] name='Minutes'
+++++++++++[spin button] name='Minutes' current=0.000000 minimum=0.000000 maximum=59.000000
 ++++++++++++[text] name='--'
 ++++++++++[text] name=' '
-++++++++++[spin button] name='AM/PM'
+++++++++++[spin button] name='AM/PM' current=0.000000 minimum=1.000000 maximum=2.000000
 ++++++++++++[text] name='--'
 ++++++[push button] name='Show date picker' haspopup:menu
diff --git a/content/test/data/accessibility/html/input-month-expected-auralinux.txt b/content/test/data/accessibility/html/input-month-expected-auralinux.txt
index 1e397ca..23bc244 100644
--- a/content/test/data/accessibility/html/input-month-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-month-expected-auralinux.txt
@@ -3,9 +3,9 @@
 ++++[dateeditor]
 ++++++[section]
 ++++++++[section]
-++++++++++[spin button] name='Month' valuetext:0
+++++++++++[spin button] name='Month' valuetext:0 current=0.000000 minimum=1.000000 maximum=12.000000
 ++++++++++++[text] name='---------'
 ++++++++++[text] name=' '
-++++++++++[spin button] name='Year' valuetext:0
+++++++++++[spin button] name='Year' valuetext:0 current=0.000000 minimum=1.000000 maximum=275760.000000
 ++++++++++++[text] name='----'
 ++++++[push button] name='Show date picker' haspopup:menu
diff --git a/content/test/data/accessibility/html/input-number-expected-auralinux.txt b/content/test/data/accessibility/html/input-number-expected-auralinux.txt
index 8eb0c9a..7e112aa 100644
--- a/content/test/data/accessibility/html/input-number-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-number-expected-auralinux.txt
@@ -1,4 +1,5 @@
 [document web]
 ++[section]
-++++[spin button] selectable-text text-input-type:number valuetext:1
-++++[spin button] selectable-text text-input-type:number valuetext:6
+++++[spin button] selectable-text text-input-type:number valuetext:1 current=1.000000 minimum=0.000000 maximum=0.000000
+++++[spin button] selectable-text text-input-type:number valuetext:6 current=6.000000 minimum=5.000000 maximum=10.000000
+
diff --git a/content/test/data/accessibility/html/input-range-expected-auralinux.txt b/content/test/data/accessibility/html/input-range-expected-auralinux.txt
index 173a32b..0af275a 100644
--- a/content/test/data/accessibility/html/input-range-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-range-expected-auralinux.txt
@@ -1,3 +1,3 @@
 [document web]
 ++[section]
-++++[slider] horizontal valuetext:5 xml-roles:slider
+++++[slider] horizontal valuetext:5 xml-roles:slider current=5.000000 minimum=1.000000 maximum=10.000000
diff --git a/content/test/data/accessibility/html/input-time-expected-auralinux.txt b/content/test/data/accessibility/html/input-time-expected-auralinux.txt
index 5d169fbe..2be2851 100644
--- a/content/test/data/accessibility/html/input-time-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-time-expected-auralinux.txt
@@ -3,11 +3,11 @@
 ++++[dateeditor]
 ++++++[section]
 ++++++++[section]
-++++++++++[spin button] name='Hours' xml-roles:spinbutton
+++++++++++[spin button] name='Hours' xml-roles:spinbutton current=12.000000 minimum=1.000000 maximum=12.000000
 ++++++++++++[text] name='12'
 ++++++++++[text] name=':'
-++++++++++[spin button] name='Minutes' xml-roles:spinbutton
+++++++++++[spin button] name='Minutes' xml-roles:spinbutton current=0.000000 minimum=0.000000 maximum=59.000000
 ++++++++++++[text] name='00'
 ++++++++++[text] name=' '
-++++++++++[spin button] name='AM/PM' xml-roles:spinbutton
+++++++++++[spin button] name='AM/PM' xml-roles:spinbutton current=1.000000 minimum=1.000000 maximum=2.000000
 ++++++++++++[text] name='AM'
diff --git a/content/test/data/accessibility/html/input-types-expected-auralinux.txt b/content/test/data/accessibility/html/input-types-expected-auralinux.txt
index 0b835950..5eac0106 100644
--- a/content/test/data/accessibility/html/input-types-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-types-expected-auralinux.txt
@@ -21,14 +21,14 @@
 ++++++[push button] name='Image:'
 ++++[label]
 ++++++[text] name='Number: '
-++++++[spin button] name='Number:' selectable-text text-input-type:number
+++++++[spin button] name='Number:' selectable-text text-input-type:number current=0.000000 minimum=0.000000 maximum=0.000000
 ++++[label]
 ++++++[text] name='Password: '
 ++++++[password text] name='Password:' selectable-text text-input-type:password
 ++++[radio button] name='Radio:' checkable:true
 ++++[label]
 ++++++[text] name='Range: '
-++++++[slider] name='Range:' horizontal
+++++++[slider] name='Range:' horizontal current=50.000000 minimum=0.000000 maximum=100.000000
 ++++[label]
 ++++++[text] name='Reset: '
 ++++++[push button] name='Reset:'
diff --git a/content/test/data/accessibility/html/input-week-expected-auralinux.txt b/content/test/data/accessibility/html/input-week-expected-auralinux.txt
index eb44d4f..ed8ce50 100644
--- a/content/test/data/accessibility/html/input-week-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/input-week-expected-auralinux.txt
@@ -4,9 +4,9 @@
 ++++++[section]
 ++++++++[section]
 ++++++++++[text] name='Week '
-++++++++++[spin button] name='Week'
+++++++++++[spin button] name='Week' current=0.000000 minimum=1.000000 maximum=53.000000
 ++++++++++++[text] name='--'
 ++++++++++[text] name=', '
-++++++++++[spin button] name='Year'
+++++++++++[spin button] name='Year' current=0.000000 minimum=1.000000 maximum=275760.000000
 ++++++++++++[text] name='----'
 ++++++[push button] name='Show date picker' haspopup:menu
diff --git a/content/test/data/accessibility/html/meter-expected-auralinux.txt b/content/test/data/accessibility/html/meter-expected-auralinux.txt
index 808dec7..338205f 100644
--- a/content/test/data/accessibility/html/meter-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/meter-expected-auralinux.txt
@@ -1,3 +1,3 @@
 [document web]
 ++[section]
-++++[level bar]
+++++[level bar] current=2.000000 minimum=1.000000 maximum=10.000000
diff --git a/content/test/data/accessibility/html/progress-expected-auralinux.txt b/content/test/data/accessibility/html/progress-expected-auralinux.txt
index 6ed6be0..ed5ceef 100644
--- a/content/test/data/accessibility/html/progress-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/progress-expected-auralinux.txt
@@ -1,4 +1,4 @@
 [document web]
 ++[section]
-++++[progress bar] valuetext:22
-++++[progress bar]
+++++[progress bar] valuetext:22 current=22.000000 minimum=0.000000 maximum=100.000000
+++++[progress bar] current=0.000000 minimum=0.000000 maximum=1.000000
diff --git a/device/vr/openvr/test/fake_openvr_impl_api.cc b/device/vr/openvr/test/fake_openvr_impl_api.cc
index 6f223f8..13bfdf7 100644
--- a/device/vr/openvr/test/fake_openvr_impl_api.cc
+++ b/device/vr/openvr/test/fake_openvr_impl_api.cc
@@ -428,8 +428,8 @@
   *adapter_index = -1;
   Microsoft::WRL::ComPtr<IDXGIFactory1> dxgi_factory;
   Microsoft::WRL::ComPtr<IDXGIAdapter> adapter;
-  DCHECK(
-      SUCCEEDED(CreateDXGIFactory1(IID_PPV_ARGS(dxgi_factory.GetAddressOf()))));
+  bool success = SUCCEEDED(CreateDXGIFactory1(IID_PPV_ARGS(&dxgi_factory)));
+  DCHECK(success);
   for (int i = 0; SUCCEEDED(
            dxgi_factory->EnumAdapters(i, adapter.ReleaseAndGetAddressOf()));
        ++i) {
diff --git a/extensions/browser/api/declarative_net_request/composite_matcher_unittest.cc b/extensions/browser/api/declarative_net_request/composite_matcher_unittest.cc
index beb7e42..d4759ca4 100644
--- a/extensions/browser/api/declarative_net_request/composite_matcher_unittest.cc
+++ b/extensions/browser/api/declarative_net_request/composite_matcher_unittest.cc
@@ -49,10 +49,9 @@
   const size_t kSource1ID = 1;
   const size_t kSource1Priority = 1;
   std::unique_ptr<RulesetMatcher> matcher_1;
-  ASSERT_TRUE(CreateVerifiedMatcher({block_rule, redirect_rule_1},
-                                    CreateTemporarySource(), &matcher_1));
-  matcher_1->set_id_for_testing(kSource1ID);
-  matcher_1->set_priority_for_testing(kSource1Priority);
+  ASSERT_TRUE(CreateVerifiedMatcher(
+      {block_rule, redirect_rule_1},
+      CreateTemporarySource(kSource1ID, kSource1Priority), &matcher_1));
 
   // Now create a second ruleset matcher.
   const size_t kSource2ID = 2;
@@ -62,10 +61,9 @@
   TestRule redirect_rule_2 = redirect_rule_1;
   redirect_rule_2.action->redirect_url = std::string("http://ruleset2.com");
   std::unique_ptr<RulesetMatcher> matcher_2;
-  ASSERT_TRUE(CreateVerifiedMatcher({allow_rule, redirect_rule_2},
-                                    CreateTemporarySource(), &matcher_2));
-  matcher_2->set_id_for_testing(kSource2ID);
-  matcher_2->set_priority_for_testing(kSource2Priority);
+  ASSERT_TRUE(CreateVerifiedMatcher(
+      {allow_rule, redirect_rule_2},
+      CreateTemporarySource(kSource2ID, kSource2Priority), &matcher_2));
 
   // Create a composite matcher with the two rulesets.
   std::vector<std::unique_ptr<RulesetMatcher>> matchers;
@@ -96,14 +94,12 @@
   matcher_1.reset();
   matcher_2.reset();
   matchers.clear();
-  ASSERT_TRUE(CreateVerifiedMatcher({block_rule, redirect_rule_1},
-                                    CreateTemporarySource(), &matcher_1));
-  matcher_1->set_id_for_testing(kSource1ID);
-  matcher_1->set_priority_for_testing(kSource2Priority);
-  ASSERT_TRUE(CreateVerifiedMatcher({allow_rule, redirect_rule_2},
-                                    CreateTemporarySource(), &matcher_2));
-  matcher_2->set_id_for_testing(kSource2ID);
-  matcher_2->set_priority_for_testing(kSource1Priority);
+  ASSERT_TRUE(CreateVerifiedMatcher(
+      {block_rule, redirect_rule_1},
+      CreateTemporarySource(kSource1ID, kSource2Priority), &matcher_1));
+  ASSERT_TRUE(CreateVerifiedMatcher(
+      {allow_rule, redirect_rule_2},
+      CreateTemporarySource(kSource2ID, kSource1Priority), &matcher_2));
   matchers.push_back(std::move(matcher_1));
   matchers.push_back(std::move(matcher_2));
   composite_matcher = std::make_unique<CompositeMatcher>(std::move(matchers));
diff --git a/extensions/browser/api/declarative_net_request/ruleset_matcher.h b/extensions/browser/api/declarative_net_request/ruleset_matcher.h
index cc959f0..3e08cf84 100644
--- a/extensions/browser/api/declarative_net_request/ruleset_matcher.h
+++ b/extensions/browser/api/declarative_net_request/ruleset_matcher.h
@@ -94,9 +94,6 @@
   // their own different priorities.
   size_t priority() const { return priority_; }
 
-  void set_id_for_testing(size_t id) { id_ = id; }
-  void set_priority_for_testing(size_t priority) { priority_ = priority; }
-
  private:
   using UrlPatternIndexMatcher = url_pattern_index::UrlPatternIndexMatcher;
   using ExtensionMetadataList =
diff --git a/extensions/browser/api/declarative_net_request/ruleset_source.cc b/extensions/browser/api/declarative_net_request/ruleset_source.cc
index a955b034..7b7b42f9 100644
--- a/extensions/browser/api/declarative_net_request/ruleset_source.cc
+++ b/extensions/browser/api/declarative_net_request/ruleset_source.cc
@@ -224,22 +224,25 @@
 RulesetSource RulesetSource::Create(const Extension& extension) {
   return RulesetSource(
       declarative_net_request::DNRManifestData::GetRulesetPath(extension),
-      file_util::GetIndexedRulesetPath(extension.path()));
+      file_util::GetIndexedRulesetPath(extension.path()), kDefaultRulesetID,
+      kDefaultRulesetPriority);
 }
 
 RulesetSource::RulesetSource(base::FilePath json_path,
-                             base::FilePath indexed_path)
+                             base::FilePath indexed_path,
+                             size_t id,
+                             size_t priority)
     : json_path_(std::move(json_path)),
       indexed_path_(std::move(indexed_path)),
-      id_(kDefaultRulesetID),
-      priority_(kDefaultRulesetPriority) {}
+      id_(id),
+      priority_(priority) {}
 
 RulesetSource::~RulesetSource() = default;
 RulesetSource::RulesetSource(RulesetSource&&) = default;
 RulesetSource& RulesetSource::operator=(RulesetSource&&) = default;
 
 RulesetSource RulesetSource::Clone() const {
-  return RulesetSource(json_path_, indexed_path_);
+  return RulesetSource(json_path_, indexed_path_, id_, priority_);
 }
 
 IndexAndPersistRulesResult RulesetSource::IndexAndPersistRulesUnsafe() const {
diff --git a/extensions/browser/api/declarative_net_request/ruleset_source.h b/extensions/browser/api/declarative_net_request/ruleset_source.h
index 2a3814e..a484957e 100644
--- a/extensions/browser/api/declarative_net_request/ruleset_source.h
+++ b/extensions/browser/api/declarative_net_request/ruleset_source.h
@@ -60,7 +60,10 @@
   // ruleset.
   static RulesetSource Create(const Extension& extension);
 
-  RulesetSource(base::FilePath json_path, base::FilePath indexed_path);
+  RulesetSource(base::FilePath json_path,
+                base::FilePath indexed_path,
+                size_t id,
+                size_t priority);
   ~RulesetSource();
   RulesetSource(RulesetSource&&);
   RulesetSource& operator=(RulesetSource&&);
diff --git a/extensions/browser/api/declarative_net_request/test_utils.cc b/extensions/browser/api/declarative_net_request/test_utils.cc
index 185337b0..1709f53 100644
--- a/extensions/browser/api/declarative_net_request/test_utils.cc
+++ b/extensions/browser/api/declarative_net_request/test_utils.cc
@@ -62,12 +62,13 @@
   return load_result == RulesetMatcher::kLoadSuccess;
 }
 
-RulesetSource CreateTemporarySource() {
+RulesetSource CreateTemporarySource(size_t id, size_t priority) {
   base::FilePath json_path;
   base::FilePath indexed_path;
   CHECK(base::CreateTemporaryFile(&json_path));
   CHECK(base::CreateTemporaryFile(&indexed_path));
-  return RulesetSource(std::move(json_path), std::move(indexed_path));
+  return RulesetSource(std::move(json_path), std::move(indexed_path), id,
+                       priority);
 }
 
 }  // namespace declarative_net_request
diff --git a/extensions/browser/api/declarative_net_request/test_utils.h b/extensions/browser/api/declarative_net_request/test_utils.h
index 1268ce36b..db347d2 100644
--- a/extensions/browser/api/declarative_net_request/test_utils.h
+++ b/extensions/browser/api/declarative_net_request/test_utils.h
@@ -40,7 +40,7 @@
                            int* expected_checksum = nullptr);
 
 // Helper to return a RulesetSource bound to temporary files.
-RulesetSource CreateTemporarySource();
+RulesetSource CreateTemporarySource(size_t id = 1, size_t priority = 1);
 
 }  // namespace declarative_net_request
 }  // namespace extensions
diff --git a/extensions/browser/url_loader_factory_manager.cc b/extensions/browser/url_loader_factory_manager.cc
index 596f096..5e74d808 100644
--- a/extensions/browser/url_loader_factory_manager.cc
+++ b/extensions/browser/url_loader_factory_manager.cc
@@ -90,15 +90,18 @@
     "34FB670464B5F16EF5ABD6CD53E26030E97C26B3",
     "360D8A88545D0C21CBDE2B55EA9E4E4285282B4C",
     "37AC33A3A46D271CCE57DD6CB3FACE6B01F5A347",
+    "3BC834B48C2C13765147FBAD710F792F026378D8",
     "3CD98763C80D86E00CB1C4CAA56CEA8F3B0BA4F1",
     "3EB17C39F8B6B28FAF34E2406E57A76013A2E066",
     "3FDD3DB17F3B686F5A05204700ABA13DF20AE957",
     "41536C3554CD9458EB2F05F1B58CF84BB7BF83BC",
+    "42C96DF87C997828C185DAD247F469940DAFC2CD",
     "43865F8D555C201FE452A5A40702EA96240E749C",
     "44943FADD66932EF56EE3D856A9FAAD4A8AF0FD9",
     "47ADBB376050C083FFC54CC28CD3D1F54BF0BFED",
     "4913450195D177430217CAB64B356DC6F6B0F483",
     "49FFDF2212E50090963E33159DBF853B5C475340",
+    "4A8EEEB4754A3E87C3A177CB31474A30967CB3C8",
     "5053323D1F7B6EEC97A77A350DB6D0D8E51CD0AC",
     "505F2C1E723731B2C8C9182FEAA73D00525B2048",
     "50DDD8734521B61564FCE273F8E60547F88BBCBE",
@@ -124,6 +127,7 @@
     "77D83E0A4157A0E77B51AD60BAB69A346CD4FEA3",
     "7879DB88205D880B64D55E51B9726E1D12F7261F",
     "7BFE588B209A15260DE12777B4BBB738DE98FE6C",
+    "7C9DEE7EABBF6C722DC7C1B86460F0507E5AA561",
     "808FA9BB3CD501D7801D1CD6D5A3DBA088FDD46F",
     "82FDBBF79F3517C3946BD89EAAF90C46DFDA4681",
     "83B6C75264D5D2F81FDEFD681EDD2076DD8F0B9B",
@@ -137,6 +141,7 @@
     "8CE6227B4E53DF42FF93B24F49D15EDE31E97E79",
     "8E14F3080EF0D8AB5006544894610C2E0315B317",
     "934B8F5753A3E5A276FC7D0EE5E575B335A0CC76",
+    "93934B0B87347437699EB62A8921F59F40C36D7A",
     "973E35633030AD27DABEC99609424A61386C7309",
     "97E04C5632954E778306CAC40B3F95C470B463B6",
     "98EF7B1601119AEE1FCC28EE5CE247DED5676539",
@@ -146,6 +151,7 @@
     "A30E526CF62131BFBFD7CD9B56253A8F3F171777",
     "A3660FA31A0DBF07C9F80D5342FF215DBC962719",
     "A6057397EDC4E6CF25BC3A142F866ACC653B1CF1",
+    "A733063124AC9E1E6E1E331FFBAAE32D81AC2581",
     "A8FB3967ADE404B77AC3FB5815A399C0660C3C63",
     "A9A4B26C2387BA2A5861C790B0FF39F230427AC8",
     "A9F78610B717B3992F92F490E82FC63FFF46C5FA",
@@ -166,6 +172,7 @@
     "D0537B1BADCE856227CE76E31B3772F6B68F653C",
     "D347F78F32567E90BC32D9C16B085254EA269590",
     "D9A97CD75380C697C65D37512E53DBECDFA45FB9",
+    "DC88B4C9E547F3E321B3E64CCDBD4B698116D2F4",
     "DDA21167F058A65D878DF84C3CF3FCC60B053E80",
     "E134BC4A0FF6C59CE42CC76BA6B2D6F5DC648EC4",
     "E178D4F4D6617C0B880C36F192DA3B18422C5064",
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
index 1624903..0f15277 100644
--- a/extensions/renderer/dispatcher.cc
+++ b/extensions/renderer/dispatcher.cc
@@ -876,13 +876,6 @@
     blink::WebRuntimeFeatures::EnableShadowDOMV0(true);
     blink::WebRuntimeFeatures::EnableCustomElementsV0(true);
   }
-  // Zip archiver support.
-  // ID: chrome/common/extensions/extension_constants.h::kZipArchiverExtensionId
-  if (extension_id == "dmboannefpncccogfdikhmhpmdnddgoe") {
-    blink::WebRuntimeFeatures::EnableShadowDOMV0(true);
-    blink::WebRuntimeFeatures::EnableCustomElementsV0(true);
-    blink::WebRuntimeFeatures::EnableHTMLImports(true);
-  }
   // FilesApp support. crbug.com/924873
   // For Polymer1, we still need v0 APIs.
   // Extensions IDs from src/chrome/browser/chromeos/file_manager/app_id.h.
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 8722070..b527b63f 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -18439,7 +18439,6 @@
     GLuint client_id,
     const volatile GLbyte* data,
     GLenum internal_format) {
-  // TODO(https://crbug.com/924198): Implement support for internal format.
   TRACE_EVENT2("gpu",
                "GLES2DecoderImpl::DoCreateAndTexStorage2DSharedImageCHROMIUM",
                "context", logger_.GetLogPrefix(), "mailbox[0]",
diff --git a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
index ad4e412..ea288022 100644
--- a/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
+++ b/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
@@ -469,9 +469,8 @@
       gl::GLApi* api = gl::g_current_gl_context;
       ScopedRestoreTexture scoped_restore(api, target);
 
-      bool framebuffer_attachment_angle =
-          (usage() & (SHARED_IMAGE_USAGE_RASTER |
-                      SHARED_IMAGE_USAGE_GLES2_FRAMEBUFFER_HINT)) != 0;
+      // Set to false as this code path is only used on Mac.
+      bool framebuffer_attachment_angle = false;
       GLuint service_id = MakeTextureAndSetParameters(
           api, target, framebuffer_attachment_angle);
 
@@ -498,10 +497,15 @@
       rgb_emulation_texture_->sampler_state_.wrap_s = GL_CLAMP_TO_EDGE;
       rgb_emulation_texture_->sampler_state_.wrap_t = GL_CLAMP_TO_EDGE;
 
+      GLenum format = gles2::TextureManager::ExtractFormatFromStorageFormat(
+          internal_format);
+      GLenum type =
+          gles2::TextureManager::ExtractTypeFromStorageFormat(internal_format);
+
       const gles2::Texture::LevelInfo* info = texture_->GetLevelInfo(target, 0);
-      rgb_emulation_texture_->SetLevelInfo(
-          target, 0, internal_format, info->width, info->height, 1, 0,
-          info->format, info->type, info->cleared_rect);
+      rgb_emulation_texture_->SetLevelInfo(target, 0, internal_format,
+                                           info->width, info->height, 1, 0,
+                                           format, type, info->cleared_rect);
 
       rgb_emulation_texture_->SetLevelImage(target, 0, image, image_state);
       rgb_emulation_texture_->SetImmutable(true);
diff --git a/ios/chrome/DEPS b/ios/chrome/DEPS
index e6c4737..a4207c24 100644
--- a/ios/chrome/DEPS
+++ b/ios/chrome/DEPS
@@ -22,10 +22,12 @@
   "+ios/chrome/common",
   "+ios/chrome/test",
 
+  "+ios/web/common",
+  "+ios/web/public",
+
   # All code in ios/chrome assumes that web::BrowserState* can be safely
   # casted to ios::ChromeBrowserState*. This mean that no code should use
   # web::TestBrowserState in ios/chrome.
-  "+ios/web/public",
   "-ios/web/public/test/fakes/test_browser_state.h",
 
   # web::HttpServer is deprecated in favor of net::EmbeddedTestServer.
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 36ba483..b9edbfa 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -106,7 +106,7 @@
 <translation id="2523184218357549926">Invia a Google gli URL delle pagine che visiti</translation>
 <translation id="2523363575747517183">Questo sito web sta cercando ripetutamente di aprire un'altra applicazione.</translation>
 <translation id="2529021024822217800">Apri tutto</translation>
-<translation id="2572712655377361602">Una norma relativa ai dispositivi ha impedito l'accesso alle tue foto</translation>
+<translation id="2572712655377361602">Un criterio relativo al dispositivo ha impedito l'accesso alle tue foto</translation>
 <translation id="2584132361465095047">Aggiungi account…</translation>
 <translation id="2625189173221582860">Password copiata</translation>
 <translation id="2648803196158606475">Elimina voci lette</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 72abd9ec..f61991d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -182,6 +182,7 @@
 <translation id="3638472932233958418">Vnaprej naloži spletne strani</translation>
 <translation id="3691593122358196899">Zaznamek ustvarjen v mapi <ph name="FOLDER_TITLE" /></translation>
 <translation id="3771033907050503522">Incognito Tabs</translation>
+<translation id="3779810277399252432">Ni internetne povezave.</translation>
 <translation id="3783017676699494206">Shrani sliko</translation>
 <translation id="3789841737615482174">Namesti</translation>
 <translation id="385051799172605136">Nazaj</translation>
@@ -217,6 +218,7 @@
 <translation id="4342284590510997375">Novo</translation>
 <translation id="4359125752503270327">This page will open in another application.</translation>
 <translation id="4370827530403103842">Sync isn't working. Tap to fix.</translation>
+<translation id="4375040482473363939">Iskanje kod QR</translation>
 <translation id="4378154925671717803">Telefon</translation>
 <translation id="441868831736628555">Obvestilo o zasebnosti</translation>
 <translation id="4476574785019001431">Nastavitve</translation>
diff --git a/ios/chrome/browser/about_flags.mm b/ios/chrome/browser/about_flags.mm
index 53d1b8d..cb81f06 100644
--- a/ios/chrome/browser/about_flags.mm
+++ b/ios/chrome/browser/about_flags.mm
@@ -374,9 +374,6 @@
      flag_descriptions::kWebPageTextAccessibilityName,
      flag_descriptions::kWebPageTextAccessibilityDescription, flags_ui::kOsIos,
      FEATURE_VALUE_TYPE(web::kWebPageTextAccessibility)},
-    {"web-frame-messaging", flag_descriptions::kWebFrameMessagingName,
-     flag_descriptions::kWebFrameMessagingDescription, flags_ui::kOsIos,
-     FEATURE_VALUE_TYPE(web::features::kWebFrameMessaging)},
     {"new-password-form-parsing",
      flag_descriptions::kNewPasswordFormParsingName,
      flag_descriptions::kNewPasswordFormParsingDescription, flags_ui::kOsIos,
diff --git a/ios/chrome/browser/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/ios_chrome_flag_descriptions.cc
index 942d771..bfa3a9f 100644
--- a/ios/chrome/browser/ios_chrome_flag_descriptions.cc
+++ b/ios/chrome/browser/ios_chrome_flag_descriptions.cc
@@ -419,11 +419,6 @@
 const char kWebClearBrowsingDataDescription[] =
     "When enabled the Clear Browsing Data feature is using the web API.";
 
-const char kWebFrameMessagingName[] = "Web Frame Messaging";
-const char kWebFrameMessagingDescription[] =
-    "When enabled, API will be injected into webpages to allow sending messages"
-    " directly to any frame of a webpage.";
-
 const char kStorePendingItemInContextName[] =
     "Store pending item in NavigationContext";
 const char kStorePendingItemInContextDescription[] =
diff --git a/ios/chrome/browser/ios_chrome_flag_descriptions.h b/ios/chrome/browser/ios_chrome_flag_descriptions.h
index 35a1836e..4e43327 100644
--- a/ios/chrome/browser/ios_chrome_flag_descriptions.h
+++ b/ios/chrome/browser/ios_chrome_flag_descriptions.h
@@ -350,10 +350,6 @@
 extern const char kWebClearBrowsingDataName[];
 extern const char kWebClearBrowsingDataDescription[];
 
-// Title and description for the flag to enable web frame messaging.
-extern const char kWebFrameMessagingName[];
-extern const char kWebFrameMessagingDescription[];
-
 // Title and description for the flag to store pending item in NavigationContext
 // after context is created.
 extern const char kStorePendingItemInContextName[];
diff --git a/ios/chrome/browser/ntp/new_tab_page_tab_helper.h b/ios/chrome/browser/ntp/new_tab_page_tab_helper.h
index 2dd7d31..64190844 100644
--- a/ios/chrome/browser/ntp/new_tab_page_tab_helper.h
+++ b/ios/chrome/browser/ntp/new_tab_page_tab_helper.h
@@ -15,6 +15,10 @@
 
 @protocol NewTabPageTabHelperDelegate;
 
+namespace web {
+class NavigationItem;
+}
+
 // NewTabPageTabHelper which manages a single NTP per tab.
 class NewTabPageTabHelper : public web::WebStateObserver,
                             public web::WebStateUserData<NewTabPageTabHelper> {
@@ -58,7 +62,7 @@
 
   // Sets the NTP's NavigationItem title and virtualURL to the appropriate
   // string and chrome://newtab respectively.
-  void UpdatePendingItem();
+  void UpdateItem(web::NavigationItem* item);
 
   // Returns true if an |url| is either chrome://newtab or about://newtab.
   bool IsNTPURL(const GURL& url);
diff --git a/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm b/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
index 7dc646b..b3aa3bd 100644
--- a/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
+++ b/ios/chrome/browser/ntp/new_tab_page_tab_helper.mm
@@ -61,7 +61,7 @@
 
   active_ = IsNTPURL(web_state->GetVisibleURL());
   if (active_) {
-    UpdatePendingItem();
+    UpdateItem(web_state_->GetNavigationManager()->GetPendingItem());
     [delegate_ newTabPageHelperDidChangeVisibility:this forWebState:web_state_];
 
     // If about://newtab is currently loading but has not yet committed, block
@@ -120,7 +120,7 @@
     web::WebState* web_state,
     web::NavigationContext* navigation_context) {
   if (IsNTPURL(navigation_context->GetUrl())) {
-    UpdatePendingItem();
+    UpdateItem(web_state_->GetNavigationManager()->GetPendingItem());
   } else {
     SetActive(false);
   }
@@ -129,10 +129,13 @@
 void NewTabPageTabHelper::DidFinishNavigation(
     web::WebState* web_state,
     web::NavigationContext* navigation_context) {
-  if (navigation_context->IsSameDocument()) {
+  web::NavigationItem* item =
+      web_state_->GetNavigationManager()->GetLastCommittedItem();
+  if (navigation_context->IsSameDocument() || !item) {
     return;
   }
 
+  UpdateItem(web_state_->GetNavigationManager()->GetLastCommittedItem());
   DisableIgnoreLoadRequests();
   SetActive(IsNTPURL(web_state->GetLastCommittedURL()));
 }
@@ -149,10 +152,8 @@
   }
 }
 
-void NewTabPageTabHelper::UpdatePendingItem() {
-  web::NavigationManager* manager = web_state_->GetNavigationManager();
-  web::NavigationItem* item = manager->GetPendingItem();
-  if (item) {
+void NewTabPageTabHelper::UpdateItem(web::NavigationItem* item) {
+  if (item && item->GetURL() == GURL(kChromeUIAboutNewTabURL)) {
     item->SetVirtualURL(GURL(kChromeUINewTabURL));
     item->SetTitle(l10n_util::GetStringUTF16(IDS_NEW_TAB_TITLE));
   }
diff --git a/ios/chrome/browser/ntp/new_tab_page_tab_helper_unittest.mm b/ios/chrome/browser/ntp/new_tab_page_tab_helper_unittest.mm
index 039b920..d426f9e 100644
--- a/ios/chrome/browser/ntp/new_tab_page_tab_helper_unittest.mm
+++ b/ios/chrome/browser/ntp/new_tab_page_tab_helper_unittest.mm
@@ -63,6 +63,7 @@
         std::make_unique<web::TestNavigationManager>();
     test_navigation_manager_ = test_navigation_manager.get();
     pending_item_ = web::NavigationItem::Create();
+    pending_item_->SetURL(GURL(kChromeUIAboutNewTabURL));
     test_navigation_manager->SetPendingItem(pending_item_.get());
     test_web_state_.SetNavigationManager(std::move(test_navigation_manager));
     test_web_state_.SetBrowserState(chrome_browser_state_.get());
@@ -139,26 +140,59 @@
   test_web_state_.SetCurrentURL(url);
   web::FakeNavigationContext context;
   context.SetUrl(url);
+  test_navigation_manager_->SetLastCommittedItem(pending_item_.get());
   test_web_state_.OnNavigationFinished(&context);
   EXPECT_TRUE(tab_helper()->IsActive());
 
   GURL not_ntp_url(kTestURL);
   test_web_state_.SetCurrentURL(not_ntp_url);
   context.SetUrl(not_ntp_url);
+  pending_item_->SetURL(not_ntp_url);
   test_web_state_.OnNavigationStarted(&context);
   EXPECT_FALSE(tab_helper()->IsActive());
+  test_navigation_manager_->SetLastCommittedItem(pending_item_.get());
   test_web_state_.OnNavigationFinished(&context);
   EXPECT_FALSE(tab_helper()->IsActive());
 
   context.SetUrl(url);
+  pending_item_->SetURL(url);
   test_web_state_.SetCurrentURL(url);
+  test_navigation_manager_->SetLastCommittedItem(pending_item_.get());
   test_web_state_.OnNavigationFinished(&context);
   EXPECT_TRUE(tab_helper()->IsActive());
 
   context.SetUrl(not_ntp_url);
+  pending_item_->SetURL(url);
   test_web_state_.SetCurrentURL(not_ntp_url);
   test_web_state_.OnNavigationStarted(&context);
   EXPECT_FALSE(tab_helper()->IsActive());
+  test_navigation_manager_->SetLastCommittedItem(pending_item_.get());
   test_web_state_.OnNavigationFinished(&context);
   EXPECT_FALSE(tab_helper()->IsActive());
 }
+
+// Tests double navigations from an NTP and non-NTP page at the same time.
+TEST_F(NewTabPageTabHelperTest, TestMismatchedPendingItem) {
+  base::test::ScopedFeatureList scoped_feature_list_;
+  scoped_feature_list_.InitAndEnableFeature(kBrowserContainerContainsNTP);
+
+  // Test an NTP url with a mismatched pending item.
+  GURL url(kChromeUINewTabURL);
+  GURL not_ntp_url(kTestURL);
+  test_web_state_.SetCurrentURL(url);
+  pending_item_->SetURL(not_ntp_url);
+  CreateTabHelper();
+  // In this edge case, although the NTP is visible, the pending item is not
+  // incorrectly updated
+  EXPECT_EQ(GURL(kTestURL), pending_item_->GetVirtualURL());
+
+  // On commit, the web state url is correct, and the NTP is inactive.
+  web::FakeNavigationContext context;
+  context.SetUrl(not_ntp_url);
+  pending_item_->SetURL(not_ntp_url);
+  test_web_state_.SetCurrentURL(not_ntp_url);
+  test_navigation_manager_->SetLastCommittedItem(pending_item_.get());
+  test_web_state_.OnNavigationFinished(&context);
+  EXPECT_FALSE(tab_helper()->IsActive());
+  EXPECT_EQ(GURL(kTestURL), pending_item_->GetVirtualURL());
+}
diff --git a/ios/chrome/browser/ui/BUILD.gn b/ios/chrome/browser/ui/BUILD.gn
index 0b4a77b..4589e06 100644
--- a/ios/chrome/browser/ui/BUILD.gn
+++ b/ios/chrome/browser/ui/BUILD.gn
@@ -63,7 +63,6 @@
   testonly = true
   sources = [
     "file_locations_unittest.mm",
-    "key_commands_provider_unittest.mm",
     "native_content_controller_unittest.mm",
     "network_activity_indicator_manager_unittest.mm",
     "page_not_available_controller_unittest.mm",
@@ -222,8 +221,6 @@
 source_set("ui_internal") {
   configs += [ "//build/config/compiler:enable_arc" ]
   sources = [
-    "key_commands_provider.h",
-    "key_commands_provider.mm",
     "page_not_available_controller.h",
     "page_not_available_controller.mm",
   ]
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm
index f8c26c43..8480a44 100644
--- a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm
+++ b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm
@@ -10,7 +10,6 @@
 #import "base/strings/sys_string_conversions.h"
 #include "components/autofill/core/browser/personal_data_manager.h"
 #include "components/autofill/core/common/autofill_features.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #import "components/autofill/ios/browser/js_suggestion_manager.h"
 #import "components/autofill/ios/browser/personal_data_manager_observer_bridge.h"
 #import "components/autofill/ios/form_util/form_activity_observer_bridge.h"
@@ -279,10 +278,8 @@
     return;
   }
 
-  // Return early and reset if messaging is enabled but frame is missing or
-  // can't call JS.
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled() &&
-      (!frame || !frame->CanCallJavaScriptFunction())) {
+  // Return early and reset if frame is missing or can't call JS.
+  if (!frame || !frame->CanCallJavaScriptFunction()) {
     [self reset];
     return;
   }
@@ -294,8 +291,7 @@
   if (frame) {
     frameID = base::SysUTF8ToNSString(frame->GetFrameId());
   }
-  DCHECK(frameID.length ||
-         !autofill::switches::IsAutofillIFrameMessagingEnabled());
+  DCHECK(frameID.length);
 
   [self.formInputAccessoryHandler setLastFocusFormActivityWebFrameID:frameID];
   [self synchronizeNavigationControls];
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/manual_fill_injection_handler.mm b/ios/chrome/browser/ui/autofill/manual_fill/manual_fill_injection_handler.mm
index a6ca234..5ee8845 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/manual_fill_injection_handler.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/manual_fill_injection_handler.mm
@@ -13,7 +13,6 @@
 #include "base/mac/foundation_util.h"
 #include "base/strings/sys_string_conversions.h"
 #include "base/values.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #import "components/autofill/ios/browser/autofill_util.h"
 #import "components/autofill/ios/browser/js_suggestion_manager.h"
 #import "components/autofill/ios/form_util/form_activity_observer_bridge.h"
@@ -134,13 +133,11 @@
       autofill::IsContextSecureForWebState(webState);
   self.lastFocusedElementPasswordField = params.field_type == "password";
   self.lastFocusedElementIdentifier = params.field_identifier;
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    DCHECK(frame);
-    self.lastFocusedElementFrameIdentifier = frame->GetFrameId();
-    const GURL frameSecureOrigin = frame->GetSecurityOrigin();
-    if (!frameSecureOrigin.SchemeIsCryptographic()) {
-      self.lastFocusedElementSecure = NO;
-    }
+  DCHECK(frame);
+  self.lastFocusedElementFrameIdentifier = frame->GetFrameId();
+  const GURL frameSecureOrigin = frame->GetSecurityOrigin();
+  if (!frameSecureOrigin.SchemeIsCryptographic()) {
+    self.lastFocusedElementSecure = NO;
   }
 }
 
@@ -168,41 +165,28 @@
 
 // Injects the passed string to the active field and jumps to the next field.
 - (void)fillLastSelectedFieldWithString:(NSString*)string {
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled()) {
-    web::WebState* activeWebState = self.webStateList->GetActiveWebState();
-    if (!activeWebState) {
-      return;
-    }
-    web::WebFrame* activeWebFrame = web::GetWebFrameWithId(
-        activeWebState, self.lastFocusedElementFrameIdentifier);
-    if (!activeWebFrame || !activeWebFrame->CanCallJavaScriptFunction()) {
-      return;
-    }
-
-    base::DictionaryValue data = base::DictionaryValue();
-    data.SetString("identifier", self.lastFocusedElementIdentifier);
-    data.SetString("value", base::SysNSStringToUTF16(string));
-    std::vector<base::Value> parameters;
-    parameters.push_back(std::move(data));
-
-    activeWebFrame->CallJavaScriptFunction(
-        "autofill.fillActiveFormField", parameters,
-        base::BindOnce(^(const base::Value*) {
-          [self jumpToNextField];
-        }),
-        base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
+  web::WebState* activeWebState = self.webStateList->GetActiveWebState();
+  if (!activeWebState) {
     return;
   }
-  // Frame messaging is disabled, use the old injection reciever.
-  NSString* javaScriptQuery =
-      [NSString stringWithFormat:
-                    @"__gCrWeb.fill.setInputElementValue(\"%@\", "
-                    @"document.activeElement);",
-                    string];
-  [self.injectionReceiver executeJavaScript:javaScriptQuery
-                          completionHandler:^(id, NSError*) {
-                            [self jumpToNextField];
-                          }];
+  web::WebFrame* activeWebFrame = web::GetWebFrameWithId(
+      activeWebState, self.lastFocusedElementFrameIdentifier);
+  if (!activeWebFrame || !activeWebFrame->CanCallJavaScriptFunction()) {
+    return;
+  }
+
+  base::DictionaryValue data = base::DictionaryValue();
+  data.SetString("identifier", self.lastFocusedElementIdentifier);
+  data.SetString("value", base::SysNSStringToUTF16(string));
+  std::vector<base::Value> parameters;
+  parameters.push_back(std::move(data));
+
+  activeWebFrame->CallJavaScriptFunction(
+      "autofill.fillActiveFormField", parameters,
+      base::BindOnce(^(const base::Value*) {
+        [self jumpToNextField];
+      }),
+      base::TimeDelta::FromSeconds(kJavaScriptExecutionTimeoutInSeconds));
 }
 
 // Attempts to jump to the next field in the current form.
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
index 6689665c..15c1e9b 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/password_view_controller_egtest.mm
@@ -27,7 +27,6 @@
 #import "ios/chrome/test/earl_grey/chrome_earl_grey.h"
 #import "ios/chrome/test/earl_grey/chrome_matchers.h"
 #import "ios/chrome/test/earl_grey/chrome_test_case.h"
-#include "ios/web/public/features.h"
 #import "ios/web/public/test/earl_grey/web_view_matchers.h"
 #include "ios/web/public/test/element_selector.h"
 #import "ios/web/public/test/web_view_interaction_test_util.h"
@@ -579,8 +578,6 @@
   if (!base::ios::IsRunningOnOrLater(11, 3, 0)) {
     EARL_GREY_TEST_SKIPPED(@"Skipped for iOS < 11.3");
   }
-  GREYAssert(base::FeatureList::IsEnabled(web::features::kWebFrameMessaging),
-             @"Frame Messaging must be enabled for this Test Case");
 
   const GURL URL = self.testServer->GetURL(kIFrameHTMLFile);
   [ChromeEarlGrey loadURL:URL];
diff --git a/ios/chrome/browser/ui/browser_view/BUILD.gn b/ios/chrome/browser/ui/browser_view/BUILD.gn
index c5fb286a..d767abb 100644
--- a/ios/chrome/browser/ui/browser_view/BUILD.gn
+++ b/ios/chrome/browser/ui/browser_view/BUILD.gn
@@ -12,6 +12,8 @@
     "browser_view_controller_dependency_factory.mm",
     "browser_view_controller_helper.h",
     "browser_view_controller_helper.mm",
+    "key_commands_provider.h",
+    "key_commands_provider.mm",
   ]
   deps = [
     "//base",
@@ -165,6 +167,7 @@
   sources = [
     "browser_view_controller_helper_unittest.mm",
     "browser_view_controller_unittest.mm",
+    "key_commands_provider_unittest.mm",
   ]
   deps = [
     ":browser_view",
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
index fc2c479..1a1c73b 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -80,6 +80,7 @@
 #import "ios/chrome/browser/ui/browser_container/browser_container_view_controller.h"
 #import "ios/chrome/browser/ui/browser_view/browser_view_controller_dependency_factory.h"
 #import "ios/chrome/browser/ui/browser_view/browser_view_controller_helper.h"
+#import "ios/chrome/browser/ui/browser_view/key_commands_provider.h"
 #import "ios/chrome/browser/ui/bubble/bubble_presenter.h"
 #import "ios/chrome/browser/ui/bubble/bubble_presenter_delegate.h"
 #import "ios/chrome/browser/ui/commands/application_commands.h"
@@ -108,7 +109,6 @@
 #import "ios/chrome/browser/ui/image_util/image_saver.h"
 #import "ios/chrome/browser/ui/infobars/infobar_container_coordinator.h"
 #import "ios/chrome/browser/ui/infobars/infobar_positioner.h"
-#import "ios/chrome/browser/ui/key_commands_provider.h"
 #include "ios/chrome/browser/ui/location_bar/location_bar_model_delegate_ios.h"
 #import "ios/chrome/browser/ui/location_bar_notification_names.h"
 #import "ios/chrome/browser/ui/main_content/main_content_ui.h"
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller_dependency_factory.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller_dependency_factory.mm
index 48f61198..2b67d13 100644
--- a/ios/chrome/browser/ui/browser_view/browser_view_controller_dependency_factory.mm
+++ b/ios/chrome/browser/ui/browser_view/browser_view_controller_dependency_factory.mm
@@ -8,7 +8,7 @@
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
 #import "ios/chrome/browser/ui/browser_view/browser_view_controller_helper.h"
-#import "ios/chrome/browser/ui/key_commands_provider.h"
+#import "ios/chrome/browser/ui/browser_view/key_commands_provider.h"
 #import "ios/chrome/browser/ui/toolbar/public/features.h"
 #include "ui/base/l10n/l10n_util_mac.h"
 
diff --git a/ios/chrome/browser/ui/key_commands_provider.h b/ios/chrome/browser/ui/browser_view/key_commands_provider.h
similarity index 70%
rename from ios/chrome/browser/ui/key_commands_provider.h
rename to ios/chrome/browser/ui/browser_view/key_commands_provider.h
index 3cac5459..3553428 100644
--- a/ios/chrome/browser/ui/key_commands_provider.h
+++ b/ios/chrome/browser/ui/browser_view/key_commands_provider.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 IOS_CHROME_BROWSER_UI_KEY_COMMANDS_PROVIDER_H_
-#define IOS_CHROME_BROWSER_UI_KEY_COMMANDS_PROVIDER_H_
+#ifndef IOS_CHROME_BROWSER_UI_BROWSER_VIEW_KEY_COMMANDS_PROVIDER_H_
+#define IOS_CHROME_BROWSER_UI_BROWSER_VIEW_KEY_COMMANDS_PROVIDER_H_
 
 #import <UIKit/UIKit.h>
 
@@ -11,7 +11,7 @@
 #import "ios/chrome/browser/ui/commands/browser_commands.h"
 #import "ios/chrome/browser/ui/toolbar/public/omnibox_focuser.h"
 
-@protocol KeyCommandsPlumbing<NSObject>
+@protocol KeyCommandsPlumbing <NSObject>
 
 #pragma mark Query information
 
@@ -52,13 +52,13 @@
 @interface KeyCommandsProvider : NSObject
 
 - (NSArray*)
-keyCommandsForConsumer:(id<KeyCommandsPlumbing>)consumer
-    baseViewController:(UIViewController*)baseViewController
-            dispatcher:
-                (id<ApplicationCommands, BrowserCommands, OmniboxFocuser>)
-                    dispatcher
-           editingText:(BOOL)editingText;
+    keyCommandsForConsumer:(id<KeyCommandsPlumbing>)consumer
+        baseViewController:(UIViewController*)baseViewController
+                dispatcher:
+                    (id<ApplicationCommands, BrowserCommands, OmniboxFocuser>)
+                        dispatcher
+               editingText:(BOOL)editingText;
 
 @end
 
-#endif  // IOS_CHROME_BROWSER_UI_KEY_COMMANDS_PROVIDER_H_
+#endif  // IOS_CHROME_BROWSER_UI_BROWSER_VIEW_KEY_COMMANDS_PROVIDER_H_
diff --git a/ios/chrome/browser/ui/key_commands_provider.mm b/ios/chrome/browser/ui/browser_view/key_commands_provider.mm
similarity index 99%
rename from ios/chrome/browser/ui/key_commands_provider.mm
rename to ios/chrome/browser/ui/browser_view/key_commands_provider.mm
index 8fca47b7..873c1229 100644
--- a/ios/chrome/browser/ui/key_commands_provider.mm
+++ b/ios/chrome/browser/ui/browser_view/key_commands_provider.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/ui/key_commands_provider.h"
+#import "ios/chrome/browser/ui/browser_view/key_commands_provider.h"
 
 #include "base/logging.h"
 #include "components/strings/grit/components_strings.h"
diff --git a/ios/chrome/browser/ui/key_commands_provider_unittest.mm b/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
similarity index 98%
rename from ios/chrome/browser/ui/key_commands_provider_unittest.mm
rename to ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
index 091b493..2a18456 100644
--- a/ios/chrome/browser/ui/key_commands_provider_unittest.mm
+++ b/ios/chrome/browser/ui/browser_view/key_commands_provider_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/ui/key_commands_provider.h"
+#import "ios/chrome/browser/ui/browser_view/key_commands_provider.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/platform_test.h"
diff --git a/ios/chrome/browser/ui/settings/password/passwords_table_view_controller.mm b/ios/chrome/browser/ui/settings/password/passwords_table_view_controller.mm
index 46a1962..9898d0f 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_table_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_table_view_controller.mm
@@ -342,14 +342,17 @@
   [super loadModel];
   TableViewModel* model = self.tableViewModel;
 
-  // Save passwords switch and manage account message.
-  [model addSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
-  savePasswordsItem_ = [self savePasswordsItem];
-  [model addItem:savePasswordsItem_
-      toSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
-  manageAccountLinkItem_ = [self manageAccountLinkItem];
-  [model setHeader:manageAccountLinkItem_
-      forSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
+  // Save passwords switch and manage account message. Only show this section
+  // when the searchController is not active.
+  if (!self.navigationItem.searchController.active) {
+    [model addSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
+    savePasswordsItem_ = [self savePasswordsItem];
+    [model addItem:savePasswordsItem_
+        toSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
+    manageAccountLinkItem_ = [self manageAccountLinkItem];
+    [model setHeader:manageAccountLinkItem_
+        forSectionWithIdentifier:SectionIdentifierSavePasswordsSwitch];
+  }
 
   // Saved passwords.
   if (!savedForms_.empty()) {
diff --git a/ios/chrome/browser/web/page_placeholder_tab_helper.h b/ios/chrome/browser/web/page_placeholder_tab_helper.h
index 4f0f2c372..f0707768 100644
--- a/ios/chrome/browser/web/page_placeholder_tab_helper.h
+++ b/ios/chrome/browser/web/page_placeholder_tab_helper.h
@@ -55,6 +55,9 @@
   void AddPlaceholder();
   void RemovePlaceholder();
 
+  // Adds the given |snapshot| image to the |web_state_|'s view.
+  void DisplaySnapshotImage(UIImage* snapshot);
+
   // WebState this tab helper is attached to.
   web::WebState* web_state_ = nullptr;
 
diff --git a/ios/chrome/browser/web/page_placeholder_tab_helper.mm b/ios/chrome/browser/web/page_placeholder_tab_helper.mm
index 57c7490..5e8364e5 100644
--- a/ios/chrome/browser/web/page_placeholder_tab_helper.mm
+++ b/ios/chrome/browser/web/page_placeholder_tab_helper.mm
@@ -91,23 +91,15 @@
   }
 
   // Update placeholder view's image and display it on top of WebState's view.
-  __weak UIImageView* weak_placeholder_view = placeholder_view_;
-  __weak UIView* weak_web_state_view = web_state_->GetView();
-  __weak id<CRWWebViewProxy> web_view_proxy = web_state_->GetWebViewProxy();
-
   SnapshotTabHelper* snapshotTabHelper =
       SnapshotTabHelper::FromWebState(web_state_);
   if (snapshotTabHelper) {
+    base::WeakPtr<PagePlaceholderTabHelper> weak_tab_helper =
+        weak_factory_.GetWeakPtr();
     snapshotTabHelper->RetrieveGreySnapshot(^(UIImage* snapshot) {
-      CGRect frame = weak_web_state_view.frame;
-      UIEdgeInsets inset = web_view_proxy.contentInset;
-      frame.origin.x += inset.left;
-      frame.origin.y += inset.top;
-      frame.size.width -= (inset.right + inset.left);
-      frame.size.height -= (inset.bottom + inset.top);
-      weak_placeholder_view.frame = frame;
-      weak_placeholder_view.image = snapshot;
-      [weak_web_state_view addSubview:weak_placeholder_view];
+      if (weak_tab_helper && weak_tab_helper->displaying_placeholder()) {
+        DisplaySnapshotImage(snapshot);
+      }
     });
   }
 
@@ -119,6 +111,18 @@
       base::TimeDelta::FromSecondsD(kPlaceholderMaxDisplayTimeInSeconds));
 }
 
+void PagePlaceholderTabHelper::DisplaySnapshotImage(UIImage* snapshot) {
+  CGRect frame = web_state_->GetView().frame;
+  UIEdgeInsets inset = web_state_->GetWebViewProxy().contentInset;
+  frame.origin.x += inset.left;
+  frame.origin.y += inset.top;
+  frame.size.width -= (inset.right + inset.left);
+  frame.size.height -= (inset.bottom + inset.top);
+  placeholder_view_.frame = frame;
+  placeholder_view_.image = snapshot;
+  [web_state_->GetView() addSubview:placeholder_view_];
+}
+
 void PagePlaceholderTabHelper::RemovePlaceholder() {
   if (!displaying_placeholder_)
     return;
diff --git a/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_chromium_strings_sl.xtb b/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_chromium_strings_sl.xtb
index 31b5a1a..1ccc89d 100644
--- a/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_chromium_strings_sl.xtb
+++ b/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_chromium_strings_sl.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sl">
+<translation id="264609280318319531">Chromium – predlagana spletna mesta</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_google_chrome_strings_sl.xtb b/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_google_chrome_strings_sl.xtb
index 31b5a1a..a9ca52d 100644
--- a/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_google_chrome_strings_sl.xtb
+++ b/ios/chrome/content_widget_extension/strings/resources/ios_content_widget_extension_google_chrome_strings_sl.xtb
@@ -1,4 +1,5 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="sl">
+<translation id="4544225832231827770">Chrome – predlagana spletna mesta</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/web/features.mm b/ios/web/features.mm
index 9f5b855..1d3722b 100644
--- a/ios/web/features.mm
+++ b/ios/web/features.mm
@@ -19,9 +19,6 @@
 const base::Feature kIgnoresViewportScaleLimits{
     "IgnoresViewportScaleLimits", base::FEATURE_DISABLED_BY_DEFAULT};
 
-const base::Feature kWebFrameMessaging{"WebFrameMessaging",
-                                       base::FEATURE_ENABLED_BY_DEFAULT};
-
 const base::Feature kSlimNavigationManager{"SlimNavigationManager",
                                            base::FEATURE_DISABLED_BY_DEFAULT};
 
diff --git a/ios/web/public/features.h b/ios/web/public/features.h
index feb2c3b..8d10d0a 100644
--- a/ios/web/public/features.h
+++ b/ios/web/public/features.h
@@ -19,9 +19,6 @@
 // Used to always allow scaling of the web page, regardless of author intent.
 extern const base::Feature kIgnoresViewportScaleLimits;
 
-// Used to enable API to send messages directly to frames of a webpage.
-extern const base::Feature kWebFrameMessaging;
-
 // Used to enable the WKBackForwardList based navigation manager.
 extern const base::Feature kSlimNavigationManager;
 
diff --git a/ios/web/public/web_state/ui/crw_context_menu_delegate.h b/ios/web/public/web_state/ui/crw_context_menu_delegate.h
index b3b4dd15..30e65d94 100644
--- a/ios/web/public/web_state/ui/crw_context_menu_delegate.h
+++ b/ios/web/public/web_state/ui/crw_context_menu_delegate.h
@@ -16,7 +16,6 @@
 // Called when the custom Context menu recognizer triggers on |webView| by a
 // long press gesture. The system context menu will be suppressed if this method
 // is implemented.
-// TODO(crbug.com/228179): This class only triggers context menu on mainFrame.
 - (void)webView:(WKWebView*)webView
     handleContextMenu:(const web::ContextMenuParams&)params;
 @end
diff --git a/ios/web/shell/shell_url_request_context_getter.mm b/ios/web/shell/shell_url_request_context_getter.mm
index 2e4038ac..af9fc26 100644
--- a/ios/web/shell/shell_url_request_context_getter.mm
+++ b/ios/web/shell/shell_url_request_context_getter.mm
@@ -133,8 +133,6 @@
         url_request_context_->cert_transparency_verifier();
     network_session_context.ct_policy_enforcer =
         url_request_context_->ct_policy_enforcer();
-    network_session_context.channel_id_service =
-        url_request_context_->channel_id_service();
     network_session_context.net_log = url_request_context_->net_log();
     network_session_context.proxy_resolution_service =
         url_request_context_->proxy_resolution_service();
diff --git a/ios/web/web_state/ui/crw_context_menu_controller.h b/ios/web/web_state/ui/crw_context_menu_controller.h
index 5f11a30..dcea9f0 100644
--- a/ios/web/web_state/ui/crw_context_menu_controller.h
+++ b/ios/web/web_state/ui/crw_context_menu_controller.h
@@ -30,7 +30,6 @@
 // - This class relies on the pre-injection of base.js in webView.
 // - This class will perform gesture recognition and JavaScript on every touch
 //   event on |webView| and can have performance impact.
-// TODO(crbug.com/228179): This class only triggers context menu on mainFrame.
 - (instancetype)initWithWebView:(WKWebView*)webView
                    browserState:(web::BrowserState*)browserState
              injectionEvaluator:(id<CRWJSInjectionEvaluator>)injectionEvaluator
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index b948574..66906e8 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -2815,36 +2815,9 @@
   if (message->GetString("crwFrameId", &frameID)) {
     senderFrame = web::GetWebFrameWithId([self webState], frameID);
   }
-
-  if (base::FeatureList::IsEnabled(web::features::kWebFrameMessaging)) {
-    // Message must be associated with a current frame.
-    if (!senderFrame) {
-      return NO;
-    }
-  } else {
-    GURL messageFrameOrigin = web::GURLOriginWithWKSecurityOrigin(
-        scriptMessage.frameInfo.securityOrigin);
-    if (!scriptMessage.frameInfo.mainFrame &&
-        messageFrameOrigin.GetOrigin() != _documentURL.GetOrigin()) {
-      // Messages from cross-origin iframes are not currently supported.
-      // |scriptMessage.frameInfo.securityOrigin| returns opener's origin for
-      // about:blank pages, so it is important to allow all messages coming from
-      // the main frame, even if messageFrameOrigin and _documentURL have
-      // different origins.
-      return NO;
-    }
-
-    std::string windowID;
-    // If windowID exists, it must match the ID from the main frame.
-    if (message->GetString("crwWindowId", &windowID)) {
-      if (base::SysNSStringToUTF8([_windowIDJSManager windowID]) != windowID) {
-        DLOG(WARNING)
-            << "Message from JS ignored due to non-matching windowID: "
-            << base::SysNSStringToUTF8([_windowIDJSManager windowID])
-            << " != " << windowID;
-        return NO;
-      }
-    }
+  // Message must be associated with a current frame.
+  if (!senderFrame) {
+    return NO;
   }
 
   base::DictionaryValue* command = nullptr;
diff --git a/ios/web_view/internal/autofill/cwv_autofill_controller.mm b/ios/web_view/internal/autofill/cwv_autofill_controller.mm
index 60c0b9bf7..10953d5 100644
--- a/ios/web_view/internal/autofill/cwv_autofill_controller.mm
+++ b/ios/web_view/internal/autofill/cwv_autofill_controller.mm
@@ -17,7 +17,6 @@
 #import "components/autofill/ios/browser/autofill_agent.h"
 #include "components/autofill/ios/browser/autofill_driver_ios.h"
 #include "components/autofill/ios/browser/autofill_driver_ios_bridge.h"
-#include "components/autofill/ios/browser/autofill_switches.h"
 #import "components/autofill/ios/browser/autofill_util.h"
 #import "components/autofill/ios/browser/js_autofill_manager.h"
 #import "components/autofill/ios/browser/js_suggestion_manager.h"
@@ -386,10 +385,7 @@
 #pragma mark - Utility Methods
 
 - (autofill::AutofillManager*)autofillManagerForFrame:(web::WebFrame*)frame {
-  if (!_webState) {
-    return nil;
-  }
-  if (autofill::switches::IsAutofillIFrameMessagingEnabled() && !frame) {
+  if (!_webState || !frame) {
     return nil;
   }
   return autofill::AutofillDriverIOS::FromWebStateAndWebFrame(_webState, frame)
diff --git a/ios/web_view/test/scroll_view_kvo_inttest.mm b/ios/web_view/test/scroll_view_kvo_inttest.mm
index 6189f1ef..04aa56c 100644
--- a/ios/web_view/test/scroll_view_kvo_inttest.mm
+++ b/ios/web_view/test/scroll_view_kvo_inttest.mm
@@ -23,23 +23,30 @@
 
 // Tests that CWVScrollView correctly reports |contentOffset| state.
 TEST_F(ScrollViewKvoTest, contentOffset) {
-  Observer* observer = [[Observer alloc] init];
-  [observer setObservedObject:web_view_.scrollView keyPath:@"contentOffset"];
+  Observer* offset_observer = [[Observer alloc] init];
+  [offset_observer setObservedObject:web_view_.scrollView
+                             keyPath:@"contentOffset"];
+  Observer* size_observer = [[Observer alloc] init];
+  [size_observer setObservedObject:web_view_.scrollView keyPath:@"contentSize"];
 
   // A page must be loaded before changing |contentOffset|. Otherwise the change
   // is ignored because the underlying UIScrollView hasn't been created.
   [web_view_
       loadRequest:[NSURLRequest
                       requestWithURL:[NSURL URLWithString:@"about:blank"]]];
+  EXPECT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
+      base::test::ios::kWaitForPageLoadTimeout, ^bool {
+        return size_observer.lastValue;
+      }));
 
   web_view_.scrollView.contentOffset = CGPointMake(10, 20);
   EXPECT_NSEQ([NSValue valueWithCGPoint:CGPointMake(10, 20)],
-              observer.lastValue);
+              offset_observer.lastValue);
 
   [web_view_.scrollView setContentOffset:CGPointMake(30, 40) animated:YES];
   EXPECT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(
       base::test::ios::kWaitForUIElementTimeout, ^{
-        return static_cast<bool>([observer.lastValue
+        return static_cast<bool>([offset_observer.lastValue
             isEqual:[NSValue valueWithCGPoint:CGPointMake(30, 40)]]);
       }));
 }
diff --git a/ios/web_view/test/web_view_autofill_inttest.mm b/ios/web_view/test/web_view_autofill_inttest.mm
index f6acfb1..669eff6 100644
--- a/ios/web_view/test/web_view_autofill_inttest.mm
+++ b/ios/web_view/test/web_view_autofill_inttest.mm
@@ -64,12 +64,7 @@
 // Tests autofill features in CWVWebViews.
 class WebViewAutofillTest : public WebViewInttestBase {
  protected:
-  WebViewAutofillTest() : autofill_controller_(web_view_.autofillController) {
-    // Adds a dummy superview to |web_view_| so that WebState visiblity gets
-    // updated.
-    dummy_super_view_ = [[UIView alloc] init];
-    [dummy_super_view_ addSubview:web_view_];
-  }
+  WebViewAutofillTest() : autofill_controller_(web_view_.autofillController) {}
 
   bool LoadTestPage() WARN_UNUSED_RESULT {
     std::string html = base::SysNSStringToUTF8(kTestFormHtml);
diff --git a/ios/web_view/test/web_view_inttest_base.mm b/ios/web_view/test/web_view_inttest_base.mm
index 3248c11..a475e7f 100644
--- a/ios/web_view/test/web_view_inttest_base.mm
+++ b/ios/web_view/test/web_view_inttest_base.mm
@@ -112,12 +112,21 @@
     : web_view_(test::CreateWebView()),
       test_server_(std::make_unique<net::EmbeddedTestServer>(
           net::test_server::EmbeddedTestServer::TYPE_HTTP)) {
+  // The WKWebView must be present in the view hierarchy in order to prevent
+  // WebKit optimizations which may pause internal parts of the web view
+  // without notice. Work around this by adding the view directly.
+  // TODO:(crbug.com/944077) Remove this workaround once fixed in ios/web.
+  UIViewController* view_controller =
+      [[[UIApplication sharedApplication] keyWindow] rootViewController];
+  [view_controller.view addSubview:web_view_];
   test_server_->AddDefaultHandlers(FILE_PATH_LITERAL(base::FilePath()));
   test_server_->RegisterRequestHandler(
       base::BindRepeating(&TestRequestHandler));
 }
 
-WebViewInttestBase::~WebViewInttestBase() = default;
+WebViewInttestBase::~WebViewInttestBase() {
+  [web_view_ removeFromSuperview];
+}
 
 GURL WebViewInttestBase::GetUrlForPageWithTitle(const std::string& title) {
   return GetUrlForPageWithTitleAndBody(title, std::string());
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index e0c9a7e..6fe95900 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -383,7 +383,7 @@
   media_log_->SetStringProperty("surface_layer_mode", surface_layer_mode_name);
 
   if (params->initial_cdm())
-    SetCdm(params->initial_cdm());
+    SetCdmInternal(params->initial_cdm());
 
   // Report a false "EncrytpedEvent" here as a baseline.
   RecordEncryptedEvent(false);
@@ -408,7 +408,8 @@
   DCHECK(main_task_runner_->BelongsToCurrentThread());
 
   if (set_cdm_result_) {
-    DVLOG(2) << "Resolve pending SetCdm() when media player is destroyed.";
+    DVLOG(2)
+        << "Resolve pending SetCdmInternal() when media player is destroyed.";
     set_cdm_result_->Complete();
     set_cdm_result_.reset();
   }
@@ -1342,19 +1343,7 @@
   DCHECK(!set_cdm_result_);
   set_cdm_result_.reset(new blink::WebContentDecryptionModuleResult(result));
 
-  // Recreate the watch time reporter if necessary.
-  const bool was_encrypted = is_encrypted_;
-  is_encrypted_ = true;
-  if (!was_encrypted) {
-    media_metrics_provider_->SetIsEME();
-    if (watch_time_reporter_)
-      CreateWatchTimeReporter();
-  }
-
-  // For now MediaCapabilities only handles clear content.
-  video_decode_stats_reporter_.reset();
-
-  SetCdm(cdm);
+  SetCdmInternal(cdm);
 }
 
 void WebMediaPlayerImpl::OnEncryptedMediaInitData(
@@ -1414,10 +1403,24 @@
   }
 }
 
-void WebMediaPlayerImpl::SetCdm(blink::WebContentDecryptionModule* cdm) {
+void WebMediaPlayerImpl::SetCdmInternal(
+    blink::WebContentDecryptionModule* cdm) {
   DCHECK(main_task_runner_->BelongsToCurrentThread());
   DCHECK(cdm);
 
+  const bool was_encrypted = is_encrypted_;
+  is_encrypted_ = true;
+
+  // Recreate the watch time reporter if necessary.
+  if (!was_encrypted) {
+    media_metrics_provider_->SetIsEME();
+    if (watch_time_reporter_)
+      CreateWatchTimeReporter();
+  }
+
+  // For now MediaCapabilities only handles clear content.
+  video_decode_stats_reporter_.reset();
+
   auto cdm_context_ref =
       ToWebContentDecryptionModuleImpl(cdm)->GetCdmContextRef();
   if (!cdm_context_ref) {
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index b2b43fe7..52e2fdc 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -384,7 +384,7 @@
 
   // Sets CdmContext from |cdm| on the pipeline and calls OnCdmAttached()
   // when done.
-  void SetCdm(blink::WebContentDecryptionModule* cdm);
+  void SetCdmInternal(blink::WebContentDecryptionModule* cdm);
 
   // Called when a CDM has been attached to the |pipeline_|.
   void OnCdmAttached(bool success);
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
index 27205c4..72803b2 100644
--- a/media/gpu/BUILD.gn
+++ b/media/gpu/BUILD.gn
@@ -136,6 +136,7 @@
       "QuartzCore.framework",
       "VideoToolbox.framework",
     ]
+    deps += [ "//components/crash/core/common:crash_key" ]
   }
 
   if (is_android) {
diff --git a/media/gpu/DEPS b/media/gpu/DEPS
index addbf7da..5783704 100644
--- a/media/gpu/DEPS
+++ b/media/gpu/DEPS
@@ -1,5 +1,6 @@
 # Do NOT add net/ or ui/base without a great reason, they're huge!
 include_rules = [
+  "+components/crash/core/common/crash_key.h",
   "+mojo/core/embedder",
   "+services/service_manager/public",
   "+third_party/angle",
diff --git a/media/gpu/vt_video_decode_accelerator_mac.cc b/media/gpu/vt_video_decode_accelerator_mac.cc
index 5501c08..f9a834a 100644
--- a/media/gpu/vt_video_decode_accelerator_mac.cc
+++ b/media/gpu/vt_video_decode_accelerator_mac.cc
@@ -4,6 +4,7 @@
 
 #include "media/gpu/vt_video_decode_accelerator_mac.h"
 
+#include <CoreFoundation/CoreFoundation.h>
 #include <CoreVideo/CoreVideo.h>
 #include <OpenGL/CGLIOSurface.h>
 #include <OpenGL/gl.h>
@@ -20,6 +21,7 @@
 #include "base/metrics/histogram_macros.h"
 #include "base/stl_util.h"
 #include "base/strings/stringprintf.h"
+#include "base/strings/sys_string_conversions.h"
 #include "base/sys_byteorder.h"
 #include "base/system/sys_info.h"
 #include "base/threading/thread_task_runner_handle.h"
@@ -27,6 +29,7 @@
 #include "base/trace_event/memory_dump_manager.h"
 #include "base/trace_event/process_memory_dump.h"
 #include "base/version.h"
+#include "components/crash/core/common/crash_key.h"
 #include "media/base/limits.h"
 #include "ui/gfx/geometry/rect.h"
 #include "ui/gl/gl_context.h"
@@ -178,6 +181,28 @@
   if (!image_config.get())
     return false;
 
+  // TODO(crbug.com/871280): Remove this once crash is resolved.
+  static crash_reporter::CrashKeyString<64> vt_decode_pref("vt_decode_pref");
+  static crash_reporter::CrashKeyString<64> hardware_interlaced_pref(
+      "hardware_interlaced");
+
+  base::ScopedCFTypeRef<CFPropertyListRef> prop_list(CFPreferencesCopyAppValue(
+      CFSTR("VTDecodeServer"), CFSTR("com.apple.coremedia")));
+  if (prop_list.get() && CFGetTypeID(prop_list) == CFStringGetTypeID()) {
+    vt_decode_pref.Set(
+        base::SysCFStringRefToUTF8(static_cast<CFStringRef>(prop_list.get())));
+  }
+
+  base::ScopedCFTypeRef<CFPropertyListRef> interlaced_value(
+      CFPreferencesCopyValue(CFSTR("hardwareVideoDecoderInterlacedBypass"),
+                             CFSTR("com.apple.coremedia"),
+                             kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
+  if (interlaced_value.get() &&
+      CFGetTypeID(interlaced_value) == CFStringGetTypeID()) {
+    hardware_interlaced_pref.Set(base::SysCFStringRefToUTF8(
+        static_cast<CFStringRef>(interlaced_value.get())));
+  }
+
   VTDecompressionOutputCallbackRecord callback = {0};
 
   base::ScopedCFTypeRef<VTDecompressionSessionRef> session;
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index 4a953ac..226b22a 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -45,9 +45,9 @@
     const HttpNetworkSession::Context& context,
     SSLClientSessionCache* ssl_client_session_cache) {
   return SSLClientSocketContext(
-      context.cert_verifier, context.channel_id_service,
-      context.transport_security_state, context.cert_transparency_verifier,
-      context.ct_policy_enforcer, ssl_client_session_cache);
+      context.cert_verifier, context.transport_security_state,
+      context.cert_transparency_verifier, context.ct_policy_enforcer,
+      ssl_client_session_cache);
 }
 
 }  // unnamed namespace
@@ -146,7 +146,6 @@
     : client_socket_factory(nullptr),
       host_resolver(nullptr),
       cert_verifier(nullptr),
-      channel_id_service(nullptr),
       transport_security_state(nullptr),
       cert_transparency_verifier(nullptr),
       ct_policy_enforcer(nullptr),
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index 0c5ccdd..b3c4501ed 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -53,7 +53,6 @@
 
 class CTPolicyEnforcer;
 class CertVerifier;
-class ChannelIDService;
 class ClientSocketFactory;
 class ClientSocketPoolManager;
 class CTVerifier;
@@ -250,7 +249,6 @@
     ClientSocketFactory* client_socket_factory;
     HostResolver* host_resolver;
     CertVerifier* cert_verifier;
-    ChannelIDService* channel_id_service;
     TransportSecurityState* transport_security_state;
     CTVerifier* cert_transparency_verifier;
     CTPolicyEnforcer* ct_policy_enforcer;
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h
index 736c98f..61284b0b 100644
--- a/net/http/http_network_transaction.h
+++ b/net/http/http_network_transaction.h
@@ -31,7 +31,6 @@
 #include "net/net_buildflags.h"
 #include "net/proxy_resolution/proxy_resolution_service.h"
 #include "net/socket/connection_attempts.h"
-#include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_config_service.h"
 #include "net/websockets/websocket_handshake_stream_base.h"
 
@@ -140,7 +139,6 @@
   FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest, ResetStateForRestart);
   FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest,
                            CreateWebSocketHandshakeStream);
-  FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionSSLTest, ChannelID);
   FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest, WindowUpdateReceived);
   FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest, WindowUpdateSent);
   FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest, WindowUpdateOverflow);
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 2e43947c..e2591db 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -95,7 +95,6 @@
 #include "net/spdy/spdy_session.h"
 #include "net/spdy/spdy_session_pool.h"
 #include "net/spdy/spdy_test_util_common.h"
-#include "net/ssl/default_channel_id_store.h"
 #include "net/ssl/ssl_cert_request_info.h"
 #include "net/ssl/ssl_config_service.h"
 #include "net/ssl/ssl_info.h"
diff --git a/net/quic/quic_end_to_end_unittest.cc b/net/quic/quic_end_to_end_unittest.cc
index 787220d..d9b9de53 100644
--- a/net/quic/quic_end_to_end_unittest.cc
+++ b/net/quic/quic_end_to_end_unittest.cc
@@ -30,7 +30,6 @@
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
 #include "net/proxy_resolution/proxy_resolution_service.h"
-#include "net/ssl/default_channel_id_store.h"
 #include "net/ssl/ssl_config_service_defaults.h"
 #include "net/test/cert_test_util.h"
 #include "net/test/gtest_util.h"
@@ -131,9 +130,6 @@
     session_context_.ssl_config_service = ssl_config_service_.get();
     session_context_.http_auth_handler_factory = auth_handler_factory_.get();
     session_context_.http_server_properties = &http_server_properties_;
-    channel_id_service_.reset(
-        new ChannelIDService(new DefaultChannelIDStore(nullptr)));
-    session_context_.channel_id_service = channel_id_service_.get();
 
     CertVerifyResult verify_result;
     verify_result.verified_cert =
@@ -237,7 +233,6 @@
   std::unique_ptr<MockHostResolver> host_resolver_impl_;
   MappedHostResolver host_resolver_;
   MockCertVerifier cert_verifier_;
-  std::unique_ptr<ChannelIDService> channel_id_service_;
   TransportSecurityState transport_security_state_;
   std::unique_ptr<CTVerifier> cert_transparency_verifier_;
   DefaultCTPolicyEnforcer ct_policy_enforcer_;
diff --git a/net/socket/fuzzed_socket_factory.cc b/net/socket/fuzzed_socket_factory.cc
index d8ecfe2..1e933ab 100644
--- a/net/socket/fuzzed_socket_factory.cc
+++ b/net/socket/fuzzed_socket_factory.cc
@@ -85,16 +85,6 @@
   void GetSSLCertRequestInfo(
       SSLCertRequestInfo* cert_request_info) const override {}
 
-  ChannelIDService* GetChannelIDService() const override {
-    NOTREACHED();
-    return nullptr;
-  }
-
-  crypto::ECPrivateKey* GetChannelIDKey() const override {
-    NOTREACHED();
-    return nullptr;
-  }
-
   void ApplySocketTag(const net::SocketTag& tag) override {}
 
   // SSLSocket implementation:
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
index 8e58abf..d780a3b 100644
--- a/net/socket/socket_test_util.cc
+++ b/net/socket/socket_test_util.cc
@@ -323,7 +323,6 @@
     : connect(mode, result),
       next_proto(kProtoUnknown),
       cert_request_info(nullptr),
-      channel_id_service(nullptr),
       expected_ssl_version_min(kDefaultSSLVersionMin),
       expected_ssl_version_max(kDefaultSSLVersionMax) {
   SSLConnectionStatusSetVersion(SSL_CONNECTION_VERSION_TLS1_3,
@@ -1568,10 +1567,6 @@
   }
 }
 
-ChannelIDService* MockSSLClientSocket::GetChannelIDService() const {
-  return data_->channel_id_service;
-}
-
 int MockSSLClientSocket::ExportKeyingMaterial(const base::StringPiece& label,
                                               bool has_context,
                                               const base::StringPiece& context,
@@ -1581,11 +1576,6 @@
   return OK;
 }
 
-crypto::ECPrivateKey* MockSSLClientSocket::GetChannelIDKey() const {
-  NOTREACHED();
-  return nullptr;
-}
-
 void MockSSLClientSocket::RunCallbackAsync(CompletionOnceCallback callback,
                                            int result) {
   base::ThreadTaskRunnerHandle::Get()->PostTask(
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h
index 6b023b906..55dcb924 100644
--- a/net/socket/socket_test_util.h
+++ b/net/socket/socket_test_util.h
@@ -69,7 +69,6 @@
 };
 
 class AsyncSocket;
-class ChannelIDService;
 class MockClientSocket;
 class SSLClientSocket;
 class StreamSocket;
@@ -454,7 +453,6 @@
   // Result for GetSSLCertRequestInfo().
   SSLCertRequestInfo* cert_request_info;
 
-  ChannelIDService* channel_id_service;
   base::Optional<NextProtoVector> next_protos_expected_in_ssl_config;
 
   uint16_t expected_ssl_version_min;
@@ -910,8 +908,6 @@
   bool GetSSLInfo(SSLInfo* ssl_info) override;
   void GetSSLCertRequestInfo(
       SSLCertRequestInfo* cert_request_info) const override;
-  ChannelIDService* GetChannelIDService() const override;
-  crypto::ECPrivateKey* GetChannelIDKey() const override;
   void ApplySocketTag(const SocketTag& tag) override;
   const NetLogWithSource& NetLog() const override;
   void GetConnectionAttempts(ConnectionAttempts* out) const override;
diff --git a/net/socket/ssl_client_socket.cc b/net/socket/ssl_client_socket.cc
index b31192e..d5eebe53 100644
--- a/net/socket/ssl_client_socket.cc
+++ b/net/socket/ssl_client_socket.cc
@@ -10,7 +10,6 @@
 #include "crypto/ec_private_key.h"
 #include "net/base/net_errors.h"
 #include "net/socket/ssl_client_socket_impl.h"
-#include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_config_service.h"
 #include "net/ssl/ssl_key_logger.h"
 
diff --git a/net/socket/ssl_client_socket.h b/net/socket/ssl_client_socket.h
index 9b346bb..f0de4c1 100644
--- a/net/socket/ssl_client_socket.h
+++ b/net/socket/ssl_client_socket.h
@@ -23,7 +23,6 @@
 
 class CTPolicyEnforcer;
 class CertVerifier;
-class ChannelIDService;
 class CTVerifier;
 class SSLClientSessionCache;
 class SSLKeyLogger;
@@ -34,20 +33,17 @@
 struct SSLClientSocketContext {
   SSLClientSocketContext() = default;
   SSLClientSocketContext(CertVerifier* cert_verifier_arg,
-                         ChannelIDService* channel_id_service_arg,
                          TransportSecurityState* transport_security_state_arg,
                          CTVerifier* cert_transparency_verifier_arg,
                          CTPolicyEnforcer* ct_policy_enforcer_arg,
                          SSLClientSessionCache* ssl_client_session_cache_arg)
       : cert_verifier(cert_verifier_arg),
-        channel_id_service(channel_id_service_arg),
         transport_security_state(transport_security_state_arg),
         cert_transparency_verifier(cert_transparency_verifier_arg),
         ct_policy_enforcer(ct_policy_enforcer_arg),
         ssl_client_session_cache(ssl_client_session_cache_arg) {}
 
   CertVerifier* cert_verifier = nullptr;
-  ChannelIDService* channel_id_service = nullptr;
   TransportSecurityState* transport_security_state = nullptr;
   CTVerifier* cert_transparency_verifier = nullptr;
   CTPolicyEnforcer* ct_policy_enforcer = nullptr;
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index 0abb7fd0..f594e561 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -798,7 +798,6 @@
         ssl_client_session_cache_(
             new SSLClientSessionCache(SSLClientSessionCache::Config())),
         context_(cert_verifier_.get(),
-                 nullptr /* channel_id_service */,
                  transport_security_state_.get(),
                  ct_verifier_.get(),
                  ct_policy_enforcer_.get(),
diff --git a/net/socket/ssl_connect_job_unittest.cc b/net/socket/ssl_connect_job_unittest.cc
index d6d174f3..efaaee2 100644
--- a/net/socket/ssl_connect_job_unittest.cc
+++ b/net/socket/ssl_connect_job_unittest.cc
@@ -85,7 +85,6 @@
         http_auth_handler_factory_(HttpAuthHandlerFactory::CreateDefault()),
         session_(CreateNetworkSession()),
         ssl_client_socket_context_(&cert_verifier_,
-                                   nullptr /* channel_id_service_arg */,
                                    &transport_security_state_,
                                    &ct_verifier_,
                                    &ct_policy_enforcer_,
diff --git a/net/socket/ssl_server_socket_unittest.cc b/net/socket/ssl_server_socket_unittest.cc
index 20f873f..0a4c466 100644
--- a/net/socket/ssl_server_socket_unittest.cc
+++ b/net/socket/ssl_server_socket_unittest.cc
@@ -423,7 +423,7 @@
 
     HostPortPair host_and_pair("unittest", 0);
     SSLClientSocketContext context(
-        cert_verifier_.get(), nullptr, transport_security_state_.get(),
+        cert_verifier_.get(), transport_security_state_.get(),
         ct_verifier_.get(), ct_policy_enforcer_.get(),
         ssl_client_session_cache_.get());
 
diff --git a/net/socket/stream_socket.cc b/net/socket/stream_socket.cc
index bf698ba..e9e2920 100644
--- a/net/socket/stream_socket.cc
+++ b/net/socket/stream_socket.cc
@@ -18,16 +18,6 @@
   NOTREACHED();
 }
 
-ChannelIDService* StreamSocket::GetChannelIDService() const {
-  NOTREACHED();
-  return nullptr;
-}
-
-crypto::ECPrivateKey* StreamSocket::GetChannelIDKey() const {
-  NOTREACHED();
-  return nullptr;
-}
-
 StreamSocket::SocketMemoryStats::SocketMemoryStats()
     : total_size(0), buffer_size(0), cert_count(0), cert_size(0) {}
 
diff --git a/net/socket/stream_socket.h b/net/socket/stream_socket.h
index 8657bce8..e93b9c1 100644
--- a/net/socket/stream_socket.h
+++ b/net/socket/stream_socket.h
@@ -15,13 +15,8 @@
 #include "net/socket/next_proto.h"
 #include "net/socket/socket.h"
 
-namespace crypto {
-class ECPrivateKey;
-}
-
 namespace net {
 
-class ChannelIDService;
 class IPEndPoint;
 class NetLogWithSource;
 class SSLCertRequestInfo;
@@ -150,17 +145,6 @@
   virtual void GetSSLCertRequestInfo(
       SSLCertRequestInfo* cert_request_info) const;
 
-  // Returns the ChannelIDService used by this socket, or NULL if
-  // channel ids are not supported.  Must not be called on a socket that does
-  // not support SSL.
-  virtual ChannelIDService* GetChannelIDService() const;
-
-  // This method is only for debugging https://crbug.com/548423 and will be
-  // removed when that bug is closed. This returns the channel ID key that was
-  // used when establishing the connection (or NULL if no channel ID was used).
-  // Must not be called on a socket that does not support SSL.
-  virtual crypto::ECPrivateKey* GetChannelIDKey() const;
-
   // Overwrites |out| with the connection attempts made in the process of
   // connecting this socket.
   virtual void GetConnectionAttempts(ConnectionAttempts* out) const = 0;
diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc
index bc9968c..846a9120 100644
--- a/net/spdy/spdy_test_util_common.cc
+++ b/net/spdy/spdy_test_util_common.cc
@@ -323,7 +323,6 @@
     std::unique_ptr<ProxyResolutionService> proxy_resolution_service)
     : host_resolver(std::make_unique<MockCachingHostResolver>()),
       cert_verifier(std::make_unique<MockCertVerifier>()),
-      channel_id_service(nullptr),
       transport_security_state(std::make_unique<TransportSecurityState>()),
       cert_transparency_verifier(std::make_unique<DoNothingCTVerifier>()),
       ct_policy_enforcer(std::make_unique<DefaultCTPolicyEnforcer>()),
@@ -405,7 +404,6 @@
   context.client_socket_factory = session_deps->socket_factory.get();
   context.host_resolver = session_deps->GetHostResolver();
   context.cert_verifier = session_deps->cert_verifier.get();
-  context.channel_id_service = session_deps->channel_id_service.get();
   context.transport_security_state =
       session_deps->transport_security_state.get();
   context.cert_transparency_verifier =
diff --git a/net/spdy/spdy_test_util_common.h b/net/spdy/spdy_test_util_common.h
index 25797eb6..def43e7 100644
--- a/net/spdy/spdy_test_util_common.h
+++ b/net/spdy/spdy_test_util_common.h
@@ -208,7 +208,6 @@
   // For using a HostResolver not derived from MockHostResolverBase.
   std::unique_ptr<HostResolver> alternate_host_resolver;
   std::unique_ptr<CertVerifier> cert_verifier;
-  std::unique_ptr<ChannelIDService> channel_id_service;
   std::unique_ptr<TransportSecurityState> transport_security_state;
   std::unique_ptr<CTVerifier> cert_transparency_verifier;
   std::unique_ptr<CTPolicyEnforcer> ct_policy_enforcer;
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc
index 1594cd4..0c11ad2 100644
--- a/net/url_request/url_request_test_util.cc
+++ b/net/url_request/url_request_test_util.cc
@@ -141,7 +141,6 @@
     session_context.http_auth_handler_factory = http_auth_handler_factory();
     session_context.http_server_properties = http_server_properties();
     session_context.net_log = net_log();
-    session_context.channel_id_service = channel_id_service();
 #if BUILDFLAG(ENABLE_REPORTING)
     session_context.network_error_logging_service =
         network_error_logging_service();
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb
index 87b115fe2..9129e0b 100644
--- a/remoting/resources/remoting_strings_te.xtb
+++ b/remoting/resources/remoting_strings_te.xtb
@@ -8,9 +8,9 @@
 <translation id="1199593201721843963">రిమోట్ కనెక్షన్‌లను నిలిపివేయి</translation>
 <translation id="1291443878853470558">మీరు ఈ కంప్యూటర్‌ను యాక్సెస్ చేయడానికి Chromotingను ఉపయోగించాలనుకుంటే మీరు రిమోట్ కనెక్షన్‌లను తప్పనిసరిగా ప్రారంభించాలి.</translation>
 <translation id="1297009705180977556"><ph name="HOSTNAME" />కు కనెక్ట్ చేయడంలో ఎర్రర్</translation>
-<translation id="1300633907480909701">మీ Android పరికరం నుండి మీ కంప్యూటర్‌లను సురక్షితంగా యాక్సెస్‌ చేయండి.
+<translation id="1300633907480909701">మీ Android పరికరం నుండి మీ కంప్యూటర్‌లను సురక్షితంగా యాక్సెస్ చేయండి.
 
-• Chrome వెబ్ స్టోర్‌లోని Chrome రిమోట్ డెస్క్‌టాప్ యాప్‌ను ఉపయోగించి, మీ ప్రతి కంప్యూటర్‌లో రిమోట్ యాక్సెస్‌ను సెటప్ చేయండి: https://chrome.google.com/remotedesktop
+• మీ కంప్యూటర్‌లలో ప్రతిదానిలోనూ, Chrome వెబ్ స్టోర్‌లోని Chrome రిమోట్ డెస్క్‌టాప్ యాప్‌ను ఉపయోగించి రిమోట్ యాక్సెస్‌ను సెటప్ చేయండి: https://chrome.google.com/remotedesktop
 • మీ Android పరికరంలో, యాప్‌ను తెరిచి, కనెక్ట్ చేయడానికి మీ ఆన్‌లైన్ కంప్యూటర్‌లలో దేనిపైన అయినా నొక్కండి.
 
 US-ఆంగ్ల యేతర కీబోర్డ్‌లు కలిగి ఉన్న రిమోట్ కంప్యూటర్‌లు చెల్లని వచన ఇన్‌పుట్‌ను స్వీకరించవచ్చు. ఇతర కీబోర్డ్ లేఅవుట్‌లకు త్వరలోనే మద్దతు అందించబడుతుంది!
@@ -33,7 +33,7 @@
 <translation id="1742469581923031760">కనెక్ట్ చేస్తోంది…</translation>
 <translation id="1770394049404108959">నేను అప్లికేషన్‌ను తెరవలేకపోతున్నాను.</translation>
 <translation id="177096447311351977">ఈ క్లయింట్ కోసం ఛానెల్ IP: <ph name="CLIENT_GAIA_IDENTIFIER" /> ip='<ph name="CLIENT_IP_ADDRESS_AND_PORT" />' host_ip='<ph name="HOST_IP_ADDRESS_AND_PORT" />' channel='<ph name="CHANNEL_TYPE" />' connection='<ph name="CONNECTION_TYPE" />'.</translation>
-<translation id="1779766957982586368">విండోను ముసివేయి</translation>
+<translation id="1779766957982586368">విండోను మూసివేస్తుంది</translation>
 <translation id="1841799852846221389">ఈ కంప్యూటర్ కోసం రిమోట్ కనెక్షన్‌లను నిలిపివేస్తోంది…</translation>
 <translation id="1897488610212723051">తొలగించు</translation>
 <translation id="195619862187186579">కీబోర్డ్ లేఅవుట్‌లు</translation>
@@ -53,11 +53,11 @@
 
 గోప్యత గురించిన సమాచారం కోసం, దయచేసి Google గోప్యతా విధానాన్ని (http://goo.gl/SyrVzj) మరియు Chrome గోప్యతా విధానాన్ని (http://goo.gl/0uXE5d) చూడండి.</translation>
 <translation id="2124408767156847088">మీ Android పరికరం నుండి మీ కంప్యూటర్‌లను సురక్షితంగా యాక్సెస్‌ చేయండి.</translation>
-<translation id="2208514473086078157">విధాన సెట్టింగ్‌లు ఈ కంప్యూటర్‌ను Chrome రిమోట్ డెస్క్‌టాప్ హోస్ట్ లాగా షేర్‌ చేయడానికి అనుమతించవు. సహాయం కోసం సిస్టమ్ నిర్వాహకుని సంప్రదించండి.</translation>
+<translation id="2208514473086078157">ఈ కంప్యూటర్‌ను Chrome రిమోట్ డెస్క్‌టాప్ హోస్ట్ లాగా షేర్ చేయడానికి విధాన సెట్టింగ్‌లు అనుమతించవు. సహాయం కోసం సిస్టమ్ నిర్వాహకుడిని సంప్రదించండి.</translation>
 <translation id="2220529011494928058">సమస్యను నివేదించండి</translation>
 <translation id="2221097377466213233">Win కీ (Macలో ⌘) కోసం కుడి Ctrl ఉపయోగించండి</translation>
 <translation id="2235518894410572517">ఈ కంప్యూటర్‌ను మరొక వినియోగదారు చూడటానికి మరియు నియంత్రించడానికి షేర్‌ చేయండి.</translation>
-<translation id="2246783206985865117">ఈ సెట్టింగ్ మీ డొమైన్ విధానం ద్వారా నిర్వహించబడుతోంది.</translation>
+<translation id="2246783206985865117">ఈ సెట్టింగ్‌ను మీ డొమైన్ విధానం నిర్వహిస్తోంది.</translation>
 <translation id="2256115617011615191">ఇప్పుడే పునఃప్రారంభించు</translation>
 <translation id="225614027745146050">స్వాగతం</translation>
 <translation id="228809120910082333">దయచేసి Chromoting ద్వారా యాక్సెస్‌ను అనుమతించడానికి దిగువ మీ ఖాతా మరియు PINను నిర్ధారించండి.</translation>
@@ -72,7 +72,7 @@
 <translation id="2405928220797050937">ఈ యాప్‌కు మద్దతు లేదు. మీరు తాజా ఫీచర్‌లు మరియు భద్రతా అప్‌డేట్‌లను పొందుతున్నట్లు నిర్ధారించుకోవడం కోసం, దయచేసి <ph name="LINK_BEGIN" />Chrome రిమోట్ డెస్క్‌టాప్ వెబ్ యాప్‌‌<ph name="LINK_END" /> ఉపయోగించండి.</translation>
 <translation id="2499160551253595098">వినియోగ గణాంకాలను మరియు క్రాష్ నివేదికలను సేకరించడానికి మమ్మల్ని అనుమతించడం ద్వారా Chrome రిమోట్ డెస్క్‌టాప్‌ను మెరుగుపరచడంలో మాకు సహాయపడండి.</translation>
 <translation id="2509394361235492552"><ph name="HOSTNAME" />కి కనెక్ట్ అయ్యింది</translation>
-<translation id="2512228156274966424">గమనిక: అన్ని కీబోర్డ్ షార్ట్‌క‌ట్‌లు అందుబాటులో ఉన్నాయని నిర్ధారించుకోవడానికి, మీరు Chrome రిమోట్ డెస్క్‌టాప్‌ను ‘విండోగా తెరువు’కు కాన్ఫిగర్ చేయవచ్చు.</translation>
+<translation id="2512228156274966424">గమనిక: అన్ని కీబోర్డ్ షార్ట్‌కట్‌లు అందుబాటులో ఉన్నాయని నిర్ధారించుకోవడానికి, మీరు Chrome రిమోట్ డెస్క్‌టాప్‌ను ‘విండోగా తెరువు’కు కాన్ఫిగర్ చేయవచ్చు.</translation>
 <translation id="2540992418118313681">మీరు ఈ కంప్యూటర్‌ను మరో వినియోగదారు చూడటానికి మరియు నియంత్రించడానికి దీన్ని షేర్‌ చేయాలని అనుకుంటున్నారా?</translation>
 <translation id="2579271889603567289">హోస్ట్ క్రాష్ అయింది లేదా ప్రారంభించడంలో విఫలమైంది.</translation>
 <translation id="2599300881200251572">ఈ సేవ Chrome రిమోట్ డెస్క్‌టాప్ క్లయింట్‌ల నుండి ఇన్‌కమింగ్ కనెక్షన్‌లను అనుమతిస్తుంది.</translation>
@@ -116,15 +116,15 @@
 <translation id="3362124771485993931">PINను మళ్లీ టైప్ చేయండి</translation>
 <translation id="337167041784729019">గణాంకాలను చూపు</translation>
 <translation id="3385242214819933234">చెల్లని హోస్ట్ యజమాని.</translation>
-<translation id="3403830762023901068">ఈ కంప్యూటర్‌ను Chromoting హోస్ట్ లాగా షేర్‌ చేయడానికి విధాన సెట్టింగ్‌లు అనుమతించవు. సహాయం కోసం మీ సిస్టమ్ నిర్వాహకుని సంప్రదించండి.</translation>
+<translation id="3403830762023901068">ఈ కంప్యూటర్‌ను Chromoting హోస్ట్ లాగా షేర్ చేయడానికి విధాన సెట్టింగ్‌లు అనుమతించవు. సహాయం కోసం మీ సిస్టమ్ నిర్వాహకుని సంప్రదించండి.</translation>
 <translation id="3423542133075182604">భద్రతా కీ రిమోటింగ్ ప్రాసెస్</translation>
 <translation id="3581045510967524389">నెట్‌వర్క్‌కు కనెక్ట్ చేయడం సాధ్యపడలేదు. దయచేసి మీ పరికరం ఆన్‌లైన్‌లో ఉందా? అని తనిఖీ చేయండి.</translation>
 <translation id="3596628256176442606">ఈ సేవ Chromoting క్లయింట్‌ల నుండి ఇన్‌కమింగ్ కనెక్షన్‌లను అనుమతిస్తుంది.</translation>
 <translation id="3606997049964069799">మీరు Chromiumకు సైన్ ఇన్ చేయలేదు. దయచేసి సైన్ ఇన్ చేసి, మళ్లీ ప్రయత్నించండి.</translation>
-<translation id="3649256019230929621">విండోను కనిష్టీకరించు</translation>
+<translation id="3649256019230929621">విండోను కుదించు</translation>
 <translation id="369442766917958684">ఆఫ్‌లైన్‌లో ఉన్నారు.</translation>
 <translation id="3695446226812920698">ఎలాగో తెలుసుకోండి</translation>
-<translation id="3718805989288361841">Chrome రిమోట్ డెస్క్‌టాప్ యొక్క విధాన సెట్టింగ్‌లలో ఎర్ర‌ర్‌ ఉంది. సహాయం కావాలంటే మీ సిస్టమ్ నిర్వాహకులను సంప్రదించండి.</translation>
+<translation id="3718805989288361841">Chrome రిమోట్ డెస్క్‌టాప్ యొక్క విధాన సెట్టింగ్‌లలో ఎర్రర్ ఉంది. సహాయం కోసం మీ సిస్టమ్ నిర్వాహకులను సంప్రదించండి.</translation>
 <translation id="3776024066357219166">మీ Chrome రిమోట్ డెస్క్‌టాప్ సెషన్ ముగిసింది.</translation>
 <translation id="3846148461359626420">• iPhone Xలో మరింత మెరుగ్గా ప్యాన్ చేసే, జూమ్ చేసే అనుభవం.
 • స్థిరత్వ మెరుగుదలలు మరియు బగ్ పరిష్కారాలు.</translation>
@@ -161,7 +161,7 @@
 <translation id="4472575034687746823">ప్రారంభించండి</translation>
 <translation id="4481276415609939789">మీరు నమోదు అయిన కంప్యూటర్‌లను కలిగి ఉండలేదు. కంప్యూటర్‌కు రిమోట్ కనెక్షన్‌లను ప్రారంభించడానికి, అక్కడ Chromotingను ఇన్‌స్టాల్ చేసి “<ph name="BUTTON_NAME" />”ను క్లిక్ చేయండి.</translation>
 <translation id="4513946894732546136">అభిప్రాయం</translation>
-<translation id="4517233780764084060">గమనిక: అన్ని కీబోర్డ్ షార్ట్‌క‌ట్‌లు అందుబాటులో ఉన్నాయని నిర్ధారించుకోవడానికి, మీరు Chromotingను ‘విండోగా తెరువు’కు కాన్ఫిగర్ చేయవచ్చు.</translation>
+<translation id="4517233780764084060">గమనిక: అన్ని కీబోర్డ్ షార్ట్‌కట్‌లు అందుబాటులో ఉన్నాయని నిర్ధారించుకోవడానికి, మీరు Chromotingను ‘విండోగా తెరువు’కు కాన్ఫిగర్ చేయవచ్చు.</translation>
 <translation id="4563926062592110512">ఈ క్లయింట్ డిస్‌కనెక్ట్ చేయబడ్డారు: <ph name="CLIENT_USERNAME" />.</translation>
 <translation id="4572065712096155137">యాక్సెస్ చేయి</translation>
 <translation id="4592037108270173918">మొబైల్ నెట్‌వర్క్‌పై పరికరానికి కనెక్ట్ చేస్తున్నప్పుడు డేటా ఛార్జీలు విధించబడతాయి. మీరు కొనసాగించాలని అనుకుంటున్నారా?</translation>
@@ -228,7 +228,7 @@
 <translation id="5823658491130719298">మీరు రిమోట్‌గా యాక్సెస్ చేయాలనుకుంటున్న కంప్యూటర్‌లో Chromeను తెరిచి, <ph name="INSTALLATION_LINK" />ను సందర్శించండి</translation>
 <translation id="5841343754884244200">ప్రదర్శన ఎంపికలు</translation>
 <translation id="5843054235973879827">ఇది ఎందుకు సురక్షితం?</translation>
-<translation id="5859141382851488196">కొత్త విండో...</translation>
+<translation id="5859141382851488196">కొత్త విండో…</translation>
 <translation id="6011539954251327702">Chromoting వెబ్‌లో మీ కంప్యూటర్‌ను సురక్షితంగా షేర్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. వినియోగదారులు ఇద్దరూ తప్పనిసరిగా <ph name="URL" />లో కనుగొనబడే Chromoting యాప్‌ను అమలు చేస్తుండాలి.</translation>
 <translation id="6033507038939587647">కీబోర్డ్ ఎంపికలు</translation>
 <translation id="6040143037577758943">మూసివేయి</translation>
@@ -271,7 +271,7 @@
 <translation id="6913710942997637770">ప్రొఫైల్ చిత్రాన్ని ఎంచుకోవడానికి, మీ ఫోటోలను యాక్సెస్ చేయడానికి Chrome రిమోట్ డెస్క్‌టాప్‌ని అనుమతించండి</translation>
 <translation id="6930242544192836755">వ్యవధి</translation>
 <translation id="6939719207673461467">కీబోర్డ్‌ని చూపు/దాచు.</translation>
-<translation id="6944854424004126054">పునరుద్ధరణ విండో</translation>
+<translation id="6944854424004126054">విండోను పునరుద్ధరించండి</translation>
 <translation id="6948905685698011662">Chrome రిమోట్ డెస్క్‌టాప్ ఇప్పుడు వెబ్‌లో ఉంది! మా <ph name="LINK_BEGIN" />ఉచిత వెబ్ యాప్‌<ph name="LINK_END" />ను పరిశీలించండి.</translation>
 <translation id="6963936880795878952">ఒకరు చెల్లని PINతో రిమోట్ కంప్యూటర్‌కు కనెక్ట్ చేయడానికి ప్రయత్నిస్తున్నందున, దీనికి కనెక్షన్‌లు తాత్కాలికంగా బ్లాక్ చేయబడ్డాయి. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="6965382102122355670">సరే</translation>
@@ -350,7 +350,7 @@
 <translation id="897805526397249209">వేరొక కంప్యూటర్‌కు రిమోట్ కనెక్షన్‌లను ప్రారంభించడానికి, అక్కడ Chromotingను ఇన్‌స్టాల్ చేసి “<ph name="BUTTON_NAME" />”ను క్లిక్ చేయండి.</translation>
 <translation id="8998327464021325874">Chrome రిమోట్ డెస్క్‌టాప్ హోస్ట్ కంట్రోలర్</translation>
 <translation id="9016232822027372900">ఏదేమైనా కనెక్ట్ చేయి</translation>
-<translation id="906458777597946297">విండోను గరిష్టీకరించు</translation>
+<translation id="906458777597946297">విండోను విస్తరించు</translation>
 <translation id="9111855907838866522">మీరు మీ రిమోట్ పరికరానికి కనెక్ట్ అయ్యారు. మెనూను తెరవడానికి, దయచేసి నాలుగు వేళ్లతో స్క్రీన్‌పై నొక్కండి.</translation>
 <translation id="9126115402994542723">మరోసారి ఈ పరికరం నుండి ఈ హోస్ట్‌కు కనెక్ట్ చేస్తున్నప్పుడు PINను అడగవద్దు.</translation>
 <translation id="9149580767411232853">మొత్తం రిమోట్ డెస్క్‌టాప్‌ను కనిపించేలా ఉంచుతుంది</translation>
diff --git a/services/identity/public/cpp/identity_manager.cc b/services/identity/public/cpp/identity_manager.cc
index b3bf7a5..9db903cf 100644
--- a/services/identity/public/cpp/identity_manager.cc
+++ b/services/identity/public/cpp/identity_manager.cc
@@ -390,6 +390,10 @@
   return account_tracker_service_;
 }
 
+AccountFetcherService* IdentityManager::GetAccountFetcherService() {
+  return account_fetcher_service_;
+}
+
 GaiaCookieManagerService* IdentityManager::GetGaiaCookieManagerService() {
   return gaia_cookie_manager_service_;
 }
diff --git a/services/identity/public/cpp/identity_manager.h b/services/identity/public/cpp/identity_manager.h
index 266f726..b6a72a0 100644
--- a/services/identity/public/cpp/identity_manager.h
+++ b/services/identity/public/cpp/identity_manager.h
@@ -44,6 +44,7 @@
 
 class AccountsMutator;
 class AccountsCookieMutator;
+class IdentityTestEnvironment;
 class DiagnosticsProvider;
 class PrimaryAccountMutator;
 enum class ClearPrimaryAccountPolicy;
@@ -520,6 +521,11 @@
   // TODO(https://crbug.com/889902): Delete this when conversion is done.
   friend SigninManagerAndroid;
 
+  // Temporary access to getters (e.g. GetTokenService()).
+  // TODO(https://crbug.com/944127): Remove this friendship by
+  // extending identity_test_utils.h as needed.
+  friend IdentityTestEnvironment;
+
   // IdentityManagerTest reaches into IdentityManager internals in
   // order to drive its behavior.
   // TODO(https://crbug.com/943135): Find a better way to accomplish this.
@@ -539,6 +545,7 @@
   SigninManagerBase* GetSigninManager();
   ProfileOAuth2TokenService* GetTokenService();
   AccountTrackerService* GetAccountTrackerService();
+  AccountFetcherService* GetAccountFetcherService();
   GaiaCookieManagerService* GetGaiaCookieManagerService();
 
   // Populates and returns an AccountInfo object corresponding to |account_id|,
diff --git a/services/identity/public/cpp/identity_test_environment.cc b/services/identity/public/cpp/identity_test_environment.cc
index dde8a50..1247dd2 100644
--- a/services/identity/public/cpp/identity_test_environment.cc
+++ b/services/identity/public/cpp/identity_test_environment.cc
@@ -143,8 +143,7 @@
     signin::AccountConsistencyMethod account_consistency,
     std::unique_ptr<IdentityManagerDependenciesOwner> dependencies_owner,
     IdentityManager* identity_manager)
-    : pref_service_(pref_service),
-      test_url_loader_factory_(test_url_loader_factory),
+    : test_url_loader_factory_(test_url_loader_factory),
       weak_ptr_factory_(this) {
   DCHECK(base::ThreadTaskRunnerHandle::Get())
       << "IdentityTestEnvironment requires a properly set up task environment. "
@@ -154,16 +153,14 @@
 
   TestSigninClient* test_signin_client = nullptr;
   if (dependencies_owner) {
-    DCHECK(!(pref_service_ || account_tracker_service ||
-             account_fetcher_service || token_service ||
-             gaia_cookie_manager_service || identity_manager));
+    DCHECK(!(account_tracker_service || account_fetcher_service ||
+             token_service || gaia_cookie_manager_service || identity_manager));
 
     dependencies_owner_ = std::move(dependencies_owner);
     test_signin_client = dependencies_owner_->signin_client();
     sync_preferences::TestingPrefServiceSyncable* test_pref_service =
         dependencies_owner_->pref_service();
-
-    pref_service_ = test_pref_service;
+    pref_service = test_pref_service;
 
     AccountTrackerService::RegisterPrefs(test_pref_service->registry());
     AccountFetcherService::RegisterPrefs(test_pref_service->registry());
@@ -174,23 +171,23 @@
 
     owned_token_service_ =
         std::make_unique<FakeProfileOAuth2TokenService>(test_pref_service);
-    token_service_ = owned_token_service_.get();
+    token_service = owned_token_service_.get();
 
     owned_account_tracker_service_ = std::make_unique<AccountTrackerService>();
     owned_account_tracker_service_->Initialize(test_pref_service,
                                                base::FilePath());
-    account_tracker_service_ = owned_account_tracker_service_.get();
+    account_tracker_service = owned_account_tracker_service_.get();
 
     owned_account_fetcher_service_ = std::make_unique<AccountFetcherService>();
     owned_account_fetcher_service_->Initialize(
-        test_signin_client, token_service_, account_tracker_service_,
+        test_signin_client, token_service, account_tracker_service,
         std::make_unique<image_fetcher::FakeImageDecoder>());
-    account_fetcher_service_ = owned_account_fetcher_service_.get();
+    account_fetcher_service = owned_account_fetcher_service_.get();
 
     if (test_url_loader_factory != nullptr) {
       owned_gaia_cookie_manager_service_ =
           std::make_unique<GaiaCookieManagerService>(
-              token_service_, test_signin_client,
+              token_service, test_signin_client,
               base::BindRepeating(
                   [](network::TestURLLoaderFactory* test_url_loader_factory)
                       -> scoped_refptr<network::SharedURLLoaderFactory> {
@@ -199,20 +196,12 @@
                   test_url_loader_factory));
     } else {
       owned_gaia_cookie_manager_service_ =
-          std::make_unique<GaiaCookieManagerService>(token_service_,
+          std::make_unique<GaiaCookieManagerService>(token_service,
                                                      test_signin_client);
     }
-    gaia_cookie_manager_service_ = owned_gaia_cookie_manager_service_.get();
+    gaia_cookie_manager_service = owned_gaia_cookie_manager_service_.get();
   } else {
-    DCHECK(pref_service_ && account_tracker_service &&
-           account_fetcher_service && token_service &&
-           gaia_cookie_manager_service);
-
-    account_tracker_service_ = account_tracker_service;
-    account_fetcher_service_ = account_fetcher_service;
-    token_service_ = token_service;
-    gaia_cookie_manager_service_ = gaia_cookie_manager_service;
-    owned_signin_client_ = std::make_unique<TestSigninClient>(pref_service_);
+    owned_signin_client_ = std::make_unique<TestSigninClient>(pref_service);
     test_signin_client = owned_signin_client_.get();
   }
 
@@ -228,43 +217,45 @@
   if (identity_manager) {
     raw_identity_manager_ = identity_manager;
   } else {
+    DCHECK(pref_service && account_tracker_service && account_fetcher_service &&
+           token_service && gaia_cookie_manager_service);
 #if defined(OS_CHROMEOS)
     std::unique_ptr<SigninManagerBase> signin_manager =
-        std::make_unique<SigninManagerBase>(test_signin_client, token_service_,
-                                            account_tracker_service_);
+        std::make_unique<SigninManagerBase>(test_signin_client, token_service,
+                                            account_tracker_service);
 #else
     std::unique_ptr<SigninManagerBase> signin_manager =
-        std::make_unique<SigninManager>(test_signin_client, token_service_,
-                                        account_tracker_service_, nullptr,
+        std::make_unique<SigninManager>(test_signin_client, token_service,
+                                        account_tracker_service, nullptr,
                                         account_consistency);
 #endif
-    signin_manager->Initialize(pref_service_);
-
+    signin_manager->Initialize(pref_service);
     std::unique_ptr<PrimaryAccountMutator> primary_account_mutator;
     std::unique_ptr<AccountsMutator> accounts_mutator;
 
 #if !defined(OS_CHROMEOS)
     primary_account_mutator = std::make_unique<PrimaryAccountMutatorImpl>(
-        account_tracker_service_,
+        account_tracker_service,
         static_cast<SigninManager*>(signin_manager.get()));
 #endif
 
 #if !defined(OS_ANDROID) && !defined(OS_IOS)
     accounts_mutator = std::make_unique<AccountsMutatorImpl>(
-        token_service_, account_tracker_service_, signin_manager.get(),
-        pref_service_);
+        token_service, account_tracker_service, signin_manager.get(),
+        pref_service);
 #endif
+
     std::unique_ptr<DiagnosticsProvider> diagnostics_provider =
-        std::make_unique<DiagnosticsProviderImpl>(token_service_,
-                                                  gaia_cookie_manager_service_);
+        std::make_unique<DiagnosticsProviderImpl>(token_service,
+                                                  gaia_cookie_manager_service);
 
     std::unique_ptr<AccountsCookieMutator> accounts_cookie_mutator =
         std::make_unique<AccountsCookieMutatorImpl>(
-            gaia_cookie_manager_service_);
+            gaia_cookie_manager_service);
 
     owned_identity_manager_ = std::make_unique<IdentityManager>(
-        std::move(signin_manager), token_service_, account_fetcher_service_,
-        account_tracker_service_, gaia_cookie_manager_service_,
+        std::move(signin_manager), token_service, account_fetcher_service,
+        account_tracker_service, gaia_cookie_manager_service,
         std::move(primary_account_mutator), std::move(accounts_mutator),
         std::move(accounts_cookie_mutator), std::move(diagnostics_provider));
   }
@@ -295,6 +286,14 @@
                                : owned_identity_manager_.get();
 }
 
+FakeProfileOAuth2TokenService* IdentityTestEnvironment::fake_token_service() {
+  // We can't absolutely guarantee that IdentityTestEnvironment was not given an
+  // IdentityManager that uses a non-fake FakeProfileOAuth2TokenService. If that
+  // ever happens, this will blow up. There doesn't seem to be a better option.
+  return static_cast<FakeProfileOAuth2TokenService*>(
+      identity_manager()->GetTokenService());
+}
+
 TestIdentityManagerObserver*
 IdentityTestEnvironment::identity_manager_observer() {
   return test_identity_manager_observer_.get();
@@ -365,7 +364,7 @@
 }
 
 void IdentityTestEnvironment::SetAutomaticIssueOfAccessTokens(bool grant) {
-  token_service_->set_auto_post_fetch_response_on_message_loop(grant);
+  fake_token_service()->set_auto_post_fetch_response_on_message_loop(grant);
 }
 
 void IdentityTestEnvironment::
@@ -374,7 +373,7 @@
         const base::Time& expiration,
         const std::string& id_token) {
   WaitForAccessTokenRequestIfNecessary(base::nullopt);
-  token_service_->IssueTokenForAllPendingRequests(
+  fake_token_service()->IssueTokenForAllPendingRequests(
       OAuth2AccessTokenConsumer::TokenResponse(token, expiration, id_token));
 }
 
@@ -385,7 +384,7 @@
         const base::Time& expiration,
         const std::string& id_token) {
   WaitForAccessTokenRequestIfNecessary(account_id);
-  token_service_->IssueAllTokensForAccount(
+  fake_token_service()->IssueAllTokensForAccount(
       account_id,
       OAuth2AccessTokenConsumer::TokenResponse(token, expiration, id_token));
 }
@@ -397,7 +396,7 @@
         const std::string& id_token,
         const identity::ScopeSet& scopes) {
   WaitForAccessTokenRequestIfNecessary(base::nullopt);
-  token_service_->IssueTokenForScope(
+  fake_token_service()->IssueTokenForScope(
       scopes,
       OAuth2AccessTokenConsumer::TokenResponse(token, expiration, id_token));
 }
@@ -406,7 +405,7 @@
     WaitForAccessTokenRequestIfNecessaryAndRespondWithError(
         const GoogleServiceAuthError& error) {
   WaitForAccessTokenRequestIfNecessary(base::nullopt);
-  token_service_->IssueErrorForAllPendingRequests(error);
+  fake_token_service()->IssueErrorForAllPendingRequests(error);
 }
 
 void IdentityTestEnvironment::
@@ -414,7 +413,8 @@
         const std::string& account_id,
         const GoogleServiceAuthError& error) {
   WaitForAccessTokenRequestIfNecessary(account_id);
-  token_service_->IssueErrorForAllPendingRequestsForAccount(account_id, error);
+  fake_token_service()->IssueErrorForAllPendingRequestsForAccount(account_id,
+                                                                  error);
 }
 
 void IdentityTestEnvironment::SetCallbackForNextAccessTokenRequest(
@@ -508,15 +508,15 @@
 }
 
 void IdentityTestEnvironment::ResetToAccountsNotYetLoadedFromDiskState() {
-  token_service_->set_all_credentials_loaded_for_testing(false);
+  fake_token_service()->set_all_credentials_loaded_for_testing(false);
 }
 
 void IdentityTestEnvironment::ReloadAccountsFromDisk() {
-  token_service_->LoadCredentials("");
+  fake_token_service()->LoadCredentials("");
 }
 
 bool IdentityTestEnvironment::IsAccessTokenRequestPending() {
-  return token_service_->GetPendingRequests().size();
+  return fake_token_service()->GetPendingRequests().size();
 }
 
 void IdentityTestEnvironment::SetFreshnessOfAccountsInGaiaCookie(
@@ -526,7 +526,7 @@
 }
 
 void IdentityTestEnvironment::EnableRemovalOfExtendedAccountInfo() {
-  account_fetcher_service_->EnableAccountRemovalForTest();
+  identity_manager()->GetAccountFetcherService()->EnableAccountRemovalForTest();
 }
 
 void IdentityTestEnvironment::SimulateSuccessfulFetchOfAccountInfo(
@@ -548,7 +548,8 @@
   // GaiaCookieManagerService changes the visibility of inherited method
   // OnMergeSessionFailure from public to private. Cast to a base class
   // pointer to call the method.
-  static_cast<GaiaAuthConsumer*>(gaia_cookie_manager_service_)
+  static_cast<GaiaAuthConsumer*>(
+      identity_manager()->GetGaiaCookieManagerService())
       ->OnMergeSessionFailure(auth_error);
 }
 
diff --git a/services/identity/public/cpp/identity_test_environment.h b/services/identity/public/cpp/identity_test_environment.h
index 0828179..90ef9f0 100644
--- a/services/identity/public/cpp/identity_test_environment.h
+++ b/services/identity/public/cpp/identity_test_environment.h
@@ -75,6 +75,9 @@
   // The IdentityManager instance associated with this instance.
   IdentityManager* identity_manager();
 
+  // Returns the FakeProfileOAuth2TokenService owned by IdentityManager.
+  FakeProfileOAuth2TokenService* fake_token_service();
+
   // Returns the |TestIdentityManagerObserver| watching the IdentityManager.
   TestIdentityManagerObserver* identity_manager_observer();
 
@@ -352,16 +355,8 @@
   void WaitForAccessTokenRequestIfNecessary(
       base::Optional<std::string> account_id);
 
-  // NOTE: This object must be first in the list, as it owns the objects
-  // pointed to below in the case where those objects are not passed in via
-  // the IdentityTestEnvironment constructor.
+  // Owner of all dependencies that don't belong to IdentityManager.
   std::unique_ptr<IdentityManagerDependenciesOwner> dependencies_owner_;
-  PrefService* pref_service_ = nullptr;
-  AccountTrackerService* account_tracker_service_ = nullptr;
-  AccountFetcherService* account_fetcher_service_ = nullptr;
-  FakeProfileOAuth2TokenService* token_service_ = nullptr;
-  SigninManagerBase* signin_manager_ = nullptr;
-  GaiaCookieManagerService* gaia_cookie_manager_service_ = nullptr;
 
   // Used to set fake responses for cookie-related requests.
   // This can be null if no TestURLLoaderFactory was passed via the constructor.
diff --git a/services/media_session/public/cpp/test/test_media_controller.cc b/services/media_session/public/cpp/test/test_media_controller.cc
index f964563..4442b32 100644
--- a/services/media_session/public/cpp/test/test_media_controller.cc
+++ b/services/media_session/public/cpp/test/test_media_controller.cc
@@ -230,6 +230,14 @@
   }
 }
 
+void TestMediaController::SimulateMediaSessionInfoChanged(
+    mojom::MediaSessionInfoPtr session_info) {
+  observers_.ForAllPtrs(
+      [&session_info](mojom::MediaControllerObserver* observer) {
+        observer->MediaSessionInfoChanged(session_info.Clone());
+      });
+}
+
 void TestMediaController::SimulateMediaSessionActionsChanged(
     const std::vector<mojom::MediaSessionAction>& actions) {
   observers_.ForAllPtrs([&actions](mojom::MediaControllerObserver* observer) {
diff --git a/services/media_session/public/cpp/test/test_media_controller.h b/services/media_session/public/cpp/test/test_media_controller.h
index 67b39a46..b548b97 100644
--- a/services/media_session/public/cpp/test/test_media_controller.h
+++ b/services/media_session/public/cpp/test/test_media_controller.h
@@ -150,6 +150,7 @@
   int seek_backward_count() const { return seek_backward_count_; }
   int seek_forward_count() const { return seek_forward_count_; }
 
+  void SimulateMediaSessionInfoChanged(mojom::MediaSessionInfoPtr session_info);
   void SimulateMediaSessionActionsChanged(
       const std::vector<mojom::MediaSessionAction>& actions);
   void Flush();
diff --git a/services/network/proxy_resolving_client_socket_factory.cc b/services/network/proxy_resolving_client_socket_factory.cc
index 2c24dcac..7622f61 100644
--- a/services/network/proxy_resolving_client_socket_factory.cc
+++ b/services/network/proxy_resolving_client_socket_factory.cc
@@ -29,11 +29,6 @@
   session_context.cert_transparency_verifier =
       request_context->cert_transparency_verifier();
   session_context.ct_policy_enforcer = request_context->ct_policy_enforcer();
-  // TODO(rkn): This is NULL because ChannelIDService is not thread safe.
-  // TODO(mmenke):  The above comment makes no sense, as not a single one of
-  // these classes is thread safe. Figure out if the comment's wrong, or if this
-  // entire class is badly broken.
-  session_context.channel_id_service = NULL;
   session_context.proxy_resolution_service =
       request_context->proxy_resolution_service();
   session_context.proxy_delegate = request_context->proxy_delegate();
diff --git a/services/network/tls_socket_factory.cc b/services/network/tls_socket_factory.cc
index c3cb491..8843951f 100644
--- a/services/network/tls_socket_factory.cc
+++ b/services/network/tls_socket_factory.cc
@@ -49,7 +49,6 @@
     const net::HttpNetworkSession::Context* http_context)
     : ssl_client_socket_context_(
           url_request_context->cert_verifier(),
-          nullptr, /* TODO(rkn): ChannelIDService is not thread safe. */
           url_request_context->transport_security_state(),
           url_request_context->cert_transparency_verifier(),
           url_request_context->ct_policy_enforcer(),
diff --git a/testing/buildbot/chromium.chrome.json b/testing/buildbot/chromium.chrome.json
index 8842fbd..d70b590 100644
--- a/testing/buildbot/chromium.chrome.json
+++ b/testing/buildbot/chromium.chrome.json
@@ -5,5 +5,818 @@
     "additional_compile_targets": [
       "chrome"
     ]
+  },
+  "linux-chromeos-google-rel": {
+    "gtest_tests": [
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "accessibility_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "angle_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "app_list_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "app_shell_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ash_unittests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_ash_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ash_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "aura_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "base_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "blink_common_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "blink_fuzzer_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "blink_heap_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "blink_platform_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "name": "webkit_unit_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "blink_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "boringssl_crypto_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "boringssl_ssl_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 10
+        },
+        "test": "browser_tests"
+      },
+      {
+        "args": [
+          "--enable-features=Mash",
+          "--disable-features=SingleProcessMash",
+          "--override-use-software-gl-for-tests",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.mash.browser_tests.filter"
+        ],
+        "experiment_percentage": 100,
+        "name": "mash_browser_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "hard_timeout": 1800
+        },
+        "test": "browser_tests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash",
+          "--override-use-software-gl-for-tests"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_browser_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 10
+        },
+        "test": "browser_tests"
+      },
+      {
+        "args": [
+          "--enable-features=VizDisplayCompositor"
+        ],
+        "experiment_percentage": 100,
+        "name": "viz_browser_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 10
+        },
+        "test": "browser_tests"
+      },
+      {
+        "args": [
+          "--disable-features=WebUIPolymer2",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/webui_polymer1_browser_tests.filter"
+        ],
+        "experiment_percentage": 100,
+        "name": "webui_polymer1_browser_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 4
+        },
+        "test": "browser_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "cacheinvalidation_unittests"
+      },
+      {
+        "args": [
+          "--gtest_filter=-*UsingRealWebcam*"
+        ],
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "capture_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "cast_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "cc_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "chrome_app_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "chromedriver_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "chromeos_components_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "chromeos_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "components_browsertests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "components_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "compositor_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 6
+        },
+        "test": "content_browsertests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash",
+          "--override-use-software-gl-for-tests"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 5
+        },
+        "test": "content_browsertests"
+      },
+      {
+        "args": [
+          "--enable-perfetto",
+          "--gtest_filter=TracingControllerTest.*"
+        ],
+        "experiment_percentage": 100,
+        "name": "perfetto_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "content_browsertests"
+      },
+      {
+        "args": [
+          "--enable-features=VizDisplayCompositor"
+        ],
+        "experiment_percentage": 100,
+        "name": "viz_content_browsertests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 10
+        },
+        "test": "content_browsertests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "content_unittests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_content_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "content_unittests"
+      },
+      {
+        "args": [
+          "--enable-features=VizDisplayCompositor"
+        ],
+        "experiment_percentage": 100,
+        "name": "viz_content_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "content_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "crypto_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "dbus_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "device_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "display_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "events_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "exo_unittests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_exo_unittests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "exo_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "extensions_browsertests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "extensions_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "filesystem_service_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "gcm_unit_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "gfx_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "gin_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "gl_unittests_ozone"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "google_apis_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "gpu_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 3
+        },
+        "test": "interactive_ui_tests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_interactive_ui_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true,
+          "shards": 3
+        },
+        "test": "interactive_ui_tests"
+      },
+      {
+        "args": [
+          "--disable-features=WebUIPolymer2",
+          "--test-launcher-filter-file=../../testing/buildbot/filters/webui_polymer1_interactive_ui_tests.filter"
+        ],
+        "experiment_percentage": 100,
+        "name": "webui_polymer1_interactive_ui_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "interactive_ui_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ipc_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "jingle_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "keyboard_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "latency_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "leveldb_service_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "libjingle_xmpp_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "media_blink_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "media_service_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "media_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "message_center_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "midi_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "mojo_core_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "mojo_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "nacl_helper_nonsfi_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "nacl_loader_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "native_theme_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "net_unittests"
+      },
+      {
+        "args": [
+          "--ozone-platform=headless"
+        ],
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ozone_gl_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ozone_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ozone_x11_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "pdf_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "perfetto_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ppapi_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "printing_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "remoting_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "sandbox_linux_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "service_manager_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "services_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "shell_dialogs_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "skia_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "snapshot_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "sql_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "storage_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "sync_integration_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "traffic_annotation_auditor_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ui_base_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ui_chromeos_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "ui_touch_selection_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "unit_tests"
+      },
+      {
+        "args": [
+          "--disable-features=SingleProcessMash"
+        ],
+        "experiment_percentage": 100,
+        "name": "non_single_process_mash_unit_tests",
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "unit_tests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "url_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "usage_time_limit_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "views_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "viz_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "wayland_client_perftests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "wm_unittests"
+      },
+      {
+        "experiment_percentage": 100,
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "wtf_unittests"
+      }
+    ]
   }
 }
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json
index 7038e82..8ac5c7e 100644
--- a/testing/buildbot/chromium.clang.json
+++ b/testing/buildbot/chromium.clang.json
@@ -1400,8 +1400,7 @@
               "cpu": "x86-64",
               "os": "Windows-10-15063"
             }
-          ],
-          "shards": 4
+          ]
         },
         "test": "net_unittests"
       },
@@ -2526,8 +2525,7 @@
               "cpu": "x86-64",
               "os": "Windows-10-15063"
             }
-          ],
-          "shards": 4
+          ]
         },
         "test": "net_unittests"
       },
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json
index 3c043e9f..f7db376 100644
--- a/testing/buildbot/chromium.memory.json
+++ b/testing/buildbot/chromium.memory.json
@@ -10343,8 +10343,7 @@
             {
               "os": "Windows-10-15063"
             }
-          ],
-          "shards": 4
+          ]
         },
         "test": "net_unittests"
       },
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
index 6bdb99d..d11d52a1 100644
--- a/testing/buildbot/mixins.pyl
+++ b/testing/buildbot/mixins.pyl
@@ -160,6 +160,9 @@
   'code-coverage': {
     'isolate_coverage_data': True,
   },
+  'experimental': {
+    'experiment_percentage' : 100,
+  },
   'flounder': {
     # Nexus 9
     'swarming': {
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl
index 51e626e..ab79e69 100644
--- a/testing/buildbot/test_suite_exceptions.pyl
+++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -742,16 +742,6 @@
     ],
     'modifications': {
       # chromium.clang
-      'CrWinAsan': {
-        'swarming': {
-          'shards': 4,  # TODO(https://crbug.com/942881): debug, remove.
-        }
-      },
-      'CrWinAsan(dll)': {
-        'swarming': {
-          'shards': 4,  # TODO(https://crbug.com/942881): debug, remove.
-        }
-      },
       'ToTLinuxASan': {
         # TODO(crbug.com/794372): net_unittests is slow under ASan.
         'swarming': {
@@ -806,11 +796,6 @@
           'shards': 2,
         },
       },
-      'win-asan': {
-        'swarming': {
-          'shards': 4,  # TODO(https://crbug.com/942881): debug, remove.
-        },
-      },
     },
   },
   'network_service_browser_tests': {
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 54df8f7..75817a8 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -623,6 +623,12 @@
           'chrome',
         ],
       },
+      'linux-chromeos-google-rel': {
+        'mixins': ['experimental'],
+        'test_suites': {
+          'gtest_tests': 'linux_chromeos_gtests',
+        },
+      },
     },
   },
   {
diff --git a/third_party/blink/perf_tests/layout/large-grid.html b/third_party/blink/perf_tests/layout/large-grid.html
new file mode 100644
index 0000000..ed25793
--- /dev/null
+++ b/third_party/blink/perf_tests/layout/large-grid.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <script src="../resources/runner.js"></script>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+<style>
+html, body { height: 100% }
+ui-pane#main {
+    contain: strict;
+    min-width: 100% !important;
+    width: 100% !important;
+    max-width: 100% !important;
+    min-height: 100% !important;
+    height: 100% !important;
+    max-height: 100% !important;
+    overflow: hidden
+}
+
+
+[row1] {
+    grid-row-start: 1;
+    grid-row-end: auto
+}
+
+[row2] {
+    grid-row-start: 2;
+    grid-row-end: auto
+}
+
+
+[col2] {
+    grid-column-start: 2;
+    grid-column-end: auto
+}
+
+ui-pane {
+    display: grid;
+    height: 100%;
+    contain: content
+}
+
+[hgrid] {
+    grid-template-rows: 1fr
+}
+
+[vgrid] {
+    grid-template-columns: 1fr
+}
+
+ui-icon {
+    display: inline-block;
+    flex-shrink: 0;
+    contain: strict
+}
+
+[collapsed ] { display: none; }
+
+.eventChildrenWrap {
+    grid-column: 1/span 3;
+    contain: content
+}
+
+.eventChildrenContainer {
+    display: grid;
+    grid-template-columns: 3em var(--conditions-column-size) 1fr;
+    contain: content;
+}
+
+.actionBlockWrap {
+    grid-column: 3;
+    align-self: start;
+    contain: layout style;
+    position: relative
+}
+
+.actionBlock {
+    display: grid;
+    grid-template-columns: var(--action-name-cell-size) 1fr;
+    overflow: hidden;
+    contain: content
+}
+
+</style>
+
+</head>
+
+<body>
+    <pre id="log"></pre>
+
+    <ui-pane id="main" vgrid="" style="grid-template-rows: 1fr;">
+        <ui-pane id="middle" row1="" hgrid="" style="grid-template-columns: 320px 1fr 300px;">
+            <ui-pane col2="">
+                <ui-body row2="">
+                    <ui-pane class="eventSheetViewPane">
+                        <ui-body row2="" class="eventSheetView">
+                                <div id="thisistheone" class="eventChildrenWrap">
+                                    <div class="eventChildrenContainer">
+                                        <div class="actionBlockWrap">
+                                            <div class="actionBlock" id="inserthere">
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </ui-body>
+                    </ui-pane>
+                </ui-body>
+            </ui-pane>
+
+        </ui-pane>
+    </ui-pane>
+
+
+    <script>
+        var target = document.getElementById('thisistheone');
+
+        function setup() {
+          let insert = document.getElementById('inserthere');
+          for (let i = 0; i < 2750; ++i) {
+            let name = document.createElement('div');
+            name.className = 'actionNameCell';
+            name.innerHTML = '<ui-icon style="width: 20px; height: 20px; "></ui-icon><span class="actionObjectNameSpan">Button</span>';
+            let desc = document.createElement('div');
+            desc.className = 'actionDescCell';
+            desc.innerHTML = 'Set position to <event-parameter data-index="0"> <ui-icon class="objectParameterIcon" style="width: 20px; height: 20px; "></ui-icon><span class="objectParameterObjectName">Sprite</span> </event-parameter> <em>(image point <event-parameter data-index="1">3213213</event-parameter>)</em>';
+            insert.appendChild(name);
+            insert.appendChild(desc);
+          }
+        }
+
+        function test() {
+            target.setAttribute('collapsed', '');
+            PerfTestRunner.forceLayout();
+            target.removeAttribute('collapsed');
+            PerfTestRunner.forceLayout();
+        }
+
+        setup();
+        PerfTestRunner.measureRunsPerSecond({
+            description: "Measures performance of layout on a page containing Arabic.",
+            run: test
+        });
+    </script>
+</body>
+
+</html>
diff --git a/third_party/blink/public/mojom/background_sync/background_sync.mojom b/third_party/blink/public/mojom/background_sync/background_sync.mojom
index a11fb0bcd..47cab22 100644
--- a/third_party/blink/public/mojom/background_sync/background_sync.mojom
+++ b/third_party/blink/public/mojom/background_sync/background_sync.mojom
@@ -38,11 +38,22 @@
   PERIODIC,
 };
 
+// Minimum information required to uniquely identify a Background Sync
+// registration.
+struct BackgroundSyncRegistrationInfo {
+  // To be kept in sync with blink.mojom.kInvalidServiceWorkerRegistrationId.
+  int64 service_worker_registration_id = -1;
+
+  // The descriptive 'tag' for the sync registration. It is provided with the
+  // Register() method by the developer.
+  string tag;
+  BackgroundSyncType sync_type;
+};
+
 interface BackgroundSyncService {
   Register(SyncRegistrationOptions options, int64 service_worker_registration_id)
       => (BackgroundSyncError err, SyncRegistrationOptions options);
-  DidResolveRegistration(int64 service_worker_registration_id, string tag,
-                         BackgroundSyncType sync_type);
+  DidResolveRegistration(BackgroundSyncRegistrationInfo registration_info);
   GetRegistrations(int64 service_worker_registration_id)
       => (BackgroundSyncError err, array<SyncRegistrationOptions> registrations);
 };
diff --git a/third_party/blink/public/platform/web_layer_tree_view.h b/third_party/blink/public/platform/web_layer_tree_view.h
index 3bbf2ba..1964b6d 100644
--- a/third_party/blink/public/platform/web_layer_tree_view.h
+++ b/third_party/blink/public/platform/web_layer_tree_view.h
@@ -144,10 +144,6 @@
   // Immediately stop deferring commits.
   virtual void StopDeferringCommits() {}
 
-  // Paints are plumbed back to the layer tree via the painter client.
-  virtual void SetPaintWorkletLayerPainterClient(
-      std::unique_ptr<cc::PaintWorkletLayerPainter>) {}
-
   // For when the embedder itself change scales on the page (e.g. devtools)
   // and wants all of the content at the new scale to be crisp.
   virtual void ForceRecalculateRasterScales() {}
diff --git a/third_party/blink/public/web/web_widget_client.h b/third_party/blink/public/web/web_widget_client.h
index ebe92e4..d1432cf 100644
--- a/third_party/blink/public/web/web_widget_client.h
+++ b/third_party/blink/public/web/web_widget_client.h
@@ -78,6 +78,10 @@
   // sync with composited animations running ahead of the main frame state.
   virtual void SetLayerTreeMutator(std::unique_ptr<cc::LayerTreeMutator>) {}
 
+  // Similar to the |SetLayerTreeMutator|, but used by PaintWorklet.
+  virtual void SetPaintWorkletLayerPainterClient(
+      std::unique_ptr<cc::PaintWorkletLayerPainter>) {}
+
   // Sets the root layer of the tree in the compositor. It may be null to remove
   // the root layer in which case nothing would be shown by the compositor.
   virtual void SetRootLayer(scoped_refptr<cc::Layer>) {}
@@ -221,6 +225,13 @@
   // Used to update the active selection bounds. Pass a default-constructed
   // LayerSelection to clear it.
   virtual void RegisterSelection(const cc::LayerSelection&) {}
+
+  // Used to call platform API for FallbackCursorMode.
+  virtual void FallbackCursorModeLockCursor(bool left,
+                                            bool right,
+                                            bool up,
+                                            bool down) {}
+  virtual void FallbackCursorModeSetCursorVisibility(bool visible) {}
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/config.gni b/third_party/blink/renderer/config.gni
index d3083803..8e969e7 100644
--- a/third_party/blink/renderer/config.gni
+++ b/third_party/blink/renderer/config.gni
@@ -14,10 +14,7 @@
 }
 
 declare_args() {
-  # TODO: send a PSA out to tell people to switch to blink_symbol_level
-  # and remove this.
-  # If true, doesn't compile debug symbols into webcore reducing the
-  # size of the binary and increasing the speed of gdb.
+  # DEPRECATED: Use blink_symbol_level=0. https://crbug.com/943869
   remove_webcore_debug_symbols = false
 
   # How many symbols to include in the build of blink. This affects
@@ -85,6 +82,9 @@
     "blink_symbol_level and remove_webcore_debug_symbols cannot both be set.")
 
 if (remove_webcore_debug_symbols) {
+  print("warning: The GN arg 'remove_webcore_debug_symbols' is deprecated and")
+  print("warning: will be removed April 15, 2019. Please change your args.gn")
+  print("warning: to use 'blink_symbol_level = 0'. https://crbug.com/943869")
   blink_symbol_level = 0
 }
 
diff --git a/third_party/blink/renderer/controller/BUILD.gn b/third_party/blink/renderer/controller/BUILD.gn
index a52bb9d..65c03e2a 100644
--- a/third_party/blink/renderer/controller/BUILD.gn
+++ b/third_party/blink/renderer/controller/BUILD.gn
@@ -100,6 +100,7 @@
   ]
 
   if (is_android) {
+    enable_multidex = true
     deps += [
       "//base:base_java",
       "//content/public/android:content_java",
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard.cc b/third_party/blink/renderer/core/clipboard/system_clipboard.cc
index 91a5f3dd..97272f4 100644
--- a/third_party/blink/renderer/core/clipboard/system_clipboard.cc
+++ b/third_party/blink/renderer/core/clipboard/system_clipboard.cc
@@ -100,12 +100,6 @@
 }
 
 void SystemClipboard::WritePlainText(const String& plain_text,
-                                     SmartReplaceOption smart_replace) {
-  WritePlainTextNoCommit(plain_text, smart_replace);
-  CommitWrite();
-}
-
-void SystemClipboard::WritePlainTextNoCommit(const String& plain_text,
                                              SmartReplaceOption) {
   // TODO(https://crbug.com/106449): add support for smart replace, which is
   // currently under-specified.
@@ -137,15 +131,6 @@
                                 const KURL& document_url,
                                 const String& plain_text,
                                 SmartReplaceOption smart_replace_option) {
-  WriteHTMLNoCommit(markup, document_url, plain_text, smart_replace_option);
-  CommitWrite();
-}
-
-void SystemClipboard::WriteHTMLNoCommit(
-    const String& markup,
-    const KURL& document_url,
-    const String& plain_text,
-    SmartReplaceOption smart_replace_option) {
   String text = plain_text;
 #if defined(OS_WIN)
   ReplaceNewlinesWithWindowsStyleNewlines(text);
@@ -175,13 +160,6 @@
 }
 
 void SystemClipboard::WriteImageWithTag(Image* image,
-                                        const KURL& url,
-                                        const String& title) {
-  WriteImageWithTagNoCommit(image, url, title);
-  CommitWrite();
-}
-
-void SystemClipboard::WriteImageWithTagNoCommit(Image* image,
                                                 const KURL& url,
                                                 const String& title) {
   DCHECK(image);
@@ -211,7 +189,7 @@
   }
 }
 
-void SystemClipboard::WriteImageNoCommit(const SkBitmap& bitmap) {
+void SystemClipboard::WriteImage(const SkBitmap& bitmap) {
   clipboard_->WriteImage(mojom::ClipboardBuffer::kStandard, bitmap);
 }
 
@@ -224,11 +202,6 @@
 }
 
 void SystemClipboard::WriteDataObject(DataObject* data_object) {
-  WriteDataObjectNoCommit(data_object);
-  CommitWrite();
-}
-
-void SystemClipboard::WriteDataObjectNoCommit(DataObject* data_object) {
   // This plagiarizes the logic in DropDataBuilder::Build, but only extracts the
   // data needed for the implementation of WriteDataObject.
   //
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard.h b/third_party/blink/renderer/core/clipboard/system_clipboard.h
index 9f14f88..bb48891 100644
--- a/third_party/blink/renderer/core/clipboard/system_clipboard.h
+++ b/third_party/blink/renderer/core/clipboard/system_clipboard.h
@@ -19,6 +19,7 @@
 
 // This singleton provides read/write access to the system clipboard,
 // mediating between core classes and mojom::ClipboardHost.
+// All calls to write functions must be followed by a call to CommitWrite().
 class CORE_EXPORT SystemClipboard {
   USING_FAST_MALLOC(SystemClipboard);
 
@@ -37,8 +38,6 @@
   String ReadPlainText();
   String ReadPlainText(mojom::ClipboardBuffer buffer);
   void WritePlainText(const String&, SmartReplaceOption = kCannotSmartReplace);
-  void WritePlainTextNoCommit(const String&,
-                              SmartReplaceOption = kCannotSmartReplace);
 
   // If no data is read, an empty string will be returned and all out parameters
   // will be cleared. If applicable, the page URL will be assigned to the KURL
@@ -51,10 +50,6 @@
                  const KURL& document_url,
                  const String& plain_text,
                  SmartReplaceOption = kCannotSmartReplace);
-  void WriteHTMLNoCommit(const String& markup,
-                         const KURL& document_url,
-                         const String& plain_text,
-                         SmartReplaceOption = kCannotSmartReplace);
 
   String ReadRTF();
 
@@ -62,17 +57,14 @@
 
   // Write the image and its associated tag (bookmark/HTML types).
   void WriteImageWithTag(Image*, const KURL&, const String& title);
-  // Write the image and its associated tag (bookmark/HTML types).
-  void WriteImageWithTagNoCommit(Image*, const KURL&, const String& title);
   // Write the image only.
-  void WriteImageNoCommit(const SkBitmap&);
+  void WriteImage(const SkBitmap&);
 
   String ReadCustomData(const String& type);
   void WriteDataObject(DataObject*);
-  void WriteDataObjectNoCommit(DataObject*);
 
-  // Clipboard write functions that don't commit (explicitly labelled as
-  // NoCommit) must use CommitWrite for changes to reach the OS clipboard.
+  // Clipboard write functions that must use CommitWrite for changes to reach
+  // the OS clipboard.
   void CommitWrite();
 
  private:
diff --git a/third_party/blink/renderer/core/css/css_primitive_value.cc b/third_party/blink/renderer/core/css/css_primitive_value.cc
index f8659cd..ebb3028 100644
--- a/third_party/blink/renderer/core/css/css_primitive_value.cc
+++ b/third_party/blink/renderer/core/css/css_primitive_value.cc
@@ -21,6 +21,8 @@
 
 #include "third_party/blink/renderer/core/css/css_primitive_value.h"
 
+#include <cmath>
+
 #include "build/build_config.h"
 #include "third_party/blink/renderer/core/css/css_calculation_value.h"
 #include "third_party/blink/renderer/core/css/css_markup.h"
@@ -30,6 +32,7 @@
 #include "third_party/blink/renderer/platform/geometry/layout_unit.h"
 #include "third_party/blink/renderer/platform/wtf/size_assertions.h"
 #include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
+#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
 
 namespace blink {
 
@@ -597,7 +600,7 @@
     case UnitType::kCalcLengthWithNumber:
     case UnitType::kCalcPercentageWithLengthAndNumber:
       break;
-  };
+  }
   NOTREACHED();
   return "";
 }
@@ -609,7 +612,7 @@
       // FIXME
       break;
     case UnitType::kInteger:
-      text = String::Format("%d", GetIntValue());
+      text = String::Number(GetIntValue());
       break;
     case UnitType::kNumber:
     case UnitType::kPercentage:
@@ -641,9 +644,24 @@
     case UnitType::kViewportWidth:
     case UnitType::kViewportHeight:
     case UnitType::kViewportMin:
-    case UnitType::kViewportMax:
-      text = FormatNumber(value_.num, UnitTypeToString(GetType()));
-      break;
+    case UnitType::kViewportMax: {
+      // The following integers are minimal and maximum integers which can
+      // be represented in non-exponential format with 6 digit precision.
+      constexpr int kMinInteger = -999999;
+      constexpr int kMaxInteger = 999999;
+      // If the value_.num is small integer, go the fast path.
+      if (value_.num < kMinInteger || value_.num > kMaxInteger ||
+          std::trunc(value_.num) != value_.num) {
+        text = FormatNumber(value_.num, UnitTypeToString(GetType()));
+      } else {
+        StringBuilder builder;
+        int value = value_.num;
+        const char* unit_type = UnitTypeToString(GetType());
+        builder.AppendNumber(value);
+        builder.Append(unit_type, strlen(unit_type));
+        text = builder.ToString();
+      }
+    } break;
     case UnitType::kCalc:
       text = value_.calc->CustomCSSText();
       break;
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc b/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc
index d32b99b..839d12c 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc
+++ b/third_party/blink/renderer/core/display_lock/display_lock_budget_test.cc
@@ -35,6 +35,17 @@
     return budget.GetCurrentBudgetMs();
   }
 
+  void ResetDeadlineForTesting(YieldingDisplayLockBudget& budget) {
+    budget.deadline_ = CurrentTimeTicks() + TimeDelta::FromMillisecondsD(
+                                                budget.GetCurrentBudgetMs());
+  }
+
+  void ResetBudget(std::unique_ptr<DisplayLockBudget> budget,
+                   DisplayLockContext* context) {
+    ASSERT_TRUE(context->update_budget_);
+    context->update_budget_ = std::move(budget);
+  }
+
  private:
   base::Optional<RuntimeEnabledFeatures::Backup> features_backup_;
 };
@@ -309,9 +320,9 @@
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kPrePaint));
 
-  // However, once we're out of budget, we will not do anything.
+  // However, once we're out of budget, we will only do the next phase.
   clock.Advance(TimeDelta::FromMillisecondsD(GetBudgetMs(budget)));
-  EXPECT_FALSE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
+  EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
   EXPECT_FALSE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
   EXPECT_FALSE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kPrePaint));
 
@@ -338,15 +349,15 @@
   // Sanity check here: the element still needs layout.
   EXPECT_TRUE(budget.NeedsLifecycleUpdates());
 
-  // Resetting the budget, and advnacing again should yield the same results as
-  // before.
+  // Resetting the budget, and advancing again should yield the same results as
+  // before, except that we will process at least one more phase.
   budget.WillStartLifecycleUpdate();
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kPrePaint));
   clock.Advance(TimeDelta::FromMillisecondsD(GetBudgetMs(budget) * 2));
   EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
-  EXPECT_FALSE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
+  EXPECT_TRUE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
   EXPECT_FALSE(budget.ShouldPerformPhase(DisplayLockBudget::Phase::kPrePaint));
 
   // Eventually the budget becomes essentially infinite.
@@ -361,4 +372,82 @@
     clock.Advance(TimeDelta::FromMillisecondsD(10000));
   }
 }
+
+TEST_F(DisplayLockBudgetTest, YieldingBudgetMarksNextPhase) {
+  // Note that we're not testing the display lock here, just the budget so we
+  // can do minimal work to ensure we have a context, ignoring containment and
+  // other requirements.
+  SetHtmlInnerHTML(R"HTML(
+    <style>
+      #container {
+        contain: style layout;
+      }
+    </style>
+    <div id="parent"><div id="container"><div id="child"></div></div></div>
+  )HTML");
+
+  auto* element = GetDocument().getElementById("container");
+  {
+    auto* script_state = ToScriptStateForMainWorld(GetDocument().GetFrame());
+    ScriptState::Scope scope(script_state);
+    element->getDisplayLockForBindings()->acquire(script_state, nullptr);
+  }
+  UpdateAllLifecyclePhasesForTest();
+
+  ASSERT_TRUE(element->GetDisplayLockContext());
+  ASSERT_TRUE(element->GetDisplayLockContext()->IsLocked());
+
+  auto budget_owned = base::WrapUnique(
+      new YieldingDisplayLockBudget(element->GetDisplayLockContext()));
+  ;
+  auto* budget = budget_owned.get();
+  {
+    auto* script_state = ToScriptStateForMainWorld(GetDocument().GetFrame());
+    ScriptState::Scope scope(script_state);
+    element->getDisplayLockForBindings()->update(script_state);
+    ResetBudget(std::move(budget_owned), element->GetDisplayLockContext());
+  }
+
+  WTF::ScopedMockClock clock;
+
+  // Since the lifecycle is clean, we don't actually need any updates.
+  EXPECT_FALSE(budget->NeedsLifecycleUpdates());
+
+  // Dirtying the element will cause us to do updates.
+  GetDocument().getElementById("child")->SetInnerHTMLFromString("a");
+
+  auto* parent = GetDocument().getElementById("parent");
+  EXPECT_TRUE(budget->NeedsLifecycleUpdates());
+
+  budget->WillStartLifecycleUpdate();
+  // Initially all of the phase checks should return true, since we don't know
+  // which phase the system wants to process next.
+  EXPECT_TRUE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
+  EXPECT_TRUE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
+  EXPECT_TRUE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kPrePaint));
+
+  EXPECT_TRUE(parent->NeedsStyleRecalc() || parent->ChildNeedsStyleRecalc());
+  EXPECT_TRUE(element->NeedsStyleRecalc() || element->ChildNeedsStyleRecalc());
+
+  clock.Advance(TimeDelta::FromMillisecondsD(GetBudgetMs(*budget) * 2));
+  EXPECT_TRUE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kStyle));
+  EXPECT_FALSE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
+
+  GetDocument().UpdateStyleAndLayoutTree();
+
+  EXPECT_FALSE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
+
+  EXPECT_FALSE(parent->NeedsStyleRecalc() || parent->ChildNeedsStyleRecalc());
+  EXPECT_FALSE(element->NeedsStyleRecalc() || element->ChildNeedsStyleRecalc());
+
+  EXPECT_FALSE(parent->GetLayoutObject()->NeedsLayout());
+  EXPECT_TRUE(element->GetLayoutObject()->NeedsLayout());
+
+  ResetDeadlineForTesting(*budget);
+  budget->DidPerformPhase(DisplayLockBudget::Phase::kStyle);
+  EXPECT_TRUE(budget->ShouldPerformPhase(DisplayLockBudget::Phase::kLayout));
+
+  EXPECT_TRUE(parent->GetLayoutObject()->NeedsLayout());
+  EXPECT_TRUE(element->GetLayoutObject()->NeedsLayout());
+}
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
index c879ab7..f2781e72 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -714,6 +714,19 @@
   }
 }
 
+void DisplayLockContext::NotifyWillDisconnect() {
+  if (!IsLocked() || !element_ || !element_->GetLayoutObject())
+    return;
+  // If we're locked while being disconnected, we need to layout the parent.
+  // The reason for this is that we might skip the layout if we're empty while
+  // locked, but it's important to update IsSelfCollapsingBlock property on
+  // the parent so that it's up to date. This property is updated during
+  // layout.
+  if (auto* parent = element_->GetLayoutObject()->Parent()) {
+    parent->SetNeedsLayout(layout_invalidation_reason::kDisplayLockCommitting);
+  }
+}
+
 void DisplayLockContext::ScheduleAnimation() {
   DCHECK(element_);
   DCHECK(ConnectedToView());
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.h b/third_party/blink/renderer/core/display_lock/display_lock_context.h
index aee69443..0e5895d 100644
--- a/third_party/blink/renderer/core/display_lock/display_lock_context.h
+++ b/third_party/blink/renderer/core/display_lock/display_lock_context.h
@@ -166,8 +166,12 @@
   void WillStartLifecycleUpdate() override;
   void DidFinishLifecycleUpdate() override;
 
+  // Notify this element will be disconnected.
+  void NotifyWillDisconnect();
+
  private:
   friend class DisplayLockContextTest;
+  friend class DisplayLockBudgetTest;
   friend class DisplayLockSuspendedHandle;
   friend class DisplayLockBudget;
 
diff --git a/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.cc b/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.cc
index c41dcc5..b8425be 100644
--- a/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.cc
+++ b/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.cc
@@ -15,6 +15,10 @@
     : DisplayLockBudget(context) {}
 
 bool YieldingDisplayLockBudget::ShouldPerformPhase(Phase phase) const {
+  // Always perform at least one more phase.
+  if (phase <= next_phase_from_start_of_lifecycle_)
+    return true;
+
   // We should perform any phase earlier than the one we already completed.
   if (last_completed_phase_ && phase <= *last_completed_phase_)
     return true;
@@ -26,6 +30,13 @@
 void YieldingDisplayLockBudget::DidPerformPhase(Phase phase) {
   if (!last_completed_phase_ || phase > *last_completed_phase_)
     last_completed_phase_ = phase;
+
+  // Mark the next phase as dirty so that we can reach it if we need to.
+  for (auto phase = static_cast<unsigned>(*last_completed_phase_) + 1;
+       phase <= static_cast<unsigned>(Phase::kLast); ++phase) {
+    if (MarkAncestorsDirtyForPhaseIfNeeded(static_cast<Phase>(phase)))
+      break;
+  }
 }
 
 void YieldingDisplayLockBudget::WillStartLifecycleUpdate() {
@@ -36,7 +47,7 @@
   // Figure out the next phase we would run. If we had completed a phase before,
   // then we should try to complete the next one, otherwise we'll start with the
   // first phase.
-  Phase next_phase =
+  next_phase_from_start_of_lifecycle_ =
       last_completed_phase_
           ? static_cast<Phase>(
                 std::min(static_cast<unsigned>(*last_completed_phase_) + 1,
@@ -44,7 +55,7 @@
           : Phase::kFirst;
 
   // Mark the next phase we're scheduled to run.
-  for (auto phase = static_cast<unsigned>(next_phase);
+  for (auto phase = static_cast<unsigned>(next_phase_from_start_of_lifecycle_);
        phase <= static_cast<unsigned>(Phase::kLast); ++phase) {
     if (MarkAncestorsDirtyForPhaseIfNeeded(static_cast<Phase>(phase)))
       break;
diff --git a/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h b/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h
index 41a7d18..17ee1a72 100644
--- a/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h
+++ b/third_party/blink/renderer/core/display_lock/yielding_display_lock_budget.h
@@ -40,6 +40,7 @@
   int lifecycle_count_ = 0;
   TimeTicks deadline_;
   base::Optional<Phase> last_completed_phase_;
+  Phase next_phase_from_start_of_lifecycle_ = Phase::kFirst;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/dom/container_node.cc b/third_party/blink/renderer/core/dom/container_node.cc
index 31cefbe4..696c6d0f 100644
--- a/third_party/blink/renderer/core/dom/container_node.cc
+++ b/third_party/blink/renderer/core/dom/container_node.cc
@@ -632,6 +632,11 @@
   EventDispatchForbiddenScope assert_no_event_dispatch;
   // e.g. mutation event listener can create a new range.
   GetDocument().NodeWillBeRemoved(child);
+
+  if (child.IsElementNode()) {
+    if (auto* context = ToElement(child).GetDisplayLockContext())
+      context->NotifyWillDisconnect();
+  }
 }
 
 void ContainerNode::WillRemoveChildren() {
diff --git a/third_party/blink/renderer/core/editing/commands/clipboard_commands.cc b/third_party/blink/renderer/core/editing/commands/clipboard_commands.cc
index 4062685..e44913c6 100644
--- a/third_party/blink/renderer/core/editing/commands/clipboard_commands.cc
+++ b/third_party/blink/renderer/core/editing/commands/clipboard_commands.cc
@@ -122,6 +122,7 @@
   if (no_default_processing && policy == DataTransferAccessPolicy::kWritable) {
     SystemClipboard::GetInstance().WriteDataObject(
         data_transfer->GetDataObject());
+    SystemClipboard::GetInstance().CommitWrite();
   }
 
   // Invalidate clipboard here for security.
@@ -205,6 +206,7 @@
   const String plain_text = frame.SelectedTextForClipboard();
   SystemClipboard::GetInstance().WriteHTML(html, url, plain_text,
                                            GetSmartReplaceOption(frame));
+  SystemClipboard::GetInstance().CommitWrite();
 }
 
 bool ClipboardCommands::PasteSupported(LocalFrame* frame) {
@@ -252,6 +254,7 @@
           frame.Selection().ComputeVisibleSelectionInDOMTree().Start())) {
     SystemClipboard::GetInstance().WritePlainText(
         frame.SelectedTextForClipboard(), GetSmartReplaceOption(frame));
+    SystemClipboard::GetInstance().CommitWrite();
     return true;
   }
   WriteSelectionToClipboard(frame);
@@ -302,6 +305,7 @@
     const String plain_text = frame.SelectedTextForClipboard();
     SystemClipboard::GetInstance().WritePlainText(plain_text,
                                                   GetSmartReplaceOption(frame));
+    SystemClipboard::GetInstance().CommitWrite();
   } else {
     WriteSelectionToClipboard(frame);
   }
diff --git a/third_party/blink/renderer/core/editing/editing_utilities.cc b/third_party/blink/renderer/core/editing/editing_utilities.cc
index db45a64e6..44d4802 100644
--- a/third_party/blink/renderer/core/editing/editing_utilities.cc
+++ b/third_party/blink/renderer/core/editing/editing_utilities.cc
@@ -1703,6 +1703,7 @@
       StripLeadingAndTrailingHTMLSpaces(GetUrlStringFromNode(node)));
   SystemClipboard::GetInstance().WriteImageWithTag(image.get(), url_string,
                                                    title);
+  SystemClipboard::GetInstance().CommitWrite();
 }
 
 Element* FindEventTargetFrom(LocalFrame& frame,
diff --git a/third_party/blink/renderer/core/editing/editor_test.cc b/third_party/blink/renderer/core/editing/editor_test.cc
index dd0b3ff9..941d900 100644
--- a/third_party/blink/renderer/core/editing/editor_test.cc
+++ b/third_party/blink/renderer/core/editing/editor_test.cc
@@ -19,6 +19,7 @@
  public:
   void TearDown() override {
     SystemClipboard::GetInstance().WritePlainText(String(""));
+    SystemClipboard::GetInstance().CommitWrite();
     EditingTestBase::TearDown();
   }
 
diff --git a/third_party/blink/renderer/core/exported/web_frame_test.cc b/third_party/blink/renderer/core/exported/web_frame_test.cc
index ee6e3e8..39457c0 100644
--- a/third_party/blink/renderer/core/exported/web_frame_test.cc
+++ b/third_party/blink/renderer/core/exported/web_frame_test.cc
@@ -10602,6 +10602,7 @@
 
   // Clear clipboard data
   SystemClipboard::GetInstance().WritePlainText("");
+  SystemClipboard::GetInstance().CommitWrite();
 }
 
 class CallbackOrderingWebFrameClient
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
index 96c455fc..c10bbd1 100644
--- a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
@@ -431,6 +431,7 @@
 
   SystemClipboard::GetInstance().WriteHTML(
       web_plugin_->SelectionAsMarkup(), KURL(), web_plugin_->SelectionAsText());
+  SystemClipboard::GetInstance().CommitWrite();
 }
 
 bool WebPluginContainerImpl::ExecuteEditCommand(const WebString& name) {
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_test.cc b/third_party/blink/renderer/core/exported/web_plugin_container_test.cc
index 37363f43..ae580f0 100644
--- a/third_party/blink/renderer/core/exported/web_plugin_container_test.cc
+++ b/third_party/blink/renderer/core/exported/web_plugin_container_test.cc
@@ -264,6 +264,7 @@
 
 void ClearClipboardBuffer() {
   SystemClipboard::GetInstance().WritePlainText(String(""));
+  SystemClipboard::GetInstance().CommitWrite();
   EXPECT_EQ(String(""), ReadClipboard());
 }
 
diff --git a/third_party/blink/renderer/core/inspector/dev_tools_host.cc b/third_party/blink/renderer/core/inspector/dev_tools_host.cc
index 4b454e0..1e519a01 100644
--- a/third_party/blink/renderer/core/inspector/dev_tools_host.cc
+++ b/third_party/blink/renderer/core/inspector/dev_tools_host.cc
@@ -165,6 +165,7 @@
 
 void DevToolsHost::copyText(const String& text) {
   SystemClipboard::GetInstance().WritePlainText(text);
+  SystemClipboard::GetInstance().CommitWrite();
 }
 
 static String EscapeUnicodeNonCharacters(const String& str) {
diff --git a/third_party/blink/renderer/core/layout/layout_block.cc b/third_party/blink/renderer/core/layout/layout_block.cc
index 85a22c1..6aaa2708 100644
--- a/third_party/blink/renderer/core/layout/layout_block.cc
+++ b/third_party/blink/renderer/core/layout/layout_block.cc
@@ -660,6 +660,8 @@
        ChangeInAvailableLogicalHeightAffectsChild(this, child)) ||
       (child.IsListMarker() && IsListItem() &&
        ToLayoutBlockFlow(this)->ContainsFloats())) {
+    // TODO(cbiesinger): Should be child.SetSelfNeedsLayoutForAvailableSpace,
+    // but that makes tests fail.
     child.SetChildNeedsLayout(kMarkOnlyThis);
   }
 }
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc
index 9d4a5de..e623c88f5 100644
--- a/third_party/blink/renderer/core/layout/layout_object.cc
+++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -954,7 +954,14 @@
     object->SetNeedsCollectInlines(true);
 
   while (object) {
-    if (object->SelfNeedsLayout() || object->LayoutBlockedByDisplayLock())
+    if (object->SelfNeedsLayout())
+      return;
+
+    // Note that if the last element we processed was blocked by a display lock,
+    // then we can return and stop the dirty bit propagation. Note that it's not
+    // enough to check |object|, since the element that is actually locked needs
+    // its child bits set properly, we need to go one more iteration after that.
+    if (last->LayoutBlockedByDisplayLock())
       return;
 
     // Don't mark the outermost object of an unrooted subtree. That object will
@@ -3520,7 +3527,7 @@
 }
 
 void LayoutObject::ForceLayout() {
-  SetSelfNeedsLayout(true);
+  SetSelfNeedsLayoutForAvailableSpace(true);
   MarkContainerNeedsCollectInlines();
   SetShouldDoFullPaintInvalidation();
   UpdateLayout();
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h
index 9568428..9dc3023a 100644
--- a/third_party/blink/renderer/core/layout/layout_object.h
+++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -919,7 +919,8 @@
   }
 
   bool NeedsLayout() const {
-    return bitfields_.SelfNeedsLayout() ||
+    return bitfields_.SelfNeedsLayoutForStyle() ||
+           bitfields_.SelfNeedsLayoutForAvailableSpace() ||
            bitfields_.NormalChildNeedsLayout() ||
            bitfields_.PosChildNeedsLayout() ||
            bitfields_.NeedsSimplifiedNormalFlowLayout() ||
@@ -928,13 +929,23 @@
 
   bool NeedsPositionedMovementLayoutOnly() const {
     return bitfields_.NeedsPositionedMovementLayout() &&
-           !bitfields_.SelfNeedsLayout() &&
+           !bitfields_.SelfNeedsLayoutForStyle() &&
+           !bitfields_.SelfNeedsLayoutForAvailableSpace() &&
            !bitfields_.NormalChildNeedsLayout() &&
            !bitfields_.PosChildNeedsLayout() &&
            !bitfields_.NeedsSimplifiedNormalFlowLayout();
   }
 
-  bool SelfNeedsLayout() const { return bitfields_.SelfNeedsLayout(); }
+  bool SelfNeedsLayout() const {
+    return bitfields_.SelfNeedsLayoutForStyle() ||
+           bitfields_.SelfNeedsLayoutForAvailableSpace();
+  }
+  bool SelfNeedsLayoutForStyle() const {
+    return bitfields_.SelfNeedsLayoutForStyle();
+  }
+  bool SelfNeedsLayoutForAvailableSpace() const {
+    return bitfields_.SelfNeedsLayoutForAvailableSpace();
+  }
   bool NeedsPositionedMovementLayout() const {
     return bitfields_.NeedsPositionedMovementLayout();
   }
@@ -1846,6 +1857,10 @@
   // Called when the previous visual rect(s) is no longer valid.
   virtual void ClearPreviousVisualRects();
 
+  void SetSelfNeedsLayoutForAvailableSpace(bool b) {
+    bitfields_.SetSelfNeedsLayoutForAvailableSpace(b);
+  }
+
   PaintInvalidationReason FullPaintInvalidationReason() const {
     return full_paint_invalidation_reason_;
   }
@@ -2563,7 +2578,8 @@
     // https://codereview.chromium.org/44673003 and subsequent relaxations
     // of the memory constraints on layout objects.
     LayoutObjectBitfields(Node* node)
-        : self_needs_layout_(false),
+        : self_needs_layout_for_style_(false),
+          self_needs_layout_for_available_space_(false),
           needs_positioned_movement_layout_(false),
           normal_child_needs_layout_(false),
           pos_child_needs_layout_(false),
@@ -2629,12 +2645,18 @@
               static_cast<unsigned>(SubtreePaintPropertyUpdateReason::kNone)),
           previous_background_paint_location_(0) {}
 
-    // Self needs layout means that this layout object is marked for a full
-    // layout. This is the default layout but it is expensive as it recomputes
-    // everything. For CSS boxes, this includes the width (laying out the line
-    // boxes again), the margins (due to block collapsing margins), the
+    // Self needs layout for style means that this layout object is marked for a
+    // full layout. This is the default layout but it is expensive as it
+    // recomputes everything. For CSS boxes, this includes the width (laying out
+    // the line boxes again), the margins (due to block collapsing margins), the
     // positions, the height and the potential overflow.
-    ADD_BOOLEAN_BITFIELD(self_needs_layout_, SelfNeedsLayout);
+    ADD_BOOLEAN_BITFIELD(self_needs_layout_for_style_, SelfNeedsLayoutForStyle);
+
+    // Similar to SelfNeedsLayoutForStyle; however, this is set when the
+    // available space (~parent height or width) changes, or the override size
+    // has changed. In some cases this allows skipping layouts.
+    ADD_BOOLEAN_BITFIELD(self_needs_layout_for_available_space_,
+                         SelfNeedsLayoutForAvailableSpace);
 
     // A positioned movement layout is a specialized type of layout used on
     // positioned objects that only visually moved. This layout is used when
@@ -2968,7 +2990,9 @@
 
   LayoutObjectBitfields bitfields_;
 
-  void SetSelfNeedsLayout(bool b) { bitfields_.SetSelfNeedsLayout(b); }
+  void SetSelfNeedsLayoutForStyle(bool b) {
+    bitfields_.SetSelfNeedsLayoutForStyle(b);
+  }
   void SetNeedsPositionedMovementLayout(bool b) {
     bitfields_.SetNeedsPositionedMovementLayout(b);
   }
@@ -3031,8 +3055,9 @@
 #if DCHECK_IS_ON()
   DCHECK(!IsSetNeedsLayoutForbidden());
 #endif
-  bool already_needed_layout = bitfields_.SelfNeedsLayout();
-  SetSelfNeedsLayout(true);
+  bool already_needed_layout = bitfields_.SelfNeedsLayoutForStyle() ||
+                               bitfields_.SelfNeedsLayoutForAvailableSpace();
+  SetSelfNeedsLayoutForStyle(true);
   SetNeedsOverflowRecalc();
   MarkContainerNeedsCollectInlines();
   if (!already_needed_layout) {
@@ -3060,7 +3085,8 @@
   SetShouldCheckForPaintInvalidation();
 
   // Clear needsLayout flags.
-  SetSelfNeedsLayout(false);
+  SetSelfNeedsLayoutForStyle(false);
+  SetSelfNeedsLayoutForAvailableSpace(false);
   SetPosChildNeedsLayout(false);
   SetNeedsSimplifiedNormalFlowLayout(false);
   SetNormalChildNeedsLayout(false);
diff --git a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
index 12a024e7..9295862 100644
--- a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
+++ b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
@@ -237,7 +237,10 @@
   if (break_token)
     return nullptr;
 
-  if (Base::NeedsLayout() && !NeedsRelativePositionedLayoutOnly())
+  if (Base::SelfNeedsLayoutForStyle() || Base::NormalChildNeedsLayout() ||
+      Base::PosChildNeedsLayout() || Base::NeedsSimplifiedNormalFlowLayout() ||
+      (Base::NeedsPositionedMovementLayout() &&
+       !NeedsRelativePositionedLayoutOnly()))
     return nullptr;
 
   const NGLayoutResult* cached_layout_result = Base::GetCachedLayoutResult();
@@ -288,10 +291,7 @@
   // We can safely re-use this fragment if we are position relative, and only
   // our position constraints changed (left/top/etc). However we need to clear
   // the dirty layout bit.
-  if (NeedsRelativePositionedLayoutOnly())
-    Base::ClearNeedsLayout();
-  else
-    DCHECK(!Base::NeedsLayout());
+  Base::ClearNeedsLayout();
 
   // The checks above should be enough to bail if layout is incomplete, but
   // let's verify:
diff --git a/third_party/blink/renderer/core/page/chrome_client_impl.cc b/third_party/blink/renderer/core/page/chrome_client_impl.cc
index 513ee0d..6982a52 100644
--- a/third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ b/third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -907,10 +907,28 @@
                                                     bool left,
                                                     bool right,
                                                     bool up,
-                                                    bool down) {}
+                                                    bool down) {
+  DCHECK(frame);
+  WebLocalFrameImpl* web_frame = WebLocalFrameImpl::FromFrame(frame);
+  WebFrameWidgetBase* widget = web_frame->LocalRootFrameWidget();
+  if (!widget)
+    return;
+
+  if (WebWidgetClient* client = widget->Client())
+    client->FallbackCursorModeLockCursor(left, right, up, down);
+}
 
 void ChromeClientImpl::FallbackCursorModeSetCursorVisibility(LocalFrame* frame,
-                                                             bool visible) {}
+                                                             bool visible) {
+  DCHECK(frame);
+  WebLocalFrameImpl* web_frame = WebLocalFrameImpl::FromFrame(frame);
+  WebFrameWidgetBase* widget = web_frame->LocalRootFrameWidget();
+  if (!widget)
+    return;
+
+  if (WebWidgetClient* client = widget->Client())
+    client->FallbackCursorModeSetCursorVisibility(visible);
+}
 
 void ChromeClientImpl::SetEventListenerProperties(
     LocalFrame* frame,
diff --git a/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc b/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
index e831d5893..e1e4f13 100644
--- a/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
+++ b/third_party/blink/renderer/core/svg/unsafe_svg_attribute_sanitization_test.cc
@@ -71,6 +71,7 @@
 
   SystemClipboard::GetInstance().WriteHTML(
       html_to_paste, BlankURL(), "", SystemClipboard::kCannotSmartReplace);
+  SystemClipboard::GetInstance().CommitWrite();
   // Run all tasks in a message loop to allow asynchronous clipboard writing
   // to happen before reading from it synchronously.
   test::RunPendingTasks();
diff --git a/third_party/blink/renderer/devtools/front_end/common/ResourceType.js b/third_party/blink/renderer/devtools/front_end/common/ResourceType.js
index 5366548..5a69005e 100644
--- a/third_party/blink/renderer/devtools/front_end/common/ResourceType.js
+++ b/third_party/blink/renderer/devtools/front_end/common/ResourceType.js
@@ -45,7 +45,7 @@
   }
 
   /**
-   * @param {?string} mimeType
+   * @param {string} mimeType
    * @return {!Common.ResourceType}
    */
   static fromMimeType(mimeType) {
diff --git a/third_party/blink/renderer/devtools/front_end/network/RequestResponseView.js b/third_party/blink/renderer/devtools/front_end/network/RequestResponseView.js
index 7f5d9017..56050b0 100644
--- a/third_party/blink/renderer/devtools/front_end/network/RequestResponseView.js
+++ b/third_party/blink/renderer/devtools/front_end/network/RequestResponseView.js
@@ -47,7 +47,7 @@
    * @return {boolean}
    */
   static _hasTextContent(request, contentData) {
-    const mimeType = request.mimeType;
+    const mimeType = request.mimeType || '';
     let resourceType = Common.ResourceType.fromMimeType(mimeType);
     if (resourceType === Common.resourceTypes.Other)
       resourceType = request.contentType();
diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn
index 762da04..7f968aa 100644
--- a/third_party/blink/renderer/modules/BUILD.gn
+++ b/third_party/blink/renderer/modules/BUILD.gn
@@ -362,6 +362,8 @@
     "worklet/worklet_thread_test_common.cc",
     "worklet/worklet_thread_test_common.h",
     "xr/xr_rigid_transform_test.cc",
+    "xr/xr_test_utils.cc",
+    "xr/xr_view_test.cc",
   ]
 
   configs += [
diff --git a/third_party/blink/renderer/modules/background_sync/sync_manager.cc b/third_party/blink/renderer/modules/background_sync/sync_manager.cc
index 6fd0ba5..ee000af 100644
--- a/third_party/blink/renderer/modules/background_sync/sync_manager.cc
+++ b/third_party/blink/renderer/modules/background_sync/sync_manager.cc
@@ -82,9 +82,11 @@
       resolver->Resolve();
       // Let the service know that the registration promise is resolved so that
       // it can fire the event.
+
       GetBackgroundSyncServicePtr()->DidResolveRegistration(
-          registration_->RegistrationId(), options->tag,
-          mojom::blink::BackgroundSyncType::ONE_SHOT);
+          mojom::blink::BackgroundSyncRegistrationInfo::New(
+              registration_->RegistrationId(), options->tag,
+              mojom::blink::BackgroundSyncType::ONE_SHOT));
       break;
     case mojom::blink::BackgroundSyncError::NOT_FOUND:
       NOTREACHED();
diff --git a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
index 8cdab5f..37f3864 100644
--- a/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
+++ b/third_party/blink/renderer/modules/clipboard/clipboard_promise.cc
@@ -328,6 +328,7 @@
   }
 
   SystemClipboard::GetInstance().WritePlainText(write_data_);
+  SystemClipboard::GetInstance().CommitWrite();
   script_promise_resolver_->Resolve();
 }
 
@@ -414,14 +415,14 @@
   SkBitmap bitmap;
   image->asLegacyBitmap(&bitmap);
 
-  SystemClipboard::GetInstance().WriteImageNoCommit(std::move(bitmap));
+  SystemClipboard::GetInstance().WriteImage(std::move(bitmap));
   WriteNextRepresentation();
 }
 
 void ClipboardPromise::WriteDecodedText(const String& text) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(async_clipboard_sequence_checker);
 
-  SystemClipboard::GetInstance().WritePlainTextNoCommit(text);
+  SystemClipboard::GetInstance().WritePlainText(text);
   WriteNextRepresentation();
 }
 
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader.cc b/third_party/blink/renderer/modules/filesystem/directory_reader.cc
index aed2a99..20f5f22 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader.cc
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader.cc
@@ -47,73 +47,38 @@
 
 }  // namespace
 
-class DirectoryReader::EntriesCallbackHelper final
-    : public EntriesCallbacks::OnDidGetEntriesCallback {
- public:
-  static EntriesCallbackHelper* Create(DirectoryReader* reader) {
-    return MakeGarbageCollected<EntriesCallbackHelper>(reader);
-  }
-
-  explicit EntriesCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
-
-  void Trace(blink::Visitor* visitor) override {
-    visitor->Trace(reader_);
-    EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor);
-  }
-
-  void OnSuccess(EntryHeapVector* entries) override {
-    reader_->AddEntries(*entries);
-  }
-
- private:
-  // FIXME: This Member keeps the reader alive until all of the readDirectory
-  // results are received. crbug.com/350285
-  Member<DirectoryReader> reader_;
-};
-
-class DirectoryReader::ErrorCallbackHelper final : public ErrorCallbackBase {
- public:
-  static ErrorCallbackHelper* Create(DirectoryReader* reader) {
-    return MakeGarbageCollected<ErrorCallbackHelper>(reader);
-  }
-
-  explicit ErrorCallbackHelper(DirectoryReader* reader) : reader_(reader) {}
-
-  void Invoke(base::File::Error error) override { reader_->OnError(error); }
-
-  void Trace(blink::Visitor* visitor) override {
-    visitor->Trace(reader_);
-    ErrorCallbackBase::Trace(visitor);
-  }
-
- private:
-  Member<DirectoryReader> reader_;
-};
-
 DirectoryReader::DirectoryReader(DOMFileSystemBase* file_system,
                                  const String& full_path)
     : DirectoryReaderBase(file_system, full_path), is_reading_(false) {}
 
 void DirectoryReader::readEntries(V8EntriesCallback* entries_callback,
                                   V8ErrorCallback* error_callback) {
+  auto success_callback_wrapper = WTF::BindRepeating(
+      [](DirectoryReader* persistent_reader, EntryHeapVector* entries) {
+        persistent_reader->AddEntries(*entries);
+      },
+      WrapPersistentIfNeeded(this));
+
   if (!is_reading_) {
     is_reading_ = true;
-    Filesystem()->ReadDirectory(this, full_path_,
-                                EntriesCallbackHelper::Create(this),
-                                ErrorCallbackHelper::Create(this));
+    Filesystem()->ReadDirectory(
+        this, full_path_, success_callback_wrapper,
+        WTF::Bind(&DirectoryReader::OnError, WrapPersistentIfNeeded(this)));
   }
 
   if (error_ != base::File::FILE_OK) {
-    Filesystem()->ReportError(ScriptErrorCallback::Wrap(error_callback),
-                              error_);
+    Filesystem()->ReportError(
+        WTF::Bind(&DirectoryReader::OnError, WrapPersistentIfNeeded(this)),
+        error_);
     return;
   }
 
   if (entries_callback_) {
     // Non-null entries_callback_ means multiple readEntries() calls are made
     // concurrently. We don't allow doing it.
-    Filesystem()->ReportError(ScriptErrorCallback::Wrap(error_callback),
-                              base::File::FILE_ERROR_FAILED);
+    Filesystem()->ReportError(
+        WTF::Bind(&DirectoryReader::OnError, WrapPersistentIfNeeded(this)),
+        base::File::FILE_ERROR_FAILED);
     return;
   }
 
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader.h b/third_party/blink/renderer/modules/filesystem/directory_reader.h
index 6668cd0..3125f428 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader.h
@@ -61,9 +61,6 @@
   void Trace(blink::Visitor*) override;
 
  private:
-  class EntriesCallbackHelper;
-  class ErrorCallbackHelper;
-
   void AddEntries(const EntryHeapVector& entries);
 
   void OnError(base::File::Error error);
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
index e6b6c9e8..1d9579d 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.cc
@@ -36,68 +36,36 @@
 #include "third_party/blink/renderer/modules/filesystem/file_entry_sync.h"
 #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
 
-class DirectoryReaderSync::EntriesCallbackHelper final
-    : public EntriesCallbacks::OnDidGetEntriesCallback {
- public:
-  static EntriesCallbackHelper* Create(DirectoryReaderSync* reader) {
-    return MakeGarbageCollected<EntriesCallbackHelper>(reader);
-  }
-
-  explicit EntriesCallbackHelper(DirectoryReaderSync* reader)
-      : reader_(reader) {}
-
-  void Trace(blink::Visitor* visitor) override {
-    visitor->Trace(reader_);
-    EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor);
-  }
-
-  void OnSuccess(EntryHeapVector* entries) override {
-    reader_->entries_.ReserveCapacity(reader_->entries_.size() +
-                                      entries->size());
-    for (const auto& entry : *entries) {
-      reader_->entries_.UncheckedAppend(EntrySync::Create(entry.Get()));
-    }
-  }
-
- private:
-  Member<DirectoryReaderSync> reader_;
-};
-
-class DirectoryReaderSync::ErrorCallbackHelper final
-    : public ErrorCallbackBase {
- public:
-  static ErrorCallbackHelper* Create(DirectoryReaderSync* reader) {
-    return MakeGarbageCollected<ErrorCallbackHelper>(reader);
-  }
-
-  explicit ErrorCallbackHelper(DirectoryReaderSync* reader) : reader_(reader) {}
-
-  void Trace(blink::Visitor* visitor) override {
-    visitor->Trace(reader_);
-    ErrorCallbackBase::Trace(visitor);
-  }
-
-  void Invoke(base::File::Error error) override {
-    reader_->error_code_ = error;
-  }
-
- private:
-  Member<DirectoryReaderSync> reader_;
-};
-
 DirectoryReaderSync::DirectoryReaderSync(DOMFileSystemBase* file_system,
                                          const String& full_path)
     : DirectoryReaderBase(file_system, full_path) {}
 
 EntrySyncHeapVector DirectoryReaderSync::readEntries(
     ExceptionState& exception_state) {
+  auto success_callback_wrapper = WTF::BindRepeating(
+      [](DirectoryReaderSync* persistent_reader, EntryHeapVector* entries) {
+        persistent_reader->entries_.ReserveCapacity(
+            persistent_reader->entries_.size() + entries->size());
+        for (const auto& entry : *entries) {
+          persistent_reader->entries_.UncheckedAppend(
+              EntrySync::Create(entry.Get()));
+        }
+      },
+      WrapPersistentIfNeeded(this));
+  auto error_callback_wrapper = WTF::Bind(
+      [](DirectoryReaderSync* persistent_reader, base::File::Error error) {
+        persistent_reader->error_code_ = error;
+      },
+      WrapPersistentIfNeeded(this));
+
   if (!has_called_read_directory_) {
-    Filesystem()->ReadDirectory(
-        this, full_path_, EntriesCallbackHelper::Create(this),
-        ErrorCallbackHelper::Create(this), DOMFileSystemBase::kSynchronous);
+    Filesystem()->ReadDirectory(this, full_path_, success_callback_wrapper,
+                                std::move(error_callback_wrapper),
+                                DOMFileSystemBase::kSynchronous);
     has_called_read_directory_ = true;
   }
 
diff --git a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
index fa23b1f4..57d8ff18 100644
--- a/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/directory_reader_sync.h
@@ -60,9 +60,6 @@
   void Trace(blink::Visitor*) override;
 
  private:
-  class EntriesCallbackHelper;
-  class ErrorCallbackHelper;
-
   bool has_called_read_directory_ = false;
   EntrySyncHeapVector entries_;
   base::File::Error error_code_ = base::File::FILE_OK;
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system.cc b/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
index f9aa652..eebe596 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system.cc
@@ -129,27 +129,12 @@
   return number_of_pending_callbacks_;
 }
 
-void DOMFileSystem::ReportError(ErrorCallbackBase* error_callback,
-                                base::File::Error error) {
-  ReportError(GetExecutionContext(), error_callback, error);
-}
-
 void DOMFileSystem::ReportError(ErrorCallback error_callback,
                                 base::File::Error error) {
   ReportError(GetExecutionContext(), std::move(error_callback), error);
 }
 
 void DOMFileSystem::ReportError(ExecutionContext* execution_context,
-                                ErrorCallbackBase* error_callback,
-                                base::File::Error error) {
-  if (!error_callback)
-    return;
-  ScheduleCallback(execution_context,
-                   WTF::Bind(&ErrorCallbackBase::Invoke,
-                             WrapPersistent(error_callback), error));
-}
-
-void DOMFileSystem::ReportError(ExecutionContext* execution_context,
                                 ErrorCallback error_callback,
                                 base::File::Error error) {
   if (!error_callback)
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system.h b/third_party/blink/renderer/modules/filesystem/dom_file_system.h
index 8d8e9da6..c36c5224 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system.h
@@ -75,13 +75,9 @@
   // DOMFileSystemBase overrides.
   void AddPendingCallbacks() override;
   void RemovePendingCallbacks() override;
-  void ReportError(ErrorCallbackBase*, base::File::Error error) override;
   void ReportError(ErrorCallback, base::File::Error error) override;
 
   static void ReportError(ExecutionContext*,
-                          ErrorCallbackBase*,
-                          base::File::Error error);
-  static void ReportError(ExecutionContext*,
                           ErrorCallback,
                           base::File::Error error);
 
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
index dd08da5e..b235b20f 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.cc
@@ -448,13 +448,13 @@
 void DOMFileSystemBase::ReadDirectory(
     DirectoryReaderBase* reader,
     const String& path,
-    EntriesCallbacks::OnDidGetEntriesCallback* success_callback,
-    ErrorCallbackBase* error_callback,
+    const EntriesCallbacks::SuccessCallback& success_callback,
+    EntriesCallbacks::ErrorCallback error_callback,
     SynchronousType synchronous_type) {
   DCHECK(DOMFilePath::IsAbsolute(path));
 
   auto callbacks = std::make_unique<EntriesCallbacks>(
-      success_callback, error_callback, context_, reader, path);
+      success_callback, std::move(error_callback), context_, reader, path);
   FileSystemDispatcher& dispatcher = FileSystemDispatcher::From(context_);
   const KURL& url = CreateFileSystemURL(path);
   if (synchronous_type == kSynchronous) {
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
index d5c7e33..2035bcf 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_base.h
@@ -74,8 +74,6 @@
   virtual void RemovePendingCallbacks() {}
 
   // Overridden by subclasses to handle sync vs async error-handling.
-  virtual void ReportError(ErrorCallbackBase*, base::File::Error error) = 0;
-
   using ErrorCallback = base::OnceCallback<void(base::File::Error)>;
   virtual void ReportError(ErrorCallback, base::File::Error error) = 0;
 
@@ -150,8 +148,8 @@
                     SynchronousType = kAsynchronous);
   void ReadDirectory(DirectoryReaderBase*,
                      const String& path,
-                     EntriesCallbacks::OnDidGetEntriesCallback*,
-                     ErrorCallbackBase*,
+                     const EntriesCallbacks::SuccessCallback&,
+                     EntriesCallbacks::ErrorCallback,
                      SynchronousType = kAsynchronous);
 
   void Trace(blink::Visitor*) override;
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
index a06af476..8d0d42c 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.cc
@@ -64,11 +64,6 @@
 
 DOMFileSystemSync::~DOMFileSystemSync() = default;
 
-void DOMFileSystemSync::ReportError(ErrorCallbackBase* error_callback,
-                                    base::File::Error error) {
-  error_callback->Invoke(error);
-}
-
 void DOMFileSystemSync::ReportError(ErrorCallback error_callback,
                                     base::File::Error error) {
   std::move(error_callback).Run(error);
diff --git a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
index 472cacb..03a0471 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
+++ b/third_party/blink/renderer/modules/filesystem/dom_file_system_sync.h
@@ -62,7 +62,6 @@
                     const KURL& root_url);
   ~DOMFileSystemSync() override;
 
-  void ReportError(ErrorCallbackBase*, base::File::Error error) override;
   void ReportError(ErrorCallback, base::File::Error error) override;
 
   DirectoryEntrySync* root();
diff --git a/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc b/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
index d8f4edd..2b1d796 100644
--- a/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
+++ b/third_party/blink/renderer/modules/filesystem/dom_window_file_system.cc
@@ -59,13 +59,15 @@
   if (!document)
     return;
 
+  auto error_callback_wrapper =
+      AsyncCallbackHelper::ErrorCallback(error_callback);
+
   if (SchemeRegistry::SchemeShouldBypassContentSecurityPolicy(
           document->GetSecurityOrigin()->Protocol()))
     UseCounter::Count(document, WebFeature::kRequestFileSystemNonWebbyOrigin);
 
   if (!document->GetSecurityOrigin()->CanAccessFileSystem()) {
-    DOMFileSystem::ReportError(document,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(document, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_SECURITY);
     return;
   } else if (document->GetSecurityOrigin()->IsLocal()) {
@@ -75,16 +77,13 @@
   mojom::blink::FileSystemType file_system_type =
       static_cast<mojom::blink::FileSystemType>(type);
   if (!DOMFileSystemBase::IsValidType(file_system_type)) {
-    DOMFileSystem::ReportError(document,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(document, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_INVALID_OPERATION);
     return;
   }
 
   auto success_callback_wrapper =
       AsyncCallbackHelper::SuccessCallback<DOMFileSystem>(success_callback);
-  auto error_callback_wrapper =
-      AsyncCallbackHelper::ErrorCallback(error_callback);
 
   LocalFileSystem::From(*document)->RequestFileSystem(
       document, file_system_type, size,
@@ -106,12 +105,14 @@
   if (!document)
     return;
 
+  auto error_callback_wrapper =
+      AsyncCallbackHelper::ErrorCallback(error_callback);
+
   const SecurityOrigin* security_origin = document->GetSecurityOrigin();
   KURL completed_url = document->CompleteURL(url);
   if (!security_origin->CanAccessFileSystem() ||
       !security_origin->CanRequest(completed_url)) {
-    DOMFileSystem::ReportError(document,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(document, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_SECURITY);
     return;
   } else if (document->GetSecurityOrigin()->IsLocal()) {
@@ -119,16 +120,13 @@
   }
 
   if (!completed_url.IsValid()) {
-    DOMFileSystem::ReportError(document,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(document, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_INVALID_URL);
     return;
   }
 
   auto success_callback_wrapper =
       AsyncCallbackHelper::SuccessCallback<Entry>(success_callback);
-  auto error_callback_wrapper =
-      AsyncCallbackHelper::ErrorCallback(error_callback);
 
   LocalFileSystem::From(*document)->ResolveURL(
       document, completed_url,
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc b/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
index ab582ba5..a279d18 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
+++ b/third_party/blink/renderer/modules/filesystem/file_system_callbacks.cc
@@ -54,13 +54,9 @@
 
 namespace blink {
 
-FileSystemCallbacksBase::FileSystemCallbacksBase(
-    ErrorCallbackBase* error_callback,
-    DOMFileSystemBase* file_system,
-    ExecutionContext* context)
-    : error_callback_(error_callback),
-      file_system_(file_system),
-      execution_context_(context) {
+FileSystemCallbacksBase::FileSystemCallbacksBase(DOMFileSystemBase* file_system,
+                                                 ExecutionContext* context)
+    : file_system_(file_system), execution_context_(context) {
   DCHECK(execution_context_);
 
   if (file_system_)
@@ -72,45 +68,6 @@
     file_system_->RemovePendingCallbacks();
 }
 
-// ScriptErrorCallback --------------------------------------------------------
-
-// static
-ScriptErrorCallback* ScriptErrorCallback::Wrap(V8ErrorCallback* callback) {
-  // DOMFileSystem operations take an optional (nullable) callback. If a
-  // script callback was not passed, don't bother creating a dummy wrapper
-  // and checking during invoke().
-  if (!callback)
-    return nullptr;
-  return MakeGarbageCollected<ScriptErrorCallback>(callback);
-}
-
-void ScriptErrorCallback::Trace(blink::Visitor* visitor) {
-  ErrorCallbackBase::Trace(visitor);
-  visitor->Trace(callback_);
-}
-
-void ScriptErrorCallback::Invoke(base::File::Error error) {
-  callback_->InvokeAndReportException(nullptr,
-                                      file_error::CreateDOMException(error));
-}
-
-ScriptErrorCallback::ScriptErrorCallback(V8ErrorCallback* callback)
-    : callback_(ToV8PersistentCallbackInterface(callback)) {}
-
-// PromiseErrorCallback -------------------------------------------------------
-
-PromiseErrorCallback::PromiseErrorCallback(ScriptPromiseResolver* resolver)
-    : resolver_(resolver) {}
-
-void PromiseErrorCallback::Trace(Visitor* visitor) {
-  ErrorCallbackBase::Trace(visitor);
-  visitor->Trace(resolver_);
-}
-
-void PromiseErrorCallback::Invoke(base::File::Error error) {
-  resolver_->Reject(file_error::CreateDOMException(error));
-}
-
 // EntryCallbacks -------------------------------------------------------------
 
 EntryCallbacks::EntryCallbacks(SuccessCallback success_callback,
@@ -119,7 +76,7 @@
                                DOMFileSystemBase* file_system,
                                const String& expected_path,
                                bool is_directory)
-    : FileSystemCallbacksBase(/*error_callback=*/nullptr, file_system, context),
+    : FileSystemCallbacksBase(file_system, context),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)),
       expected_path_(expected_path),
@@ -146,15 +103,14 @@
 
 // EntriesCallbacks -----------------------------------------------------------
 
-EntriesCallbacks::EntriesCallbacks(OnDidGetEntriesCallback* success_callback,
-                                   ErrorCallbackBase* error_callback,
+EntriesCallbacks::EntriesCallbacks(const SuccessCallback& success_callback,
+                                   ErrorCallback error_callback,
                                    ExecutionContext* context,
                                    DirectoryReaderBase* directory_reader,
                                    const String& base_path)
-    : FileSystemCallbacksBase(error_callback,
-                              directory_reader->Filesystem(),
-                              context),
+    : FileSystemCallbacksBase(directory_reader->Filesystem(), context),
       success_callback_(success_callback),
+      error_callback_(std::move(error_callback)),
       directory_reader_(directory_reader),
       base_path_(base_path),
       entries_(MakeGarbageCollected<HeapVector<Member<Entry>>>()) {
@@ -177,17 +133,19 @@
   EntryHeapVector* entries =
       MakeGarbageCollected<EntryHeapVector>(std::move(*entries_));
 
-  if (!success_callback_)
+  if (!success_callback_) {
     return;
+  }
 
-  success_callback_->OnSuccess(entries);
+  success_callback_.Run(entries);
 }
 
 void EntriesCallbacks::DidFail(base::File::Error error) {
-  if (!error_callback_)
+  if (!error_callback_) {
     return;
+  }
 
-  error_callback_.Release()->Invoke(error);
+  std::move(error_callback_).Run(error);
 }
 
 // FileSystemCallbacks --------------------------------------------------------
@@ -196,9 +154,9 @@
                                          ErrorCallback error_callback,
                                          ExecutionContext* context,
                                          mojom::blink::FileSystemType type)
-    : FileSystemCallbacksBase(/*error_callback=*/nullptr,
-                              /*file_system=*/nullptr,
-                              context),
+    : FileSystemCallbacksBase(
+          /*file_system=*/nullptr,
+          context),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)),
       type_(type) {}
@@ -225,9 +183,9 @@
 ResolveURICallbacks::ResolveURICallbacks(SuccessCallback success_callback,
                                          ErrorCallback error_callback,
                                          ExecutionContext* context)
-    : FileSystemCallbacksBase(/*error_callback=*/nullptr,
-                              /*file_system=*/nullptr,
-                              context),
+    : FileSystemCallbacksBase(
+          /*file_system=*/nullptr,
+          context),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)) {
   DCHECK(success_callback_);
@@ -271,7 +229,7 @@
                                      ErrorCallback error_callback,
                                      ExecutionContext* context,
                                      DOMFileSystemBase* file_system)
-    : FileSystemCallbacksBase(/*error_callback=*/nullptr, file_system, context),
+    : FileSystemCallbacksBase(file_system, context),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)) {}
 
@@ -295,9 +253,9 @@
                                          SuccessCallback success_callback,
                                          ErrorCallback error_callback,
                                          ExecutionContext* context)
-    : FileSystemCallbacksBase(/*error_callback =*/nullptr,
-                              /*file_system =*/nullptr,
-                              context),
+    : FileSystemCallbacksBase(
+          /*file_system =*/nullptr,
+          context),
       file_writer_(file_writer),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)) {}
@@ -326,7 +284,7 @@
                                            SuccessCallback success_callback,
                                            ErrorCallback error_callback,
                                            ExecutionContext* context)
-    : FileSystemCallbacksBase(/*error_callback=*/nullptr, filesystem, context),
+    : FileSystemCallbacksBase(filesystem, context),
       name_(name),
       url_(url),
       success_callback_(std::move(success_callback)),
@@ -362,9 +320,7 @@
                              ErrorCallback error_callback,
                              ExecutionContext* context,
                              DOMFileSystemBase* file_system)
-    : FileSystemCallbacksBase(/*error_callback =*/nullptr,
-                              file_system,
-                              context),
+    : FileSystemCallbacksBase(file_system, context),
       success_callback_(std::move(success_callback)),
       error_callback_(std::move(error_callback)) {}
 
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h b/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
index 5f03d1e..35f91cab 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
+++ b/third_party/blink/renderer/modules/filesystem/file_system_callbacks.h
@@ -60,28 +60,14 @@
 class FileMetadata;
 class FileWriterBase;
 class Metadata;
-class ScriptPromiseResolver;
-
-// Passed to DOMFileSystem implementations that may report errors. Subclasses
-// may capture the error for throwing on return to script (for synchronous APIs)
-// or call an actual script callback (for asynchronous APIs).
-class ErrorCallbackBase : public GarbageCollectedFinalized<ErrorCallbackBase> {
- public:
-  virtual ~ErrorCallbackBase() {}
-  virtual void Trace(blink::Visitor* visitor) {}
-  virtual void Invoke(base::File::Error error) = 0;
-};
 
 class FileSystemCallbacksBase {
  public:
   virtual ~FileSystemCallbacksBase();
 
  protected:
-  FileSystemCallbacksBase(ErrorCallbackBase*,
-                          DOMFileSystemBase*,
-                          ExecutionContext*);
+  FileSystemCallbacksBase(DOMFileSystemBase*, ExecutionContext*);
 
-  Persistent<ErrorCallbackBase> error_callback_;
   Persistent<DOMFileSystemBase> file_system_;
   Persistent<ExecutionContext> execution_context_;
   int async_operation_id_;
@@ -103,31 +89,6 @@
 
 // Subclasses ----------------------------------------------------------------
 
-// Wraps a script-provided callback for use in DOMFileSystem operations.
-class ScriptErrorCallback final : public ErrorCallbackBase {
- public:
-  static ScriptErrorCallback* Wrap(V8ErrorCallback*);
-
-  explicit ScriptErrorCallback(V8ErrorCallback*);
-  ~ScriptErrorCallback() override {}
-  void Trace(blink::Visitor*) override;
-
-  void Invoke(base::File::Error error) override;
-
- private:
-  Member<V8PersistentCallbackInterface<V8ErrorCallback>> callback_;
-};
-
-class PromiseErrorCallback final : public ErrorCallbackBase {
- public:
-  explicit PromiseErrorCallback(ScriptPromiseResolver*);
-  void Trace(Visitor*) override;
-  void Invoke(base::File::Error error) override;
-
- private:
-  Member<ScriptPromiseResolver> resolver_;
-};
-
 class EntryCallbacks final : public FileSystemCallbacksBase {
  public:
   using SuccessCallback = base::OnceCallback<void(Entry*)>;
@@ -155,19 +116,11 @@
 
 class EntriesCallbacks final : public FileSystemCallbacksBase {
  public:
-  class OnDidGetEntriesCallback
-      : public GarbageCollectedFinalized<OnDidGetEntriesCallback> {
-   public:
-    virtual ~OnDidGetEntriesCallback() = default;
-    virtual void Trace(blink::Visitor*) {}
-    virtual void OnSuccess(EntryHeapVector*) = 0;
+  using SuccessCallback = base::RepeatingCallback<void(EntryHeapVector*)>;
+  using ErrorCallback = base::OnceCallback<void(base::File::Error)>;
 
-   protected:
-    OnDidGetEntriesCallback() = default;
-  };
-
-  EntriesCallbacks(OnDidGetEntriesCallback*,
-                   ErrorCallbackBase*,
+  EntriesCallbacks(const SuccessCallback&,
+                   ErrorCallback,
                    ExecutionContext*,
                    DirectoryReaderBase*,
                    const String& base_path);
@@ -184,7 +137,8 @@
   void DidFail(base::File::Error error);
 
  private:
-  Persistent<OnDidGetEntriesCallback> success_callback_;
+  SuccessCallback success_callback_;
+  ErrorCallback error_callback_;
   Persistent<DirectoryReaderBase> directory_reader_;
   String base_path_;
   Persistent<HeapVector<Member<Entry>>> entries_;
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
index 4633c66..897f037 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
+++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
@@ -10,54 +10,23 @@
 #include "third_party/blink/renderer/modules/filesystem/entry.h"
 #include "third_party/blink/renderer/modules/filesystem/file_system_base_handle.h"
 #include "third_party/blink/renderer/modules/filesystem/file_system_directory_iterator_entry.h"
+#include "third_party/blink/renderer/platform/wtf/functional.h"
 
 namespace blink {
 
-class FileSystemDirectoryIterator::EntriesCallbackHelper
-    : public EntriesCallbacks::OnDidGetEntriesCallback {
- public:
-  explicit EntriesCallbackHelper(FileSystemDirectoryIterator* reader)
-      : reader_(reader) {}
-
-  void Trace(Visitor* visitor) override {
-    EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor);
-    visitor->Trace(reader_);
-  }
-
-  void OnSuccess(EntryHeapVector* entries) override {
-    reader_->AddEntries(*entries);
-  }
-
- private:
-  // TODO(https://crbug.com/350285): This Member keeps the reader alive until
-  // all of the readDirectory results are received.
-  Member<FileSystemDirectoryIterator> reader_;
-};
-
-class FileSystemDirectoryIterator::ErrorCallbackHelper final
-    : public ErrorCallbackBase {
- public:
-  explicit ErrorCallbackHelper(FileSystemDirectoryIterator* reader)
-      : reader_(reader) {}
-
-  void Invoke(base::File::Error error) override { reader_->OnError(error); }
-
-  void Trace(Visitor* visitor) override {
-    ErrorCallbackBase::Trace(visitor);
-    visitor->Trace(reader_);
-  }
-
- private:
-  Member<FileSystemDirectoryIterator> reader_;
-};
-
 FileSystemDirectoryIterator::FileSystemDirectoryIterator(
     DOMFileSystemBase* file_system,
     const String& full_path)
     : DirectoryReaderBase(file_system, full_path) {
-  Filesystem()->ReadDirectory(this, full_path_,
-                              MakeGarbageCollected<EntriesCallbackHelper>(this),
-                              MakeGarbageCollected<ErrorCallbackHelper>(this));
+  auto success_callback_wrapper = WTF::BindRepeating(
+      [](FileSystemDirectoryIterator* persistent_reader,
+         EntryHeapVector* entries) { persistent_reader->AddEntries(*entries); },
+      WrapPersistentIfNeeded(this));
+  auto error_callback_wrapper = WTF::Bind(&FileSystemDirectoryIterator::OnError,
+                                          WrapPersistentIfNeeded(this));
+
+  Filesystem()->ReadDirectory(this, full_path_, success_callback_wrapper,
+                              std::move(error_callback_wrapper));
 }
 
 ScriptPromise FileSystemDirectoryIterator::next(ScriptState* script_state) {
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h
index 2f851333..d6562a2 100644
--- a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h
+++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h
@@ -27,8 +27,6 @@
   void Trace(Visitor*) override;
 
  private:
-  class EntriesCallbackHelper;
-  class ErrorCallbackHelper;
   void AddEntries(const EntryHeapVector& entries);
   void OnError(base::File::Error);
 
diff --git a/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc b/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
index 1e9bd9d0..446e597 100644
--- a/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
+++ b/third_party/blink/renderer/modules/filesystem/worker_global_scope_file_system.cc
@@ -53,9 +53,11 @@
     V8FileSystemCallback* success_callback,
     V8ErrorCallback* error_callback) {
   ExecutionContext* secure_context = worker.GetExecutionContext();
+  auto error_callback_wrapper =
+      AsyncCallbackHelper::ErrorCallback(error_callback);
+
   if (!secure_context->GetSecurityOrigin()->CanAccessFileSystem()) {
-    DOMFileSystem::ReportError(&worker,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(&worker, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_SECURITY);
     return;
   } else if (secure_context->GetSecurityOrigin()->IsLocal()) {
@@ -65,16 +67,13 @@
   mojom::blink::FileSystemType file_system_type =
       static_cast<mojom::blink::FileSystemType>(type);
   if (!DOMFileSystemBase::IsValidType(file_system_type)) {
-    DOMFileSystem::ReportError(&worker,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(&worker, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_INVALID_OPERATION);
     return;
   }
 
   auto success_callback_wrapper =
       AsyncCallbackHelper::SuccessCallback<DOMFileSystem>(success_callback);
-  auto error_callback_wrapper =
-      AsyncCallbackHelper::ErrorCallback(error_callback);
 
   LocalFileSystem::From(worker)->RequestFileSystem(
       &worker, file_system_type, size,
@@ -133,10 +132,12 @@
     V8ErrorCallback* error_callback) {
   KURL completed_url = worker.CompleteURL(url);
   ExecutionContext* secure_context = worker.GetExecutionContext();
+  auto error_callback_wrapper =
+      AsyncCallbackHelper::ErrorCallback(error_callback);
+
   if (!secure_context->GetSecurityOrigin()->CanAccessFileSystem() ||
       !secure_context->GetSecurityOrigin()->CanRequest(completed_url)) {
-    DOMFileSystem::ReportError(&worker,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(&worker, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_SECURITY);
     return;
   } else if (secure_context->GetSecurityOrigin()->IsLocal()) {
@@ -144,16 +145,13 @@
   }
 
   if (!completed_url.IsValid()) {
-    DOMFileSystem::ReportError(&worker,
-                               ScriptErrorCallback::Wrap(error_callback),
+    DOMFileSystem::ReportError(&worker, std::move(error_callback_wrapper),
                                base::File::FILE_ERROR_INVALID_URL);
     return;
   }
 
   auto success_callback_wrapper =
       AsyncCallbackHelper::SuccessCallback<Entry>(success_callback);
-  auto error_callback_wrapper =
-      AsyncCallbackHelper::ErrorCallback(error_callback);
 
   LocalFileSystem::From(worker)->ResolveURL(
       &worker, completed_url,
diff --git a/third_party/blink/renderer/modules/xr/xr_rigid_transform_test.cc b/third_party/blink/renderer/modules/xr/xr_rigid_transform_test.cc
index b50f050..f65101be 100644
--- a/third_party/blink/renderer/modules/xr/xr_rigid_transform_test.cc
+++ b/third_party/blink/renderer/modules/xr/xr_rigid_transform_test.cc
@@ -6,6 +6,7 @@
 
 #include <vector>
 
+#include "third_party/blink/renderer/modules/xr/xr_test_utils.h"
 #include "third_party/blink/renderer/modules/xr/xr_utils.h"
 
 #include "testing/gmock/include/gmock/gmock.h"
@@ -18,8 +19,6 @@
 namespace blink {
 namespace {
 
-constexpr double kEpsilon = 0.0001;
-
 static void AssertDOMPointsEqualForTest(const DOMPointReadOnly* a,
                                         const DOMPointReadOnly* b) {
   ASSERT_NEAR(a->x(), b->x(), kEpsilon);
@@ -28,15 +27,6 @@
   ASSERT_NEAR(a->w(), b->w(), kEpsilon);
 }
 
-std::vector<double> GetMatrixDataForTest(const TransformationMatrix& matrix) {
-  std::vector<double> data{
-      matrix.M11(), matrix.M12(), matrix.M13(), matrix.M14(),
-      matrix.M21(), matrix.M22(), matrix.M23(), matrix.M24(),
-      matrix.M31(), matrix.M32(), matrix.M33(), matrix.M34(),
-      matrix.M41(), matrix.M42(), matrix.M43(), matrix.M44()};
-  return data;
-}
-
 static void AssertMatricesEqualForTest(const TransformationMatrix& a,
                                        const TransformationMatrix& b) {
   const std::vector<double> a_data = GetMatrixDataForTest(a);
@@ -53,15 +43,6 @@
   AssertMatricesEqualForTest(a.TransformMatrix(), b.TransformMatrix());
 }
 
-static DOMPointInit* MakePointForTest(double x, double y, double z, double w) {
-  DOMPointInit* point = DOMPointInit::Create();
-  point->setX(x);
-  point->setY(y);
-  point->setZ(z);
-  point->setW(w);
-  return point;
-}
-
 static void TestComposeDecompose(DOMPointInit* position,
                                  DOMPointInit* orientation) {
   XRRigidTransform transform_1(position, orientation);
diff --git a/third_party/blink/renderer/modules/xr/xr_test_utils.cc b/third_party/blink/renderer/modules/xr/xr_test_utils.cc
new file mode 100644
index 0000000..4df26f4
--- /dev/null
+++ b/third_party/blink/renderer/modules/xr/xr_test_utils.cc
@@ -0,0 +1,27 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/modules/xr/xr_test_utils.h"
+
+namespace blink {
+
+std::vector<double> GetMatrixDataForTest(const TransformationMatrix& matrix) {
+  std::vector<double> data{
+      matrix.M11(), matrix.M12(), matrix.M13(), matrix.M14(),
+      matrix.M21(), matrix.M22(), matrix.M23(), matrix.M24(),
+      matrix.M31(), matrix.M32(), matrix.M33(), matrix.M34(),
+      matrix.M41(), matrix.M42(), matrix.M43(), matrix.M44()};
+  return data;
+}
+
+DOMPointInit* MakePointForTest(double x, double y, double z, double w) {
+  DOMPointInit* point = DOMPointInit::Create();
+  point->setX(x);
+  point->setY(y);
+  point->setZ(z);
+  point->setW(w);
+  return point;
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_test_utils.h b/third_party/blink/renderer/modules/xr/xr_test_utils.h
new file mode 100644
index 0000000..f478ca2
--- /dev/null
+++ b/third_party/blink/renderer/modules/xr/xr_test_utils.h
@@ -0,0 +1,25 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_TEST_UTILS_H_
+#define THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_TEST_UTILS_H_
+
+#include <memory>
+#include <vector>
+
+#include "third_party/blink/renderer/core/geometry/dom_point_init.h"
+#include "third_party/blink/renderer/core/geometry/dom_point_read_only.h"
+#include "third_party/blink/renderer/core/typed_arrays/dom_typed_array.h"
+#include "third_party/blink/renderer/platform/transforms/transformation_matrix.h"
+
+namespace blink {
+
+constexpr double kEpsilon = 0.0001;
+
+std::vector<double> GetMatrixDataForTest(const TransformationMatrix& matrix);
+DOMPointInit* MakePointForTest(double x, double y, double z, double w);
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_XR_XR_TEST_UTILS_H_
diff --git a/third_party/blink/renderer/modules/xr/xr_view.cc b/third_party/blink/renderer/modules/xr/xr_view.cc
index 8e4f7a2..67cb906 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.cc
+++ b/third_party/blink/renderer/modules/xr/xr_view.cc
@@ -14,8 +14,7 @@
 XRView::XRView(XRSession* session, XREye eye)
     : eye_(eye),
       session_(session),
-      projection_matrix_(DOMFloat32Array::Create(16)),
-      view_matrix_(DOMFloat32Array::Create(16)) {
+      projection_matrix_(DOMFloat32Array::Create(16)) {
   eye_string_ = (eye_ == kEyeLeft ? "left" : "right");
 }
 
@@ -23,13 +22,11 @@
     : eye_(XREye::kEyeLeft),
       eye_string_("left"),
       session_(nullptr),
-      projection_matrix_(DOMFloat32Array::Create(16)),
-      view_matrix_(DOMFloat32Array::Create(16)) {}
+      projection_matrix_(DOMFloat32Array::Create(16)) {}
 
 // deep copy
 XRView::XRView(const XRView& other)
-    : projection_matrix_(DOMFloat32Array::Create(16)),
-      view_matrix_(DOMFloat32Array::Create(16)) {
+    : projection_matrix_(DOMFloat32Array::Create(16)) {
   *this = other;
 }
 
@@ -57,14 +54,10 @@
 
 void XRView::AssignMatrices(const XRView& other) {
   const float* src_projection_data = other.projection_matrix_->Data();
-  const float* src_view_data = other.view_matrix_->Data();
-
   float* dst_projection_data = projection_matrix_->Data();
-  float* dst_view_data = view_matrix_->Data();
 
   for (int i = 0; i < 16; ++i) {
     dst_projection_data[i] = src_projection_data[i];
-    dst_view_data[i] = src_view_data[i];
   }
 }
 
@@ -218,33 +211,20 @@
   return pointer;
 }
 
-// Pass inv_pose_matrix by value because this method modifies its offset, but
+// Pass pose_matrix by value because this method modifies its offset, but
 // the calling code doesn't want it changed.
-void XRView::UpdateViewMatrix(TransformationMatrix inv_pose_matrix) {
-  // Transform by the negative offset, since we're operating on the inverted
-  // matrix
-  inv_pose_matrix.PostTranslate3d(-offset_.X(), -offset_.Y(), -offset_.Z());
-  view_matrix_ = transformationMatrixToDOMFloat32Array(inv_pose_matrix);
-
-  // transform's matrix is the inverse of the view matrix
-  // can't use the original pose matrix because it has translation applied
-  // after taking the inverse
-  // compute the inverse lazily
-  DCHECK(inv_pose_matrix.IsInvertible());
-  inv_pose_ = std::make_unique<TransformationMatrix>(inv_pose_matrix);
+void XRView::UpdatePoseMatrix(TransformationMatrix pose_matrix) {
+  pose_matrix.Translate3d(offset_.X(), offset_.Y(), offset_.Z());
+  transform_ = MakeGarbageCollected<XRRigidTransform>(pose_matrix);
 }
 
-XRRigidTransform* XRView::transform() {
-  if (!transform_) {
-    transform_ = MakeGarbageCollected<XRRigidTransform>(inv_pose_->Inverse());
-  }
+XRRigidTransform* XRView::transform() const {
   return transform_;
 }
 
 void XRView::Trace(blink::Visitor* visitor) {
   visitor->Trace(session_);
   visitor->Trace(projection_matrix_);
-  visitor->Trace(view_matrix_);
   visitor->Trace(transform_);
   ScriptWrappable::Trace(visitor);
 }
diff --git a/third_party/blink/renderer/modules/xr/xr_view.h b/third_party/blink/renderer/modules/xr/xr_view.h
index cd79fea..77e25afb 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.h
+++ b/third_party/blink/renderer/modules/xr/xr_view.h
@@ -19,7 +19,7 @@
 
 class XRSession;
 
-class XRView final : public ScriptWrappable {
+class MODULES_EXPORT XRView final : public ScriptWrappable {
   DEFINE_WRAPPERTYPEINFO();
 
  public:
@@ -37,8 +37,7 @@
 
   XRSession* session() const;
   DOMFloat32Array* projectionMatrix() const { return projection_matrix_; }
-  DOMFloat32Array* viewMatrix() const { return view_matrix_; }
-  XRRigidTransform* transform();
+  XRRigidTransform* transform() const;
 
   void UpdateProjectionMatrixFromRawValues(
       const WTF::Vector<float>& projection_matrix,
@@ -62,7 +61,7 @@
                                                          double canvas_width,
                                                          double canvas_height);
 
-  void UpdateViewMatrix(TransformationMatrix inv_pose_matrix);
+  void UpdatePoseMatrix(TransformationMatrix pose_matrix);
 
   // TODO(bajones): Should eventually represent this as a full transform.
   const FloatPoint3D& offset() const { return offset_; }
@@ -78,9 +77,7 @@
   Member<XRSession> session_;
   Member<XRRigidTransform> transform_;
   Member<DOMFloat32Array> projection_matrix_;
-  Member<DOMFloat32Array> view_matrix_;
   FloatPoint3D offset_;
-  std::unique_ptr<TransformationMatrix> inv_pose_;
   std::unique_ptr<TransformationMatrix> inv_projection_;
   bool inv_projection_dirty_ = true;
 };
diff --git a/third_party/blink/renderer/modules/xr/xr_view.idl b/third_party/blink/renderer/modules/xr/xr_view.idl
index ada2c33..3bd730f 100644
--- a/third_party/blink/renderer/modules/xr/xr_view.idl
+++ b/third_party/blink/renderer/modules/xr/xr_view.idl
@@ -15,6 +15,5 @@
 ] interface XRView {
   readonly attribute XREye eye;
   readonly attribute Float32Array projectionMatrix;
-  readonly attribute Float32Array viewMatrix;
   readonly attribute XRRigidTransform transform;
 };
diff --git a/third_party/blink/renderer/modules/xr/xr_view_test.cc b/third_party/blink/renderer/modules/xr/xr_view_test.cc
new file mode 100644
index 0000000..9890b90
--- /dev/null
+++ b/third_party/blink/renderer/modules/xr/xr_view_test.cc
@@ -0,0 +1,47 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/modules/xr/xr_view.h"
+
+#include "third_party/blink/renderer/modules/xr/xr_test_utils.h"
+
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
+#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
+#include "third_party/blink/renderer/platform/bindings/script_state.h"
+
+namespace blink {
+namespace {
+
+TEST(XRViewTest, UpdatePoseMatrix) {
+  XRView view;
+  view.UpdateOffset(-1.0, 2.0, 3.0);
+
+  DOMPointInit* position = MakePointForTest(1.0, -1.0, 4.0, 1.0);
+  DOMPointInit* orientation =
+      MakePointForTest(0.3701005885691383, -0.5678993882056005,
+                       0.31680366148754113, 0.663438979322567);
+  XRRigidTransform initial_transform(position, orientation);
+  TransformationMatrix pose_matrix = initial_transform.TransformMatrix();
+
+  view.UpdatePoseMatrix(pose_matrix);
+  TransformationMatrix view_transform_matrix =
+      view.transform()->TransformMatrix();
+  const std::vector<double> actual_matrix =
+      GetMatrixDataForTest(view_transform_matrix);
+
+  const std::vector<double> expected_matrix{
+      0.154251,  0.000000,  0.988032,  0.000000,  -0.840720, 0.525322,
+      0.131253,  0.000000,  -0.519035, -0.850904, 0.081032,  0.000000,
+      -2.392795, -2.502067, 3.517570,  1.000000};
+
+  for (int i = 0; i < 16; ++i) {
+    ASSERT_NEAR(actual_matrix[i], expected_matrix[i], kEpsilon);
+  }
+}
+
+}  // namespace
+}  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc b/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc
index 4e186998..1748556 100644
--- a/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc
+++ b/third_party/blink/renderer/modules/xr/xr_viewer_pose.cc
@@ -14,15 +14,12 @@
     XRSession* session,
     std::unique_ptr<TransformationMatrix> pose_model_matrix)
     : XRPose(std::move(pose_model_matrix), session->EmulatedPosition()) {
-  // Can only update views with an invertible matrix.
-  TransformationMatrix inv_pose_matrix = transform_->InverseTransformMatrix();
-
   // session will update views if required
   // views array gets copied to views_
   views_ = session->views();
 
   for (Member<XRView>& view : views_) {
-    view->UpdateViewMatrix(inv_pose_matrix);
+    view->UpdatePoseMatrix(transform_->TransformMatrix());
   }
 }
 
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc b/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
index 802d7204..1cb1b768 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.cc
@@ -72,6 +72,7 @@
   bool want_depth_buffer = initializer->depth();
   bool want_stencil_buffer = initializer->stencil();
   bool want_alpha_channel = initializer->alpha();
+  bool ignore_depth_values = initializer->ignoreDepthValues();
 
   double framebuffer_scale = 1.0;
 
@@ -109,21 +110,23 @@
     return nullptr;
   }
 
-  return MakeGarbageCollected<XRWebGLLayer>(session, webgl_context,
-                                            std::move(drawing_buffer),
-                                            framebuffer, framebuffer_scale);
+  return MakeGarbageCollected<XRWebGLLayer>(
+      session, webgl_context, std::move(drawing_buffer), framebuffer,
+      framebuffer_scale, ignore_depth_values);
 }
 
 XRWebGLLayer::XRWebGLLayer(XRSession* session,
                            WebGLRenderingContextBase* webgl_context,
                            scoped_refptr<XRWebGLDrawingBuffer> drawing_buffer,
                            WebGLFramebuffer* framebuffer,
-                           double framebuffer_scale)
+                           double framebuffer_scale,
+                           bool ignore_depth_values)
     : XRLayer(session, kXRWebGLLayerType),
       webgl_context_(webgl_context),
       drawing_buffer_(std::move(drawing_buffer)),
       framebuffer_(framebuffer),
-      framebuffer_scale_(framebuffer_scale) {
+      framebuffer_scale_(framebuffer_scale),
+      ignore_depth_values_(ignore_depth_values) {
   DCHECK(drawing_buffer_);
   // If the contents need mirroring, indicate that to the drawing buffer.
   if (session->immersive() && session->outputContext() && session->External()) {
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.h b/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
index ad5996b84..7e08a60 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.h
@@ -34,7 +34,8 @@
                WebGLRenderingContextBase*,
                scoped_refptr<XRWebGLDrawingBuffer>,
                WebGLFramebuffer*,
-               double framebuffer_scale);
+               double framebuffer_scale,
+               bool ignore_depth_values);
   ~XRWebGLLayer() override;
 
   static XRWebGLLayer* Create(
@@ -57,6 +58,7 @@
   bool depth() const { return drawing_buffer_->depth(); }
   bool stencil() const { return drawing_buffer_->stencil(); }
   bool alpha() const { return drawing_buffer_->alpha(); }
+  bool ignoreDepthValues() const { return ignore_depth_values_; }
 
   XRViewport* getViewport(XRView*);
   void requestViewportScaling(double scale_factor);
@@ -99,6 +101,7 @@
   bool viewports_dirty_ = true;
   bool mirroring_ = false;
   bool is_direct_draw_frame = false;
+  bool ignore_depth_values_ = false;
 };
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl b/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
index 18efb809..0b7495c 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer.idl
@@ -17,6 +17,7 @@
   readonly attribute boolean depth;
   readonly attribute boolean stencil;
   readonly attribute boolean alpha;
+  readonly attribute boolean ignoreDepthValues;
 
   readonly attribute unsigned long framebufferWidth;
   readonly attribute unsigned long framebufferHeight;
diff --git a/third_party/blink/renderer/modules/xr/xr_webgl_layer_init.idl b/third_party/blink/renderer/modules/xr/xr_webgl_layer_init.idl
index 81c6b50..dd3b492 100644
--- a/third_party/blink/renderer/modules/xr/xr_webgl_layer_init.idl
+++ b/third_party/blink/renderer/modules/xr/xr_webgl_layer_init.idl
@@ -8,6 +8,7 @@
   boolean depth = true;
   boolean stencil = false;
   boolean alpha = true;
+  boolean ignoreDepthValues = false;
   boolean multiview = false;
   double framebufferScaleFactor = 1.0;
 };
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 256f726a..6accadad3 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -216,7 +216,7 @@
   header_dir = "third_party/blink/renderer/platform/bindings"
 
   flags = [
-    "FULL_HEAP_SNAPSHOTS=$v8_enable_full_heap_snapshots",
+    "RAW_HEAP_SNAPSHOTS=$v8_enable_raw_heap_snapshots",
     "RCS_COUNT_EVERYTHING=$runtime_call_stats_count_everything",
   ]
 }
diff --git a/third_party/blink/renderer/platform/bindings/name_client.h b/third_party/blink/renderer/platform/bindings/name_client.h
index 5d9cb55..5ffde8b 100644
--- a/third_party/blink/renderer/platform/bindings/name_client.h
+++ b/third_party/blink/renderer/platform/bindings/name_client.h
@@ -16,12 +16,12 @@
 class PLATFORM_EXPORT NameClient {
  public:
   static constexpr bool HideInternalName() {
-#if BUILDFLAG(FULL_HEAP_SNAPSHOTS) && \
+#if BUILDFLAG(RAW_HEAP_SNAPSHOTS) && \
     (defined(COMPILER_GCC) || defined(__clang__))
     return false;
 #else
     return true;
-#endif  // BUILDFLAG(FULL_HEAP_SNAPSHOTS)
+#endif  // BUILDFLAG(RAW_HEAP_SNAPSHOTS)
   }
 
   NameClient() = default;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
index 0cdd260a..1d2f395 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
@@ -469,7 +469,51 @@
   result1->CopyRange(0, 3, composite_result.get());
   result2->CopyRange(3, string.length(), composite_result.get());
 
-  EXPECT_EQ(result->Bounds(), composite_result->Bounds());
+  EXPECT_EQ(result->Bounds().X(), composite_result->Bounds().X());
+  EXPECT_EQ(result->Bounds().Width(), composite_result->Bounds().Width());
+
+  // We don't get the y-axis quite correct for vertical runs.
+  float tolerance = result->Bounds().Height() * 0.2;
+  EXPECT_NEAR(result->Bounds().Y(), composite_result->Bounds().Y(), tolerance);
+  EXPECT_NEAR(result->Bounds().Height(), composite_result->Bounds().Height(),
+              tolerance);
+}
+
+TEST_F(HarfBuzzShaperTest, ShapeVerticalUprightIdeograph) {
+  font_description.SetOrientation(FontOrientation::kVerticalUpright);
+  font = Font(font_description);
+  font.Update(nullptr);
+
+  // This string should create one ideograph run.
+  String string(u"\u65E5\u65E6\u65E0\u65D3\u65D0");
+  TextDirection direction = TextDirection::kLtr;
+  HarfBuzzShaper shaper(string);
+  scoped_refptr<ShapeResult> result = shaper.Shape(&font, direction);
+
+  // Check width and bounds are not too much different. ".1" is heuristic.
+  EXPECT_NEAR(result->Width(), result->Bounds().Width(), result->Width() * .1);
+
+  // Shape each run and merge them using CopyRange. Bounds() should match.
+  scoped_refptr<ShapeResult> result1 = shaper.Shape(&font, direction, 0, 3);
+  scoped_refptr<ShapeResult> result2 =
+      shaper.Shape(&font, direction, 3, string.length());
+
+  scoped_refptr<ShapeResult> composite_result =
+      ShapeResult::Create(&font, 0, direction);
+  result1->CopyRange(0, 3, composite_result.get());
+  result2->CopyRange(3, string.length(), composite_result.get());
+
+  // Rounding of x and width may be off by ~0.1 on Mac.
+  float tolerance = 0.1f;
+  EXPECT_NEAR(result->Bounds().X(), composite_result->Bounds().X(), tolerance);
+  EXPECT_NEAR(result->Bounds().Width(), composite_result->Bounds().Width(),
+              tolerance);
+
+  // We don't get the y-axis quite correct for vertical runs.
+  tolerance = result->Bounds().Height() * 0.2;
+  EXPECT_NEAR(result->Bounds().Y(), composite_result->Bounds().Y(), tolerance);
+  EXPECT_NEAR(result->Bounds().Height(), composite_result->Bounds().Height(),
+              tolerance);
 }
 
 TEST_F(HarfBuzzShaperTest, RangeShapeSmallCaps) {
@@ -535,7 +579,14 @@
   result1->CopyRange(0, 3, composite_result.get());
   result2->CopyRange(3, string.length(), composite_result.get());
 
-  EXPECT_EQ(result->Bounds(), composite_result->Bounds());
+  EXPECT_EQ(result->Bounds().X(), composite_result->Bounds().X());
+  EXPECT_EQ(result->Bounds().Width(), composite_result->Bounds().Width());
+
+  // We don't get the y-axis quite correct for vertical runs.
+  float tolerance = result->Bounds().Height() * 0.2;
+  EXPECT_NEAR(result->Bounds().Y(), composite_result->Bounds().Y(), tolerance);
+  EXPECT_NEAR(result->Bounds().Height(), composite_result->Bounds().Height(),
+              tolerance);
 }
 
 class ShapeStringTest : public HarfBuzzShaperTest,
@@ -1193,7 +1244,15 @@
 
   EXPECT_EQ(result->NumCharacters(), composite_result->NumCharacters());
   EXPECT_EQ(result->SnappedWidth(), composite_result->SnappedWidth());
-  EXPECT_EQ(result->Bounds(), composite_result->Bounds());
+
+  // Rounding of x and width may be off by ~0.1 on Mac.
+  float tolerance = 0.1f;
+  EXPECT_NEAR(result->Bounds().X(), composite_result->Bounds().X(), tolerance);
+  EXPECT_NEAR(result->Bounds().Width(), composite_result->Bounds().Width(),
+              tolerance);
+  EXPECT_EQ(result->Bounds().Y(), composite_result->Bounds().Y());
+  EXPECT_EQ(result->Bounds().Height(), composite_result->Bounds().Height());
+
   EXPECT_EQ(result->SnappedStartPositionForOffset(0),
             composite_result->SnappedStartPositionForOffset(0));
   EXPECT_EQ(result->SnappedStartPositionForOffset(15),
@@ -1308,7 +1367,7 @@
   // Because a space character does not have ink, the bounds of "." should be
   // the same as the bounds of ". ".
   scoped_refptr<ShapeResult> sub_range = result->SubRange(0, 1);
-  EXPECT_EQ(sub_range->Bounds().Width(), result->Bounds().Width());
+  EXPECT_NEAR(sub_range->Bounds().Width(), result->Bounds().Width(), 0.1);
 }
 
 TEST_F(HarfBuzzShaperTest, ShapeResultCopyRangeBoundsRtl) {
@@ -1320,7 +1379,7 @@
   // Because a space character does not have ink, the bounds of "." should be
   // the same as the bounds of ". ".
   scoped_refptr<ShapeResult> sub_range = result->SubRange(0, 1);
-  EXPECT_EQ(sub_range->Bounds().Width(), result->Bounds().Width());
+  EXPECT_NEAR(sub_range->Bounds().Width(), result->Bounds().Width(), 0.1f);
 }
 
 TEST_F(HarfBuzzShaperTest, SubRange) {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
index 742d52a..31bfc28 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
@@ -375,19 +375,19 @@
   this->advance = new_advance;
   this->offset = new_offset;
   this->safe_to_break_before = new_safe_to_break_before;
-  this->bounds_before_raw_value = std::numeric_limits<int16_t>::max();
-  this->bounds_after_raw_value = std::numeric_limits<int16_t>::max();
+  this->bounds_x_raw_value = std::numeric_limits<int16_t>::max();
+  this->bounds_width_raw_value = std::numeric_limits<int16_t>::max();
 }
 
-void HarfBuzzRunGlyphData::SetGlyphBounds(LayoutUnit bounds_before,
-                                          LayoutUnit bounds_after) {
-  this->bounds_before_raw_value =
-      base::IsValueInRangeForNumericType<int16_t>(bounds_before.RawValue())
-          ? bounds_before.RawValue()
+void HarfBuzzRunGlyphData::SetGlyphBounds(LayoutUnit bounds_x,
+                                          LayoutUnit bounds_width) {
+  this->bounds_x_raw_value =
+      base::IsValueInRangeForNumericType<int16_t>(bounds_x.RawValue())
+          ? bounds_x.RawValue()
           : std::numeric_limits<int16_t>::max();
-  this->bounds_after_raw_value =
-      base::IsValueInRangeForNumericType<int16_t>(bounds_after.RawValue())
-          ? bounds_after.RawValue()
+  this->bounds_width_raw_value =
+      base::IsValueInRangeForNumericType<int16_t>(bounds_width.RawValue())
+          ? bounds_width.RawValue()
           : std::numeric_limits<int16_t>::max();
 }
 
@@ -1134,8 +1134,13 @@
 #else
     FloatRect glyph_bounds(bounds_list[i]);
 #endif
-    glyph_data.SetGlyphBounds(LayoutUnit(glyph_bounds.X()),
-                              LayoutUnit(glyph_bounds.MaxX()));
+    if (is_horizontal_run) {
+      glyph_data.SetGlyphBounds(LayoutUnit(glyph_bounds.X()),
+                                LayoutUnit(glyph_bounds.Width()));
+    } else {
+      glyph_data.SetGlyphBounds(LayoutUnit(glyph_bounds.Y()),
+                                LayoutUnit(glyph_bounds.Height()));
+    }
     bounds.Unite<is_horizontal_run>(glyph_data, glyph_bounds);
     bounds.origin += advance;
 
@@ -1272,6 +1277,21 @@
   start_index_ = ComputeStartIndex();
 }
 
+namespace {
+
+static inline FloatRect GlyphBounds(const SimpleFontData& font_data,
+                                    const HarfBuzzRunGlyphData& glyph_data) {
+  // Bounds are united which requires a non-zero height. The correct height is
+  // set at the end, so pick a small non-zero number here.
+  float height = 0.1f;
+  return glyph_data.HasValidGlyphBounds()
+             ? FloatRect(glyph_data.GlyphBoundsLogicalX(), 0,
+                         glyph_data.GlyphBoundsLogicalWidth(), height)
+             : font_data.BoundsForGlyph(glyph_data.glyph);
+}
+
+}  // Anonymous namespace
+
 // Returns the left of the glyph bounding box of the left most character.
 float ShapeResult::LineLeftBounds() const {
   DCHECK(!runs_.IsEmpty());
@@ -1285,8 +1305,7 @@
   for (const auto& glyph : run.glyph_data_) {
     if (character_index != glyph.character_index)
       break;
-    bounds.Unite(is_horizontal_run, glyph,
-                 font_data.BoundsForGlyph(glyph.glyph));
+    bounds.Unite(is_horizontal_run, glyph, GlyphBounds(font_data, glyph));
     bounds.origin += glyph.advance;
   }
   if (UNLIKELY(!is_horizontal_run))
@@ -1308,8 +1327,7 @@
     if (character_index != glyph.character_index)
       break;
     bounds.origin -= glyph.advance;
-    bounds.Unite(is_horizontal_run, glyph,
-                 font_data.BoundsForGlyph(glyph.glyph));
+    bounds.Unite(is_horizontal_run, glyph, GlyphBounds(font_data, glyph));
   }
   // If the last character has no ink (e.g., space character), assume the
   // character before will not overflow more than the width of the space.
@@ -1417,11 +1435,12 @@
   if (UNLIKELY(Rtl() && target->runs_.size() != target_run_size_before))
     target->ReorderRtlRuns(target_run_size_before);
 
-  // Compute new glyph bounding box.
-  //
-  // Computing glyph bounding box from Font is one of the most expensive
-  // operations. If |start_offset| or |end_offset| are the start/end of |this|,
-  // use the current |glyph_bounding_box_| for the side.
+  // Compute the new glyph bounding box. We only need accurate (logical) left
+  // and right edges. For the (logical) top and bottom base it on the overall
+  // dimensions of the run which is guaranteed to fully contain the run.
+  // This produces a bounding box that is accurate enough without having to call
+  // out to Skia for glyph metrics and recomputing the bounds which is one of
+  // the most expensive steps in shaping.
   DCHECK(primary_font_.get() == target->primary_font_.get());
   bool know_left_edge = start_offset <= StartIndex();
   bool know_right_edge = end_offset >= EndIndex();
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
index 4be97d3..1049f1f 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
@@ -58,8 +58,9 @@
   // LayoutUnit like fixed-point values, with 6 fractional and 10 integear bits.
   // Can represent values between -1023.98 and 1023.96 which should be enough in
   // the vast majority of cases. Max value is reserved to indicate invalid.
-  int16_t bounds_before_raw_value;
-  int16_t bounds_after_raw_value;
+  // Logical coordinate space.
+  int16_t bounds_x_raw_value;
+  int16_t bounds_width_raw_value;
   float advance;
   FloatSize offset;
 
@@ -68,22 +69,35 @@
                             float advance,
                             const FloatSize& offset,
                             bool safe_to_break_before);
-  void SetGlyphBounds(LayoutUnit bounds_before, LayoutUnit bounds_after);
+  void SetGlyphBounds(LayoutUnit bounds_logical_x, LayoutUnit bounds_logical_w);
   bool HasValidGlyphBounds() const {
-    return bounds_before_raw_value != std::numeric_limits<int16_t>::max() &&
-           bounds_after_raw_value != std::numeric_limits<int16_t>::max();
+    return bounds_x_raw_value != std::numeric_limits<int16_t>::max() &&
+           bounds_width_raw_value != std::numeric_limits<int16_t>::max();
   }
 
-  LayoutUnit GlyphBoundsBefore() const {
+  LayoutUnit GlyphBoundsLogicalX() const {
     LayoutUnit bounds;
-    bounds.SetRawValue(static_cast<int>(bounds_before_raw_value));
+    bounds.SetRawValue(static_cast<int>(bounds_x_raw_value));
     return bounds;
   }
-  LayoutUnit GlyphBoundsAfter() const {
+  LayoutUnit GlyphBoundsLogicalWidth() const {
     LayoutUnit bounds;
-    bounds.SetRawValue(static_cast<int>(bounds_after_raw_value));
+    bounds.SetRawValue(static_cast<int>(bounds_width_raw_value));
     return bounds;
   }
+
+  template <bool is_horizontal_run>
+  FloatRect GlyphBounds() const {
+    // We only cache the logical left and right edges, the logical y-axis is set
+    // at the end of the computation.
+    // Bounds are united which requires a non-zero height. The correct height is
+    // set at the end, so pick a small non-zero number here.
+    float height = 0.1f;
+    return is_horizontal_run ? FloatRect(GlyphBoundsLogicalX(), 0.0f,
+                                         GlyphBoundsLogicalWidth(), height)
+                             : FloatRect(0.0f, GlyphBoundsLogicalX(), height,
+                                         GlyphBoundsLogicalWidth());
+  }
 };
 
 struct ShapeResult::RunInfo : public RefCounted<ShapeResult::RunInfo> {
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view.cc
index 0cde7ff..9888106 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view.cc
@@ -278,6 +278,7 @@
     char_index_offset_ = 0;
   }
 
+  FloatRect bounds;
   for (unsigned i = 0; i < segment_count; i++) {
     const Segment& segment = segments[Rtl() ? last_segment_index - i : i];
     if (segment.result) {
@@ -285,41 +286,79 @@
       CreateViewsForResult(segment.result, segment.start_index,
                            segment.end_index);
       has_vertical_offsets_ |= segment.result->has_vertical_offsets_;
+      bounds.Unite(segment.result->Bounds());
     } else if (segment.view) {
       DCHECK_EQ(segment.view->Direction(), Direction());
       CreateViewsForResult(segment.view, segment.start_index,
                            segment.end_index);
       has_vertical_offsets_ |= segment.view->has_vertical_offsets_;
+      bounds.Unite(segment.view->Bounds());
     } else {
       NOTREACHED();
     }
   }
 
+  // Compute new glyph bounding box. We only need accurate (logical) left and
+  // right edges. For the (logical) top and bottom use on the unified bounds of
+  // all source ShapeResults which gurantees that the bounds of the view fully
+  // contains all text.
   float origin = 0;
   for (const auto& part : parts_) {
+    if (!part->NumGlyphs())
+      continue;
     if (part->IsHorizontal())
       ComputeBoundsForPart<true>(*part, origin);
     else
       ComputeBoundsForPart<false>(*part, origin);
     origin += part->width_;
   }
+  glyph_bounding_box_.SetY(bounds.Y());
+  glyph_bounding_box_.SetHeight(bounds.Height());
 }
 
+namespace {
+
+template <bool is_horizontal_run>
+void AccumulateGlyphBounds(GlyphBoundsAccumulator* bounds,
+                           const HarfBuzzRunGlyphData& glyph_data,
+                           const SimpleFontData* font_data) {
+  FloatRect glyph_bounds = glyph_data.HasValidGlyphBounds()
+                               ? glyph_data.GlyphBounds<is_horizontal_run>()
+                               : font_data->BoundsForGlyph(glyph_data.glyph);
+  bounds->Unite<is_horizontal_run>(glyph_data, glyph_bounds);
+}
+
+}  // Anonymous namespace
+
 template <bool is_horizontal_run>
 void ShapeResultView::ComputeBoundsForPart(const RunInfoPart& part,
                                            float origin) {
   GlyphBoundsAccumulator bounds(origin);
   const auto& run = part.run_;
   const SimpleFontData* font_data = run->font_data_.get();
-  for (const auto& glyph_data : part) {
-    FloatRect glyph_bounds = glyph_data.HasValidGlyphBounds()
-                                 ? FloatRect(glyph_data.GlyphBoundsBefore(), 0,
-                                             glyph_data.GlyphBoundsAfter(), 0)
-                                 : font_data->BoundsForGlyph(glyph_data.glyph);
+  DCHECK_GT(part.NumGlyphs(), 0u);
 
-    bounds.Unite<is_horizontal_run>(glyph_data, glyph_bounds);
+  // We only need the bounds of the full first...
+  const unsigned first_character_index = part.GlyphAt(0).character_index;
+  for (const auto& glyph_data : part) {
+    if (first_character_index != glyph_data.character_index)
+      break;
+    AccumulateGlyphBounds<is_horizontal_run>(&bounds, glyph_data, font_data);
     bounds.origin += glyph_data.advance;
   }
+
+  /// ...and last glyph.
+  unsigned last_character_index =
+      part.GlyphAt(part.NumGlyphs() - 1).character_index;
+  bounds.origin = origin + part.width_;
+  for (auto it = part.rbegin(); it != part.rend(); it++) {
+    const auto& glyph_data = *it;
+    if (last_character_index != glyph_data.character_index)
+      break;
+    bounds.origin -= glyph_data.advance;
+    AccumulateGlyphBounds<is_horizontal_run>(&bounds, glyph_data, font_data);
+  }
+
   if (!is_horizontal_run)
     bounds.ConvertVerticalRunToLogical(font_data->GetFontMetrics());
   glyph_bounding_box_.Unite(bounds.bounds);
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc
index bed2c25..393e9b6 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc
@@ -191,6 +191,17 @@
   EXPECT_TRUE(CompareResultGlyphs(view_glyphs, reference_glyphs, 0u, 16u));
   EXPECT_TRUE(
       CompareResultGlyphs(composite_copy_glyphs, reference_glyphs, 0u, 16u));
+  EXPECT_EQ(composite_view->Width(), composite_copy->Width());
+
+  // Rounding of x and width may be off by ~0.1 on Mac.
+  float tolerance = 0.1f;
+  EXPECT_NEAR(composite_view->Bounds().X(), composite_copy->Bounds().X(),
+              tolerance);
+  EXPECT_NEAR(composite_view->Bounds().Width(),
+              composite_copy->Bounds().Width(), tolerance);
+  EXPECT_EQ(composite_view->Bounds().Y(), composite_copy->Bounds().Y());
+  EXPECT_EQ(composite_view->Bounds().Height(),
+            composite_copy->Bounds().Height());
 }
 
 TEST_F(ShapeResultViewTest, LatinCompositeView) {
@@ -243,6 +254,8 @@
                                static_cast<void*>(&composite_glyphs));
   EXPECT_EQ(composite_glyphs.size(), 36u);
   EXPECT_TRUE(CompareResultGlyphs(composite_glyphs, reference_glyphs, 0u, 22u));
+  EXPECT_EQ(composite_view->Width(), composite_copy->Width());
+  EXPECT_EQ(composite_view->Bounds(), composite_copy->Bounds());
 }
 
 TEST_F(ShapeResultViewTest, MixedScriptsCompositeView) {
@@ -287,6 +300,19 @@
                                static_cast<void*>(&composite_glyphs));
   EXPECT_TRUE(CompareResultGlyphs(composite_glyphs, reference_glyphs, 0u,
                                   reference_glyphs.size()));
+  EXPECT_EQ(composite_view->Width(), composite_copy->Width());
+
+  // Rounding of x may be off by ~0.1 on Mac.
+  float tolerance = 0.1f;
+  EXPECT_NEAR(composite_view->Bounds().X(), composite_copy->Bounds().X(),
+              tolerance);
+  // The rounding for the x/width might be off slightly for composite views.
+  tolerance = composite_view->Bounds().Width() / 10;
+  EXPECT_NEAR(composite_view->Bounds().Width(),
+              composite_copy->Bounds().Width(), tolerance);
+  EXPECT_EQ(composite_view->Bounds().Y(), composite_copy->Bounds().Y());
+  EXPECT_EQ(composite_view->Bounds().Height(),
+            composite_copy->Bounds().Height());
 }
 
 TEST_F(ShapeResultViewTest, TrimEndOfView) {
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
index 89f4a980..4717d68 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
@@ -1587,22 +1587,13 @@
   GLuint rgb_texture = back_color_buffer_->rgb_workaround_texture_id;
   DCHECK_EQ(texture_target_, GC3D_TEXTURE_RECTANGLE_ARB);
   if (!rgb_texture) {
-    gpu::SharedImageInterface* sii = ContextProvider()->SharedImageInterface();
-    gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager =
-        Platform::Current()->GetGpuMemoryBufferManager();
-    back_color_buffer_->rgb_workaround_mailbox = sii->CreateSharedImage(
-        back_color_buffer_->gpu_memory_buffer.get(), gpu_memory_buffer_manager,
-        storage_color_space_,
-        gpu::SHARED_IMAGE_USAGE_GLES2 |
-            gpu::SHARED_IMAGE_USAGE_GLES2_FRAMEBUFFER_HINT |
-            gpu::SHARED_IMAGE_USAGE_DISPLAY | gpu::SHARED_IMAGE_USAGE_SCANOUT |
-            gpu::SHARED_IMAGE_USAGE_RGB_EMULATION);
-    gl_->WaitSyncTokenCHROMIUM(sii->GenUnverifiedSyncToken().GetConstData());
-    rgb_texture = gl_->CreateAndTexStorage2DSharedImageCHROMIUM(
-        back_color_buffer_->rgb_workaround_mailbox.name);
+    rgb_texture =
+        gl_->CreateAndTexStorage2DSharedImageWithInternalFormatCHROMIUM(
+            back_color_buffer_->mailbox.name, GL_RGB);
     back_color_buffer_->rgb_workaround_texture_id = rgb_texture;
   }
 
+  gl_->EndSharedImageAccessDirectCHROMIUM(back_color_buffer_->texture_id);
   gl_->BeginSharedImageAccessDirectCHROMIUM(
       rgb_texture, GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM);
   gl_->FramebufferTexture2D(GL_DRAW_FRAMEBUFFER_ANGLE, GL_COLOR_ATTACHMENT0,
@@ -1617,6 +1608,9 @@
   DCHECK(back_color_buffer_->gpu_memory_buffer);
   gl_->EndSharedImageAccessDirectCHROMIUM(
       back_color_buffer_->rgb_workaround_texture_id);
+  gl_->BeginSharedImageAccessDirectCHROMIUM(
+      back_color_buffer_->texture_id,
+      GL_SHARED_IMAGE_ACCESS_MODE_READWRITE_CHROMIUM);
   gl_->FramebufferTexture2D(GL_DRAW_FRAMEBUFFER_ANGLE, GL_COLOR_ATTACHMENT0,
                             texture_target_, back_color_buffer_->texture_id, 0);
   // Clear the alpha channel.
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
index 1111ff9..342df157 100644
--- a/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
+++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
@@ -33,6 +33,7 @@
       rotation_(media::VIDEO_ROTATION_0),
       enable_surface_synchronization_(
           ::features::IsSurfaceSynchronizationEnabled()),
+      empty_frame_weak_ptr_factory_(this),
       weak_ptr_factory_(this) {
   DETACH_FROM_THREAD(thread_checker_);
 }
@@ -333,11 +334,44 @@
     // in the other branch for memory savings.
     if (!is_rendering_)
       SubmitSingleFrame();
-  } else if (!frame_size_.IsEmpty()) {
-    SubmitEmptyFrame();
+  } else {
+    // Post a delayed task to submit an empty frame. We don't do this here,
+    // since there is a race between when we're notified that the player is not
+    // visible, and when auto-PiP starts. In PiP, we'll be set to force submit,
+    // but we're notified after we find out that the page is hidden.  If we
+    // submit an empty frame now, then there will be a flicker in the video
+    // when the empty frame is displayed. By delaying the empty frame, we give
+    // the auto-PiP a chance to start. Note that the empty frame isn't required
+    // for visual correctness; it's just for resource cleanup. We can delay
+    // resource cleanup a little.
+
+    // If there are any in-flight empty frame requests, then cancel them. We
+    // want to wait until any group of state changes stabilizes.
+    empty_frame_weak_ptr_factory_.InvalidateWeakPtrs();
+    base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+        FROM_HERE,
+        base::BindOnce(&VideoFrameSubmitter::SubmitEmptyFrameIfNeeded,
+                       empty_frame_weak_ptr_factory_.GetWeakPtr()),
+        base::TimeDelta::FromMilliseconds(500));
   }
 }
 
+void VideoFrameSubmitter::SubmitEmptyFrameIfNeeded() {
+  // If we are allowed to submit real frames, then don't send a blank frame
+  // since the last real frame might actually be visible.
+  //
+  // We do not actually submit a real frame here, though; that should be done
+  // (if desired) by whatever switched us to ShouldSubmit() mode.
+  if (ShouldSubmit())
+    return;
+
+  // If we don't have a frame size, then we can't send a blank frame.
+  if (frame_size_.IsEmpty())
+    return;
+
+  SubmitEmptyFrame();
+}
+
 bool VideoFrameSubmitter::SubmitFrame(
     const viz::BeginFrameAck& begin_frame_ack,
     scoped_refptr<media::VideoFrame> video_frame) {
diff --git a/third_party/blink/renderer/platform/graphics/video_frame_submitter.h b/third_party/blink/renderer/platform/graphics/video_frame_submitter.h
index 75ef619..82791ca8 100644
--- a/third_party/blink/renderer/platform/graphics/video_frame_submitter.h
+++ b/third_party/blink/renderer/platform/graphics/video_frame_submitter.h
@@ -95,6 +95,9 @@
   // visible or an empty frame if not.
   void UpdateSubmissionState();
 
+  // Will submit an empty frame to clear resource usage if it's safe.
+  void SubmitEmptyFrameIfNeeded();
+
   // Returns whether a frame was submitted.
   bool SubmitFrame(const viz::BeginFrameAck&, scoped_refptr<media::VideoFrame>);
 
@@ -168,6 +171,9 @@
 
   THREAD_CHECKER(thread_checker_);
 
+  // Weak factory that's used to cancel empty frame callbacks.
+  base::WeakPtrFactory<VideoFrameSubmitter> empty_frame_weak_ptr_factory_;
+
   base::WeakPtrFactory<VideoFrameSubmitter> weak_ptr_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(VideoFrameSubmitter);
diff --git a/third_party/blink/renderer/platform/heap/name_trait_test.cc b/third_party/blink/renderer/platform/heap/name_trait_test.cc
index a7d5ac3..d83ab701 100644
--- a/third_party/blink/renderer/platform/heap/name_trait_test.cc
+++ b/third_party/blink/renderer/platform/heap/name_trait_test.cc
@@ -44,9 +44,9 @@
 }
 
 TEST(NameTraitTest, InternalNamesHiddenWhenFlagIsTurnedOff) {
-#if !BUILDFLAG(FULL_HEAP_SNAPSHOTS)
+#if !BUILDFLAG(RAW_HEAP_SNAPSHOTS)
   EXPECT_TRUE(NameClient::HideInternalName());
-#endif  // BUILDFLAG(FULL_HEAP_SNAPSHOTS)
+#endif  // BUILDFLAG(RAW_HEAP_SNAPSHOTS)
 }
 
 TEST(NameTraitTest, DefaultName) {
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index a579b825..02930e41 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -3026,6 +3026,8 @@
 crbug.com/939181 virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Failure Timeout ]
 
 # ====== New tests from wpt-importer added here ======
+crbug.com/626703 external/wpt/payment-method-basic-card/steps_for_selecting_the_payment_handler.html [ Timeout ]
+crbug.com/626703 external/wpt/payment-method-basic-card/apply_the_modifiers.html [ Timeout ]
 crbug.com/626703 external/wpt/html/rendering/non-replaced-elements/tables/table-border-3s.html [ Failure ]
 crbug.com/626703 [ Mac10.11 ] external/wpt/shape-detection/detection-security-test.html [ Timeout ]
 crbug.com/626703 external/wpt/svg/text/reftests/text-text-anchor-001.svg [ Failure ]
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/async-navigator-clipboard-basics.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/async-navigator-clipboard-basics.https.html
index 1d2aacb..dabf1d6 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/async-navigator-clipboard-basics.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/async-navigator-clipboard-basics.https.html
@@ -16,60 +16,60 @@
   assert_not_equals(navigator.clipboard, undefined);
   assert_true(navigator.clipboard instanceof Clipboard);
   assert_equals(navigator.clipboard, navigator.clipboard);
-}, "navigator.clipboard exists");
+}, 'navigator.clipboard exists');
 
 promise_test(async () => {
   await getPermissions();
-  const blob = new Blob(["hello"], {type: 'text/plain'});
+  const blob = new Blob(['hello'], {type: 'text/plain'});
   await navigator.clipboard.write({'text/plain': blob});
-}, "navigator.clipboard.write({string : text/plain Blob}) succeeds");
+}, 'navigator.clipboard.write({string : text/plain Blob}) succeeds');
 
 promise_test(async t => {
   await getPermissions();
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.write());
-}, "navigator.clipboard.write() fails (expect {string : Blob})");
+}, 'navigator.clipboard.write() fails (expect {string : Blob})');
 
 promise_test(async t => {
   await getPermissions();
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.write(null));
-}, "navigator.clipboard.write(null) fails (expect {string : Blob})");
+}, 'navigator.clipboard.write(null) fails (expect {string : Blob})');
 
 promise_test(async t => {
   await getPermissions();
   await promise_rejects(t, new TypeError(),
-                         navigator.clipboard.write("Bad string"));
-}, "navigator.clipboard.write(DOMString) fails (expect {string : Blob})");
+                         navigator.clipboard.write('Bad string'));
+}, 'navigator.clipboard.write(DOMString) fails (expect {string : Blob})');
 
 promise_test(async t => {
   await getPermissions();
-  const blob = new Blob(["hello"], {type: 'text/plain'});
+  const blob = new Blob(['hello'], {type: 'text/plain'});
   await promise_rejects(t, 'NotAllowedError',
                          navigator.clipboard.write(blob));
-}, "navigator.clipboard.write(Blob) fails (expect {string : Blob})");
+}, 'navigator.clipboard.write(Blob) fails (expect {string : Blob})');
 
 promise_test(async () => {
   await getPermissions();
-  await navigator.clipboard.writeText("New clipboard text");
-}, "navigator.clipboard.writeText(DOMString) succeeds");
+  await navigator.clipboard.writeText('New clipboard text');
+}, 'navigator.clipboard.writeText(DOMString) succeeds');
 
 promise_test(async t => {
   await getPermissions();
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.writeText());
-}, "navigator.clipboard.writeText() fails (expect DOMString)");
+}, 'navigator.clipboard.writeText() fails (expect DOMString)');
 
 promise_test(async () => {
   await getPermissions();
   const result = await navigator.clipboard.read();
   assert_true(result instanceof Object);
-}, "navigator.clipboard.read() succeeds");
+}, 'navigator.clipboard.read() succeeds');
 
 promise_test(async () => {
   await getPermissions();
   const result = await navigator.clipboard.readText();
-  assert_equals(typeof result, "string");
-}, "navigator.clipboard.readText() succeeds");
+  assert_equals(typeof result, 'string');
+}, 'navigator.clipboard.readText() succeeds');
 
 </script>
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-blobtext.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-blobtext.https.html
index b10933b..f93359f 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-blobtext.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-blobtext.https.html
@@ -17,14 +17,14 @@
     await navigator.clipboard.write({'text/plain': blobInput});
     const blobsOutput = await navigator.clipboard.read();
     assert_equals(Object.keys(blobsOutput).length, 1);
-    const blobOutput = blobsOutput["text/plain"];
-    assert_equals(blobOutput.type, "text/plain");
+    const blobOutput = blobsOutput['text/plain'];
+    assert_equals(blobOutput.type, 'text/plain');
 
     const textOutput = await (new Response(blobOutput)).text();
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write ([text/plain Blob]) -> read ([text/plain Blob]) test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write ([text/plain Blob]) -> read ([text/plain Blob]) test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-text.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-text.https.html
index cb0c7ba9..dcc5645 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-text.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-blobtext-read-text.https.html
@@ -16,9 +16,9 @@
     const textOutput = await navigator.clipboard.readText();
 
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write ([text/plain Blob]) -> read text test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write ([text/plain Blob]) -> read text test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-blobtext.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-blobtext.https.html
index e1c1f22..ad41560 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-blobtext.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-blobtext.https.html
@@ -13,14 +13,14 @@
     await navigator.clipboard.writeText(textInput);
     const blobsOutput = await navigator.clipboard.read();
     assert_equals(Object.keys(blobsOutput).length, 1);
-    const blobOutput = blobsOutput["text/plain"];
-    assert_equals(blobOutput.type, "text/plain");
+    const blobOutput = blobsOutput['text/plain'];
+    assert_equals(blobOutput.type, 'text/plain');
 
     const textOutput = await (new Response(blobOutput)).text();
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write text -> read ([text/plain Blob]) test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write text -> read ([text/plain Blob]) test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-text.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-text.https.html
index 8c2e09af..f20545f5 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-text.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/async-write-text-read-text.https.html
@@ -14,9 +14,9 @@
     const textOutput = await navigator.clipboard.readText();
 
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write text -> read text test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write text -> read text test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/readtext-denied.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/readtext-denied.https.html
index c2473c7..47fb031 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/readtext-denied.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/readtext-denied.https.html
@@ -8,5 +8,5 @@
 promise_test(async t => {
   await PermissionsHelper.setPermission('clipboard-read', 'denied');
   await promise_rejects(t, 'NotAllowedError', navigator.clipboard.readText());
-}, "navigator.clipboard.readText() fails when permission denied");
+}, 'navigator.clipboard.readText() fails when permission denied');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/readtext-granted.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/readtext-granted.https.html
index dc0ef60..d38dc44b 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/readtext-granted.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/readtext-granted.https.html
@@ -8,5 +8,5 @@
 promise_test(async () => {
   await PermissionsHelper.setPermission('clipboard-read', 'granted');
   await navigator.clipboard.readText();
-}, "navigator.clipboard.readText() succeeds when permission granted");
+}, 'navigator.clipboard.readText() succeeds when permission granted');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/writetext-denied.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/writetext-denied.https.html
index 4a0f6ed..808df44 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/writetext-denied.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/writetext-denied.https.html
@@ -7,6 +7,6 @@
 <script>
 promise_test(async t => {
   await PermissionsHelper.setPermission('clipboard-write', 'denied');
-  await promise_rejects(t, 'NotAllowedError', navigator.clipboard.writeText("xyz"));
-}, "navigator.clipboard.writeText() fails when permission denied");
+  await promise_rejects(t, 'NotAllowedError', navigator.clipboard.writeText('xyz'));
+}, 'navigator.clipboard.writeText() fails when permission denied');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/writetext-granted.https.html b/third_party/blink/web_tests/clipboard/async-clipboard/writetext-granted.https.html
index 5f25b80..a96a273 100644
--- a/third_party/blink/web_tests/clipboard/async-clipboard/writetext-granted.https.html
+++ b/third_party/blink/web_tests/clipboard/async-clipboard/writetext-granted.https.html
@@ -7,6 +7,6 @@
 <script>
 promise_test(async () => {
   await PermissionsHelper.setPermission('clipboard-write', 'granted');
-  await navigator.clipboard.writeText("xyz");
-}, "navigator.clipboard.writeText() succeeds when permission granted");
+  await navigator.clipboard.writeText('xyz');
+}, 'navigator.clipboard.writeText() succeeds when permission granted');
 </script>
\ No newline at end of file
diff --git a/third_party/blink/web_tests/clipboard/copy-image-at-with-pinch-zoom.html b/third_party/blink/web_tests/clipboard/copy-image-at-with-pinch-zoom.html
index b6b7db47..c3356099 100644
--- a/third_party/blink/web_tests/clipboard/copy-image-at-with-pinch-zoom.html
+++ b/third_party/blink/web_tests/clipboard/copy-image-at-with-pinch-zoom.html
@@ -7,9 +7,9 @@
 testRunner.waitUntilDone();
 testRunner.dumpAsText();
 requestAnimationFrame(() => {
-  var canvas = document.querySelector("canvas");
-  var context = canvas.getContext("2d");
-  context.fillStyle = "red";
+  var canvas = document.querySelector('canvas');
+  var context = canvas.getContext('2d');
+  context.fillStyle = 'red';
   context.fillRect(0, 0, 200, 200);
   internals.setPageScaleFactor(2);
   internals.setVisualViewportOffset(200, 200);
@@ -17,12 +17,12 @@
     testRunner.copyImageAtAndCapturePixelsAsyncThen(0, 0, (width, height, snapshot) => {
       try {
         if (width !== 200 || height !== 200)
-          testFailed("The copied image must be 200x200.");
+          testFailed('The copied image must be 200x200.');
         var topleft = new Uint8Array(snapshot).subarray(0, 4);
         if (topleft[0] !== 255 || topleft[1] !== 0 || topleft[2] !== 0 || topleft[3] !== 255)
           testFailed("The copied image's top left must be red. " + JSON.stringify(topleft));
       } catch (e) {
-        testFailed("" + e);
+        testFailed('' + e);
       }
       testRunner.notifyDone();
     });
diff --git a/third_party/blink/web_tests/clipboard/copy-image-at.html b/third_party/blink/web_tests/clipboard/copy-image-at.html
index 85ef14aa..5abc4ce 100644
--- a/third_party/blink/web_tests/clipboard/copy-image-at.html
+++ b/third_party/blink/web_tests/clipboard/copy-image-at.html
@@ -7,20 +7,20 @@
 testRunner.waitUntilDone();
 testRunner.dumpAsText();
 requestAnimationFrame(() => {
-  var canvas = document.querySelector("canvas");
-  var context = canvas.getContext("2d");
-  context.fillStyle = "red";
+  var canvas = document.querySelector('canvas');
+  var context = canvas.getContext('2d');
+  context.fillStyle = 'red';
   context.fillRect(0, 0, 200, 200);
   requestAnimationFrame(() => {
     testRunner.copyImageAtAndCapturePixelsAsyncThen(50, 50, (width, height, snapshot) => {
       try {
         if (width !== 200 || height !== 200)
-          testFailed("The copied image must be 200x200.");
+          testFailed('The copied image must be 200x200.');
         var topleft = new Uint8Array(snapshot).subarray(0, 4);
         if (topleft[0] !== 255 || topleft[1] !== 0 || topleft[2] !== 0 || topleft[3] !== 255)
           testFailed("The copied image's top left must be red. " + JSON.stringify(topleft));
       } catch (e) {
-        testFailed("" + e);
+        testFailed('' + e);
       }
       testRunner.notifyDone();
     });
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
index 2ec7a5b..3d18ee7 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_5.json
@@ -275545,6 +275545,12 @@
      {}
     ]
    ],
+   "payment-method-basic-card/apply_the_modifiers.html": [
+    [
+     "/payment-method-basic-card/apply_the_modifiers.html",
+     {}
+    ]
+   ],
    "payment-method-basic-card/historical.https.html": [
     [
      "/payment-method-basic-card/historical.https.html",
@@ -275563,6 +275569,12 @@
      {}
     ]
    ],
+   "payment-method-basic-card/steps_for_selecting_the_payment_handler.html": [
+    [
+     "/payment-method-basic-card/steps_for_selecting_the_payment_handler.html",
+     {}
+    ]
+   ],
    "payment-method-id/payment-request-ctor-pmi-handling.https.html": [
     [
      "/payment-method-id/payment-request-ctor-pmi-handling.https.html",
@@ -447855,6 +447867,10 @@
    "6e8764b026a092a1791517f22aee5d37c06a2d61",
    "support"
   ],
+  "payment-method-basic-card/apply_the_modifiers.html": [
+   "8b9fe78e2e4f50f11364246edc6c53941b0ad395",
+   "testharness"
+  ],
   "payment-method-basic-card/empty-data-manual.https.html": [
    "ba881ee2366c49aa15799767892c5ed847e41ac3",
    "manual"
@@ -447875,6 +447891,10 @@
    "f1b0c28abb886745713378025af341507a3a7c2d",
    "testharness"
   ],
+  "payment-method-basic-card/steps_for_selecting_the_payment_handler.html": [
+   "19cefadb3d4cb445e8acb55a3bcff0a6be02b38c",
+   "testharness"
+  ],
   "payment-method-id/META.yml": [
    "5e9fe05abae6f862301ef85f9905d91eb4e42121",
    "support"
@@ -467652,7 +467672,7 @@
    "support"
   ],
   "tools/manifest/manifest.py": [
-   "90655daca22406f99cf92295413894d0f8d9291b",
+   "f5d939fa1325f0660baf5fa66f9a647c1ea8588e",
    "support"
   ],
   "tools/manifest/sourcefile.py": [
@@ -470020,11 +470040,11 @@
    "support"
   ],
   "tools/third_party/py/doc/announce/release-1.4.0.txt": [
-   "abaa830459951e563f8b56cfad0a0684236dd183",
+   "6f9a7714d9f16c169a3ace131783ebc298936d39",
    "support"
   ],
   "tools/third_party/py/doc/announce/release-1.4.1.txt": [
-   "b37a148af59a1af7d46028fb1f1dcb2597f3ed76",
+   "a5aa76b1438eb7288c580ba2b50dda96503198fb",
    "support"
   ],
   "tools/third_party/py/doc/announce/releases.txt": [
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-interfaces.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-interfaces.https.html
index 0617ac11..e0d0977 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-interfaces.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-interfaces.https.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html>
 <meta charset=utf-8>
 <title>Clipboard IDL test</title>
-<link rel="help" href="https://w3c.github.io/clipboard-apis/">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=/resources/WebIDLParser.js></script>
-<script src=/resources/idlharness.js></script>
+<link rel='help' href='https://w3c.github.io/clipboard-apis/'>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/WebIDLParser.js"></script>
+<script src="/resources/idlharness.js"></script>
 <script>
 'use strict';
 
@@ -31,9 +31,9 @@
 promise_test(() => {
   return Promise.all(
     [
-      "/interfaces/clipboard-apis.idl",
-      "/interfaces/dom.idl",
+      '/interfaces/clipboard-apis.idl',
+      '/interfaces/dom.idl',
     ].map(fetchText))
     .then(([idl, dom]) => doTest(idl, dom));
-}, "Test driver");
+}, 'Test driver');
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html
index 7d2cba8b..b71b43e 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-navigator-clipboard-basics.https.html
@@ -9,42 +9,42 @@
   assert_not_equals(navigator.clipboard, undefined);
   assert_true(navigator.clipboard instanceof Clipboard);
   assert_equals(navigator.clipboard, navigator.clipboard);
-}, "navigator.clipboard exists");
+}, 'navigator.clipboard exists');
 
 promise_test(async () => {
-  const blob = new Blob(["hello"], {type: 'text/plain'});
+  const blob = new Blob(['hello'], {type: 'text/plain'});
   await navigator.clipboard.write({'text/plain': blob});
-}, "navigator.clipboard.write({string : text/plain Blob}) succeeds");
+}, 'navigator.clipboard.write({string : text/plain Blob}) succeeds');
 
 promise_test(async t => {
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.write());
-}, "navigator.clipboard.write() fails (expect {string : Blob})");
+}, 'navigator.clipboard.write() fails (expect {string : Blob})');
 
 promise_test(async t => {
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.write(null));
-}, "navigator.clipboard.write(null) fails (expect {string : Blob})");
+}, 'navigator.clipboard.write(null) fails (expect {string : Blob})');
 
 promise_test(async t => {
   await promise_rejects(t, new TypeError(),
-                         navigator.clipboard.write("Bad string"));
-}, "navigator.clipboard.write(DOMString) fails (expect {string : Blob})");
+                         navigator.clipboard.write('Bad string'));
+}, 'navigator.clipboard.write(DOMString) fails (expect {string : Blob})');
 
 promise_test(async t => {
-  const blob = new Blob(["hello"], {type: 'text/plain'});
+  const blob = new Blob(['hello'], {type: 'text/plain'});
   await promise_rejects(t, 'NotAllowedError',
                          navigator.clipboard.write(blob));
-}, "navigator.clipboard.write(Blob) fails (expect {string : Blob})");
+}, 'navigator.clipboard.write(Blob) fails (expect {string : Blob})');
 
 promise_test(async () => {
-  await navigator.clipboard.writeText("New clipboard text");
-}, "navigator.clipboard.writeText(DOMString) succeeds");
+  await navigator.clipboard.writeText('New clipboard text');
+}, 'navigator.clipboard.writeText(DOMString) succeeds');
 
 promise_test(async t => {
   await promise_rejects(t, new TypeError(),
                          navigator.clipboard.writeText());
-}, "navigator.clipboard.writeText() fails (expect DOMString)");
+}, 'navigator.clipboard.writeText() fails (expect DOMString)');
 
 promise_test(async () => {
   const fetched = await fetch(
@@ -52,16 +52,16 @@
   const image = await fetched.blob();
 
   await navigator.clipboard.write({'image/png' : image});
-}, "navigator.clipboard.write({string : image/png Blob}) succeeds");
+}, 'navigator.clipboard.write({string : image/png Blob}) succeeds');
 
 promise_test(async () => {
   const result = await navigator.clipboard.read();
   assert_true(result instanceof Object);
-}, "navigator.clipboard.read() succeeds");
+}, 'navigator.clipboard.read() succeeds');
 
 promise_test(async () => {
   const result = await navigator.clipboard.readText();
-  assert_equals(typeof result, "string");
-}, "navigator.clipboard.readText() succeeds");
+  assert_equals(typeof result, 'string');
+}, 'navigator.clipboard.readText() succeeds');
 
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobs-read-blobs-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobs-read-blobs-manual.https.html
index 3666c93..57cf542 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobs-read-blobs-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobs-read-blobs-manual.https.html
@@ -13,20 +13,20 @@
 }
 
 promise_test(async t => {
-  const blobText = new Blob(["test text"], {type: 'text/plain'});
+  const blobText = new Blob(['test text'], {type: 'text/plain'});
   const blobImage = await loadBlob('resources/greenbox.png');
 
-  assert_equals(blobText.type, "text/plain");
-  assert_equals(blobImage.type, "image/png");
+  assert_equals(blobText.type, 'text/plain');
+  assert_equals(blobImage.type, 'image/png');
 
   await navigator.clipboard.write(
-        {"text/plain" : blobText, "image/png" : blobImage});
+        {'text/plain' : blobText, 'image/png' : blobImage});
   const output = await navigator.clipboard.read();
 
   assert_equals(Object.keys(output).length, 2);
-  assert_equals(output["text/plain"].type, "text/plain");
-  assert_equals(output["image/png"].type, "image/png");
-}, "Verify write and read clipboard (multiple blobs)");
+  assert_equals(output['text/plain'].type, 'text/plain');
+  assert_equals(output['image/png'].type, 'image/png');
+}, 'Verify write and read clipboard (multiple blobs)');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
index 44c5742..fded721 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-blobtext-manual.https.html
@@ -13,16 +13,16 @@
     await navigator.clipboard.write({'text/plain': blobInput});
     const blobsOutput = await navigator.clipboard.read();
     assert_equals(Object.keys(blobsOutput).length, 1);
-    const blobOutput = blobsOutput["text/plain"];
-    assert_equals(blobOutput.type, "text/plain");
+    const blobOutput = blobsOutput['text/plain'];
+    assert_equals(blobOutput.type, 'text/plain');
 
     const textOutput = await (new Response(blobOutput)).text();
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write ([text/plain Blob]) -> read ([text/plain Blob]) test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write ([text/plain Blob]) -> read ([text/plain Blob]) test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-text-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-text-manual.https.html
index c991f1f..98ff7c27 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-text-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-blobtext-read-text-manual.https.html
@@ -12,11 +12,11 @@
     const textOutput = await navigator.clipboard.readText();
 
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write ([text/plain Blob]) -> read text test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write ([text/plain Blob]) -> read text test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-image-read-image-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-image-read-image-manual.https.html
index 2a32348..6c326cf 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-image-read-image-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-image-read-image-manual.https.html
@@ -9,11 +9,11 @@
 <p>
   <p>The bottom image should display the same image as the top image.</p>
   <p>Original Image:</p>
-  <image id='image-to-copy' width='20' height='20'
+  <image id="image-to-copy" width="20" height="20"
         src="resources/greenbox.png"></image>
   <p>Image after copy/paste:</p>
-  <image id='image-on-clipboard'></image>
-  <canvas id='canvas' width='20' height='20'></canvas>
+  <image id="image-on-clipboard"></image>
+  <canvas id="canvas" width="20" height="20"></canvas>
 </p>
 
 <script>
@@ -39,12 +39,12 @@
 promise_test(async t => {
   const blobInput = await loadBlob('resources/greenbox.png');
 
-  assert_equals(blobInput.type, "image/png");
-  await navigator.clipboard.write({"image/png" : blobInput});
+  assert_equals(blobInput.type, 'image/png');
+  await navigator.clipboard.write({'image/png' : blobInput});
   const blobsOutput = await navigator.clipboard.read();
   assert_equals(Object.keys(blobsOutput).length, 1);
-  const blobOutput = blobsOutput["image/png"];
-  assert_equals(blobOutput.type, "image/png");
+  const blobOutput = blobsOutput['image/png'];
+  assert_equals(blobOutput.type, 'image/png');
 
   document.getElementById('image-on-clipboard').src =
       window.URL.createObjectURL(blobOutput);
@@ -53,7 +53,7 @@
   const comparableOutput = await getBitmapString(blobOutput);
 
   assert_equals(comparableOutput, comparableInput);
-}, "Verify write and read clipboard ([image/png Blob])");
+}, 'Verify write and read clipboard ([image/png Blob])');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-blobtext-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-blobtext-manual.https.html
index 24e6b6e..ab85a6f 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-blobtext-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-blobtext-manual.https.html
@@ -9,16 +9,16 @@
     await navigator.clipboard.writeText(textInput);
     const blobsOutput = await navigator.clipboard.read();
     assert_equals(Object.keys(blobsOutput).length, 1);
-    const blobOutput = blobsOutput["text/plain"];
-    assert_equals(blobOutput.type, "text/plain");
+    const blobOutput = blobsOutput['text/plain'];
+    assert_equals(blobOutput.type, 'text/plain');
 
     const textOutput = await (new Response(blobOutput)).text();
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write text -> read ([text/plain Blob]) test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write text -> read ([text/plain Blob]) test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-text-manual.https.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-text-manual.https.html
index 496bdd7..25c7edb 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-text-manual.https.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/async-write-text-read-text-manual.https.html
@@ -10,11 +10,11 @@
     const textOutput = await navigator.clipboard.readText();
 
     assert_equals(textOutput, textInput);
-  }, "Verify write and read clipboard given text: " + textInput);
+  }, 'Verify write and read clipboard given text: ' + textInput);
 }
 
-readWriteTest("Clipboard write text -> read text test");
-readWriteTest("non-Latin1 text encoding test データ");
+readWriteTest('Clipboard write text -> read text test');
+readWriteTest('non-Latin1 text encoding test データ');
 </script>
 <p>
   Note: This is a manual test because it writes/reads to the shared system
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/copy-event-manual.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/copy-event-manual.html
index e4cf337..6f687af 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/copy-event-manual.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/copy-event-manual.html
@@ -11,9 +11,9 @@
   document.oncopy = t.step_func_done(event => {
     // Nothing can be asserted about the event target until
     // https://github.com/w3c/clipboard-apis/issues/70 is resolved.
-    // assert_equals(event.target, document.body, "event.target");
-    assert_true(event.isTrusted, "event.isTrusted");
-    assert_true(event.composed, "event.composed");
+    // assert_equals(event.target, document.body, 'event.target');
+    assert_true(event.isTrusted, 'event.isTrusted');
+    assert_true(event.composed, 'event.composed');
   });
 });
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/cut-event-manual.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/cut-event-manual.html
index abef6f94..c559317 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/cut-event-manual.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/cut-event-manual.html
@@ -11,9 +11,9 @@
   document.oncut = t.step_func_done(event => {
     // Nothing can be asserted about the event target until
     // https://github.com/w3c/clipboard-apis/issues/70 is resolved.
-    // assert_equals(event.target, document.body, "event.target");
-    assert_true(event.isTrusted, "event.isTrusted");
-    assert_true(event.composed, "event.composed");
+    // assert_equals(event.target, document.body, 'event.target');
+    assert_true(event.isTrusted, 'event.isTrusted');
+    assert_true(event.composed, 'event.composed');
   });
 });
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/paste-event-manual.html b/third_party/blink/web_tests/external/wpt/clipboard-apis/paste-event-manual.html
index 4131a41b..19e6b95 100644
--- a/third_party/blink/web_tests/external/wpt/clipboard-apis/paste-event-manual.html
+++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/paste-event-manual.html
@@ -9,13 +9,13 @@
 <script>
 setup({explicit_timeout: true});
 async_test(t => {
-  getSelection().selectAllChildren(document.querySelector("p"));
+  getSelection().selectAllChildren(document.querySelector('p'));
   document.onpaste = t.step_func_done(event => {
     // Nothing can be asserted about the event target until
     // https://github.com/w3c/clipboard-apis/issues/70 is resolved.
-    // assert_equals(event.target, document.body, "event.target");
-    assert_true(event.isTrusted, "event.isTrusted");
-    assert_true(event.composed, "event.composed");
+    // assert_equals(event.target, document.body, 'event.target');
+    assert_true(event.isTrusted, 'event.isTrusted');
+    assert_true(event.composed, 'event.composed');
   });
 });
 </script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden-ref.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden-ref.html
new file mode 100644
index 0000000..8413e3e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<div style="padding: 0.4px 0.6px">
+  <div style="width: 100px; height: 100px; border: 1px solid black"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden.html
new file mode 100644
index 0000000..e24539bf
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-backface-hidden.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<link ref="help" href="https://drafts.csswg.org/css-transforms-2/#perspective-property">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#backface-visibility-property">
+<link rel="match" href="subpixel-perspective-backface-hidden-ref.html">
+<meta name="assert" content="Subpixel-positioned contents should not renderred the same regardless of perspective and backface-visibility:hidden">
+<div style="padding: 0.4px 0.6px">
+  <div style="perspective: 1000px; backface-visibility: hidden">
+    <div style="width: 100px; height: 100px;
+                backface-visibility: hidden;border: 1px solid black">
+    </div>
+  </div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0-ref.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0-ref.html
new file mode 100644
index 0000000..5f3a8e2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0-ref.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<div style="padding: 0.6px 0.4px">
+  <div style="width: 100px; height: 100px; border: 1px solid black"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0.html b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0.html
new file mode 100644
index 0000000..4033e46
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-transforms/subpixel-perspective-translate-z-0.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<link ref="help" href="https://drafts.csswg.org/css-transforms-2/#perspective-property">
+<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-backface-visibility">
+<link rel="match" href="subpixel-perspective-translate-z-0-ref.html">
+<meta name="assert" content="Subpixel-positioned contents should be rendered the same regardless of perspective and translateZ(0)">
+<div style="position: relative; top: 0.6px; left: 0.4px; width: 300px; height: 300px;
+            perspective: 1000px; overflow: hidden">
+  <div style="width: 100px; height: 100px;
+              transform: translateZ(0); border: 1px solid black"></div>
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/payment-method-basic-card/apply_the_modifiers.html b/third_party/blink/web_tests/external/wpt/payment-method-basic-card/apply_the_modifiers.html
new file mode 100644
index 0000000..8b9fe78
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/payment-method-basic-card/apply_the_modifiers.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>
+  Payment Method Basic Card: apply the modifiers
+</title>
+<link
+  rel="help"
+  href="https://w3c.github.io/payment-method-basic-card/#applying-the-modifiers"
+/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  setup({ explicit_done: true, explicit_timeout: true });
+  const basicCard = [{ supportedMethods: "basic-card" }];
+  const defaultDetails = {
+    total: {
+      label: "FAIL - SHOWING DEFAULT!",
+      amount: {
+        currency: "USD",
+        value: "0.0",
+      },
+    },
+  };
+
+  const failModifier = {
+    supportedMethods: "basic-card",
+    total: {
+      label: "FAIL",
+      amount: { currency: "USD", value: "test" },
+    },
+    additionalDisplayItems: [
+      {
+        label: "FAIL - ADDITIONAL DISPLAY ITEM",
+        amount: { currency: "USD", value: "54321" },
+      },
+    ],
+  };
+
+  const notBasicCardModifier = {
+    supportedMethods: "this-doesnt-apply",
+    total: {
+      label: "FAIL - this-doesnt-apply",
+      amount: { currency: "USD", value: "54321" },
+    },
+  };
+
+  const modifier = {
+    supportedMethods: "basic-card",
+    total: {
+      label: "PASS",
+      amount: { currency: "USD", value: "12345" },
+    },
+    additionalDisplayItems: [
+      {
+        label: "PASS - ADDITIONAL DISPLAY ITEM",
+        amount: { currency: "USD", value: "12345" },
+      },
+    ],
+  };
+
+  function defaultModifierApplies(testableAssertion) {
+    promise_test(async t => {
+      const visaModifier = Object.assign({}, modifier, {
+        data: { supportedNetworks: ["visa"] },
+      });
+      visaModifier.total.label = "PASS - VISA MODIFIED";
+      const details = Object.assign({}, defaultDetails, {
+        modifiers: [visaModifier],
+      });
+      const showPromise = new PaymentRequest(basicCard, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function modifierWithNoDataAppliesToAll(testableAssertion) {
+    promise_test(async t => {
+      const details = Object.assign({}, defaultDetails, {
+        modifiers: [modifier],
+      });
+      const showPromise = new PaymentRequest(basicCard, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function modifierWithObjectAppliesToAll(testableAssertion) {
+    promise_test(async t => {
+      const modifiers = [Object.assign({}, modifier, { data: {} })];
+      const details = Object.assign({}, defaultDetails, { modifiers });
+      const showPromise = new PaymentRequest(basicCard, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function modifierWithEmptySupportedNetworksAppliesToAll(testableAssertion) {
+    promise_test(async t => {
+      const modifiers = [
+        Object.assign({}, modifier, { data: { supportedNetworks: [] } }),
+      ];
+      const details = Object.assign({}, defaultDetails, { modifiers });
+      const showPromise = new PaymentRequest(basicCard, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function modifierLastOneWins(testableAssertion) {
+    promise_test(async t => {
+      const modifiers = [failModifier, modifier, notBasicCardModifier];
+      const details = Object.assign({}, defaultDetails, { modifiers });
+      const showPromise = new PaymentRequest(basicCard, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+</script>
+<h1>Manual tests</h1>
+<p>
+  <strong>Note:</strong> this test requires that there is at at least one
+  registered "visa" card. If the payment-sheet total's
+  label displays "PASS", and the value US$12345, then a test has passed.
+</p>
+<ol>
+  <li>
+    <button onclick="defaultModifierApplies(this.textContent.trim())">
+      A modifier is applied by default to a card.
+    </button>
+  </li>
+  <li>
+    <button onclick="modifierWithNoDataAppliesToAll(this.textContent.trim())">
+      Missing PaymentDetailsModifier.data is same as passing default
+      BasicCardRequest.
+    </button>
+  </li>
+  <li>
+    <button onclick="modifierWithNoDataAppliesToAll(this.textContent.trim())">
+      PaymentDetailsModifier.data with empty object is same as passing default
+      BasicCardRequest.
+    </button>
+  </li>
+  <li>
+    <button
+      onclick="modifierWithEmptySupportedNetworksAppliesToAll(this.textContent.trim())"
+    >
+      A modified with a BasicCardRequest whose supportedNetworks is an empty
+      array applies to all.
+    </button>
+  </li>
+  <li>
+    <button onclick="modifierLastOneWins(this.textContent.trim())">
+      Given a set of modifiers, the last applicable "basic-card" wins.
+    </button>
+  </li>
+  <li><button onclick="done()">Done!</button></li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/payment-method-basic-card/steps_for_selecting_the_payment_handler.html b/third_party/blink/web_tests/external/wpt/payment-method-basic-card/steps_for_selecting_the_payment_handler.html
new file mode 100644
index 0000000..19cefad
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/payment-method-basic-card/steps_for_selecting_the_payment_handler.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>
+  Payment Method Basic Card: steps for selecting the payment handler
+</title>
+<link
+  rel="help"
+  href="https://w3c.github.io/payment-method-basic-card/#selecting-the-payment-handler"
+/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  const defaultDetails = {
+    total: {
+      label: "Total",
+      amount: {
+        currency: "USD",
+        value: "1.00",
+      },
+    },
+  };
+
+  function emptyDataIsAllNetworks(testableAssertion) {
+    promise_test(async t => {
+      const methodData = [
+        {
+          supportedMethods: "basic-card",
+        },
+      ];
+      const showPromise = new PaymentRequest(methodData, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function mixedPMILastOneWins(testableAssertion) {
+    promise_test(async t => {
+      const methodData = [
+        {
+          supportedMethods: "basic-card",
+          data: {
+            supportedNetworks: [],
+          },
+        },
+        {
+          supportedMethods: "basic-card",
+          data: {
+            supportedNetworks: ["visa"],
+          },
+        },
+        {
+          supportedMethods: "https://example.com/bobpay",
+        },
+      ];
+      const showPromise = new PaymentRequest(methodData, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+
+  function lastOneWinsEvenIfDataIsMissing(testableAssertion) {
+    promise_test(async t => {
+      const methodData = [
+        {
+          supportedMethods: "basic-card",
+          data: {
+            supportedNetworks: ["visa"],
+          },
+        },
+        // Same as data: { supportedNetworks: ["visa"] }
+        {
+          supportedMethods: "basic-card",
+        },
+      ];
+      const showPromise = new PaymentRequest(methodData, defaultDetails).show();
+      await promise_rejects(t, "AbortError", showPromise);
+    }, testableAssertion.trim());
+  }
+</script>
+<h1>Manual tests</h1>
+<p>
+  When each button is clicked, the
+</p>
+<ol>
+  <li>
+    <button onclick="mixedPMILastOneWins(this.textContent.trim())">
+      If no data is passed, it's the same as passing an empty BasicCardRequest
+      (i.e., allow all networks).
+    </button>
+  </li>
+  <li>
+    <button onclick="mixedPMILastOneWins(this.textContent.trim())">
+      It ignores unknown PMIs and last "basic-card" wins.
+    </button>
+  </li>
+  <li>
+    <button onclick="lastOneWinsEvenIfDataIsMissing(this.textContent.trim())">
+      "Last one wins" even if data is missing.
+    </button>
+  </li>
+  <li><button onclick="done()">Done!</button></li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/tools/manifest/manifest.py b/third_party/blink/web_tests/external/wpt/tools/manifest/manifest.py
index 90655da..f5d939fa 100644
--- a/third_party/blink/web_tests/external/wpt/tools/manifest/manifest.py
+++ b/third_party/blink/web_tests/external/wpt/tools/manifest/manifest.py
@@ -1,4 +1,5 @@
 import itertools
+import json
 import os
 from collections import defaultdict
 from six import iteritems, iterkeys, itervalues, string_types
@@ -10,11 +11,9 @@
 from .utils import from_os_path, to_os_path
 
 try:
-    import ujson as json
-    JSON_LIBRARY = 'ujson'
+    import ujson as fast_json
 except ImportError:
-    import json
-    JSON_LIBRARY = 'json'
+    fast_json = json
 
 CURRENT_VERSION = 5
 
@@ -436,7 +435,7 @@
         try:
             with open(manifest) as f:
                 rv = Manifest.from_json(tests_root,
-                                        json.load(f),
+                                        fast_json.load(f),
                                         types=types,
                                         meta_filters=meta_filters)
         except IOError:
@@ -446,7 +445,7 @@
             return None
     else:
         rv = Manifest.from_json(tests_root,
-                                json.load(manifest),
+                                fast_json.load(manifest),
                                 types=types,
                                 meta_filters=meta_filters)
 
@@ -504,12 +503,8 @@
     if not os.path.exists(dir_name):
         os.makedirs(dir_name)
     with open(manifest_path, "wb") as f:
-        if JSON_LIBRARY == 'ujson':
-            # ujson does not support the separators flag.
-            json.dump(manifest.to_json(), f, sort_keys=True, indent=1)
-        else:
-            # Use ',' instead of the default ', ' separator to prevent trailing
-            # spaces: https://docs.python.org/2/library/json.html#json.dump
-            json.dump(manifest.to_json(), f,
-                      sort_keys=True, indent=1, separators=(',', ': '))
+        # Use ',' instead of the default ', ' separator to prevent trailing
+        # spaces: https://docs.python.org/2/library/json.html#json.dump
+        json.dump(manifest.to_json(), f,
+                  sort_keys=True, indent=1, separators=(',', ': '))
         f.write("\n")
diff --git a/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.0.txt b/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.0.txt
index abaa830..6f9a7714d 100644
--- a/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.0.txt
+++ b/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.0.txt
@@ -10,7 +10,7 @@
 (on windows and linux), ini-file parsing and a lazy import mechanism.
 It runs unmodified on all Python interpreters compatible to Python2.4 up
 until Python 3.2.  The general goal with "py" is to provide stable APIs
-for some common tasks that are continuously tested against many Python
+for some common tasks that are continously tested against many Python
 interpreters and thus also to help transition. Here are some docs:
 
     http://pylib.org
@@ -20,7 +20,7 @@
 as "pytest-2.0.0", see here for the revamped docs:
 
     http://pytest.org
-
+   
 And "py.cleanup|py.lookup|py.countloc" etc. helpers are now part of
 the pycmd distribution, see http://pypi.python.org/pypi/pycmd
 
diff --git a/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.1.txt b/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.1.txt
index b37a148a..a5aa76b 100644
--- a/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.1.txt
+++ b/third_party/blink/web_tests/external/wpt/tools/third_party/py/doc/announce/release-1.4.1.txt
@@ -11,7 +11,7 @@
 (on windows and linux), ini-file parsing and a lazy import mechanism.
 It runs unmodified on all Python interpreters compatible to Python2.4 up
 until Python 3.2, PyPy and Jython.  The general goal with "py" is to
-provide stable APIs for some common tasks that are continuously tested
+provide stable APIs for some common tasks that are continously tested
 against many Python interpreters and thus also to help transition. Here
 are some docs:
 
@@ -21,7 +21,7 @@
 comes as its own separate "pytest" distribution, see:
 
     http://pytest.org
-
+   
 Also, the "py.cleanup|py.lookup|py.countloc" helpers are now part of
 the pycmd distribution, see http://pypi.python.org/pypi/pycmd
 
diff --git a/third_party/blink/web_tests/external/wpt/webxr/idlharness.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/webxr/idlharness.https.window-expected.txt
index e15f9c4..b9df588 100644
--- a/third_party/blink/web_tests/external/wpt/webxr/idlharness.https.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webxr/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-Found 216 tests; 202 PASS, 14 FAIL, 0 TIMEOUT, 0 NOTRUN.
+Found 216 tests; 203 PASS, 13 FAIL, 0 TIMEOUT, 0 NOTRUN.
 PASS idl_test setup
 PASS Partial interface Navigator: original interface defined
 PASS Partial dictionary WebGLContextAttributes: original dictionary defined
@@ -176,7 +176,7 @@
 PASS XRWebGLLayer interface: attribute depth
 PASS XRWebGLLayer interface: attribute stencil
 PASS XRWebGLLayer interface: attribute alpha
-FAIL XRWebGLLayer interface: attribute ignoreDepthValues assert_true: The prototype object must have a property "ignoreDepthValues" expected true got false
+PASS XRWebGLLayer interface: attribute ignoreDepthValues
 PASS XRWebGLLayer interface: attribute framebuffer
 PASS XRWebGLLayer interface: attribute framebufferWidth
 PASS XRWebGLLayer interface: attribute framebufferHeight
diff --git a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https.html b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https.html
index 41801bc..6c567d2 100644
--- a/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https.html
+++ b/third_party/blink/web_tests/external/wpt/webxr/xrSession_requestAnimationFrame_data_valid.https.html
@@ -32,6 +32,16 @@
 
     let testSession;
 
+    function checkView(view) {
+      assert_not_equals(view, null);
+      assert_not_equals(view.transform, null);
+
+      let inv_view_transform = view.transform.inverse();
+      assert_not_equals(inv_view_transform, null);
+      assert_not_equals(inv_view_transform.matrix, null);
+      assert_equals(inv_view_transform.matrix.length, 16);
+    }
+
     let testFunction = function(session, testDeviceController) {
       testSession = session;
       return session.requestReferenceSpace({ type: 'stationary', subtype: 'eye-level' })
@@ -49,11 +59,8 @@
 
             assert_not_equals(viewerPose.views, null);
             assert_equals(viewerPose.views.length, 2);
-
-            assert_not_equals(viewerPose.views[0].viewMatrix, null);
-            assert_equals(viewerPose.views[0].viewMatrix.length, 16);
-            assert_not_equals(viewerPose.views[1].viewMatrix, null);
-            assert_equals(viewerPose.views[1].viewMatrix.length, 16);
+            checkView(viewerPose.views[0]);
+            checkView(viewerPose.views[1]);
 
             // Test does not complete until the returned promise resolves.
             resolve();
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/dynamic-caption-add-before-child-expected.png b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/dynamic-caption-add-before-child-expected.png
deleted file mode 100644
index 8f31e29..0000000
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/dynamic-caption-add-before-child-expected.png
+++ /dev/null
Binary files differ
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/bugzilla-6278-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/bugzilla-6278-expected.txt
index d70963fc..75317a3 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/bugzilla-6278-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/bugzilla-6278-expected.txt
@@ -84,52 +84,52 @@
         },
         {
           "object": "NGPhysicalTextFragment 'Curabitur pretium, quam quis semper'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'Phasellus vehicula, sem at posuere'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'Quisque eu nulla non nisi molestie'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'ac, laoreet non, suscipit sed, sapien.'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'accumsan. Etiam tellus urna, laoreet'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'malesuada, est libero feugiat libero,'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'nec ullamcorper lacus ante vulputate'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'pede.'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'vehicula, augue nibh molestie nisl,'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'vel fringilla orci nibh sed neque.'",
-          "rect": [10, 138, 234, 199],
+          "rect": [10, 138, 235, 199],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-1-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-1-expected.txt
index 85ec1c50..ef62d260 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-1-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-1-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -103,23 +123,23 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -138,28 +158,8 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-10-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-10-expected.txt
index 825d1e06..8c72a3fc 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-10-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-10-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,23 +93,23 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -113,16 +133,6 @@
           "reason": "disappeared"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'Queen'",
           "rect": [14, 440, 355, 39],
           "reason": "appeared"
@@ -133,16 +143,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -174,7 +174,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-2-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-2-expected.txt
index 05a7e744..dc60591 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-2-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-2-expected.txt
@@ -93,6 +93,46 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 521, 407, 79],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 521, 407, 79],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 521, 407, 79],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 521, 407, 79],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 181, 407, 79],
           "reason": "geometry"
@@ -133,43 +173,43 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 361, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 361, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 521, 406, 79],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 421, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 521, 406, 79],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 421, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 521, 406, 79],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 521, 406, 79],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -203,46 +243,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 361, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 361, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 421, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 421, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 120],
           "reason": "geometry"
@@ -274,12 +274,12 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 401, 304, 19],
+          "rect": [65, 401, 305, 19],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-3-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-3-expected.txt
index 9bf99dd9..7fda67f 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-3-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-3-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,26 +93,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'for turns,'",
           "rect": [14, 400, 406, 59],
           "reason": "appeared"
@@ -108,6 +108,16 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment 'a furious passion, and went stamping about, and'",
           "rect": [14, 460, 355, 59],
           "reason": "geometry"
@@ -123,16 +133,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -164,27 +164,27 @@
         },
         {
           "object": "NGPhysicalTextFragment ' was in'",
-          "rect": [14, 440, 339, 79],
+          "rect": [14, 440, 340, 79],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'a furious passion, and went stamping about, and'",
-          "rect": [14, 440, 339, 79],
+          "rect": [14, 440, 340, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'about once in a minute.'",
-          "rect": [14, 440, 339, 79],
+          "rect": [14, 440, 340, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'shouting \u2018Off with his head!\u2019 or \u2018Off with her head!\u2019'",
-          "rect": [14, 440, 339, 79],
+          "rect": [14, 440, 340, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting '",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-4-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-4-expected.txt
index 87facb32..ef82eb1 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-4-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-4-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,26 +93,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'in a minute.'",
           "rect": [14, 460, 406, 59],
           "reason": "geometry"
@@ -109,22 +109,22 @@
         },
         {
           "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -159,7 +159,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-5-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-5-expected.txt
index b9797b4b..1d6190c6 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-5-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-5-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,68 +93,48 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [49, 360, 371, 39],
+          "rect": [49, 360, 372, 39],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [49, 360, 371, 39],
+          "rect": [49, 360, 372, 39],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment ' was in a'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'furious passion, and went stamping about, and shouting'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'in a minute.'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment '\u2018Off with his head!\u2019 or \u2018Off with her head!\u2019 about once'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'for'",
-          "rect": [14, 400, 355, 59],
+          "rect": [14, 400, 356, 59],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'hedgehogs; and in a very short time '",
-          "rect": [14, 400, 355, 59],
+          "rect": [14, 400, 356, 59],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'turns, quarrelling all the while, and fighting for the'",
-          "rect": [14, 400, 355, 59],
+          "rect": [14, 400, 356, 59],
           "reason": "geometry"
         },
         {
@@ -169,7 +169,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting '",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-6-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-6-expected.txt
index 1ea9998..0b777ca4 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-6-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-6-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,23 +93,23 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -108,26 +128,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -159,7 +159,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-7-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-7-expected.txt
index 41b364f..7af269a280 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-7-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-7-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -73,23 +93,23 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -108,26 +128,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -159,7 +159,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-8-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-8-expected.txt
index 6ec57b0f..c77a74b 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-8-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-8-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -83,43 +103,38 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment ' was in a furious'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "appeared"
         },
         {
           "object": "NGPhysicalTextFragment 'minute.'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'passion, and went stamping about, and shouting \u2018Off'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
           "reason": "geometry"
         },
         {
           "object": "NGPhysicalTextFragment 'with his head!\u2019 or \u2018Off with her head!\u2019 about once in a'",
-          "rect": [14, 440, 355, 79],
+          "rect": [14, 440, 356, 79],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
+          "reason": "disappeared"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'and in a very short time '",
+          "rect": [14, 420, 356, 39],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'quarrelling all the while, and fighting for the hedgehogs;'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -138,11 +153,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "disappeared"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -174,7 +184,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting '",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-9-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-9-expected.txt
index e0c764c..55f60db 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-9-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/line-flow-with-floats-9-expected.txt
@@ -53,6 +53,26 @@
           "reason": "geometry"
         },
         {
+          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
+          "rect": [14, 520, 407, 80],
+          "reason": "geometry"
+        },
+        {
           "object": "NGPhysicalTextFragment ' twist itself round and'",
           "rect": [14, 180, 407, 79],
           "reason": "geometry"
@@ -78,23 +98,23 @@
           "reason": "appeared"
         },
         {
-          "object": "NGPhysicalTextFragment 'Alice began to feel very uneasy: to be sure, she had not as yet'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult game indeed.'",
+          "rect": [65, 360, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'become of me? They\u2019re dreadfully fond of beheading people'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'difficult'",
+          "rect": [65, 360, 356, 39],
+          "reason": "disappeared"
+        },
+        {
+          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'had any dispute with the Queen, but she knew that it might'",
-          "rect": [14, 520, 406, 80],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'happen any minute, \u2018and then,\u2019 thought she, \u2018what would'",
-          "rect": [14, 520, 406, 80],
+          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
+          "rect": [14, 420, 356, 39],
           "reason": "geometry"
         },
         {
@@ -118,16 +138,6 @@
           "reason": "disappeared"
         },
         {
-          "object": "NGPhysicalTextFragment 'difficult game indeed.'",
-          "rect": [65, 360, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'difficult'",
-          "rect": [65, 360, 355, 39],
-          "reason": "disappeared"
-        },
-        {
           "object": "NGPhysicalTextFragment 'Queen'",
           "rect": [14, 440, 355, 39],
           "reason": "appeared"
@@ -138,16 +148,6 @@
           "reason": "geometry"
         },
         {
-          "object": "NGPhysicalTextFragment 'for the hedgehogs; and in a very short time '",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
-          "object": "NGPhysicalTextFragment 'for turns, quarrelling all the while, and fighting'",
-          "rect": [14, 420, 355, 39],
-          "reason": "geometry"
-        },
-        {
           "object": "NGPhysicalTextFragment 'The chief difficulty Alice found at first was in managing'",
           "rect": [14, 80, 354, 119],
           "reason": "geometry"
@@ -179,7 +179,7 @@
         },
         {
           "object": "NGPhysicalTextFragment 'The players all played at once without waiting'",
-          "rect": [65, 400, 304, 19],
+          "rect": [65, 400, 305, 19],
           "reason": "geometry"
         },
         {
diff --git a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/line-overflow-expected.txt b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/line-overflow-expected.txt
index b8415b0..6195d21 100644
--- a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/line-overflow-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/line-overflow-expected.txt
@@ -44,7 +44,7 @@
         },
         {
           "object": "NGPhysicalTextFragment ' eleifend lacus,'",
-          "rect": [8, 142, 194, 79],
+          "rect": [8, 142, 195, 79],
           "reason": "disappeared"
         },
         {
diff --git a/third_party/blink/web_tests/http/tests/clipboard/async-write-blobs-read-blobs.html b/third_party/blink/web_tests/http/tests/clipboard/async-write-blobs-read-blobs.html
index 9018086..589ab2c 100644
--- a/third_party/blink/web_tests/http/tests/clipboard/async-write-blobs-read-blobs.html
+++ b/third_party/blink/web_tests/http/tests/clipboard/async-write-blobs-read-blobs.html
@@ -17,18 +17,18 @@
   await PermissionsHelper.setPermission('clipboard-read', 'granted');
   await PermissionsHelper.setPermission('clipboard-write', 'granted');
 
-  const blobText = new Blob(["test text"], {type: 'text/plain'});
+  const blobText = new Blob(['test text'], {type: 'text/plain'});
   const blobImage = await loadBlob('resources/greenbox.png');
 
-  assert_equals(blobText.type, "text/plain");
-  assert_equals(blobImage.type, "image/png");
+  assert_equals(blobText.type, 'text/plain');
+  assert_equals(blobImage.type, 'image/png');
 
   await navigator.clipboard.write(
-      {"text/plain" : blobText, "image/png" : blobImage});
+      {'text/plain' : blobText, 'image/png' : blobImage});
   const output = await navigator.clipboard.read();
 
   assert_equals(Object.keys(output).length, 2);
-  assert_equals(output["text/plain"].type, "text/plain");
-  assert_equals(output["image/png"].type, "image/png");
-}, "Verify write and read clipboard (multiple blobs)");
+  assert_equals(output['text/plain'].type, 'text/plain');
+  assert_equals(output['image/png'].type, 'image/png');
+}, 'Verify write and read clipboard (multiple blobs)');
 </script>
diff --git a/third_party/blink/web_tests/http/tests/clipboard/async-write-image-read-image.html b/third_party/blink/web_tests/http/tests/clipboard/async-write-image-read-image.html
index cc8cbd0d..ec61716 100644
--- a/third_party/blink/web_tests/http/tests/clipboard/async-write-image-read-image.html
+++ b/third_party/blink/web_tests/http/tests/clipboard/async-write-image-read-image.html
@@ -10,11 +10,11 @@
 <p>
   <p>The bottom image should display the same image as the top image.</p>
   <p>Original Image:</p>
-  <image id='image-to-copy' width='20' height='20'
+  <image id="image-to-copy" width="20" height="20"
         src="resources/greenbox.png"></image>
   <p>Image after copy/paste:</p>
-  <image id='image-on-clipboard'></image>
-  <canvas id='canvas' width='20' height='20'></canvas>
+  <image id="image-on-clipboard"></image>
+  <canvas id="canvas" width="20" height="20"></canvas>
 </p>
 
 <script>
@@ -43,12 +43,12 @@
 
   const blobInput = await loadBlob('resources/greenbox.png');
 
-  assert_equals(blobInput.type, "image/png");
-  await navigator.clipboard.write({"image/png" : blobInput});
+  assert_equals(blobInput.type, 'image/png');
+  await navigator.clipboard.write({'image/png' : blobInput});
   const blobsOutput = await navigator.clipboard.read();
   assert_equals(Object.keys(blobsOutput).length, 1);
-  const blobOutput = blobsOutput["image/png"];
-  assert_equals(blobOutput.type, "image/png");
+  const blobOutput = blobsOutput['image/png'];
+  assert_equals(blobOutput.type, 'image/png');
 
   document.getElementById('image-on-clipboard').src =
       window.URL.createObjectURL(blobOutput);
@@ -57,5 +57,5 @@
   const comparableOutput = await getBitmapString(blobOutput);
 
   assert_equals(comparableOutput, comparableInput);
-}, "Verify write and read clipboard (image/png Blob)");
+}, 'Verify write and read clipboard (image/png Blob)');
 </script>
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype-expected.txt b/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype-expected.txt
new file mode 100644
index 0000000..2795d82
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype-expected.txt
@@ -0,0 +1,8 @@
+Verifies that network request response view generates a view if no mime type is set.
+networkRequests.length: 1
+request.url(): http://localhost:8000/
+request.failed: true
+networkRequest.url(): http://localhost:8000/
+networkRequest.mimeType: undefined
+Failed to load response data
+
diff --git a/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype.js b/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype.js
new file mode 100644
index 0000000..150973e9
--- /dev/null
+++ b/third_party/blink/web_tests/http/tests/devtools/network/failed-request-response-mimetype.js
@@ -0,0 +1,38 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(async function() {
+  TestRunner.addResult(`Verifies that network request response view generates a view if no mime type is set.`);
+  await TestRunner.loadModule('application_test_runner');
+  await TestRunner.loadModule('network_test_runner');
+  await TestRunner.showPanel('network');
+
+  SDK.multitargetNetworkManager.setBlockingEnabled(true);
+  TestRunner.networkManager.addEventListener(
+    SDK.NetworkManager.Events.RequestFinished, (event) => {
+      const request = event.data;
+      const networkRequests = NetworkTestRunner.networkRequests();
+      const networkRequest = networkRequests[0];
+
+      TestRunner.addResult('networkRequests.length: ' + networkRequests.length);
+      TestRunner.addResult('request.url(): ' + request.url());
+      TestRunner.addResult('request.failed: ' + request.failed);
+      TestRunner.addResult('networkRequest.url(): ' + networkRequest.url());
+      TestRunner.addResult('networkRequest.mimeType: ' + networkRequest.mimeType);
+
+      const responseView = new Network.RequestResponseView(networkRequest);
+      responseView.showPreview().then((emptyWidgetView) => {
+        TestRunner.addResult(emptyWidgetView._textElement.textContent);
+        TestRunner.completeTest();
+      });
+    }
+  );
+
+  SDK.multitargetNetworkManager.setBlockedPatterns([
+    {url: '*', enabled: true}
+  ]);
+
+  NetworkTestRunner.recordNetwork();
+  NetworkTestRunner.makeXHR('GET', 'http://localhost:8000');
+})();
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 4a37281..e4e3850 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -10577,7 +10577,6 @@
     getter eye
     getter projectionMatrix
     getter transform
-    getter viewMatrix
     method constructor
 interface XRViewerPose : XRPose
     attribute @@toStringTag
@@ -10600,6 +10599,7 @@
     getter framebuffer
     getter framebufferHeight
     getter framebufferWidth
+    getter ignoreDepthValues
     getter stencil
     method constructor
     method getViewport
diff --git a/third_party/blink/web_tests/xr/xrReferenceSpace_originOffset.html b/third_party/blink/web_tests/xr/xrReferenceSpace_originOffset.html
index 67c9e2c..f156a65 100644
--- a/third_party/blink/web_tests/xr/xrReferenceSpace_originOffset.html
+++ b/third_party/blink/web_tests/xr/xrReferenceSpace_originOffset.html
@@ -82,7 +82,7 @@
           let grip_pose = frame.getPose(source.gripSpace, referenceSpace);
           let input_pose = frame.getPose(source.targetRaySpace, referenceSpace);
 
-          let view_matrix = pose.views[0].viewMatrix;
+          let view_matrix = pose.views[0].transform.inverse().matrix;
           let grip_matrix = grip_pose.transform.matrix;
           let ray_matrix = input_pose.transform.matrix;
 
diff --git a/third_party/feed/BUILD.gn b/third_party/feed/BUILD.gn
index ea77c29..a1bb57b 100644
--- a/third_party/feed/BUILD.gn
+++ b/third_party/feed/BUILD.gn
@@ -8,9 +8,32 @@
 import("//third_party/feed/proto_sources.gni")
 import("//third_party/protobuf/proto_library.gni")
 
-android_resources("sharedstream_resources") {
-  resource_dirs =
-      [ "src/src/main/java/com/google/android/libraries/feed/sharedstream/res" ]
+# Quick Android facts that will be helpful when messing around here.
+# You don't need to import something from the same package (wow!).
+# So if you see "error: package R does not exist" (quite common). Here are the
+# steps to address it.
+# 1. Identify the resource that's being used. Search for the the string after R.
+#    If it's R.some_string, search for some_string in the third_party/feed
+#    directory.
+# 2. Identify the resource file it belongs to.
+# 3. Create an android_resources rule below to match the package that the error
+#    occurs under.
+#
+# Example:
+# Error in foo.bar
+# Found resource R.my_string under "src/res"
+# Write rule
+# android_resource("foo_bar_resource") {
+#   resource_dirs = [ "src/src" ]
+#   custom_package = "foo.bar"
+# }
+# Add rule to feed_lib_java.
+# Fixed!
+
+android_resources("sharedstream_ui_resources") {
+  resource_dirs = [
+    "src/src/main/java/com/google/android/libraries/feed/sharedstream/ui/res",
+  ]
   custom_package = "com.google.android.libraries.feed.sharedstream"
 }
 
@@ -20,10 +43,18 @@
   custom_package = "com.google.android.libraries.feed.piet"
 }
 
+android_resources("basicstream_internal_drivers_resources") {
+  resource_dirs = [
+    "src/src/main/java/com/google/android/libraries/feed/sharedstream/ui/res",
+  ]
+  custom_package =
+      "com.google.android.libraries.feed.basicstream.internal.drivers"
+}
+
 android_resources("basicstream_internal_viewholders_resources") {
   resource_dirs = [ "src/src/main/java/com/google/android/libraries/feed/basicstream/internal/viewholders/res" ]
   deps = [
-    ":sharedstream_resources",
+    ":sharedstream_ui_resources",
   ]
   custom_package =
       "com.google.android.libraries.feed.basicstream.internal.viewholders"
@@ -42,8 +73,14 @@
 }
 
 android_resources("sharedstream_contextmenumanager_resources") {
-  resource_dirs =
-      [ "src/src/main/java/com/google/android/libraries/feed/sharedstream/res" ]
+  resource_dirs = [
+    "src/src/main/java/com/google/android/libraries/feed/sharedstream/ui/res",
+  ]
+
+  # TODO(skym): Delete this next DEPS roll, this seems to fix a ninja phony edge issue.
+  deps = [
+    ":sharedstream_ui_resources",
+  ]
   custom_package =
       "com.google.android.libraries.feed.sharedstream.contextmenumanager"
 }
@@ -53,6 +90,7 @@
   java_files = feed_lib_java_sources
 
   deps = [
+    ":basicstream_internal_drivers_resources",
     ":basicstream_internal_viewholders_resources",
     ":basicstream_resources",
     ":feed_lib_proto_java",
diff --git a/third_party/feed/README.chromium b/third_party/feed/README.chromium
index e08ca2b..c91cb990 100644
--- a/third_party/feed/README.chromium
+++ b/third_party/feed/README.chromium
@@ -2,7 +2,7 @@
 Short name: feed
 URL: https://chromium.googlesource.com/feed
 Version: 0
-Revision: 9e68039a0d2fcd72eaff19697262be4ab4b4eb22
+Revision: 5edab49db9100f92f07e0c1b7f65a36d7c3cc97f
 License: Apache 2.0
 License File: LICENSE
 Security Critical: yes
diff --git a/third_party/feed/java_sources.gni b/third_party/feed/java_sources.gni
index 820b815f..764c6a9c 100644
--- a/third_party/feed/java_sources.gni
+++ b/third_party/feed/java_sources.gni
@@ -37,6 +37,7 @@
   "src/src/main/java/com/google/android/libraries/feed/api/modelprovider/TokenCompleted.java",
   "src/src/main/java/com/google/android/libraries/feed/api/modelprovider/TokenCompletedObserver.java",
   "src/src/main/java/com/google/android/libraries/feed/api/protocoladapter/ProtocolAdapter.java",
+  "src/src/main/java/com/google/android/libraries/feed/api/requestmanager/ActionUploadRequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/api/requestmanager/RequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/api/scope/ClearAllListener.java",
   "src/src/main/java/com/google/android/libraries/feed/api/scope/FeedProcessScope.java",
@@ -138,7 +139,9 @@
   "src/src/main/java/com/google/android/libraries/feed/feedprotocoladapter/internal/transformers/ContentDataOperationTransformer.java",
   "src/src/main/java/com/google/android/libraries/feed/feedprotocoladapter/internal/transformers/DataOperationTransformer.java",
   "src/src/main/java/com/google/android/libraries/feed/feedprotocoladapter/internal/transformers/FeatureDataOperationTransformer.java",
+  "src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedActionUploadRequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManager.java",
+  "src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/RequestHelper.java",
   "src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/UploadableActionsRequestBuilder.java",
   "src/src/main/java/com/google/android/libraries/feed/feedrequestmanager/internal/Utils.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/FeedSessionManager.java",
@@ -149,6 +152,7 @@
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/InitializableSession.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/Session.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/SessionCache.java",
+  "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/SessionContentTracker.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/SessionFactory.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/SessionImpl.java",
   "src/src/main/java/com/google/android/libraries/feed/feedsessionmanager/internal/SessionManagerMutation.java",
@@ -234,6 +238,7 @@
   "src/src/main/java/com/google/android/libraries/feed/piet/ElementListAdapter.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/ElementStackAdapter.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/FrameAdapter.java",
+  "src/src/main/java/com/google/android/libraries/feed/piet/FrameAdapterImpl.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/FrameContext.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/GridRowAdapter.java",
   "src/src/main/java/com/google/android/libraries/feed/piet/HostProviders.java",
@@ -306,6 +311,7 @@
   "src/src/main/java/com/google/android/libraries/feed/api/common/testing/InternalProtocolBuilder.java",
   "src/src/main/java/com/google/android/libraries/feed/common/concurrent/testing/ClockBackedFakeMainThreadRunner.java",
   "src/src/main/java/com/google/android/libraries/feed/common/concurrent/testing/FakeMainThreadRunner.java",
+  "src/src/main/java/com/google/android/libraries/feed/common/testing/FakeActionUploadRequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/common/testing/FakeBasicLoggingApi.java",
   "src/src/main/java/com/google/android/libraries/feed/common/testing/FakeRequestManager.java",
   "src/src/main/java/com/google/android/libraries/feed/common/testing/InfrastructureIntegrationScope.java",
diff --git a/third_party/feed/proto_sources.gni b/third_party/feed/proto_sources.gni
index d8e43ae..1bc1b94 100644
--- a/third_party/feed/proto_sources.gni
+++ b/third_party/feed/proto_sources.gni
@@ -6,6 +6,7 @@
   "src/src/main/proto/com/google/android/libraries/feed/api/proto/stream_data.proto",
   "src/src/main/proto/com/google/android/libraries/feed/basicstream/internal/proto/stream_saved_instance_state.proto",
   "src/src/main/proto/com/google/android/libraries/feed/sharedstream/proto/scroll_state.proto",
+  "src/src/main/proto/com/google/android/libraries/feed/sharedstream/proto/ui_refresh_reason.proto",
   "src/src/main/proto/search/now/ui/action/feed_action.proto",
   "src/src/main/proto/search/now/ui/action/feed_action_payload.proto",
   "src/src/main/proto/search/now/ui/action/piet_extensions.proto",
diff --git a/third_party/webxr_test_pages/webxr-samples/360-photos.html b/third_party/webxr_test_pages/webxr-samples/360-photos.html
index ef815ed..2d09320d 100644
--- a/third_party/webxr_test_pages/webxr-samples/360-photos.html
+++ b/third_party/webxr_test_pages/webxr-samples/360-photos.html
@@ -186,7 +186,7 @@
           for (let view of pose.views) {
             let renderView = new WebXRView();
             renderView.projectionMatrix = view.projectionMatrix;
-            renderView.viewMatrix = view.viewMatrix;
+            renderView.viewMatrix = view.transform.inverse().matrix;
             renderView.viewport = session.renderState.baseLayer.getViewport(view);
 
             // It's important to take into account which eye the view is
diff --git a/third_party/webxr_test_pages/webxr-samples/fallback-rendering.html b/third_party/webxr_test_pages/webxr-samples/fallback-rendering.html
index 4d48090..980baae 100644
--- a/third_party/webxr_test_pages/webxr-samples/fallback-rendering.html
+++ b/third_party/webxr_test_pages/webxr-samples/fallback-rendering.html
@@ -205,7 +205,7 @@
             gl.viewport(viewport.x, viewport.y,
                         viewport.width, viewport.height);
 
-            scene.draw(view.projectionMatrix, view.viewMatrix);
+            scene.draw(view.projectionMatrix, view.transform.inverse().matrix);
           }
         }
 
diff --git a/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/scenes/scene.js b/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/scenes/scene.js
index 28819963..e7d54c4 100644
--- a/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/scenes/scene.js
+++ b/third_party/webxr_test_pages/webxr-samples/js/cottontail/src/scenes/scene.js
@@ -28,7 +28,7 @@
   constructor(view, pose, layer) {
     super(
       view ? view.projectionMatrix : null,
-      view ? view.viewMatrix : null,
+      view ? view.transform.inverse().matrix : null,
       (layer && view) ? layer.getViewport(view) : null,
       view ? view.eye : 'left'
     );
diff --git a/third_party/webxr_test_pages/webxr-samples/magic-window.html b/third_party/webxr_test_pages/webxr-samples/magic-window.html
index faa46a8c..f247e46 100644
--- a/third_party/webxr_test_pages/webxr-samples/magic-window.html
+++ b/third_party/webxr_test_pages/webxr-samples/magic-window.html
@@ -188,7 +188,7 @@
             gl.viewport(viewport.x, viewport.y,
                         viewport.width, viewport.height);
 
-            scene.draw(view.projectionMatrix, view.viewMatrix);
+            scene.draw(view.projectionMatrix, view.transform.inverse().matrix);
           }
         }
 
diff --git a/third_party/webxr_test_pages/webxr-samples/mirroring.html b/third_party/webxr_test_pages/webxr-samples/mirroring.html
index 29f66b8..3bf9ec9 100644
--- a/third_party/webxr_test_pages/webxr-samples/mirroring.html
+++ b/third_party/webxr_test_pages/webxr-samples/mirroring.html
@@ -175,7 +175,7 @@
             gl.viewport(viewport.x, viewport.y,
                         viewport.width, viewport.height);
 
-            scene.draw(view.projectionMatrix, view.viewMatrix);
+            scene.draw(view.projectionMatrix, view.transform.inverse().matrix);
           }
         }
 
diff --git a/third_party/webxr_test_pages/webxr-samples/reduced-bind-rendering.html b/third_party/webxr_test_pages/webxr-samples/reduced-bind-rendering.html
index e36af16..0398ec99 100644
--- a/third_party/webxr_test_pages/webxr-samples/reduced-bind-rendering.html
+++ b/third_party/webxr_test_pages/webxr-samples/reduced-bind-rendering.html
@@ -234,7 +234,7 @@
             // scene.drawXRViews() function, which handles gathering these
             // values internally.
             renderView.projectionMatrix = view.projectionMatrix;
-            renderView.viewMatrix = view.viewMatrix;
+            renderView.viewMatrix = view.transform.inverse().matrix;
             renderView.viewport = session.renderState.baseLayer.getViewport(view);
             views.push(renderView);
           }
diff --git a/third_party/webxr_test_pages/webxr-samples/xr-presentation.html b/third_party/webxr_test_pages/webxr-samples/xr-presentation.html
index ae5e835..973da55d 100644
--- a/third_party/webxr_test_pages/webxr-samples/xr-presentation.html
+++ b/third_party/webxr_test_pages/webxr-samples/xr-presentation.html
@@ -206,7 +206,7 @@
             // projection and view matricies from the current view and pose.
             // We bound the framebuffer and viewport up above, and are passing
             // in the appropriate matrices here to be used when rendering.
-            scene.draw(view.projectionMatrix, view.viewMatrix);
+            scene.draw(view.projectionMatrix, view.transform.inverse().matrix);
           }
         } else {
           // There's several options for handling cases where no pose is given.
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index ba50196..2a9fdb4 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -33043,6 +33043,7 @@
   <int value="-120091289" label="CrostiniAppSearch:enabled"/>
   <int value="-119055644" label="GenericSensor:enabled"/>
   <int value="-115834377" label="EnableUnifiedMultiDeviceSetup:disabled"/>
+  <int value="-114768488" label="ImmersiveFullscreen:enabled"/>
   <int value="-112459802" label="WebXrRenderPath:enabled"/>
   <int value="-110756896"
       label="NTPArticleSuggestionsExpandableHeader:enabled"/>
@@ -33539,6 +33540,7 @@
   <int value="705407202" label="AutofillSaveCardImprovedUserConsent:disabled"/>
   <int value="705713283" label="EasyUnlockPromotions:disabled"/>
   <int value="709850261" label="disable-touch-editing"/>
+  <int value="710700286" label="ImmersiveFullscreen:disabled"/>
   <int value="711424932" label="enable-cloud-print-xps"/>
   <int value="715617684" label="OriginTrials:disabled"/>
   <int value="716073306" label="AssistantVoiceMatch:disabled"/>
@@ -36136,6 +36138,7 @@
   <int value="2" label="Stop"/>
   <int value="3" label="Next Track"/>
   <int value="4" label="Previous Track"/>
+  <int value="5" label="Play/Pause"/>
 </enum>
 
 <enum name="MediaKeyError">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index be48f9d12..2c1a07cf 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -5470,7 +5470,7 @@
 <histogram name="Ash.Overview.AnimationSmoothness.Enter" units="%"
     expires_after="M77">
 <!-- Name completed by histogram_suffixes
-     name="TabletOrClamshellMode" -->
+     name="OverviewAnimationMode" -->
 
   <owner>omrilio@chromium.org</owner>
   <owner>oshima@chromium.org</owner>
@@ -5484,7 +5484,7 @@
 <histogram name="Ash.Overview.AnimationSmoothness.Exit" units="%"
     expires_after="M77">
 <!-- Name completed by histogram_suffixes
-     name="TabletOrClamshellMode" -->
+     name="OverviewAnimationMode" -->
 
   <owner>omrilio@chromium.org</owner>
   <owner>oshima@chromium.org</owner>
@@ -6201,8 +6201,8 @@
   <owner>estade@chromium.org</owner>
   <summary>
     Deprecated 03/2019 in favor of
-    Ash.Overview.AnimationSmoothness.Exit.Clamshell and
-    Ash.Overview.AnimationSmoothness.Exit.Tablet
+    Ash.Overview.AnimationSmoothness.Exit.ClamshellMode and
+    Ash.Overview.AnimationSmoothness.Exit.TabletMode
 
     Relative smoothness of animations when exiting overview mode. 100%
     represents ideally smooth 60 frames per second.
@@ -80064,6 +80064,19 @@
   </summary>
 </histogram>
 
+<histogram base="true" name="PageLoad.Cpu" expires_after="2020-01-05">
+  <owner>ericrobinson</owner>
+  <summary>
+    Only recorded if the page has at least one identified ad frame. Recorded in
+    PageLoadMetrics when the page is destroyed. Cpu measures the wall time of
+    tasks attributable to a frame as reported by the MainThreadTaskScheduler. An
+    ad frame consists of the identified ad frame and all of its children (which
+    may also be ads, but are counted as part of the ancestor ad frame). Includes
+    resources that did not finish loading. Does not consider time while a page
+    is backgrounded.
+  </summary>
+</histogram>
+
 <histogram name="PageLoad.CSSTiming.Parse.BeforeFirstContentfulPaint"
     units="ms">
   <obsolete>
@@ -135504,6 +135517,18 @@
   <affected-histogram name="PageLoad.FrameCounts.AnyParentFrame.AdFrames"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="AdsPageLoadMetricsActivatedPeriod" separator=".">
+  <suffix name="" label="Usage before and after user activation."/>
+  <suffix name="PostActivation" label="Usage after user activation."/>
+  <suffix name="PreActivation" label="Usage before user activation."/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Cpu.AdFrames.PerFrame.PercentUsage.Activated"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.NonVisible.Cpu.AdFrames.PerFrame.PercentUsage.Activated"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Visible.Cpu.AdFrames.PerFrame.PercentUsage.Activated"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="AdsPageLoadMetricsBytes" separator=".">
   <suffix base="true" name="AdFrames.Aggregate"
       label="Includes resources loaded across all ad frames on a page."/>
@@ -135519,6 +135544,50 @@
   <affected-histogram name="PageLoad.Clients.Ads.Visible.Bytes"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="AdsPageLoadMetricsCpu" separator=".">
+  <suffix base="true" name="AdFrames.PerFrame.PercentUsage"
+      label="The average load of an ad creative across the life of the page.
+             This is measured at percentage of a cpu core used and capped at
+             100% for multicore systems."/>
+  <affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
+  <affected-histogram name="PageLoad.Clients.Ads.NonVisible.Cpu"/>
+  <affected-histogram name="PageLoad.Clients.Ads.Visible.Cpu"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="AdsPageLoadMetricsCpuActivated" separator=".">
+  <suffix base="true" name="Activated"
+      label="Includes only creatives that have had a user gesture."/>
+  <suffix base="true" name="Unactivated"
+      label="Includes only creatives without a user gesture."/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Cpu.AdFrames.PerFrame.PercentUsage"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.NonVisible.Cpu.AdFrames.PerFrame.PercentUsage"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Visible.Cpu.AdFrames.PerFrame.PercentUsage"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="AdsPageLoadMetricsCpuFullPage" separator=".">
+  <suffix base="true" name="FullPage.PercentUsage"
+      label="The average load of the page across its lifetime. This is
+             measured at percentage of a cpu core used and capped at 100% for
+             multicore systems."/>
+  <affected-histogram name="PageLoad.Clients.Ads.Cpu"/>
+</histogram_suffixes>
+
+<histogram_suffixes name="AdsPageLoadMetricsCpuInteractivePeriod" separator=".">
+  <suffix name="" label="Usage before and after the page is interactive."/>
+  <suffix name="PostInteractive" label="Usage after the page is interactive."/>
+  <suffix name="PreInteractive" label="Usage before the page is interactive."/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"/>
+  <affected-histogram name="PageLoad.Clients.Ads.Cpu.FullPage.PercentUsage"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.NonVisible.Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"/>
+  <affected-histogram
+      name="PageLoad.Clients.Ads.Visible.Cpu.AdFrames.PerFrame.PercentUsage.Unactivated"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="AdsPageLoadMetricsMainFrameBytes" separator=".">
   <suffix base="true" name="MainFrame"
       label="Only includes resources loaded directly in the main frame."/>
@@ -135604,6 +135673,7 @@
       label="Only includes ad frames that have a display != none style and
              have an area greater than 16 pixels."/>
   <affected-histogram name="PageLoad.Bytes"/>
+  <affected-histogram name="PageLoad.Cpu"/>
   <affected-histogram
       name="PageLoad.FrameCounts.AdFrames.PerFrame.OriginStatus"/>
   <affected-histogram
@@ -143498,6 +143568,18 @@
   <affected-histogram name="PLT.LoadType"/>
 </histogram_suffixes>
 
+<histogram_suffixes name="OverviewAnimationMode" separator=".">
+  <suffix name="ClamshellMode"
+      label="Normal clamshell mode with multiple windows animates"/>
+  <suffix name="SingleClamshellMode"
+      label="In Clamshell mode with only top maximized/fullscren window
+             animates"/>
+  <suffix name="SplitViewMode" label="Animates in SplitView enabled"/>
+  <suffix name="TabletMode" label="Animates in Tablet mode w/o split view"/>
+  <affected-histogram name="Ash.Overview.AnimationSmoothness.Enter"/>
+  <affected-histogram name="Ash.Overview.AnimationSmoothness.Exit"/>
+</histogram_suffixes>
+
 <histogram_suffixes name="PageLoadBackgrounded" separator=".">
   <obsolete>
     Deprecated in favor of PageLoadBackgrounded2.
diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn
index f5cc7c7a..fef976f 100644
--- a/tools/perf/contrib/vr_benchmarks/BUILD.gn
+++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn
@@ -3,6 +3,7 @@
 # found in the LICENSE file.
 
 import("//chrome/browser/vr/features.gni")
+import("//device/vr/buildflags/buildflags.gni")
 
 group("vr_perf_tests") {
   testonly = true
@@ -45,6 +46,12 @@
       data_deps += [ ":generate_vr_assets_profile" ]
     }
   }
+
+  if (is_win) {
+    if (enable_openvr) {
+      deps += [ "//device/vr:openvr_mock" ]
+    }
+  }
 }
 
 # Copies files to the gen/ directory and creates a manifest so that the VR
diff --git a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/base_runtime.py b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/base_runtime.py
index a4db125..bf600fe 100644
--- a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/base_runtime.py
+++ b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/base_runtime.py
@@ -7,30 +7,21 @@
 
   def __init__(self, finder_options):
     self._finder_options = finder_options
+    self._finder_options.browser_options.AppendExtraBrowserArgs(
+        '--enable-features=%s' % self.GetFeatureName())
 
   def Setup(self):
     """Called once before any stories are run."""
-    self._finder_options.browser_options.AppendExtraBrowserArgs(
-        '--enable-features=%s' % self.GetFeatureName())
-    self._SetupInternal()
-
-  def _SetupInternal(self):
     raise NotImplementedError(
         'No runtime setup defined for %s' % self.__class__.__name__)
 
   def WillRunStory(self):
     """Called before each story is run."""
-    self._WillRunStoryInternal()
-
-  def _WillRunStoryInternal(self):
     raise NotImplementedError(
         'No runtime pre-story defined for %s' % self.__class__.__name__)
 
   def TearDown(self):
     """Called once after all stories are run."""
-    self._TearDownInternal()
-
-  def _TearDownInternal(self):
     raise NotImplementedError(
         'No runtime tear down defined for %s' % self.__class__.__name__)
 
diff --git a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/oculus_runtimes.py b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/oculus_runtimes.py
index d4ae033b..f56236c 100644
--- a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/oculus_runtimes.py
+++ b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/oculus_runtimes.py
@@ -28,12 +28,12 @@
     super(OculusRuntimeReal, self).__init__(*args, **kwargs)
     self._runtime_handle = None
 
-  def _SetupInternal(self):
+  def Setup(self):
     # We need to launch the Oculus client before running any tests to ensure
     # that the runtime is ready when we try to enter VR.
     self._runtime_handle = subprocess.Popen([self._GetOculusClientPath()])
 
-  def _WillRunStoryInternal(self):
+  def WillRunStory(self):
     if not self._runtime_handle:
       raise RuntimeError(
           'Somehow called real Oculus pre-story without calling setup')
@@ -43,7 +43,7 @@
           self._runtime_handle.returncode)
       self._runtime_handle = subprocess.Popen([self._GetOculusClientPath()])
 
-  def _TearDownInternal(self):
+  def TearDown(self):
     if not self._runtime_handle:
       raise RuntimeError(
           'Somehow called real Oculus tear down without calling setup')
diff --git a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/openvr_runtimes.py b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/openvr_runtimes.py
index 340cbea..84ab0c23 100644
--- a/tools/perf/contrib/vr_benchmarks/desktop_runtimes/openvr_runtimes.py
+++ b/tools/perf/contrib/vr_benchmarks/desktop_runtimes/openvr_runtimes.py
@@ -2,6 +2,19 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import logging
+import os
+# Note that this doesn't work with old psutil versions, as Process.name was
+# changed to Process.name() at some point. This is known to work with psutil
+# 5.2.2, which is the version used by vpython at the time of writing.
+import psutil  # pylint: disable=import-error
+import subprocess
+# We expect this to be missing on all non-Windows platforms.
+try:
+  import _winreg
+except ImportError:
+  pass
+
 from contrib.vr_benchmarks.desktop_runtimes import base_runtime
 
 
@@ -14,8 +27,105 @@
 
 
 class OpenVRRuntimeReal(_OpenVRRuntimeBase):
-  """Class for using the real OpenVR runtime for desktop tests."""
+  """Class for using the real OpenVR runtime for desktop tests.
+
+  In order for this to work properly, room setup must have been completed,
+  otherwise OpenVR won't properly show/render content. Unfortunately, there's no
+  way to tell whether that's been done or not, so we can't enforce it during
+  setup.
+  """
+
+  STEAM_REGISTRY_PATH = 'Software\\Valve\\Steam'
+  STEAM_EXE_REGISTRY_KEY = 'SteamExe'
+  STEAM_VR_APP_ID = 250820
+  STEAM_VR_PROCESS_NAME = 'vrmonitor.exe'
+  # Arbitrary but reasonable amount of time to wait for SteamVR to gracefully
+  # shut down when told to.
+  STEAM_VR_SHUTDOWN_TIME_S = 20
+
+  def __init__(self, *args, **kwargs):
+    super(OpenVRRuntimeReal, self).__init__(*args, **kwargs)
+
+    # Check if Steam is installed for all users, and if not, for the current
+    # user.
+    self._steam_path = self._GetSteamExePath(_winreg.HKEY_LOCAL_MACHINE)
+    if not self._steam_path:
+      self._steam_path = self._GetSteamExePath(_winreg.HKEY_CURRENT_USER)
+    if not self._steam_path:
+      raise RuntimeError(
+          'Unable to retrieve Steam install location - are you sure it\'s '
+          'installed?')
+
+  def Setup(self):
+    self._StartSteamVr()
+
+  def WillRunStory(self):
+    steam_vr_process = self._GetSteamVrProcess()
+    if not steam_vr_process:
+      logging.warning('SteamVR closed prematurely, restarting')
+      self._StartSteamVr()
+
+  def TearDown(self):
+    steam_vr_process = self._GetSteamVrProcess()
+    if steam_vr_process:
+      try:
+        steam_vr_process.terminate()
+        steam_vr_process.wait(self.STEAM_VR_SHUTDOWN_TIME_S)
+      except psutil.TimeoutExpired:
+        logging.warning('Failed to kill SteamVR in %d seconds',
+            self.STEAM_VR_SHUTDOWN_TIME_S)
+
+  def _GetSteamExePath(self, hkey):
+    try:
+      registry_key = _winreg.OpenKey(hkey, self.STEAM_REGISTRY_PATH)
+      value, _ = _winreg.QueryValueEx(registry_key, self.STEAM_EXE_REGISTRY_KEY)
+      return value
+    except OSError:
+      return None
+
+  def _StartSteamVr(self):
+     # Launch Steam (if it's not already open) and launch SteamVR through it.
+    subprocess.call([self._steam_path, '-applaunch', str(self.STEAM_VR_APP_ID)])
+
+  def _GetSteamVrProcess(self):
+    for proc in psutil.process_iter():
+      if proc.name() == self.STEAM_VR_PROCESS_NAME:
+        return proc
+    return None
 
 
 class OpenVRRuntimeMock(_OpenVRRuntimeBase):
   """Class for using the mock OpenVR runtime for desktop tests."""
+
+  OPENVR_OVERRIDE_ENV_VAR = "VR_OVERRIDE"
+  OPENVR_CONFIG_PATH = "VR_CONFIG_PATH"
+  OPENVR_LOG_PATH = "VR_LOG_PATH"
+
+  def __init__(self, *args, **kwargs):
+    super(OpenVRRuntimeMock, self).__init__(*args, **kwargs)
+
+    # TODO(https://crbug.com/939178): See about making this relative to the
+    # browser executable instead of having to be specified.
+    if not self._finder_options.mock_runtime_directory:
+      raise RuntimeError('--mock-runtime-directory must be specified')
+    self._mock_runtime_directory = os.path.abspath(
+        self._finder_options.mock_runtime_directory)
+
+  def Setup(self):
+    # All that's necessary to use the mock OpenVR runtime is to set a few
+    # environment variables pointing towards the mock implementation. When
+    # OpenVR starts, it checks if these are set, and if so, uses the
+    # implementation that they specify instead of loading the real one.
+    os.environ[self.OPENVR_OVERRIDE_ENV_VAR] = self._mock_runtime_directory
+    # We don't really care about what these are set to, but they need to be set
+    # in order for the mock to work.
+    os.environ[self.OPENVR_CONFIG_PATH] = os.getcwd()
+    os.environ[self.OPENVR_LOG_PATH] = os.getcwd()
+
+  def WillRunStory(self):
+    pass
+
+  def TearDown(self):
+    # os.environ is limited to this Python process and its subprocesses, so
+    # we don't need to clean up anything.
+    pass
diff --git a/tools/perf/contrib/vr_benchmarks/shared_vr_page_state.py b/tools/perf/contrib/vr_benchmarks/shared_vr_page_state.py
index 720a922..b402dff 100644
--- a/tools/perf/contrib/vr_benchmarks/shared_vr_page_state.py
+++ b/tools/perf/contrib/vr_benchmarks/shared_vr_page_state.py
@@ -67,6 +67,12 @@
   def recording_wpr(self):
     return self._finder_options.recording_wpr
 
+  def ShouldNavigateToBlankPageBeforeFinishing(self):
+    # TODO(https://crbug.com/941715): Always navigate once the issue with
+    # tracing metadata for the XR device process not being present when
+    # navigation occurs is fixed.
+    return False
+
 
 class AndroidSharedVrPageState(_SharedVrPageState):
   """Android-specific VR SharedPageState.
@@ -159,6 +165,12 @@
     self.platform.android_action_runner.TurnScreenOff()
     self.platform.android_action_runner.TurnScreenOn()
 
+  def ShouldNavigateToBlankPageBeforeFinishing(self):
+    # Android devices generate a lot of heat while in VR, so navigate away from
+    # the VR page after we're done collecting data so that we aren't in VR while
+    # metric calculation is occurring.
+    return True
+
 
 class WindowsSharedVrPageState(_SharedVrPageState):
   """Windows-specific VR SharedPageState.
diff --git a/tools/perf/contrib/vr_benchmarks/vr_benchmarks.py b/tools/perf/contrib/vr_benchmarks/vr_benchmarks.py
index a68ba9c7..0315a61 100644
--- a/tools/perf/contrib/vr_benchmarks/vr_benchmarks.py
+++ b/tools/perf/contrib/vr_benchmarks/vr_benchmarks.py
@@ -81,6 +81,10 @@
         default=False,
         help='Use the real runtime instead of a mock implementation. This '
              'requires the runtime to be installed on the system.')
+    parser.add_option(
+        '--mock-runtime-directory',
+        help='The directory containing the mock runtime implementation to be '
+             'used.')
 
 
 class _BaseWebVRWebXRBenchmark(_BaseVRBenchmark):
@@ -135,6 +139,7 @@
   """Measures WebVR performance with synthetic sample pages."""
 
   def CreateStorySet(self, options):
+    del options
     return webvr_sample_pages.WebVrSamplePageSet()
 
   @classmethod
@@ -148,6 +153,7 @@
   """Measures WebXR performance with synthetic sample pages."""
 
   def CreateStorySet(self, options):
+    del options
     return webxr_sample_pages.WebXrSamplePageSet()
 
   @classmethod
@@ -161,6 +167,7 @@
   """Measures WebVR performance with WPR copies of live websites."""
 
   def CreateStorySet(self, options):
+    del options
     return webvr_wpr_pages.WebVrWprPageSet()
 
   @classmethod
@@ -223,6 +230,7 @@
   """Benchmark for testing the VR Browsing Mode performance on sample pages."""
 
   def CreateStorySet(self, options):
+    del options
     return vr_browsing_mode_pages.VrBrowsingModePageSet()
 
   @classmethod
@@ -235,6 +243,7 @@
   """Benchmark for testing the VR Browsing Mode performance on WPR pages."""
 
   def CreateStorySet(self, options):
+    del options
     return vr_browsing_mode_pages.VrBrowsingModeWprPageSet()
 
   @classmethod
@@ -256,6 +265,7 @@
     return options
 
   def CreateStorySet(self, options):
+    del options
     return vr_browsing_mode_pages.VrBrowsingModeWprSmoothnessPageSet()
 
   @classmethod
diff --git a/tools/perf/contrib/vr_benchmarks/webvr_sample_pages.py b/tools/perf/contrib/vr_benchmarks/webvr_sample_pages.py
index 1089357e..88aba2a 100644
--- a/tools/perf/contrib/vr_benchmarks/webvr_sample_pages.py
+++ b/tools/perf/contrib/vr_benchmarks/webvr_sample_pages.py
@@ -21,8 +21,10 @@
     action_runner.MeasureMemory(True)
     # We don't want to be in VR or on a page with a WebGL canvas at the end of
     # the test, as this generates unnecessary heat while the trace data is being
-    # processed, so navigate to a blank page.
-    action_runner.Navigate("about:blank")
+    # processed, so navigate to a blank page if we're on a platform that cares
+    # about the heat generation.
+    if self._shared_page_state.ShouldNavigateToBlankPageBeforeFinishing():
+      action_runner.Navigate("about:blank")
 
 
 class WebVrSamplePageSet(VrStorySet):
diff --git a/tools/perf/contrib/vr_benchmarks/webvr_wpr_pages.py b/tools/perf/contrib/vr_benchmarks/webvr_wpr_pages.py
index 78d0965..d877028 100644
--- a/tools/perf/contrib/vr_benchmarks/webvr_wpr_pages.py
+++ b/tools/perf/contrib/vr_benchmarks/webvr_wpr_pages.py
@@ -36,7 +36,8 @@
       self._interaction_function(action_runner, self.recording_wpr)
 
     action_runner.MeasureMemory(True)
-    action_runner.Navigate("about:blank")
+    if self._shared_page_state.ShouldNavigateToBlankPageBeforeFinishing():
+      action_runner.Navigate("about:blank")
 
   def Run(self, shared_state):
     self._shared_page_state = shared_state
diff --git a/tools/perf/contrib/vr_benchmarks/webxr_sample_pages.py b/tools/perf/contrib/vr_benchmarks/webxr_sample_pages.py
index 13ae6334..87a1c4f 100644
--- a/tools/perf/contrib/vr_benchmarks/webxr_sample_pages.py
+++ b/tools/perf/contrib/vr_benchmarks/webxr_sample_pages.py
@@ -24,8 +24,10 @@
     action_runner.MeasureMemory(True)
     # We don't want to be in VR or on a page with a WebGL canvas at the end of
     # the test, as this generates unnecessary heat while the trace data is being
-    # processed, so navigate to a blank page.
-    action_runner.Navigate("about:blank")
+    # processed, so navigate to a blank page if we're on a platform that cares
+    # about the heat generation.
+    if self._shared_page_state.ShouldNavigateToBlankPageBeforeFinishing():
+      action_runner.Navigate("about:blank")
 
 
 class WebXrSamplePageSet(VrStorySet):
diff --git a/tools/variations/bisect_variations.py b/tools/variations/bisect_variations.py
new file mode 100644
index 0000000..7f848449
--- /dev/null
+++ b/tools/variations/bisect_variations.py
@@ -0,0 +1,294 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""A script to bisect field trials to pin point a culprit for certain behavior.
+
+Chrome runs with many experiments and variations (field trials) that are
+randomly selected based on a configuration from a server. They lead to
+different code paths and different Chrome behaviors. When a bug is caused by
+one of the experiments or variations, it is useful to be able to bisect into
+the set and pin-point which one is responsible.
+
+Go to chrome://version/?show-variations-cmd. At the bottom, a few commandline
+switches define the current experiments and variations Chrome runs with.
+
+Sample use:
+
+python bisect_variations.py --input-file="variations_cmd.txt"
+    --output-dir=".\out" --browser=canary --url="https://www.youtube.com/"
+
+"variations_cmd.txt" is the command line switches data saved from
+chrome://version/?show-variations-cmd.
+
+Run with --help to get a complete list of options this script runs with.
+"""
+
+import logging
+import optparse
+import os
+import shutil
+import subprocess
+import sys
+import tempfile
+
+import split_variations_cmd
+
+_CHROME_PATH_WIN = {
+  # The following three paths are relative to %ProgramFiles(x86)%
+  "stable": r"Google\Chrome\Application\chrome.exe",
+  "beta": r"Google\Chrome\Application\chrome.exe",
+  "dev": r"Google\Chrome Dev\Application\chrome.exe",
+  # The following two paths are relative to %LOCALAPPDATA%
+  "canary": r"Google\Chrome SxS\Application\chrome.exe",
+  "chromium": r"Chromium\Application\chrome.exe",
+}
+
+_CHROME_PATH_MAC = {
+  "stable": r"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
+  "beta": r"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
+  "dev": r"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
+  "canary": (r"/Applications/Google Chrome Canary.app/Contents/MacOS/"
+             r"Google Chrome Canary"),
+}
+
+def _GetSupportedBrowserTypes():
+  """Returns the supported browser types on this platform."""
+  if sys.platform.startswith('win'):
+    return _CHROME_PATH_WIN.keys()
+  if sys.platform == 'darwin':
+    return _CHROME_PATH_MAC.keys();
+  raise NotImplementedError('Unsupported platform')
+
+
+def _LocateBrowser_Win(browser_type):
+  """Locates browser executable path based on input browser type.
+
+  Args:
+      browser_type: 'stable', 'beta', 'dev', 'canary', or 'chromium'.
+
+  Returns:
+      Browser executable path.
+  """
+  if browser_type in ['stable', 'beta', 'dev']:
+    return os.path.join(os.getenv('ProgramFiles(x86)'),
+                        _CHROME_PATH_WIN[browser_type])
+  else:
+    assert browser_type in ['canary', 'chromium']
+    return os.path.join(os.getenv('LOCALAPPDATA'),
+                        _CHROME_PATH_WIN[browser_type])
+
+
+def _LocateBrowser_Mac(browser_type):
+  """Locates browser executable path based on input browser type.
+
+  Args:
+      browser_type: A supported browser type on Mac.
+
+  Returns:
+      Browser executable path.
+  """
+  return _CHROME_PATH_MAC[browser_type]
+
+
+def _LocateBrowser(browser_type):
+  """Locates browser executable path based on input browser type.
+
+  Args:
+      browser_type: A supported browser types on this platform.
+
+  Returns:
+      Browser executable path.
+  """
+  supported_browser_types = _GetSupportedBrowserTypes()
+  if browser_type not in supported_browser_types:
+    raise ValueError('Invalid browser type. Supported values are: %s.' %
+                         ', '.join(supported_browser_types))
+  if sys.platform.startswith('win'):
+    return _LocateBrowser_Win(browser_type)
+  elif sys.platform == 'darwin':
+    return _LocateBrowser_Mac(browser_type)
+  else:
+    raise NotImplementedError('Unsupported platform')
+
+
+def _LoadVariations(filename):
+  """Reads variations commandline switches from a file.
+
+  Args:
+      filename: A file that contains variations commandline switches.
+
+  Returns:
+      A list of commandline switches.
+  """
+  with open(filename, 'r') as f:
+    data = f.read().replace('\n', ' ')
+  switches = split_variations_cmd.ParseCommandLineSwitchesString(data)
+  return ['--%s=%s' % (switch_name, switch_value) for
+          switch_name, switch_value in switches.items()]
+
+
+def _BuildBrowserArgs(user_data_dir, extra_browser_args, variations_args):
+  """Builds commandline switches browser runs with.
+
+  Args:
+      user_data_dir: A path that is used as user data dir.
+      extra_browser_args: A list of extra commandline switches browser runs
+          with.
+      variations_args: A list of commandline switches that defines the
+          variations cmd browser runs with.
+
+  Returns:
+      A list of commandline switches.
+  """
+  # Make sure each run is fresh, but avoid first run setup steps.
+  browser_args = [
+    '--no-first-run',
+    '--no-default-browser-check',
+    '--user-data-dir=%s' % user_data_dir,
+  ]
+  browser_args.extend(extra_browser_args)
+  browser_args.extend(variations_args)
+  return browser_args
+
+
+def _RunVariations(browser_path, url, extra_browser_args, variations_args):
+  """Launches browser with given variations.
+
+  Args:
+      browser_path: Browser executable file.
+      url: The webpage URL browser goes to after it launches.
+      extra_browser_args: A list of extra commandline switches browser runs
+          with.
+      variations_args: A list of commandline switches that defines the
+          variations cmd browser runs with.
+
+  Returns:
+      A set of (returncode, stdout, stderr) from browser subprocess.
+  """
+  command = [os.path.abspath(browser_path)]
+  if url:
+    command.append(url)
+  tempdir = tempfile.mkdtemp(prefix='bisect_variations_tmp')
+  command.extend(_BuildBrowserArgs(user_data_dir=tempdir,
+                                   extra_browser_args=extra_browser_args,
+                                   variations_args=variations_args))
+  logging.debug(' '.join(command))
+
+  subproc = subprocess.Popen(
+      command, bufsize=-1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+  stdout, stderr = subproc.communicate()
+  shutil.rmtree(tempdir, True)
+  return (subproc.returncode, stdout, stderr)
+
+
+def _AskCanReproduce(exit_status, stdout, stderr):
+  """Asks whether running Chrome with given variations reproduces the issue.
+
+  Args:
+      exit_status: Chrome subprocess return code.
+      stdout: Chrome subprocess stdout.
+      stderr: Chrome subprocess stderr.
+
+  Returns:
+      One of ['y', 'n', 'r']:
+        'y': yes
+        'n': no
+        'r': retry
+  """
+  # Loop until we get a response that we can parse.
+  while True:
+    response = raw_input('Can we reproduce with given variations file '
+                         '[(y)es/(n)o/(r)etry/(s)tdout/(q)uit]: ').lower()
+    if response in ('y', 'n', 'r'):
+      return response
+    if response == 'q':
+      sys.exit()
+    if response == 's':
+      logging.info(stdout)
+      logging.info(stderr)
+
+
+def Bisect(browser_type, url, extra_browser_args, variations_file, output_dir):
+  """Bisect variations interactively.
+
+  Args:
+      browser_type: One of the supported browser type on this platform. See
+          --help for the list.
+      url: The webpage URL browser launches with.
+      extra_browser_args: A list of commandline switches browser runs with.
+      variations_file: A file contains variations commandline switches that
+          need to be bisected.
+      output_dir: A folder where intermediate bisecting data are stored.
+  """
+  browser_path = _LocateBrowser(browser_type)
+  runs = [variations_file]
+  while runs:
+    run = runs[0]
+    print 'Run Chrome with variations file', run
+    variations_args = _LoadVariations(run)
+    exit_status, stdout, stderr = _RunVariations(
+        browser_path=browser_path, url=url,
+        extra_browser_args=extra_browser_args,
+        variations_args=variations_args)
+
+    answer = _AskCanReproduce(exit_status, stdout, stderr)
+    if answer == 'y':
+      runs = split_variations_cmd.SplitVariationsCmdFromFile(run, output_dir)
+      if len(runs) == 1:
+        # Can divide no further.
+        print 'Bisecting succeeded:', ' '.join(variations_args)
+        return
+    elif answer == 'n':
+      if len(runs) == 1:
+        raise Exception('Bisecting failed: should reproduce but did not: %s' %
+                        ' '.join(variations_args))
+      runs = runs[1:]
+    else:
+      assert answer == 'r'
+
+
+def main():
+  parser = optparse.OptionParser()
+  parser.add_option("--browser",
+                    help="select which browser to run. Options include: %s."
+                    " By default, stable is selected." %
+                        ", ".join(_GetSupportedBrowserTypes()))
+  parser.add_option("-v", "--verbose", action="store_true", default=False,
+                    help="print out debug information.")
+  parser.add_option("--extra-browser-args",
+                    help="specify extra command line switches for the browser "
+                    "that are separated by spaces (quoted).")
+  parser.add_option("--url",
+                    help="specify the webpage URL the browser launches with. "
+                    "This is optional.")
+  parser.add_option("--input-file",
+                    help="specify the filename that contains variations cmd "
+                    "to bisect. This has to be specified.")
+  parser.add_option("--output-dir",
+                    help="specify a folder where output files are saved. "
+                    "If not specified, it is the folder of the input file.")
+  options, _ = parser.parse_args()
+  if options.verbose:
+    logging.basicConfig(level=logging.DEBUG)
+  if options.input_file is None:
+    raise ValueError('Missing input through --input-file.')
+  output_dir = options.output_dir
+  if output_dir is None:
+    output_dir, _ = os.path.split(options.input_file)
+  if not os.path.exists(output_dir):
+    os.makedirs(output_dir)
+  browser_type = options.browser
+  if browser_type is None:
+    browser_type = 'stable'
+  extra_browser_args = []
+  if options.extra_browser_args is not None:
+    extra_browser_args = options.extra_browser_args.split()
+  Bisect(browser_type=browser_type, url=options.url,
+         extra_browser_args=extra_browser_args,
+         variations_file=options.input_file, output_dir=output_dir)
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/tools/variations/split_variations_cmd.py b/tools/variations/split_variations_cmd.py
index 9e03e59..3b8d0b6 100644
--- a/tools/variations/split_variations_cmd.py
+++ b/tools/variations/split_variations_cmd.py
@@ -363,6 +363,9 @@
 def SplitVariationsCmd(results):
   """Splits internal representation of commandline switches into two.
 
+  This function can be called recursively when bisecting a set of experiments
+  until one is identified to be responsble for a certain browser behavior.
+
   The commandline switches come from chrome://version/?show-variations-cmd.
   """
   enable_features = results.get(_ENABLE_FEATURES_SWITCH_NAME, [])
@@ -383,7 +386,10 @@
 
 
 def SplitVariationsCmdFromString(input_string):
-  """Splits commandline switches into two.
+  """Splits commandline switches.
+
+  This function can be called recursively when bisecting a set of experiments
+  until one is identified to be responsble for a certain browser behavior.
 
   Same as SplitVariationsCmd(), except data comes from a string rather than
   an internal representation.
@@ -392,31 +398,37 @@
       input_string: Variations string to be split.
 
   Returns:
-      A list of two strings, each is half of the variations cmd.
+      If input can be split, returns a list of two strings, each is half of
+      the input variations cmd; otherwise, returns a list of one string.
   """
   data = ParseVariationsCmdFromString(input_string)
   splits = SplitVariationsCmd(data)
   results = []
   for split in splits:
     cmd_list = VariationsCmdToStrings(split)
-    results.append(' '.join(cmd_list))
+    if cmd_list:
+      results.append(' '.join(cmd_list))
   return results
 
 
 def SplitVariationsCmdFromFile(input_filename, output_dir=None):
-  """Splits commandline switches into two.
+  """Splits commandline switches.
+
+  This function can be called recursively when bisecting a set of experiments
+  until one is identified to be responsble for a certain browser behavior.
 
   Same as SplitVariationsCmd(), except data comes from a file rather than
   an internal representation.
 
   Args:
       input_filename: Variations file to be split.
-      output_dir: Folder to output the two split variations files. If None,
+      output_dir: Folder to output the split variations file(s). If None,
           output to the same folder as the input_filename. If the folder
           doesn't exist, it will be created.
 
   Returns:
-      A list of two output file names.
+      If input can be split, returns a list of two output filenames;
+      otherwise, returns a list of one output filename.
   """
   with open(input_filename, 'r') as f:
     input_string = f.read().replace('\n', ' ')
diff --git a/tools/variations/split_variations_cmd_unittest.py b/tools/variations/split_variations_cmd_unittest.py
index 738d312..aed91fc 100644
--- a/tools/variations/split_variations_cmd_unittest.py
+++ b/tools/variations/split_variations_cmd_unittest.py
@@ -121,6 +121,14 @@
     data = split_variations_cmd.ParseVariationsCmdFromString(input_string)
     self._testSplitVariationsCmdHelper(data)
 
+  def testSplitVariationsCmdNoFurtherSplit(self):
+    input_string = (
+        '--force-fieldtrials="*Trial2/Enabled/" '
+        '--enable-features="FeatureA<FeatureA" '
+        '--disable-features="FeatureC<FeatureC"')
+    splits = split_variations_cmd.SplitVariationsCmdFromString(input_string)
+    self.assertEqual(1, len(splits))
+
 
 if __name__ == '__main__':
   unittest.main()
diff --git a/ui/accessibility/platform/atk_util_auralinux_unittest.cc b/ui/accessibility/platform/atk_util_auralinux_unittest.cc
index bbb70fb..447518f 100644
--- a/ui/accessibility/platform/atk_util_auralinux_unittest.cc
+++ b/ui/accessibility/platform/atk_util_auralinux_unittest.cc
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Chromium cannot upgrade to ATK 2.12 API as it still needs to run
-// valid builds for Ubuntu Trusty.
-#define ATK_DISABLE_DEPRECATION_WARNINGS
-
 #include <atk/atk.h>
 
 #include <string>
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
index abf5cbf..8c27462 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -161,9 +161,13 @@
 }
 
 bool IsRoleWithValueInterface(ax::mojom::Role role) {
+  // TODO(accessibility) Not all kSplitters should implement AtkValue.
+  // For instance, a focusable and/or movable widget kSplitter should,
+  // but a static HR element should not.
   return role == ax::mojom::Role::kScrollBar ||
          role == ax::mojom::Role::kSlider ||
          role == ax::mojom::Role::kProgressIndicator ||
+         role == ax::mojom::Role::kMeter ||
          role == ax::mojom::Role::kSplitter ||
          role == ax::mojom::Role::kSpinButton;
 }
@@ -2722,6 +2726,30 @@
   }
   atk_attribute_set_free(attributes);
 
+  // Properties obtained via AtkValue.
+  auto value_properties = std::make_unique<base::ListValue>();
+  if (ATK_IS_VALUE(atk_object_)) {
+    AtkValue* value = ATK_VALUE(atk_object_);
+    GValue current = G_VALUE_INIT;
+    g_value_init(&current, G_TYPE_FLOAT);
+    atk_value_get_current_value(value, &current);
+    value_properties->AppendString(
+        base::StringPrintf("current=%f", g_value_get_float(&current)));
+
+    GValue minimum = G_VALUE_INIT;
+    g_value_init(&minimum, G_TYPE_FLOAT);
+    atk_value_get_minimum_value(value, &minimum);
+    value_properties->AppendString(
+        base::StringPrintf("minimum=%f", g_value_get_float(&minimum)));
+
+    GValue maximum = G_VALUE_INIT;
+    g_value_init(&maximum, G_TYPE_FLOAT);
+    atk_value_get_maximum_value(value, &maximum);
+    value_properties->AppendString(
+        base::StringPrintf("maximum=%f", g_value_get_float(&maximum)));
+  }
+  dict->Set("value", std::move(value_properties));
+
   // Properties obtained via AtkTable.
   auto table_properties = std::make_unique<base::ListValue>();
   if (ATK_IS_TABLE(atk_object_)) {
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc b/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
index 4dae5a9..6ddbe51 100644
--- a/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
+++ b/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc
@@ -2,10 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Chromium cannot upgrade to ATK 2.12 API as it still needs to run
-// valid builds for Ubuntu Trusty.
-#define ATK_DISABLE_DEPRECATION_WARNINGS
-
 #include <atk/atk.h>
 
 #include <utility>
diff --git a/ui/accessibility/platform/ax_platform_node_win.cc b/ui/accessibility/platform/ax_platform_node_win.cc
index 87e9ff0..aacf91a4 100644
--- a/ui/accessibility/platform/ax_platform_node_win.cc
+++ b/ui/accessibility/platform/ax_platform_node_win.cc
@@ -3587,11 +3587,6 @@
   const AXNodeData& data = GetData();
 
   switch (pattern_id) {
-    // Supported by IAccessibleEx.
-    // TODO(suproteem): Implementations where applicable.
-    case UIA_DockPatternId:
-      break;
-
     case UIA_ExpandCollapsePatternId:
       if (SupportsExpandCollapse(data)) {
         AddRef();
@@ -3613,7 +3608,11 @@
       }
       break;
 
-    case UIA_MultipleViewPatternId:
+    case UIA_InvokePatternId:
+      if (IsInvokable(data)) {
+        AddRef();
+        *result = static_cast<IInvokeProvider*>(this);
+      }
       break;
 
     case UIA_RangeValuePatternId:
@@ -3635,7 +3634,18 @@
       *result = static_cast<IScrollItemProvider*>(this);
       break;
 
-    case UIA_SynchronizedInputPatternId:
+    case UIA_SelectionItemPatternId:
+      if (IsSelectionItemSupported()) {
+        AddRef();
+        *result = static_cast<ISelectionItemProvider*>(this);
+      }
+      break;
+
+    case UIA_SelectionPatternId:
+      if (IsContainerWithSelectableChildren(data.role)) {
+        AddRef();
+        *result = static_cast<ISelectionProvider*>(this);
+      }
       break;
 
     case UIA_TablePatternId:
@@ -3652,30 +3662,6 @@
       }
       break;
 
-    case UIA_TransformPatternId:
-      break;
-
-    case UIA_InvokePatternId:
-      if (IsInvokable(data)) {
-        AddRef();
-        *result = static_cast<IInvokeProvider*>(this);
-      }
-      break;
-
-    case UIA_SelectionItemPatternId:
-      if (IsSelectionItemSupported()) {
-        AddRef();
-        *result = static_cast<ISelectionItemProvider*>(this);
-      }
-      break;
-
-    case UIA_SelectionPatternId:
-      if (IsContainerWithSelectableChildren(data.role)) {
-        AddRef();
-        *result = static_cast<ISelectionProvider*>(this);
-      }
-      break;
-
     case UIA_TextEditPatternId:
     case UIA_TextPatternId:
       if (IsTextOnlyObject() || IsDocument() ||
@@ -3703,22 +3689,29 @@
       }
       break;
 
-    // Overlap with MSAA, not supported.
+    // Not currently implemented.
     case UIA_AnnotationPatternId:
     case UIA_CustomNavigationPatternId:
+    case UIA_DockPatternId:
     case UIA_DragPatternId:
     case UIA_DropTargetPatternId:
     case UIA_ItemContainerPatternId:
-    case UIA_LegacyIAccessiblePatternId:
+    case UIA_MultipleViewPatternId:
     case UIA_ObjectModelPatternId:
     case UIA_SpreadsheetPatternId:
     case UIA_SpreadsheetItemPatternId:
     case UIA_StylesPatternId:
+    case UIA_SynchronizedInputPatternId:
     case UIA_TextChildPatternId:
     case UIA_TextPattern2Id:
+    case UIA_TransformPatternId:
     case UIA_TransformPattern2Id:
     case UIA_VirtualizedItemPatternId:
       break;
+
+    // Provided by UIA Core; we should not implement.
+    case UIA_LegacyIAccessiblePatternId:
+      break;
   }
   return S_OK;
 }
@@ -3746,8 +3739,6 @@
   const AXNodeData& data = GetData();
 
   switch (property_id) {
-    // Supported by IAccessibleEx.
-    // TODO(suproteem): Implementations where applicable.
     case UIA_AriaPropertiesPropertyId:
       result->vt = VT_BSTR;
       result->bstrVal = SysAllocString(ComputeUIAProperties().c_str());
@@ -3912,10 +3903,6 @@
       break;
     }
 
-    case UIA_ItemTypePropertyId:
-      // TODO(suproteem)
-      break;
-
     case UIA_LabeledByPropertyId:
       for (int32_t id : data.GetIntListAttribute(
                ax::mojom::IntListAttribute::kLabelledbyIds)) {
@@ -4074,34 +4061,27 @@
       break;
     }
 
-    // Covered by MSAA.
-    case UIA_BoundingRectanglePropertyId:
-    case UIA_NativeWindowHandlePropertyId:
-    case UIA_ProcessIdPropertyId:
-      break;
-
-    // Overlap with MSAA, not supported.
+    // Not currently implemented.
     case UIA_AnnotationObjectsPropertyId:
     case UIA_AnnotationTypesPropertyId:
     case UIA_CenterPointPropertyId:
-    case UIA_CustomControlTypeId:
     case UIA_FillColorPropertyId:
     case UIA_FillTypePropertyId:
-    case UIA_GroupControlTypeId:
     case UIA_HeadingLevelPropertyId:
-    case UIA_MenuControlTypeId:
+    case UIA_ItemTypePropertyId:
     case UIA_OutlineColorPropertyId:
     case UIA_OutlineThicknessPropertyId:
-    case UIA_PaneControlTypeId:
-    case UIA_ProviderDescriptionPropertyId:
     case UIA_RotationPropertyId:
-    case UIA_RuntimeIdPropertyId:
     case UIA_SizePropertyId:
-    case UIA_ToolBarControlTypeId:
-    case UIA_ToolTipControlTypeId:
     case UIA_VisualEffectsPropertyId:
-    case UIA_WindowControlTypeId:
-      // MSAA-to-UIA Proxy.
+      break;
+
+    // Provided by UIA Core; we should not implement.
+    case UIA_BoundingRectanglePropertyId:
+    case UIA_NativeWindowHandlePropertyId:
+    case UIA_ProcessIdPropertyId:
+    case UIA_ProviderDescriptionPropertyId:
+    case UIA_RuntimeIdPropertyId:
       break;
   }
 
diff --git a/ui/android/java/res/values-v17/styles.xml b/ui/android/java/res/values-v17/styles.xml
index 472fc605..b297c27 100644
--- a/ui/android/java/res/values-v17/styles.xml
+++ b/ui/android/java/res/values-v17/styles.xml
@@ -217,6 +217,12 @@
         <item name="android:textSize">@dimen/text_size_small</item>
     </style>
 
+    <!-- Error Text Styles -->
+    <style name="TextAppearance.ErrorCaption" tools:ignore="UnusedResources">
+        <item name="android:textColor">@color/error_text_color</item>
+        <item name="android:textSize">@dimen/text_size_small</item>
+    </style>
+
     <!-- Chip Text Styles -->
     <style name="TextAppearance.ChipText.Assistive" parent="TextAppearance.AccentMediumStyle">
         <item name="android:textColor">@color/default_text_color</item>
diff --git a/ui/android/java/res/values/colors.xml b/ui/android/java/res/values/colors.xml
index 2fa67a37..2786106 100644
--- a/ui/android/java/res/values/colors.xml
+++ b/ui/android/java/res/values/colors.xml
@@ -15,6 +15,7 @@
     <!-- Text color for clickable text. -->
     <color name="default_text_color_link">@color/modern_blue_600</color>
     <color name="disabled_text_color">@color/black_alpha_38</color>
+    <color name="error_text_color">@color/default_red</color>
 
     <!-- Common icon colors for drawables. -->
     <color name="default_icon_color" tools:ignore="UnusedResources">
@@ -62,5 +63,9 @@
 
     <!-- Ripple colors for clickable widgets -->
     <color name="ripple_color_blue">@color/modern_blue_600</color>
+
+    <!-- Other colors -->
+    <color name="default_red">@color/default_red_dark</color>
+    <color name="default_green" tools:ignore="UnusedResources">@color/default_green_dark</color>
 </resources>
 
diff --git a/ui/android/java/res_night/values-night/colors.xml b/ui/android/java/res_night/values-night/colors.xml
index 2323756..8b084f52 100644
--- a/ui/android/java/res_night/values-night/colors.xml
+++ b/ui/android/java/res_night/values-night/colors.xml
@@ -30,4 +30,8 @@
 
     <!-- Ripple colors for clickable widgets -->
     <color name="ripple_color_blue">@color/modern_blue_300</color>
+
+    <!-- Other colors -->
+    <color name="default_red">@color/default_red_light</color>
+    <color name="default_green">@color/default_green_light</color>
 </resources>
\ No newline at end of file
diff --git a/ui/android/java/src/org/chromium/ui/base/TouchlessEventHandler.java b/ui/android/java/src/org/chromium/ui/base/TouchlessEventHandler.java
index 5ad1a94..1ec84fb3 100644
--- a/ui/android/java/src/org/chromium/ui/base/TouchlessEventHandler.java
+++ b/ui/android/java/src/org/chromium/ui/base/TouchlessEventHandler.java
@@ -55,6 +55,17 @@
         }
     }
 
+    public static void fallbackCursorModeLockCursor(
+            boolean left, boolean right, boolean up, boolean down) {
+        // No null check is needed here because it called after hasTouchlessEventHandler in native.
+        sInstance.fallbackCursorModeLockCursorInternal(left, right, up, down);
+    }
+
+    public static void fallbackCursorModeSetCursorVisibility(boolean visible) {
+        // No null check is needed here because it called after hasTouchlessEventHandler in native.
+        sInstance.fallbackCursorModeSetCursorVisibilityInternal(visible);
+    }
+
     protected boolean onUnconsumedKeyboardEventAckInternal(int nativeCode) {
         return false;
     }
@@ -66,4 +77,9 @@
     protected void onDidFinishNavigationInternal() {}
 
     protected void onActivityHiddenInternal() {}
+
+    protected void fallbackCursorModeLockCursorInternal(
+            boolean left, boolean right, boolean up, boolean down) {}
+
+    protected void fallbackCursorModeSetCursorVisibilityInternal(boolean visible) {}
 }
\ No newline at end of file
diff --git a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
index 5452738..1599613 100644
--- a/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
+++ b/ui/android/java/src/org/chromium/ui/base/ViewAndroidDelegate.java
@@ -436,12 +436,23 @@
     }
 
     @CalledByNative
-    private boolean hasTouchlessEventHandler() {
+    private static boolean hasTouchlessEventHandler() {
         return TouchlessEventHandler.hasTouchlessEventHandler();
     }
 
     @CalledByNative
-    private boolean onUnconsumedKeyboardEventAck(int nativeCode) {
+    private static boolean onUnconsumedKeyboardEventAck(int nativeCode) {
         return TouchlessEventHandler.onUnconsumedKeyboardEventAck(nativeCode);
     }
+
+    @CalledByNative
+    private static void fallbackCursorModeLockCursor(
+            boolean left, boolean right, boolean up, boolean down) {
+        TouchlessEventHandler.fallbackCursorModeLockCursor(left, right, up, down);
+    }
+
+    @CalledByNative
+    private static void fallbackCursorModeSetCursorVisibility(boolean visible) {
+        TouchlessEventHandler.fallbackCursorModeSetCursorVisibility(visible);
+    }
 }
diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc
index 7af741c..90536083 100644
--- a/ui/android/view_android.cc
+++ b/ui/android/view_android.cc
@@ -648,20 +648,44 @@
   bounds_.SetRect(x, y, width, height);
 }
 
+bool ViewAndroid::HasTouchlessEventHandler() {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  static bool s_has_touchless_event_handler =
+      Java_ViewAndroidDelegate_hasTouchlessEventHandler(env);
+
+  return s_has_touchless_event_handler;
+}
+
 bool ViewAndroid::OnUnconsumedKeyboardEventAck(int native_code) {
-  ScopedJavaLocalRef<jobject> delegate(GetViewAndroidDelegate());
-  if (delegate.is_null())
+  if (!HasTouchlessEventHandler())
     return false;
 
   JNIEnv* env = base::android::AttachCurrentThread();
-  static bool s_has_touchless_event_handler =
-      Java_ViewAndroidDelegate_hasTouchlessEventHandler(env, delegate);
 
-  if (!s_has_touchless_event_handler)
-    return false;
-
-  return Java_ViewAndroidDelegate_onUnconsumedKeyboardEventAck(env, delegate,
+  return Java_ViewAndroidDelegate_onUnconsumedKeyboardEventAck(env,
                                                                native_code);
 }
 
+void ViewAndroid::FallbackCursorModeLockCursor(bool left,
+                                               bool right,
+                                               bool up,
+                                               bool down) {
+  if (!HasTouchlessEventHandler())
+    return;
+
+  JNIEnv* env = base::android::AttachCurrentThread();
+
+  Java_ViewAndroidDelegate_fallbackCursorModeLockCursor(env, left, right, up,
+                                                        down);
+}
+
+void ViewAndroid::FallbackCursorModeSetCursorVisibility(bool visible) {
+  if (!HasTouchlessEventHandler())
+    return;
+
+  JNIEnv* env = base::android::AttachCurrentThread();
+
+  Java_ViewAndroidDelegate_fallbackCursorModeSetCursorVisibility(env, visible);
+}
+
 }  // namespace ui
diff --git a/ui/android/view_android.h b/ui/android/view_android.h
index b7683f2..7f0d7fe1 100644
--- a/ui/android/view_android.h
+++ b/ui/android/view_android.h
@@ -200,6 +200,8 @@
   }
 
   bool OnUnconsumedKeyboardEventAck(int native_code);
+  void FallbackCursorModeLockCursor(bool left, bool right, bool up, bool down);
+  void FallbackCursorModeSetCursorVisibility(bool visible);
 
  protected:
   void RemoveAllChildren(bool attached_to_window);
@@ -268,6 +270,8 @@
   void OnSizeChangedInternal(const gfx::Size& size);
   void DispatchOnSizeChanged();
 
+  bool HasTouchlessEventHandler();
+
   // Returns the Java delegate for this view. This is used to delegate work
   // up to the embedding view (or the embedder that can deal with the
   // implementation details).
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index dbe9fc1d..2d8e6b12 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -69,6 +69,8 @@
   sources = [
     "accelerators/media_keys_listener.cc",
     "accelerators/media_keys_listener.h",
+    "accelerators/media_keys_util.cc",
+    "accelerators/media_keys_util.h",
     "accelerators/menu_label_accelerator_util.cc",
     "accelerators/menu_label_accelerator_util.h",
     "accelerators/menu_label_accelerator_util_linux.cc",
diff --git a/ui/base/accelerators/media_keys_util.cc b/ui/base/accelerators/media_keys_util.cc
new file mode 100644
index 0000000..979b9c1
--- /dev/null
+++ b/ui/base/accelerators/media_keys_util.cc
@@ -0,0 +1,17 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/base/accelerators/media_keys_util.h"
+
+#include "base/metrics/histogram_macros.h"
+
+namespace ui {
+
+const char kMediaHardwareKeyActionHistogramName[] = "Media.HardwareKeyPressed";
+
+void RecordMediaHardwareKeyAction(ui::MediaHardwareKeyAction action) {
+  UMA_HISTOGRAM_ENUMERATION(kMediaHardwareKeyActionHistogramName, action);
+}
+
+}  // namespace ui
diff --git a/ui/base/accelerators/media_keys_util.h b/ui/base/accelerators/media_keys_util.h
new file mode 100644
index 0000000..a9da86e
--- /dev/null
+++ b/ui/base/accelerators/media_keys_util.h
@@ -0,0 +1,34 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_BASE_ACCELERATORS_MEDIA_KEYS_UTIL_H_
+#define UI_BASE_ACCELERATORS_MEDIA_KEYS_UTIL_H_
+
+#include "ui/base/ui_base_export.h"
+
+namespace ui {
+
+// These values are persisted to logs. Entries should not be renumbered and
+// numeric values should never be reused.
+enum class MediaHardwareKeyAction {
+  kPlay = 0,
+  kPause,
+  kStop,
+  kNextTrack,
+  kPreviousTrack,
+  kPlayPause,
+  kMaxValue = kPlayPause
+};
+
+// The name of the histogram that records |MediaHardwareKeyAction|.
+UI_BASE_EXPORT extern const char kMediaHardwareKeyActionHistogramName[];
+
+// Records a media hardware key action to the
+// |kMediaHardwareKeyActionHistogramName| histogram.
+UI_BASE_EXPORT void RecordMediaHardwareKeyAction(
+    ui::MediaHardwareKeyAction action);
+
+}  // namespace ui
+
+#endif  // UI_BASE_ACCELERATORS_MEDIA_KEYS_UTIL_H_
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
index 0ce67d4..4a84fc8ef 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -574,6 +574,7 @@
 <translation id="7864662577698025113">নতুন পরিষেবা যোগ করুন</translation>
 <translation id="7873831373602885875"><ph name="FOLDER_NAME" />-এ সেভ করা যাচ্ছে না। সব এডিট ডাউনলোড ফোল্ডারের মধ্যে <ph name="DOWNLOADS_FOLDER" />-এ সেভ করা হবে।</translation>
 <translation id="7881969471599061635">সাবটাইটেল অক্ষম করুন</translation>
+<translation id="78946041517601018">শেয়ার করা ডিভাইস</translation>
 <translation id="7896906914454843592">মার্কিন প্রসারিত কীবোর্ড</translation>
 <translation id="7898607018410277265">গুজরাতি কীবোর্ড (নতুন ফোনেটিক)</translation>
 <translation id="7917972308273378936">লিথুয়ানিয়ান কীবোর্ড</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
index 6d48a98..2d8cbb4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -575,6 +575,7 @@
 <translation id="7864662577698025113">Magdagdag ng bagong serbisyo</translation>
 <translation id="7873831373602885875">Hindi maaaring mag-save sa <ph name="FOLDER_NAME" />. Mase-save ang lahat ng pag-edit sa <ph name="DOWNLOADS_FOLDER" /> sa folder na Mga Download.</translation>
 <translation id="7881969471599061635">I-disable ang mga subtitle</translation>
+<translation id="78946041517601018">Mga shared drive</translation>
 <translation id="7896906914454843592">US Extended keyboard</translation>
 <translation id="7898607018410277265">Gujarati keyboard (New Phonetic)</translation>
 <translation id="7917972308273378936">Lithuanian na keyboard</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
index ed2b447..f58381a 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -575,6 +575,7 @@
 <translation id="7864662577698025113">Tambahkan layanan baru</translation>
 <translation id="7873831373602885875">Tidak dapat menyimpan ke <ph name="FOLDER_NAME" />. Semua pengeditan akan disimpan ke <ph name="DOWNLOADS_FOLDER" /> dalam folder Download.</translation>
 <translation id="7881969471599061635">Nonaktifkan subtitel</translation>
+<translation id="78946041517601018">Drive bersama</translation>
 <translation id="7896906914454843592">Keyboard Perluasan AS</translation>
 <translation id="7898607018410277265">Keyboard Gujarati (Fonetik Baru)</translation>
 <translation id="7917972308273378936">Keyboard untuk bahasa Lituania</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
index 7d1d978..8d0740b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -563,6 +563,7 @@
 <translation id="7864662577698025113">ಹೊಸ ಸೇವೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="7873831373602885875"><ph name="FOLDER_NAME" /> ನಲ್ಲಿ ಉಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಎಲ್ಲಾ ಎಡಿಟ್‌ಗಳನ್ನು, ಡೌನ್‌ಲೋಡ್‌ಗಳ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ <ph name="DOWNLOADS_FOLDER" /> ಎಂಬಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="7881969471599061635">ಉಪಶೀರ್ಷಿಕೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು</translation>
+<translation id="78946041517601018">ಹಂಚಿಕೊಂಡಿರುವ ಡ್ರೈವ್‌ಗಳು</translation>
 <translation id="7896906914454843592">ಯುಎಸ್ ವಿಸ್ತರಿಸಲಾದ ಕೀಬೋರ್ಡ್</translation>
 <translation id="7898607018410277265">ಗುಜರಾತಿ ಕೀಬೋರ್ಡ್ (ಹೊಸ ಫೋನೆಟಿಕ್)</translation>
 <translation id="7917972308273378936">ಲಿಥುವೇನಿಯನ್ ಕೀಬೋರ್ಡ್</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
index bdf6f769..26a2568 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -575,6 +575,7 @@
 <translation id="7864662577698025113">Adicionar novo serviço</translation>
 <translation id="7873831373602885875">Não é possível guardar em <ph name="FOLDER_NAME" />. Todas as edições serão guardadas em <ph name="DOWNLOADS_FOLDER" /> na pasta Transferências.</translation>
 <translation id="7881969471599061635">Desativar legendas</translation>
+<translation id="78946041517601018">Unidades partilhadas</translation>
 <translation id="7896906914454843592">Teclado americano alargado</translation>
 <translation id="7898607018410277265">Teclado guzerate (nova fonética)</translation>
 <translation id="7917972308273378936">Teclado lituano</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
index ac6702c..37947b4 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
@@ -179,6 +179,7 @@
 <translation id="3116361045094675131">Angleška tipkovnica (Velika Britanija)</translation>
 <translation id="3126026824346185272">CTRL</translation>
 <translation id="3144126448740580210">KONČANO</translation>
+<translation id="3157729859914172001">Mednarodna angleška tipkovnica (ZDA – za računalnike s sistemom Windows)</translation>
 <translation id="3187212781151025377">Hebrejska tipkovnica</translation>
 <translation id="3188257591659621405">Moje datoteke</translation>
 <translation id="3197563288998582412">Združeno kraljestvo – Dvorak</translation>
@@ -574,6 +575,7 @@
 <translation id="7864662577698025113">Dodaj novo storitev</translation>
 <translation id="7873831373602885875">V mapo <ph name="FOLDER_NAME" /> ni mogoče shranjevati. Vsa urejanja bodo shranjena v mapo <ph name="DOWNLOADS_FOLDER" /> v mapi Prenosi.</translation>
 <translation id="7881969471599061635">Onemogočanje podnapisov</translation>
+<translation id="78946041517601018">Diski v skupni rabi</translation>
 <translation id="7896906914454843592">Razširjena tipkovnica za angleščino (Združene države)</translation>
 <translation id="7898607018410277265">Tipkovnica za gudžaratščino (nova fonetična)</translation>
 <translation id="7917972308273378936">Litovska tipkovnica</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
index f3b56ac2..75595bbb 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -575,6 +575,7 @@
 <translation id="7864662577698025113">Lägg till ny tjänst</translation>
 <translation id="7873831373602885875">Det går inte att spara i <ph name="FOLDER_NAME" />. Alla ändringar sparas i <ph name="DOWNLOADS_FOLDER" /> i mappen Nedladdningar.</translation>
 <translation id="7881969471599061635">Inaktivera undertexter</translation>
+<translation id="78946041517601018">Delade enheter</translation>
 <translation id="7896906914454843592">Utökat tangentbord för USA</translation>
 <translation id="7898607018410277265">Tangentbord för gujarati (nytt fonetiskt)</translation>
 <translation id="7917972308273378936">Litauiskt tangentbord</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
index 2eed80b..9c9d62f 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
@@ -575,6 +575,7 @@
 <translation id="7864662577698025113">కొత్త సేవను జోడించు</translation>
 <translation id="7873831373602885875"><ph name="FOLDER_NAME" />లో సేవ్ చేయడం సాధ్యపడలేదు. అన్ని సవరణలు డౌన్‌లోడ్‌లు ఫోల్డర్‌లోని<ph name="DOWNLOADS_FOLDER" />లో సేవ్ చేయబడతాయి.</translation>
 <translation id="7881969471599061635">ఉపశీర్షికలను నిలిపివేయి</translation>
+<translation id="78946041517601018">షేర్ చేసిన డ్రైవ్‌లు</translation>
 <translation id="7896906914454843592">US విస్తారిత కీబోర్డ్</translation>
 <translation id="7898607018410277265">గుజరాతీ కీబోర్డ్ (కొత్త ఫొనెటిక్)</translation>
 <translation id="7917972308273378936">లిథ్వెనియన్ కీబోర్డ్</translation>
diff --git a/ui/compositor/host/host_context_factory_private.cc b/ui/compositor/host/host_context_factory_private.cc
index 8297e1a..2b23ed4 100644
--- a/ui/compositor/host/host_context_factory_private.cc
+++ b/ui/compositor/host/host_context_factory_private.cc
@@ -36,7 +36,6 @@
     scoped_refptr<base::SingleThreadTaskRunner> resize_task_runner)
     : frame_sink_id_allocator_(client_id),
       host_frame_sink_manager_(host_frame_sink_manager),
-      renderer_settings_(viz::CreateRendererSettings()),
       resize_task_runner_(std::move(resize_task_runner)) {
   DCHECK(host_frame_sink_manager_);
 }
@@ -95,7 +94,7 @@
   root_params->widget = compositor->widget();
 #endif
   root_params->gpu_compositing = gpu_compositing;
-  root_params->renderer_settings = renderer_settings_;
+  root_params->renderer_settings = viz::CreateRendererSettings();
 
   base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
   if (command_line->HasSwitch(switches::kDisableFrameRateLimit))
diff --git a/ui/compositor/host/host_context_factory_private.h b/ui/compositor/host/host_context_factory_private.h
index a746302..18cd0964 100644
--- a/ui/compositor/host/host_context_factory_private.h
+++ b/ui/compositor/host/host_context_factory_private.h
@@ -114,7 +114,6 @@
 
   viz::FrameSinkIdAllocator frame_sink_id_allocator_;
   viz::HostFrameSinkManager* host_frame_sink_manager_;
-  const viz::RendererSettings renderer_settings_;
 
   bool is_gpu_compositing_disabled_ = false;
 
diff --git a/ui/display/win/screen_win.h b/ui/display/win/screen_win.h
index 9a31579b..e47db8c 100644
--- a/ui/display/win/screen_win.h
+++ b/ui/display/win/screen_win.h
@@ -73,9 +73,11 @@
   static gfx::Rect ScreenToDIPRect(HWND hwnd, const gfx::Rect& pixel_bounds);
 
   // Converts a screen DIP rect to a screen physical rect.
-  // The DPI scale is performed relative to the display nearest to |hwnd|.
-  // If |hwnd| is null, scaling will be performed to the display nearest to
-  // |dip_bounds|.
+  // If |hwnd| is null, scaling will be performed using the DSF of the display
+  // nearest to |dip_bounds|; otherwise, scaling will be performed using the DSF
+  // of the display nearest to |hwnd|.  Thus if an existing HWND is moving to a
+  // different display, it's often more correct to pass null for |hwnd| to get
+  // the new display's scale factor rather than the old one's.
   static gfx::Rect DIPToScreenRect(HWND hwnd, const gfx::Rect& dip_bounds);
 
   // Converts a client physical rect to a client DIP rect.
diff --git a/ui/ozone/common/stub_overlay_manager.cc b/ui/ozone/common/stub_overlay_manager.cc
index 5a91846..fd15b4e 100644
--- a/ui/ozone/common/stub_overlay_manager.cc
+++ b/ui/ozone/common/stub_overlay_manager.cc
@@ -18,8 +18,4 @@
   return nullptr;
 }
 
-bool StubOverlayManager::SupportsOverlays() const {
-  return false;
-}
-
 }  // namespace ui
diff --git a/ui/ozone/common/stub_overlay_manager.h b/ui/ozone/common/stub_overlay_manager.h
index 238a93cf..48b3777 100644
--- a/ui/ozone/common/stub_overlay_manager.h
+++ b/ui/ozone/common/stub_overlay_manager.h
@@ -19,8 +19,6 @@
   std::unique_ptr<OverlayCandidatesOzone> CreateOverlayCandidates(
       gfx::AcceleratedWidget w) override;
 
-  bool SupportsOverlays() const override;
-
  private:
   DISALLOW_COPY_AND_ASSIGN(StubOverlayManager);
 };
diff --git a/ui/ozone/platform/cast/overlay_manager_cast.cc b/ui/ozone/platform/cast/overlay_manager_cast.cc
index 66a210a..6a34f69 100644
--- a/ui/ozone/platform/cast/overlay_manager_cast.cc
+++ b/ui/ozone/platform/cast/overlay_manager_cast.cc
@@ -29,8 +29,4 @@
   return std::make_unique<OverlayCandidatesCast>();
 }
 
-bool OverlayManagerCast::SupportsOverlays() const {
-  return false;
-}
-
 }  // namespace ui
diff --git a/ui/ozone/platform/cast/overlay_manager_cast.h b/ui/ozone/platform/cast/overlay_manager_cast.h
index e1ffcf7..6d9963b 100644
--- a/ui/ozone/platform/cast/overlay_manager_cast.h
+++ b/ui/ozone/platform/cast/overlay_manager_cast.h
@@ -21,8 +21,6 @@
   std::unique_ptr<OverlayCandidatesOzone> CreateOverlayCandidates(
       gfx::AcceleratedWidget w) override;
 
-  bool SupportsOverlays() const override;
-
  private:
   DISALLOW_COPY_AND_ASSIGN(OverlayManagerCast);
 };
diff --git a/ui/ozone/platform/drm/common/drm_overlay_manager.cc b/ui/ozone/platform/drm/common/drm_overlay_manager.cc
index 1881a979..959e0bcd3 100644
--- a/ui/ozone/platform/drm/common/drm_overlay_manager.cc
+++ b/ui/ozone/platform/drm/common/drm_overlay_manager.cc
@@ -36,10 +36,6 @@
   return std::make_unique<DrmOverlayCandidates>(this, widget);
 }
 
-bool DrmOverlayManager::SupportsOverlays() const {
-  return supports_overlays_;
-}
-
 void DrmOverlayManager::ResetCache() {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   cache_.Clear();
diff --git a/ui/ozone/platform/drm/common/drm_overlay_manager.h b/ui/ozone/platform/drm/common/drm_overlay_manager.h
index c3d90c3..7604d47 100644
--- a/ui/ozone/platform/drm/common/drm_overlay_manager.h
+++ b/ui/ozone/platform/drm/common/drm_overlay_manager.h
@@ -26,14 +26,9 @@
   DrmOverlayManager();
   ~DrmOverlayManager() override;
 
-  void set_supports_overlays(bool supports_overlays) {
-    supports_overlays_ = supports_overlays;
-  }
-
   // OverlayManagerOzone:
   std::unique_ptr<OverlayCandidatesOzone> CreateOverlayCandidates(
       gfx::AcceleratedWidget w) override;
-  bool SupportsOverlays() const override;
 
   // Resets the cache of OverlaySurfaceCandidates and if they can be displayed
   // as an overlay. For use when display configuration changes.
@@ -74,9 +69,6 @@
     std::vector<OverlayStatus> status;
   };
 
-  // Whether we have DRM atomic capabilities and can support HW overlays.
-  bool supports_overlays_ = false;
-
   // List of all OverlaySurfaceCandidate instances which have been requested
   // for validation and/or validated.
   base::MRUCache<std::vector<OverlaySurfaceCandidate>,
diff --git a/ui/ozone/platform/drm/host/drm_display_host_manager.cc b/ui/ozone/platform/drm/host/drm_display_host_manager.cc
index 6aaee53..d339e42 100644
--- a/ui/ozone/platform/drm/host/drm_display_host_manager.cc
+++ b/ui/ozone/platform/drm/host/drm_display_host_manager.cc
@@ -20,11 +20,11 @@
 #include "ui/display/types/display_snapshot.h"
 #include "ui/events/ozone/device/device_event.h"
 #include "ui/events/ozone/device/device_manager.h"
+#include "ui/ozone/platform/drm/common/drm_overlay_manager.h"
 #include "ui/ozone/platform/drm/common/drm_util.h"
 #include "ui/ozone/platform/drm/host/drm_device_handle.h"
 #include "ui/ozone/platform/drm/host/drm_display_host.h"
 #include "ui/ozone/platform/drm/host/drm_native_display_delegate.h"
-#include "ui/ozone/platform/drm/host/drm_overlay_manager_host.h"
 #include "ui/ozone/platform/drm/host/gpu_thread_adapter.h"
 
 namespace ui {
@@ -111,7 +111,8 @@
 DrmDisplayHostManager::DrmDisplayHostManager(
     GpuThreadAdapter* proxy,
     DeviceManager* device_manager,
-    DrmOverlayManagerHost* overlay_manager,
+    OzonePlatform::InitializedHostProperties* host_properties,
+    DrmOverlayManager* overlay_manager,
     InputControllerEvdev* input_controller)
     : proxy_(proxy),
       device_manager_(device_manager),
@@ -134,10 +135,8 @@
       LOG(FATAL) << "Failed to open primary graphics card";
       return;
     }
-    if (overlay_manager) {
-      overlay_manager->set_supports_overlays(
-          primary_drm_device_handle_->has_atomic_capabilities());
-    }
+    host_properties->supports_overlays =
+        primary_drm_device_handle_->has_atomic_capabilities();
     drm_devices_[primary_graphics_card_path_] =
         primary_graphics_card_path_sysfs;
   }
diff --git a/ui/ozone/platform/drm/host/drm_display_host_manager.h b/ui/ozone/platform/drm/host/drm_display_host_manager.h
index 4e91b19..50fc27d9 100644
--- a/ui/ozone/platform/drm/host/drm_display_host_manager.h
+++ b/ui/ozone/platform/drm/host/drm_display_host_manager.h
@@ -20,6 +20,7 @@
 #include "ui/events/ozone/device/device_event_observer.h"
 #include "ui/events/ozone/evdev/event_factory_evdev.h"
 #include "ui/ozone/platform/drm/host/gpu_thread_observer.h"
+#include "ui/ozone/public/ozone_platform.h"
 
 namespace ui {
 
@@ -28,7 +29,7 @@
 class DrmDisplayHost;
 class DrmDisplayHostManager;
 class DrmNativeDisplayDelegate;
-class DrmOverlayManagerHost;
+class DrmOverlayManager;
 class GpuThreadAdapter;
 
 struct DisplaySnapshot_Params;
@@ -38,10 +39,12 @@
 // This is used from both the IPC and the in-process versions in  MUS.
 class DrmDisplayHostManager : public DeviceEventObserver, GpuThreadObserver {
  public:
-  DrmDisplayHostManager(GpuThreadAdapter* proxy,
-                        DeviceManager* device_manager,
-                        DrmOverlayManagerHost* overlay_manager,
-                        InputControllerEvdev* input_controller);
+  DrmDisplayHostManager(
+      GpuThreadAdapter* proxy,
+      DeviceManager* device_manager,
+      OzonePlatform::InitializedHostProperties* host_properties,
+      DrmOverlayManager* overlay_manager,
+      InputControllerEvdev* input_controller);
   ~DrmDisplayHostManager() override;
 
   DrmDisplayHost* GetDisplay(int64_t display_id);
@@ -101,7 +104,7 @@
   GpuThreadAdapter* const proxy_;                 // Not owned.
   DeviceManager* const device_manager_;           // Not owned.
   // TODO(crbug.com/936425): Remove after VizDisplayCompositor feature launches.
-  DrmOverlayManagerHost* const overlay_manager_;  // Not owned.
+  DrmOverlayManager* const overlay_manager_;      // Not owned.
   InputControllerEvdev* const input_controller_;  // Not owned.
 
   DrmNativeDisplayDelegate* delegate_ = nullptr;  // Not owned.
diff --git a/ui/ozone/platform/drm/ozone_platform_gbm.cc b/ui/ozone/platform/drm/ozone_platform_gbm.cc
index f8932280..bdaa1a2 100644
--- a/ui/ozone/platform/drm/ozone_platform_gbm.cc
+++ b/ui/ozone/platform/drm/ozone_platform_gbm.cc
@@ -245,8 +245,8 @@
     }
 
     display_manager_ = std::make_unique<DrmDisplayHostManager>(
-        adapter, device_manager_.get(), overlay_manager_host.get(),
-        event_factory_ozone_->input_controller());
+        adapter, device_manager_.get(), &host_properties_,
+        overlay_manager_host.get(), event_factory_ozone_->input_controller());
     cursor_factory_ozone_.reset(new BitmapCursorFactoryOzone);
 
     if (using_mojo_) {
@@ -302,6 +302,11 @@
     }
   }
 
+  const InitializedHostProperties& GetInitializedHostProperties() override {
+    DCHECK(has_initialized_ui());
+    return host_properties_;
+  }
+
   // The DRM thread needs to be started late because we need to wait for the
   // sandbox to start. This entry point in the Ozne API gives platforms
   // flexibility in handing this requirement.
@@ -353,6 +358,7 @@
   std::unique_ptr<EventFactoryEvdev> event_factory_ozone_;
   std::unique_ptr<DrmDisplayHostManager> display_manager_;
   std::unique_ptr<DrmOverlayManager> overlay_manager_;
+  InitializedHostProperties host_properties_;
 
 #if BUILDFLAG(USE_XKBCOMMON)
   XkbEvdevCodes xkb_evdev_code_converter_;
diff --git a/ui/ozone/public/overlay_manager_ozone.h b/ui/ozone/public/overlay_manager_ozone.h
index 1497d305..54e73e58 100644
--- a/ui/ozone/public/overlay_manager_ozone.h
+++ b/ui/ozone/public/overlay_manager_ozone.h
@@ -22,11 +22,6 @@
   // Get the hal struct to check for overlay support.
   virtual std::unique_ptr<OverlayCandidatesOzone> CreateOverlayCandidates(
       gfx::AcceleratedWidget w) = 0;
-
-  // Whether the underlying platform supports deferring compositing of buffers
-  // via overlays. In cases where overlays are not supported the promotion and
-  // validation logics can be skipped client side.
-  virtual bool SupportsOverlays() const = 0;
 };
 
 }  // namespace ui
diff --git a/ui/ozone/public/ozone_platform.cc b/ui/ozone/public/ozone_platform.cc
index aa2e5351..e3c40bec 100644
--- a/ui/ozone/public/ozone_platform.cc
+++ b/ui/ozone/public/ozone_platform.cc
@@ -141,6 +141,14 @@
   return *properties;
 }
 
+const OzonePlatform::InitializedHostProperties&
+OzonePlatform::GetInitializedHostProperties() {
+  DCHECK(g_platform_initialized_ui);
+
+  static InitializedHostProperties host_properties;
+  return host_properties;
+}
+
 base::MessageLoop::Type OzonePlatform::GetMessageLoopTypeForGpu() {
   return base::MessageLoop::TYPE_DEFAULT;
 }
@@ -149,4 +157,9 @@
 
 void OzonePlatform::AfterSandboxEntry() {}
 
+// static
+bool OzonePlatform::has_initialized_ui() {
+  return g_platform_initialized_ui;
+}
+
 }  // namespace ui
diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
index e8beed2..d36bb3b 100644
--- a/ui/ozone/public/ozone_platform.h
+++ b/ui/ozone/public/ozone_platform.h
@@ -112,6 +112,14 @@
     bool requires_mojo = false;
   };
 
+  // Properties available in the host process after initialization.
+  struct InitializedHostProperties {
+    // Whether the underlying platform supports deferring compositing of buffers
+    // via overlays. If overlays are not supported the promotion and validation
+    // logic can be skipped.
+    bool supports_overlays = false;
+  };
+
   using StartupCallback = base::OnceCallback<void(OzonePlatform*)>;
 
   // Ensures the OzonePlatform instance without doing any initialization.
@@ -163,9 +171,14 @@
                                              gfx::BufferUsage usage) const;
 
   // Returns a struct that contains configuration and requirements for the
-  // current platform implementation.
+  // current platform implementation. This can be called from either host or GPU
+  // process at any time.
   virtual const PlatformProperties& GetPlatformProperties();
 
+  // Returns a struct that contains properties available in the host process
+  // after InitializeForUI() runs.
+  virtual const InitializedHostProperties& GetInitializedHostProperties();
+
   // Returns the message loop type required for OzonePlatform instance that
   // will be initialized for the GPU process.
   virtual base::MessageLoop::Type GetMessageLoopTypeForGpu();
@@ -192,6 +205,9 @@
   // ordering issues.
   virtual void AfterSandboxEntry();
 
+ protected:
+  static bool has_initialized_ui();
+
  private:
   virtual void InitializeUI(const InitParams& params) = 0;
   virtual void InitializeGPU(const InitParams& params) = 0;
diff --git a/ui/strings/translations/ui_strings_sl.xtb b/ui/strings/translations/ui_strings_sl.xtb
index 33deea8..929a9a1 100644
--- a/ui/strings/translations/ui_strings_sl.xtb
+++ b/ui/strings/translations/ui_strings_sl.xtb
@@ -4,6 +4,7 @@
 <translation id="111910763555783249">Nastavitve obvestil</translation>
 <translation id="1127811143501539442">{DAYS,plural, =1{Pred 1 dnevom}one{Pred # dnevom}two{Pred # dnevoma}few{Pred # dnevi}other{Pred # dnevi}}</translation>
 <translation id="1156623771253174079">{SECONDS,plural, =1{Pred 1 minuto}one{Pred # minuto}two{Pred # minutama}few{Pred # minutami}other{Pred # minutami}}</translation>
+<translation id="1169783199079129864">{MINUTES,plural, =1{1 m}one{# m}two{# m}few{# m}other{# m}}</translation>
 <translation id="1181037720776840403">Odstrani</translation>
 <translation id="1243314992276662751">Prenesi</translation>
 <translation id="1269641567813814718">Win</translation>
@@ -18,6 +19,7 @@
 <translation id="1591184457164800433">{MINUTES,plural, =1{1 min in }one{# min in }two{# min in }few{# min in }other{# min in }}</translation>
 <translation id="1643823602425662293">Obvestilo</translation>
 <translation id="169515659049020177">Shift</translation>
+<translation id="1710340000377843106">zdaj</translation>
 <translation id="1752946267035950200">{MINUTES,plural, =1{1 min}one{# min}two{# min}few{# min}other{# min}}</translation>
 <translation id="1761785978543082658"><ph name="QUANTITY" /> B</translation>
 <translation id="1801827354178857021">Obdobje</translation>
@@ -29,8 +31,10 @@
 <translation id="1859234291848436338">Smer pisanja</translation>
 <translation id="1860796786778352021">Zapri obvestilo</translation>
 <translation id="1871244248791675517">Ins</translation>
+<translation id="1884435127456172652"><ph name="NUMBER" /> %</translation>
 <translation id="1901303067676059328">Izberi &amp;vse</translation>
 <translation id="1938451708255335766">Če želite prilagoditi gostoto prikaza okna, znova zaženite aplikacijo.</translation>
+<translation id="2141853158323869627">{DAYS,plural, =1{1 d}one{# d}two{# d}few{# d}other{# d}}</translation>
 <translation id="2148716181193084225">Danes</translation>
 <translation id="2168039046890040389">Stran gor</translation>
 <translation id="2190355936436201913">(prazno)</translation>
@@ -98,6 +102,7 @@
 <translation id="5076340679995252485">&amp;Prilepi</translation>
 <translation id="5137751499640340777">Zagon Pomočnika Google</translation>
 <translation id="520299402983819650"><ph name="QUANTITY" /> PB</translation>
+<translation id="5266161281976477809">Trikotnik z dodatno vsebino</translation>
 <translation id="528468243742722775">End</translation>
 <translation id="5329858601952122676">&amp;Izbriši</translation>
 <translation id="5395308026110844773"><ph name="DRAGGED_APP_NAME" /> na <ph name="IN_PLACE_APP" />, spustite, da ustvarite mapo.</translation>
@@ -152,6 +157,7 @@
 <translation id="7238427729722629793">{MINUTES,plural, =1{Še 1 min}one{Še # min}two{Še # min}few{Še # min}other{Še # min}}</translation>
 <translation id="7319740667687257810">Zaganjalnik, delni pogled</translation>
 <translation id="7365057348334984696">{MINUTES,plural, =1{Pred 1 min}one{Pred # min}two{Pred # min}few{Pred # min}other{Pred # min}}</translation>
+<translation id="7389409599945284130">– <ph name="MESSAGE" /></translation>
 <translation id="7410957453383678442">{MINUTES,plural, =1{Še 1 min}one{Še # min}two{Še # min}few{Še # min}other{Še # min}}</translation>
 <translation id="7460907917090416791"><ph name="QUANTITY" /> TB</translation>
 <translation id="7507604095951736240">Emoji</translation>
@@ -179,10 +185,13 @@
 <translation id="8393700583063109961">Pošlji sporočilo</translation>
 <translation id="8394908167088220973">Ustavitev/začasna ustavitev</translation>
 <translation id="8420205633584771378">Želite odstraniti ta predlog?</translation>
+<translation id="8458811141851741261">{YEARS,plural, =1{1 l}one{# l}two{# l}few{# l}other{# l}}</translation>
 <translation id="8602707065186045623">Datoteka <ph name="SAVEAS_EXTENSION_TYPE" /> (.<ph name="SAVEAS_EXTENSION_NAME" />)</translation>
 <translation id="8649597172973390955">Polica je vedno prikazana</translation>
 <translation id="8677655579646609597"><ph name="QUANTITY" /> KB/s</translation>
+<translation id="8725488761726303204">in še <ph name="NUMBER" /></translation>
 <translation id="8730621377337864115">Končano</translation>
+<translation id="8772073294905169192">{HOURS,plural, =1{1 h}one{# h}two{# h}few{# h}other{# h}}</translation>
 <translation id="8798099450830957504">Privzeto</translation>
 <translation id="8806053966018712535">Mapa <ph name="FOLDER_NAME" /></translation>
 <translation id="883911313571074303">Dodaj pripis sliki</translation>
diff --git a/ui/views/animation/test/test_ink_drop.cc b/ui/views/animation/test/test_ink_drop.cc
index fb78252c..b15ff1db 100644
--- a/ui/views/animation/test/test_ink_drop.cc
+++ b/ui/views/animation/test/test_ink_drop.cc
@@ -7,7 +7,7 @@
 namespace views {
 namespace test {
 
-TestInkDrop::TestInkDrop() : state_(InkDropState::HIDDEN), is_hovered_(false) {}
+TestInkDrop::TestInkDrop() = default;
 TestInkDrop::~TestInkDrop() = default;
 
 void TestInkDrop::HostSizeChanged(const gfx::Size& new_size) {}
diff --git a/ui/views/animation/test/test_ink_drop.h b/ui/views/animation/test/test_ink_drop.h
index ae1d1464..32e0e5e4 100644
--- a/ui/views/animation/test/test_ink_drop.h
+++ b/ui/views/animation/test/test_ink_drop.h
@@ -35,8 +35,8 @@
   void SetShowHighlightOnFocus(bool show_highlight_on_focus) override;
 
  private:
-  InkDropState state_;
-  bool is_hovered_;
+  InkDropState state_ = InkDropState::HIDDEN;
+  bool is_hovered_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(TestInkDrop);
 };
diff --git a/ui/views/animation/test/test_ink_drop_animation_observer_helper.h b/ui/views/animation/test/test_ink_drop_animation_observer_helper.h
index a1b9bc520..8c332d2 100644
--- a/ui/views/animation/test/test_ink_drop_animation_observer_helper.h
+++ b/ui/views/animation/test/test_ink_drop_animation_observer_helper.h
@@ -19,11 +19,9 @@
 class TestInkDropAnimationObserverHelper {
  public:
   TestInkDropAnimationObserverHelper()
-      : last_animation_started_ordinal_(-1),
-        last_animation_started_context_(),
-        last_animation_ended_ordinal_(-1),
-        last_animation_ended_context_(),
-        last_animation_ended_reason_(InkDropAnimationEndedReason::SUCCESS) {}
+      : last_animation_started_context_(),
+
+        last_animation_ended_context_() {}
 
   virtual ~TestInkDropAnimationObserverHelper() = default;
 
@@ -166,7 +164,7 @@
   }
 
   // The ordinal time of the last AnimationStarted() call.
-  int last_animation_started_ordinal_;
+  int last_animation_started_ordinal_ = -1;
 
   // List of contexts for which animation is started.
   std::vector<ContextType> animation_started_contexts_;
@@ -175,7 +173,7 @@
   ContextType last_animation_started_context_;
 
   // The ordinal time of the last AnimationEnded() call.
-  int last_animation_ended_ordinal_;
+  int last_animation_ended_ordinal_ = -1;
 
   // List of contexts for which animation is ended.
   std::vector<ContextType> animation_ended_contexts_;
@@ -183,7 +181,8 @@
   // The |context| passed to the last call to AnimationEnded().
   ContextType last_animation_ended_context_;
 
-  InkDropAnimationEndedReason last_animation_ended_reason_;
+  InkDropAnimationEndedReason last_animation_ended_reason_ =
+      InkDropAnimationEndedReason::SUCCESS;
 
   DISALLOW_COPY_AND_ASSIGN(TestInkDropAnimationObserverHelper);
 };
diff --git a/ui/views/animation/test/test_ink_drop_host.cc b/ui/views/animation/test/test_ink_drop_host.cc
index 3534fb24..170d85b 100644
--- a/ui/views/animation/test/test_ink_drop_host.cc
+++ b/ui/views/animation/test/test_ink_drop_host.cc
@@ -76,14 +76,7 @@
 
 }  // namespace
 
-TestInkDropHost::TestInkDropHost()
-    : num_ink_drop_layers_added_(0),
-      num_ink_drop_layers_removed_(0),
-      num_ink_drop_ripples_created_(0),
-      num_ink_drop_highlights_created_(0),
-      last_ink_drop_ripple_(nullptr),
-      last_ink_drop_highlight_(nullptr),
-      disable_timers_for_test_(false) {}
+TestInkDropHost::TestInkDropHost() = default;
 
 TestInkDropHost::~TestInkDropHost() = default;
 
diff --git a/ui/views/animation/test/test_ink_drop_host.h b/ui/views/animation/test/test_ink_drop_host.h
index 9f42bcb2..b5c0bdb9 100644
--- a/ui/views/animation/test/test_ink_drop_host.h
+++ b/ui/views/animation/test/test_ink_drop_host.h
@@ -49,20 +49,20 @@
   std::unique_ptr<InkDropHighlight> CreateInkDropHighlight() const override;
 
  private:
-  int num_ink_drop_layers_added_;
-  int num_ink_drop_layers_removed_;
+  int num_ink_drop_layers_added_ = 0;
+  int num_ink_drop_layers_removed_ = 0;
 
   // CreateInkDrop{Ripple,Highlight} are const, so these members must be
   // mutable.
-  mutable int num_ink_drop_ripples_created_;
-  mutable int num_ink_drop_highlights_created_;
+  mutable int num_ink_drop_ripples_created_ = 0;
+  mutable int num_ink_drop_highlights_created_ = 0;
 
-  mutable const InkDropRipple* last_ink_drop_ripple_;
-  mutable const InkDropHighlight* last_ink_drop_highlight_;
+  mutable const InkDropRipple* last_ink_drop_ripple_ = nullptr;
+  mutable const InkDropHighlight* last_ink_drop_highlight_ = nullptr;
 
   // When true, the InkDropRipple/InkDropHighlight instances will have their
   // timers disabled after creation.
-  bool disable_timers_for_test_;
+  bool disable_timers_for_test_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(TestInkDropHost);
 };
diff --git a/ui/views/animation/test/test_ink_drop_ripple_observer.cc b/ui/views/animation/test/test_ink_drop_ripple_observer.cc
index 960e21f..ef11f9e 100644
--- a/ui/views/animation/test/test_ink_drop_ripple_observer.cc
+++ b/ui/views/animation/test/test_ink_drop_ripple_observer.cc
@@ -9,9 +9,7 @@
 namespace views {
 namespace test {
 
-TestInkDropRippleObserver::TestInkDropRippleObserver()
-    : target_state_at_last_animation_started_(InkDropState::HIDDEN),
-      target_state_at_last_animation_ended_(InkDropState::HIDDEN) {}
+TestInkDropRippleObserver::TestInkDropRippleObserver() = default;
 
 TestInkDropRippleObserver::~TestInkDropRippleObserver() = default;
 
diff --git a/ui/views/animation/test/test_ink_drop_ripple_observer.h b/ui/views/animation/test/test_ink_drop_ripple_observer.h
index 33d5f4a..b85df6c 100644
--- a/ui/views/animation/test/test_ink_drop_ripple_observer.h
+++ b/ui/views/animation/test/test_ink_drop_ripple_observer.h
@@ -48,12 +48,12 @@
   // The value of InkDropRipple::GetTargetInkDropState() the last time an
   // AnimationStarted() event was handled. This is only valid if
   // |ink_drop_ripple_| is not null.
-  InkDropState target_state_at_last_animation_started_;
+  InkDropState target_state_at_last_animation_started_ = InkDropState::HIDDEN;
 
   // The value of InkDropRipple::GetTargetInkDropState() the last time an
   // AnimationEnded() event was handled. This is only valid if
   // |ink_drop_ripple_| is not null.
-  InkDropState target_state_at_last_animation_ended_;
+  InkDropState target_state_at_last_animation_ended_ = InkDropState::HIDDEN;
 
   // An InkDropRipple to spy info from when notifications are handled.
   InkDropRipple* ink_drop_ripple_;
diff --git a/ui/views/bubble/bubble_border.cc b/ui/views/bubble/bubble_border.cc
index 12ca27c..e9e26a7 100644
--- a/ui/views/bubble/bubble_border.cc
+++ b/ui/views/bubble/bubble_border.cc
@@ -33,10 +33,6 @@
 // key the cache.
 typedef std::tuple<int, SkColor> ShadowCacheKey;
 
-// The border is stroked at 1px, but for the purposes of reserving space we have
-// to deal in dip coordinates, so round up to 1dip.
-constexpr int kBorderThicknessDip = 1;
-
 // Utility functions for getting alignment points on the edge of a rectangle.
 gfx::Point CenterTop(const gfx::Rect& rect) {
   return gfx::Point(rect.CenterPoint().x(), rect.y());
diff --git a/ui/views/bubble/bubble_border.h b/ui/views/bubble/bubble_border.h
index 9aa8468..c425a99 100644
--- a/ui/views/bubble/bubble_border.h
+++ b/ui/views/bubble/bubble_border.h
@@ -78,6 +78,10 @@
 #endif
   };
 
+  // The border is stroked at 1px, but for the purposes of reserving space we
+  // have to deal in dip coordinates, so round up to 1dip.
+  static constexpr int kBorderThicknessDip = 1;
+
   // Specific to MD bubbles: size of shadow blur (outside the bubble) and
   // vertical offset, both in DIP.
   static constexpr int kShadowBlur = 6;
diff --git a/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc b/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc
index 93b5311..147b261 100644
--- a/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc
+++ b/ui/views/bubble/bubble_dialog_delegate_view_unittest.cc
@@ -275,14 +275,16 @@
   struct {
     const int point;
     const int hit;
-  } cases[] = {
-      {0, HTNOWHERE}, {60, HTCLIENT}, {1000, HTNOWHERE},
+  } constexpr kTestCases[] = {
+      {0, HTTRANSPARENT},
+      {60, HTCLIENT},
+      {1000, HTNOWHERE},
   };
 
-  for (size_t i = 0; i < base::size(cases); ++i) {
-    gfx::Point point(cases[i].point, cases[i].point);
-    EXPECT_EQ(cases[i].hit, frame->NonClientHitTest(point))
-        << " at point " << cases[i].point;
+  for (const auto& test_case : kTestCases) {
+    gfx::Point point(test_case.point, test_case.point);
+    EXPECT_EQ(test_case.hit, frame->NonClientHitTest(point))
+        << " at point " << test_case.point;
   }
 }
 
diff --git a/ui/views/bubble/bubble_frame_view.cc b/ui/views/bubble/bubble_frame_view.cc
index e24c4e3e..0bb9632 100644
--- a/ui/views/bubble/bubble_frame_view.cc
+++ b/ui/views/bubble/bubble_frame_view.cc
@@ -194,6 +194,16 @@
       return HTCAPTION;
   }
 
+  // Convert to RRectF to accurately represent the rounded corners of the
+  // dialog and allow events to pass through the shadows.
+  gfx::RRectF round_contents_bounds(gfx::RectF(GetContentsBounds()),
+                                    bubble_border_->GetBorderCornerRadius());
+  if (bubble_border_->shadow() != BubbleBorder::NO_ASSETS)
+    round_contents_bounds.Outset(BubbleBorder::kBorderThicknessDip);
+  gfx::RectF rectf_point(point.x(), point.y(), 1, 1);
+  if (!round_contents_bounds.Contains(rectf_point))
+    return HTTRANSPARENT;
+
   return GetWidget()->client_view()->NonClientHitTest(point);
 }
 
diff --git a/ui/views/controls/button/menu_button_unittest.cc b/ui/views/controls/button/menu_button_unittest.cc
index 5818959e..a852817f 100644
--- a/ui/views/controls/button/menu_button_unittest.cc
+++ b/ui/views/controls/button/menu_button_unittest.cc
@@ -54,7 +54,7 @@
 
 class MenuButtonTest : public ViewsTestBase {
  public:
-  MenuButtonTest() : widget_(nullptr), button_(nullptr), ink_drop_(nullptr) {}
+  MenuButtonTest() = default;
   ~MenuButtonTest() override = default;
 
   void TearDown() override {
@@ -116,22 +116,19 @@
     widget_->Init(params);
   }
 
-  Widget* widget_;
-  TestMenuButton* button_;
+  Widget* widget_ = nullptr;
+  TestMenuButton* button_ = nullptr;
   std::unique_ptr<ui::test::EventGenerator> generator_;
 
   // Weak ptr, |button_| owns the instance.
-  TestInkDrop* ink_drop_;
+  TestInkDrop* ink_drop_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(MenuButtonTest);
 };
 
 class TestButtonListener : public ButtonListener {
  public:
-  TestButtonListener()
-      : last_sender_(nullptr),
-        last_sender_state_(Button::STATE_NORMAL),
-        last_event_type_(ui::ET_UNKNOWN) {}
+  TestButtonListener() = default;
   ~TestButtonListener() override = default;
 
   void ButtonPressed(Button* sender, const ui::Event& event) override {
@@ -147,17 +144,16 @@
   ui::EventType last_event_type() { return last_event_type_; }
 
  private:
-  Button* last_sender_;
-  Button::ButtonState last_sender_state_;
-  ui::EventType last_event_type_;
+  Button* last_sender_ = nullptr;
+  Button::ButtonState last_sender_state_ = Button::STATE_NORMAL;
+  ui::EventType last_event_type_ = ui::ET_UNKNOWN;
 
   DISALLOW_COPY_AND_ASSIGN(TestButtonListener);
 };
 
 class TestMenuButtonListener : public MenuButtonListener {
  public:
-  TestMenuButtonListener()
-      : last_source_(nullptr), last_source_state_(Button::STATE_NORMAL) {}
+  TestMenuButtonListener() = default;
   ~TestMenuButtonListener() override = default;
 
   void OnMenuButtonClicked(MenuButton* source,
@@ -173,8 +169,8 @@
   Button::ButtonState last_source_state() { return last_source_state_; }
 
  private:
-  View* last_source_;
-  Button::ButtonState last_source_state_;
+  View* last_source_ = nullptr;
+  Button::ButtonState last_source_state_ = Button::STATE_NORMAL;
 
   DISALLOW_COPY_AND_ASSIGN(TestMenuButtonListener);
 };
@@ -264,17 +260,15 @@
 
  private:
   // True while receiving ui::LocatedEvents for drag operations.
-  bool drag_in_progress_;
+  bool drag_in_progress_ = false;
 
   // Target window where drag operations are occurring.
-  aura::Window* target_;
+  aura::Window* target_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(TestDragDropClient);
 };
 
-TestDragDropClient::TestDragDropClient()
-    : drag_in_progress_(false), target_(nullptr) {
-}
+TestDragDropClient::TestDragDropClient() = default;
 
 TestDragDropClient::~TestDragDropClient() = default;
 
diff --git a/ui/views/controls/button/radio_button_unittest.cc b/ui/views/controls/button/radio_button_unittest.cc
index ef16809..dd8cac9 100644
--- a/ui/views/controls/button/radio_button_unittest.cc
+++ b/ui/views/controls/button/radio_button_unittest.cc
@@ -18,7 +18,7 @@
 
 class RadioButtonTest : public ViewsTestBase {
  public:
-  RadioButtonTest() : button_container_(nullptr) {}
+  RadioButtonTest() = default;
 
   void SetUp() override {
     ViewsTestBase::SetUp();
@@ -45,7 +45,7 @@
   View& button_container() { return *button_container_; }
 
  private:
-  View* button_container_;
+  View* button_container_ = nullptr;
   std::unique_ptr<Widget> widget_;
 
   DISALLOW_COPY_AND_ASSIGN(RadioButtonTest);
diff --git a/ui/views/controls/combobox/combobox_unittest.cc b/ui/views/controls/combobox/combobox_unittest.cc
index 843ecf5..4d1999a 100644
--- a/ui/views/controls/combobox/combobox_unittest.cc
+++ b/ui/views/controls/combobox/combobox_unittest.cc
@@ -141,7 +141,7 @@
 
 class EvilListener : public ComboboxListener {
  public:
-  EvilListener() : deleted_(false) {}
+  EvilListener() = default;
   ~EvilListener() override = default;
 
   // ComboboxListener:
@@ -153,14 +153,14 @@
   bool deleted() const { return deleted_; }
 
  private:
-  bool deleted_;
+  bool deleted_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(EvilListener);
 };
 
 class TestComboboxListener : public views::ComboboxListener {
  public:
-  TestComboboxListener() : perform_action_index_(-1), actions_performed_(0) {}
+  TestComboboxListener() = default;
   ~TestComboboxListener() override = default;
 
   void OnPerformAction(views::Combobox* combobox) override {
@@ -181,8 +181,8 @@
   }
 
  private:
-  int perform_action_index_;
-  int actions_performed_;
+  int perform_action_index_ = -1;
+  int actions_performed_ = 0;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(TestComboboxListener);
diff --git a/ui/views/controls/menu/menu_controller_unittest.cc b/ui/views/controls/menu/menu_controller_unittest.cc
index f86feacf..c1ac0e8 100644
--- a/ui/views/controls/menu/menu_controller_unittest.cc
+++ b/ui/views/controls/menu/menu_controller_unittest.cc
@@ -93,12 +93,12 @@
 
  private:
   // Number of times OnMenuClosed has been called.
-  int on_menu_closed_called_;
+  int on_menu_closed_called_ = 0;
 
   // The values passed on the last call of OnMenuClosed.
-  NotifyType on_menu_closed_notify_type_;
-  MenuItemView* on_menu_closed_menu_;
-  int on_menu_closed_mouse_event_flags_;
+  NotifyType on_menu_closed_notify_type_ = NOTIFY_DELEGATE;
+  MenuItemView* on_menu_closed_menu_ = nullptr;
+  int on_menu_closed_mouse_event_flags_ = 0;
 
   // Optional callback triggered during OnMenuClosed
   base::RepeatingClosure on_menu_closed_callback_;
@@ -106,11 +106,7 @@
   DISALLOW_COPY_AND_ASSIGN(TestMenuControllerDelegate);
 };
 
-TestMenuControllerDelegate::TestMenuControllerDelegate()
-    : on_menu_closed_called_(0),
-      on_menu_closed_notify_type_(NOTIFY_DELEGATE),
-      on_menu_closed_menu_(nullptr),
-      on_menu_closed_mouse_event_flags_(0) {}
+TestMenuControllerDelegate::TestMenuControllerDelegate() = default;
 
 void TestMenuControllerDelegate::OnMenuClosed(NotifyType type,
                                               MenuItemView* menu,
@@ -137,7 +133,7 @@
 
 class TestEventHandler : public ui::EventHandler {
  public:
-  TestEventHandler() : outstanding_touches_(0) {}
+  TestEventHandler() = default;
 
   void OnTouchEvent(ui::TouchEvent* event) override {
     switch (event->type()) {
@@ -156,7 +152,7 @@
   int outstanding_touches() const { return outstanding_touches_; }
 
  private:
-  int outstanding_touches_;
+  int outstanding_touches_ = 0;
   DISALLOW_COPY_AND_ASSIGN(TestEventHandler);
 };
 
@@ -322,7 +318,7 @@
 
 class MenuControllerTest : public ViewsTestBase {
  public:
-  MenuControllerTest() : menu_controller_(nullptr) {}
+  MenuControllerTest() = default;
 
   ~MenuControllerTest() override = default;
 
@@ -763,7 +759,7 @@
   std::unique_ptr<TestMenuItemViewShown> menu_item_;
   std::unique_ptr<TestMenuControllerDelegate> menu_controller_delegate_;
   std::unique_ptr<TestMenuDelegate> menu_delegate_;
-  MenuController* menu_controller_;
+  MenuController* menu_controller_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(MenuControllerTest);
 };
diff --git a/ui/views/controls/native/native_view_host_test_base.cc b/ui/views/controls/native/native_view_host_test_base.cc
index 013bbea..66445990 100644
--- a/ui/views/controls/native/native_view_host_test_base.cc
+++ b/ui/views/controls/native/native_view_host_test_base.cc
@@ -24,8 +24,7 @@
   DISALLOW_COPY_AND_ASSIGN(NativeViewHostTesting);
 };
 
-NativeViewHostTestBase::NativeViewHostTestBase() : host_destroyed_count_(0) {
-}
+NativeViewHostTestBase::NativeViewHostTestBase() = default;
 
 NativeViewHostTestBase::~NativeViewHostTestBase() = default;
 
diff --git a/ui/views/controls/native/native_view_host_test_base.h b/ui/views/controls/native/native_view_host_test_base.h
index 7cd74049..5d81734a 100644
--- a/ui/views/controls/native/native_view_host_test_base.h
+++ b/ui/views/controls/native/native_view_host_test_base.h
@@ -60,7 +60,7 @@
 
   std::unique_ptr<Widget> toplevel_;
   std::unique_ptr<NativeViewHost> host_;
-  int host_destroyed_count_;
+  int host_destroyed_count_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(NativeViewHostTestBase);
 };
diff --git a/ui/views/controls/native/native_view_host_unittest.cc b/ui/views/controls/native/native_view_host_unittest.cc
index de4feff..7b80a56 100644
--- a/ui/views/controls/native/native_view_host_unittest.cc
+++ b/ui/views/controls/native/native_view_host_unittest.cc
@@ -33,8 +33,7 @@
 // times NativeViewHierarchyChanged() is invoked.
 class NativeViewHierarchyChangedTestView : public View {
  public:
-  NativeViewHierarchyChangedTestView() : notification_count_(0) {
-  }
+  NativeViewHierarchyChangedTestView() = default;
 
   void ResetCount() {
     notification_count_ = 0;
@@ -49,7 +48,7 @@
   }
 
  private:
-  int notification_count_;
+  int notification_count_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(NativeViewHierarchyChangedTestView);
 };
@@ -60,9 +59,7 @@
 
 class ViewHierarchyChangedTestHost : public NativeViewHost {
  public:
-  ViewHierarchyChangedTestHost()
-      : num_parent_changes_(0) {
-  }
+  ViewHierarchyChangedTestHost() = default;
 
   void ResetParentChanges() {
     num_parent_changes_ = 0;
@@ -85,7 +82,7 @@
   }
 
  private:
-  int num_parent_changes_;
+  int num_parent_changes_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(ViewHierarchyChangedTestHost);
 };
diff --git a/ui/views/controls/prefix_selector_unittest.cc b/ui/views/controls/prefix_selector_unittest.cc
index 42b39971c4..567d2209 100644
--- a/ui/views/controls/prefix_selector_unittest.cc
+++ b/ui/views/controls/prefix_selector_unittest.cc
@@ -19,7 +19,7 @@
 
 class TestPrefixDelegate : public View, public PrefixDelegate {
  public:
-  TestPrefixDelegate() : selected_row_(0) {
+  TestPrefixDelegate() {
     rows_.push_back(ASCIIToUTF16("aardvark"));
     rows_.push_back(ASCIIToUTF16("antelope"));
     rows_.push_back(ASCIIToUTF16("badger"));
@@ -38,7 +38,7 @@
 
  private:
   std::vector<base::string16> rows_;
-  int selected_row_;
+  int selected_row_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(TestPrefixDelegate);
 };
diff --git a/ui/views/controls/resize_area_unittest.cc b/ui/views/controls/resize_area_unittest.cc
index 0a3bbcbe..8a59348 100644
--- a/ui/views/controls/resize_area_unittest.cc
+++ b/ui/views/controls/resize_area_unittest.cc
@@ -43,15 +43,14 @@
   bool on_resize_called() { return on_resize_called_; }
 
  private:
-  int resize_amount_;
-  bool done_resizing_;
-  bool on_resize_called_;
+  int resize_amount_ = 0;
+  bool done_resizing_ = false;
+  bool on_resize_called_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(TestResizeAreaDelegate);
 };
 
-TestResizeAreaDelegate::TestResizeAreaDelegate()
-    : resize_amount_(0), done_resizing_(false), on_resize_called_(false) {}
+TestResizeAreaDelegate::TestResizeAreaDelegate() = default;
 
 TestResizeAreaDelegate::~TestResizeAreaDelegate() = default;
 
diff --git a/ui/views/controls/scrollbar/scrollbar_unittest.cc b/ui/views/controls/scrollbar/scrollbar_unittest.cc
index 0cf2dd75..88fc242 100644
--- a/ui/views/controls/scrollbar/scrollbar_unittest.cc
+++ b/ui/views/controls/scrollbar/scrollbar_unittest.cc
@@ -49,7 +49,7 @@
 
 class ScrollBarViewsTest : public ViewsTestBase {
  public:
-  ScrollBarViewsTest() : widget_(nullptr), scrollbar_(nullptr) {}
+  ScrollBarViewsTest() = default;
 
   void SetUp() override {
     ViewsTestBase::SetUp();
@@ -77,10 +77,10 @@
   }
 
  protected:
-  Widget* widget_;
+  Widget* widget_ = nullptr;
 
   // This is the Views scrollbar.
-  BaseScrollBar* scrollbar_;
+  BaseScrollBar* scrollbar_ = nullptr;
 
   // Keep track of the size of the track. This is how we can tell when we
   // scroll to the middle.
diff --git a/ui/views/controls/slider_unittest.cc b/ui/views/controls/slider_unittest.cc
index 9c3ded8..f5775d90 100644
--- a/ui/views/controls/slider_unittest.cc
+++ b/ui/views/controls/slider_unittest.cc
@@ -68,25 +68,20 @@
 
  private:
   // The epoch of the last event.
-  int last_event_epoch_;
+  int last_event_epoch_ = 0;
   // The epoch of the last time SliderDragStarted was called.
-  int last_drag_started_epoch_;
+  int last_drag_started_epoch_ = -1;
   // The epoch of the last time SliderDragEnded was called.
-  int last_drag_ended_epoch_;
+  int last_drag_ended_epoch_ = -1;
   // The sender from the last SliderDragStarted call.
-  views::Slider* last_drag_started_sender_;
+  views::Slider* last_drag_started_sender_ = nullptr;
   // The sender from the last SliderDragEnded call.
-  views::Slider* last_drag_ended_sender_;
+  views::Slider* last_drag_ended_sender_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(TestSliderListener);
 };
 
-TestSliderListener::TestSliderListener()
-    : last_event_epoch_(0),
-      last_drag_started_epoch_(-1),
-      last_drag_ended_epoch_(-1),
-      last_drag_started_sender_(nullptr),
-      last_drag_ended_sender_(nullptr) {}
+TestSliderListener::TestSliderListener() = default;
 
 TestSliderListener::~TestSliderListener() {
   last_drag_started_sender_ = nullptr;
diff --git a/ui/views/controls/table/table_view_unittest.cc b/ui/views/controls/table/table_view_unittest.cc
index 43b30a12f..184b92c 100644
--- a/ui/views/controls/table/table_view_unittest.cc
+++ b/ui/views/controls/table/table_view_unittest.cc
@@ -118,7 +118,7 @@
   int CompareValues(int row1, int row2, int column_id) override;
 
  private:
-  ui::TableModelObserver* observer_;
+  ui::TableModelObserver* observer_ = nullptr;
 
   // The data.
   std::vector<std::vector<int> > rows_;
@@ -126,7 +126,7 @@
   DISALLOW_COPY_AND_ASSIGN(TestTableModel2);
 };
 
-TestTableModel2::TestTableModel2() : observer_(nullptr) {
+TestTableModel2::TestTableModel2() {
   AddRow(0, 0, 1);
   AddRow(1, 1, 1);
   AddRow(2, 2, 2);
@@ -258,7 +258,7 @@
 
 class TableViewTest : public ViewsTestBase {
  public:
-  TableViewTest() : table_(nullptr) {}
+  TableViewTest() = default;
 
   void SetUp() override {
     ViewsTestBase::SetUp();
@@ -336,7 +336,7 @@
   std::unique_ptr<TestTableModel2> model_;
 
   // Owned by |parent_|.
-  TableView* table_;
+  TableView* table_ = nullptr;
 
   std::unique_ptr<TableViewTestHelper> helper_;
 
@@ -856,7 +856,7 @@
 
 class TableViewObserverImpl : public TableViewObserver {
  public:
-  TableViewObserverImpl() : selection_changed_count_(0) {}
+  TableViewObserverImpl() = default;
 
   int GetChangedCountAndClear() {
     const int count = selection_changed_count_;
@@ -868,7 +868,7 @@
   void OnSelectionChanged() override { selection_changed_count_++; }
 
  private:
-  int selection_changed_count_;
+  int selection_changed_count_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(TableViewObserverImpl);
 };
diff --git a/ui/views/controls/textfield/textfield_model_unittest.cc b/ui/views/controls/textfield/textfield_model_unittest.cc
index a4b71a9c..383fc73 100644
--- a/ui/views/controls/textfield/textfield_model_unittest.cc
+++ b/ui/views/controls/textfield/textfield_model_unittest.cc
@@ -45,7 +45,7 @@
 class TextfieldModelTest : public ViewsTestBase,
                            public TextfieldModel::Delegate {
  public:
-  TextfieldModelTest() : composition_text_confirmed_or_cleared_(false) {}
+  TextfieldModelTest() = default;
 
   // ::testing::Test:
   void TearDown() override {
@@ -65,7 +65,7 @@
     model->ClearEditHistory();
   }
 
-  bool composition_text_confirmed_or_cleared_;
+  bool composition_text_confirmed_or_cleared_ = false;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(TextfieldModelTest);
diff --git a/ui/views/controls/textfield/textfield_unittest.cc b/ui/views/controls/textfield/textfield_unittest.cc
index 6c15dc15..e16f8a9 100644
--- a/ui/views/controls/textfield/textfield_unittest.cc
+++ b/ui/views/controls/textfield/textfield_unittest.cc
@@ -391,14 +391,7 @@
 
 class TextfieldTest : public ViewsTestBase, public TextfieldController {
  public:
-  TextfieldTest()
-      : widget_(nullptr),
-        textfield_(nullptr),
-        model_(nullptr),
-        input_method_(nullptr),
-        on_before_user_action_(0),
-        on_after_user_action_(0),
-        copied_to_clipboard_(ui::CLIPBOARD_TYPE_LAST) {
+  TextfieldTest() {
     input_method_ = new MockInputMethod();
     ui::SetUpInputMethodForTesting(input_method_);
   }
@@ -781,27 +774,27 @@
   void MoveMouseTo(const gfx::Point& where) { mouse_position_ = where; }
 
   // We need widget to populate wrapper class.
-  Widget* widget_;
+  Widget* widget_ = nullptr;
 
-  TestTextfield* textfield_;
+  TestTextfield* textfield_ = nullptr;
   std::unique_ptr<TextfieldTestApi> test_api_;
-  TextfieldModel* model_;
+  TextfieldModel* model_ = nullptr;
 
   // The string from Controller::ContentsChanged callback.
   base::string16 last_contents_;
 
   // For testing input method related behaviors.
-  MockInputMethod* input_method_;
+  MockInputMethod* input_method_ = nullptr;
 
   // Indicates how many times OnBeforeUserAction() is called.
-  int on_before_user_action_;
+  int on_before_user_action_ = 0;
 
   // Indicates how many times OnAfterUserAction() is called.
-  int on_after_user_action_;
+  int on_after_user_action_ = 0;
 
   // Position of the mouse for synthetic mouse events.
   gfx::Point mouse_position_;
-  ui::ClipboardType copied_to_clipboard_;
+  ui::ClipboardType copied_to_clipboard_ = ui::CLIPBOARD_TYPE_LAST;
   std::unique_ptr<ui::test::EventGenerator> event_generator_;
 
  private:
diff --git a/ui/views/controls/webview/webview_unittest.cc b/ui/views/controls/webview/webview_unittest.cc
index d59d40b..d7346da8 100644
--- a/ui/views/controls/webview/webview_unittest.cc
+++ b/ui/views/controls/webview/webview_unittest.cc
@@ -104,7 +104,7 @@
 // Fakes the fullscreen browser state reported to WebContents and WebView.
 class WebViewTestWebContentsDelegate : public content::WebContentsDelegate {
  public:
-  WebViewTestWebContentsDelegate() : is_fullscreened_(false) {}
+  WebViewTestWebContentsDelegate() = default;
   ~WebViewTestWebContentsDelegate() override = default;
 
   void set_is_fullscreened(bool fs) { is_fullscreened_ = fs; }
@@ -116,7 +116,7 @@
   }
 
  private:
-  bool is_fullscreened_;
+  bool is_fullscreened_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(WebViewTestWebContentsDelegate);
 };
diff --git a/ui/views/corewm/desktop_capture_controller_unittest.cc b/ui/views/corewm/desktop_capture_controller_unittest.cc
index 4a46b67..3891cf1 100644
--- a/ui/views/corewm/desktop_capture_controller_unittest.cc
+++ b/ui/views/corewm/desktop_capture_controller_unittest.cc
@@ -33,8 +33,7 @@
 // received the gesture event.
 class DesktopViewInputTest : public View {
  public:
-  DesktopViewInputTest()
-      : received_gesture_event_(false) {}
+  DesktopViewInputTest() = default;
 
   void OnGestureEvent(ui::GestureEvent* event) override {
     received_gesture_event_ = true;
@@ -49,7 +48,7 @@
   bool received_gesture_event() const { return received_gesture_event_; }
 
  private:
-  bool received_gesture_event_;
+  bool received_gesture_event_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(DesktopViewInputTest);
 };
diff --git a/ui/views/corewm/tooltip_controller_unittest.cc b/ui/views/corewm/tooltip_controller_unittest.cc
index dd7580ef..96851116 100644
--- a/ui/views/corewm/tooltip_controller_unittest.cc
+++ b/ui/views/corewm/tooltip_controller_unittest.cc
@@ -564,7 +564,7 @@
 
 class TestTooltip : public Tooltip {
  public:
-  TestTooltip() : is_visible_(false) {}
+  TestTooltip() = default;
   ~TestTooltip() override = default;
 
   const base::string16& tooltip_text() const { return tooltip_text_; }
@@ -585,7 +585,7 @@
   const gfx::Point& location() { return location_; }
 
  private:
-  bool is_visible_;
+  bool is_visible_ = false;
   base::string16 tooltip_text_;
   gfx::Point location_;
 
diff --git a/ui/views/event_monitor_unittest.cc b/ui/views/event_monitor_unittest.cc
index 398b364..b44551d 100644
--- a/ui/views/event_monitor_unittest.cc
+++ b/ui/views/event_monitor_unittest.cc
@@ -36,7 +36,7 @@
 
 class EventMonitorTest : public WidgetTest {
  public:
-  EventMonitorTest() : widget_(nullptr) {}
+  EventMonitorTest() = default;
 
   // testing::Test:
   void SetUp() override {
@@ -54,7 +54,7 @@
   }
 
  protected:
-  Widget* widget_;
+  Widget* widget_ = nullptr;
   std::unique_ptr<ui::test::EventGenerator> generator_;
   TestEventObserver observer_;
 
diff --git a/ui/views/focus/focus_manager_unittest.cc b/ui/views/focus/focus_manager_unittest.cc
index 3cacff9..1bf09c9 100644
--- a/ui/views/focus/focus_manager_unittest.cc
+++ b/ui/views/focus/focus_manager_unittest.cc
@@ -488,7 +488,7 @@
 
 class FocusInAboutToRequestFocusFromTabTraversalView : public View {
  public:
-  FocusInAboutToRequestFocusFromTabTraversalView() : view_to_focus_(nullptr) {}
+  FocusInAboutToRequestFocusFromTabTraversalView() = default;
 
   void set_view_to_focus(View* view) { view_to_focus_ = view; }
 
@@ -497,7 +497,7 @@
   }
 
  private:
-  views::View* view_to_focus_;
+  views::View* view_to_focus_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(FocusInAboutToRequestFocusFromTabTraversalView);
 };
diff --git a/ui/views/focus/focus_traversal_unittest.cc b/ui/views/focus/focus_traversal_unittest.cc
index 88e48f0..dbd125cc 100644
--- a/ui/views/focus/focus_traversal_unittest.cc
+++ b/ui/views/focus/focus_traversal_unittest.cc
@@ -102,7 +102,7 @@
 // A View that can act as a pane.
 class PaneView : public View, public FocusTraversable {
  public:
-  PaneView() : focus_search_(nullptr) {}
+  PaneView() = default;
 
   // If this method is called, this view will use GetPaneFocusTraversable to
   // have this provided FocusSearch used instead of the default one, allowing
@@ -125,7 +125,7 @@
   View* GetFocusTraversableParentView() override { return nullptr; }
 
  private:
-  FocusSearch* focus_search_;
+  FocusSearch* focus_search_ = nullptr;
 };
 
 // BorderView is a view containing a native window with its own view hierarchy.
@@ -220,8 +220,8 @@
     }
   }
 
-  TabbedPane* style_tab_;
-  BorderView* search_border_view_;
+  TabbedPane* style_tab_ = nullptr;
+  BorderView* search_border_view_ = nullptr;
   DummyComboboxModel combobox_model_;
   PaneView* left_container_;
   PaneView* right_container_;
@@ -229,8 +229,7 @@
   DISALLOW_COPY_AND_ASSIGN(FocusTraversalTest);
 };
 
-FocusTraversalTest::FocusTraversalTest()
-    : style_tab_(nullptr), search_border_view_(nullptr) {}
+FocusTraversalTest::FocusTraversalTest() = default;
 
 FocusTraversalTest::~FocusTraversalTest() = default;
 
diff --git a/ui/views/layout/fill_layout_unittest.cc b/ui/views/layout/fill_layout_unittest.cc
index 31e73e26..4035c90 100644
--- a/ui/views/layout/fill_layout_unittest.cc
+++ b/ui/views/layout/fill_layout_unittest.cc
@@ -18,7 +18,7 @@
   static const int kDefaultHostWidth = 100;
   static const int kDefaultHostHeight = 200;
 
-  FillLayoutTest() : layout_(nullptr), host_(new View) {
+  FillLayoutTest() : host_(new View) {
     layout_ = host_->SetLayoutManager(std::make_unique<FillLayout>());
     SetHostSize(kDefaultHostWidth, kDefaultHostHeight);
   }
@@ -50,7 +50,7 @@
   }
 
   // The test target.
-  FillLayout* layout_;
+  FillLayout* layout_ = nullptr;
 
   std::unique_ptr<View> host_;
 
diff --git a/ui/views/test/capture_tracking_view.cc b/ui/views/test/capture_tracking_view.cc
index 26bdc5e..fe8e87d 100644
--- a/ui/views/test/capture_tracking_view.cc
+++ b/ui/views/test/capture_tracking_view.cc
@@ -7,10 +7,7 @@
 namespace views {
 namespace test {
 
-CaptureTrackingView::CaptureTrackingView()
-    : got_press_(false),
-      got_capture_lost_(false) {
-}
+CaptureTrackingView::CaptureTrackingView() = default;
 
 CaptureTrackingView::~CaptureTrackingView() = default;
 
diff --git a/ui/views/test/capture_tracking_view.h b/ui/views/test/capture_tracking_view.h
index 5964916..d2fb47f 100644
--- a/ui/views/test/capture_tracking_view.h
+++ b/ui/views/test/capture_tracking_view.h
@@ -32,8 +32,8 @@
 
  private:
   // See description above getters.
-  bool got_press_;
-  bool got_capture_lost_;
+  bool got_press_ = false;
+  bool got_capture_lost_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(CaptureTrackingView);
 };
diff --git a/ui/views/test/menu_test_utils.cc b/ui/views/test/menu_test_utils.cc
index efe7f86..bd426f0 100644
--- a/ui/views/test/menu_test_utils.cc
+++ b/ui/views/test/menu_test_utils.cc
@@ -17,11 +17,7 @@
 
 // TestMenuDelegate -----------------------------------------------------------
 
-TestMenuDelegate::TestMenuDelegate()
-    : execute_command_id_(0),
-      on_menu_closed_called_count_(0),
-      on_menu_closed_menu_(nullptr),
-      on_perform_drop_called_(false) {}
+TestMenuDelegate::TestMenuDelegate() = default;
 
 TestMenuDelegate::~TestMenuDelegate() = default;
 
diff --git a/ui/views/test/menu_test_utils.h b/ui/views/test/menu_test_utils.h
index 5de2d12..c9e9a55 100644
--- a/ui/views/test/menu_test_utils.h
+++ b/ui/views/test/menu_test_utils.h
@@ -53,13 +53,13 @@
   MenuItemView* show_context_menu_source_ = nullptr;
 
   // ID of last executed command.
-  int execute_command_id_;
+  int execute_command_id_ = 0;
 
   // The number of times OnMenuClosed was called.
-  int on_menu_closed_called_count_;
+  int on_menu_closed_called_count_ = 0;
 
   // The value of the last call to OnMenuClosed.
-  MenuItemView* on_menu_closed_menu_;
+  MenuItemView* on_menu_closed_menu_ = nullptr;
 
   // The number of times WillHideMenu was called.
   int will_hide_menu_count_ = 0;
@@ -67,7 +67,7 @@
   // The value of the last call to WillHideMenu.
   MenuItemView* will_hide_menu_ = nullptr;
 
-  bool on_perform_drop_called_;
+  bool on_perform_drop_called_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(TestMenuDelegate);
 };
diff --git a/ui/views/test/test_views.cc b/ui/views/test/test_views.cc
index 9975b99..0d56fa3a 100644
--- a/ui/views/test/test_views.cc
+++ b/ui/views/test/test_views.cc
@@ -69,8 +69,7 @@
   }
 }
 
-EventCountView::EventCountView()
-    : last_flags_(0), handle_mode_(PROPAGATE_EVENTS) {}
+EventCountView::EventCountView() = default;
 
 EventCountView::~EventCountView() = default;
 
diff --git a/ui/views/test/test_views.h b/ui/views/test/test_views.h
index 62ab66f..8af59b4 100644
--- a/ui/views/test/test_views.h
+++ b/ui/views/test/test_views.h
@@ -109,8 +109,8 @@
   void RecordEvent(ui::Event* event);
 
   std::map<ui::EventType, int> event_count_;
-  int last_flags_;
-  HandleMode handle_mode_;
+  int last_flags_ = 0;
+  HandleMode handle_mode_ = PROPAGATE_EVENTS;
 
   DISALLOW_COPY_AND_ASSIGN(EventCountView);
 };
diff --git a/ui/views/test/test_views_delegate.h b/ui/views/test/test_views_delegate.h
index b3596e0..b895a2ce 100644
--- a/ui/views/test/test_views_delegate.h
+++ b/ui/views/test/test_views_delegate.h
@@ -57,10 +57,10 @@
   ui::ContextFactoryPrivate* GetContextFactoryPrivate() override;
 
  private:
-  ui::ContextFactory* context_factory_;
-  ui::ContextFactoryPrivate* context_factory_private_;
-  bool use_desktop_native_widgets_;
-  bool use_transparent_windows_;
+  ui::ContextFactory* context_factory_ = nullptr;
+  ui::ContextFactoryPrivate* context_factory_private_ = nullptr;
+  bool use_desktop_native_widgets_ = false;
+  bool use_transparent_windows_ = false;
   std::unique_ptr<LayoutProvider> layout_provider_ =
       std::make_unique<LayoutProvider>();
 
diff --git a/ui/views/test/test_views_delegate_aura.cc b/ui/views/test/test_views_delegate_aura.cc
index 6ba332c..518f4d19 100644
--- a/ui/views/test/test_views_delegate_aura.cc
+++ b/ui/views/test/test_views_delegate_aura.cc
@@ -14,11 +14,7 @@
 
 namespace views {
 
-TestViewsDelegate::TestViewsDelegate()
-    : context_factory_(nullptr),
-      context_factory_private_(nullptr),
-      use_desktop_native_widgets_(false),
-      use_transparent_windows_(false) {}
+TestViewsDelegate::TestViewsDelegate() = default;
 
 TestViewsDelegate::~TestViewsDelegate() = default;
 
diff --git a/ui/views/touchui/touch_selection_controller_impl_unittest.cc b/ui/views/touchui/touch_selection_controller_impl_unittest.cc
index 414a934..a21d796 100644
--- a/ui/views/touchui/touch_selection_controller_impl_unittest.cc
+++ b/ui/views/touchui/touch_selection_controller_impl_unittest.cc
@@ -64,10 +64,7 @@
 class TouchSelectionControllerImplTest : public ViewsTestBase {
  public:
   TouchSelectionControllerImplTest()
-      : textfield_widget_(nullptr),
-        widget_(nullptr),
-        textfield_(nullptr),
-        views_tsc_factory_(new ViewsTouchEditingControllerFactory) {
+      : views_tsc_factory_(new ViewsTouchEditingControllerFactory) {
     ui::TouchEditingControllerFactory::SetInstance(views_tsc_factory_.get());
   }
 
@@ -306,10 +303,10 @@
               textfield_->GetSelectedRange());
   }
 
-  Widget* textfield_widget_;
-  Widget* widget_;
+  Widget* textfield_widget_ = nullptr;
+  Widget* widget_ = nullptr;
 
-  Textfield* textfield_;
+  Textfield* textfield_ = nullptr;
   std::unique_ptr<TextfieldTestApi> textfield_test_api_;
   std::unique_ptr<ViewsTouchEditingControllerFactory> views_tsc_factory_;
   std::unique_ptr<aura::test::TestCursorClient> test_cursor_client_;
diff --git a/ui/views/touchui/touch_selection_menu_runner_views_unittest.cc b/ui/views/touchui/touch_selection_menu_runner_views_unittest.cc
index 87a8359..17e7df3a 100644
--- a/ui/views/touchui/touch_selection_menu_runner_views_unittest.cc
+++ b/ui/views/touchui/touch_selection_menu_runner_views_unittest.cc
@@ -25,8 +25,7 @@
 class TouchSelectionMenuRunnerViewsTest : public ViewsTestBase,
                                           public ui::TouchSelectionMenuClient {
  public:
-  TouchSelectionMenuRunnerViewsTest()
-      : no_command_available_(false), last_executed_command_id_(0) {}
+  TouchSelectionMenuRunnerViewsTest() = default;
   ~TouchSelectionMenuRunnerViewsTest() override = default;
 
  protected:
@@ -60,9 +59,9 @@
 
   // When set to true, no command would be available and menu should not be
   // shown.
-  bool no_command_available_;
+  bool no_command_available_ = false;
 
-  int last_executed_command_id_;
+  int last_executed_command_id_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(TouchSelectionMenuRunnerViewsTest);
 };
diff --git a/ui/views/view_targeter_unittest.cc b/ui/views/view_targeter_unittest.cc
index fb5612f0..a3fca5e3 100644
--- a/ui/views/view_targeter_unittest.cc
+++ b/ui/views/view_targeter_unittest.cc
@@ -21,7 +21,7 @@
 // A derived class of View used for testing purposes.
 class TestingView : public View, public ViewTargeterDelegate {
  public:
-  TestingView() : can_process_events_within_subtree_(true) {}
+  TestingView() = default;
   ~TestingView() override = default;
 
   // Reset all test state.
@@ -43,7 +43,7 @@
 
  private:
   // Value to return from CanProcessEventsWithinSubtree().
-  bool can_process_events_within_subtree_;
+  bool can_process_events_within_subtree_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(TestingView);
 };
diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
index f28bd195..dfada3cf 100644
--- a/ui/views/view_unittest.cc
+++ b/ui/views/view_unittest.cc
@@ -205,12 +205,7 @@
 // A derived class for testing purpose.
 class TestView : public View {
  public:
-  TestView()
-      : did_layout_(false),
-        delete_on_pressed_(false),
-        did_paint_(false),
-        native_theme_(nullptr),
-        can_process_events_within_subtree_(true) {}
+  TestView() = default;
   ~TestView() override = default;
 
   // Reset all test state
@@ -270,27 +265,27 @@
   gfx::Rect new_bounds_;
 
   // Layout.
-  bool did_layout_;
+  bool did_layout_ = false;
 
   // MouseEvent.
   int last_mouse_event_type_;
   gfx::Point location_;
   bool received_mouse_enter_;
   bool received_mouse_exit_;
-  bool delete_on_pressed_;
+  bool delete_on_pressed_ = false;
 
   // Painting.
   std::vector<gfx::Rect> scheduled_paint_rects_;
-  bool did_paint_;
+  bool did_paint_ = false;
 
   // Accelerators.
   std::map<ui::Accelerator, int> accelerator_count_map_;
 
   // Native theme.
-  const ui::NativeTheme* native_theme_;
+  const ui::NativeTheme* native_theme_ = nullptr;
 
   // Value to return from CanProcessEventsWithinSubtree().
-  bool can_process_events_within_subtree_;
+  bool can_process_events_within_subtree_ = true;
 
   // Accessibility events
   ax::mojom::Event last_a11y_event_;
@@ -2411,7 +2406,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 class ToplevelWidgetObserverView : public View {
  public:
-  ToplevelWidgetObserverView() : toplevel_(nullptr) {}
+  ToplevelWidgetObserverView() = default;
   ~ToplevelWidgetObserverView() override = default;
 
   // View overrides:
@@ -2430,7 +2425,7 @@
   Widget* toplevel() { return toplevel_; }
 
  private:
-  Widget* toplevel_;
+  Widget* toplevel_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(ToplevelWidgetObserverView);
 };
@@ -2719,7 +2714,7 @@
 
 class VisibleBoundsView : public View {
  public:
-  VisibleBoundsView() : received_notification_(false) {}
+  VisibleBoundsView() = default;
   ~VisibleBoundsView() override = default;
 
   bool received_notification() const { return received_notification_; }
@@ -2734,7 +2729,7 @@
   }
   void OnVisibleBoundsChanged() override { received_notification_ = true; }
 
-  bool received_notification_;
+  bool received_notification_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(VisibleBoundsView);
 };
@@ -3160,18 +3155,15 @@
   void ViewHierarchyChanged(
       const ViewHierarchyChangedDetails& details) override;
 
-  bool has_add_details_;
-  bool has_remove_details_;
+  bool has_add_details_ = false;
+  bool has_remove_details_ = false;
   ViewHierarchyChangedDetails add_details_;
   ViewHierarchyChangedDetails remove_details_;
 
   DISALLOW_COPY_AND_ASSIGN(ObserverView);
 };
 
-ObserverView::ObserverView()
-    : has_add_details_(false),
-      has_remove_details_(false) {
-}
+ObserverView::ObserverView() = default;
 
 ObserverView::~ObserverView() = default;
 
@@ -3796,7 +3788,7 @@
 
 class ViewLayerTest : public ViewsTestBase {
  public:
-  ViewLayerTest() : widget_(nullptr) {}
+  ViewLayerTest() = default;
 
   ~ViewLayerTest() override = default;
 
@@ -3833,7 +3825,7 @@
   void SchedulePaintOnParent(View* view) { view->SchedulePaintOnParent(); }
 
  private:
-  Widget* widget_;
+  Widget* widget_ = nullptr;
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
@@ -4237,8 +4229,7 @@
 
 class PaintTrackingView : public View {
  public:
-  PaintTrackingView() : painted_(false) {
-  }
+  PaintTrackingView() = default;
 
   bool painted() const { return painted_; }
   void set_painted(bool value) { painted_ = value; }
@@ -4246,7 +4237,7 @@
   void OnPaint(gfx::Canvas* canvas) override { painted_ = true; }
 
  private:
-  bool painted_;
+  bool painted_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(PaintTrackingView);
 };
@@ -5002,17 +4993,7 @@
 
 class ViewObserverTest : public ViewTest, public ViewObserver {
  public:
-  ViewObserverTest()
-      : child_view_added_times_(0),
-        child_view_removed_times_(0),
-        child_view_added_parent_(nullptr),
-        child_view_added_(nullptr),
-        child_view_removed_(nullptr),
-        child_view_removed_parent_(nullptr),
-        view_visibility_changed_(nullptr),
-        view_enabled_changed_(nullptr),
-        view_bounds_changed_(nullptr),
-        view_reordered_(nullptr) {}
+  ViewObserverTest() = default;
 
   ~ViewObserverTest() override = default;
 
@@ -5079,17 +5060,17 @@
   const View* view_reordered() const { return view_reordered_; }
 
  private:
-  int child_view_added_times_;
-  int child_view_removed_times_;
+  int child_view_added_times_ = 0;
+  int child_view_removed_times_ = 0;
 
-  View* child_view_added_parent_;
-  View* child_view_added_;
-  View* child_view_removed_;
-  View* child_view_removed_parent_;
-  View* view_visibility_changed_;
-  View* view_enabled_changed_;
-  View* view_bounds_changed_;
-  View* view_reordered_;
+  View* child_view_added_parent_ = nullptr;
+  View* child_view_added_ = nullptr;
+  View* child_view_removed_ = nullptr;
+  View* child_view_removed_parent_ = nullptr;
+  View* view_visibility_changed_ = nullptr;
+  View* view_enabled_changed_ = nullptr;
+  View* view_bounds_changed_ = nullptr;
+  View* view_reordered_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(ViewObserverTest);
 };
@@ -5166,8 +5147,7 @@
 // notifications from child views.
 class TestParentView : public View {
  public:
-  TestParentView()
-      : received_layer_change_notification_(false), layer_change_count_(0) {}
+  TestParentView() = default;
 
   void Reset() {
     received_layer_change_notification_ = false;
@@ -5189,10 +5169,10 @@
  private:
   // Set to true if we receive the OnChildLayerChanged() notification for a
   // child.
-  bool received_layer_change_notification_;
+  bool received_layer_change_notification_ = false;
 
   // Contains the number of OnChildLayerChanged() notifications for a child.
-  int layer_change_count_;
+  int layer_change_count_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(TestParentView);
 };
diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc
index 1ff12e44..cc88438 100644
--- a/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc
+++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura_unittest.cc
@@ -375,12 +375,7 @@
 // 2. Parent window destroyed which should lead to the child being destroyed.
 class DesktopAuraTopLevelWindowTest : public aura::WindowObserver {
  public:
-  DesktopAuraTopLevelWindowTest()
-      : top_level_widget_(nullptr),
-        owned_window_(nullptr),
-        owner_destroyed_(false),
-        owned_window_destroyed_(false),
-        use_async_mode_(true) {}
+  DesktopAuraTopLevelWindowTest() = default;
 
   ~DesktopAuraTopLevelWindowTest() override {
     EXPECT_TRUE(owner_destroyed_);
@@ -466,14 +461,14 @@
 
  private:
   views::Widget widget_;
-  views::Widget* top_level_widget_;
-  aura::Window* owned_window_;
-  bool owner_destroyed_;
-  bool owned_window_destroyed_;
+  views::Widget* top_level_widget_ = nullptr;
+  aura::Window* owned_window_ = nullptr;
+  bool owner_destroyed_ = false;
+  bool owned_window_destroyed_ = false;
   aura::test::TestWindowDelegate child_window_delegate_;
   // This flag controls whether we need to wait for the destruction to complete
   // before finishing the test. Defaults to true.
-  bool use_async_mode_;
+  bool use_async_mode_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(DesktopAuraTopLevelWindowTest);
 };
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 436d837..b9e903a 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -557,6 +557,9 @@
   window_enlargement_ =
       gfx::Vector2d(new_expanded.width() - expanded.width(),
                     new_expanded.height() - expanded.height());
+  // When |new_expanded| causes the window to be moved to a display with a
+  // different DSF, HWNDMessageHandler::OnDpiChanged() will be called and the
+  // window size will be scaled automatically.
   message_handler_->SetBounds(new_expanded, old_content_size != bounds.size());
 }
 
diff --git a/ui/views/widget/native_widget_aura_unittest.cc b/ui/views/widget/native_widget_aura_unittest.cc
index e9b54ef..a08f273 100644
--- a/ui/views/widget/native_widget_aura_unittest.cc
+++ b/ui/views/widget/native_widget_aura_unittest.cc
@@ -258,8 +258,7 @@
 // OnNativeWidgetSizeChanged that is invoked during Init matters.
 class TestWidget : public views::Widget {
  public:
-  TestWidget() : did_size_change_more_than_once_(false) {
-  }
+  TestWidget() = default;
 
   // Returns true if the size changes to a non-empty size, and then to another
   // size.
@@ -276,7 +275,7 @@
   }
 
  private:
-  bool did_size_change_more_than_once_;
+  bool did_size_change_more_than_once_ = false;
   gfx::Size last_size_;
 
   DISALLOW_COPY_AND_ASSIGN(TestWidget);
@@ -303,7 +302,7 @@
 
 class PropertyTestLayoutManager : public TestLayoutManagerBase {
  public:
-  PropertyTestLayoutManager() : added_(false) {}
+  PropertyTestLayoutManager() = default;
   ~PropertyTestLayoutManager() override = default;
 
   bool added() const { return added_; }
@@ -318,7 +317,7 @@
     added_ = true;
   }
 
-  bool added_;
+  bool added_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(PropertyTestLayoutManager);
 };
@@ -377,9 +376,7 @@
 // View subclass that tracks whether it has gotten a gesture event.
 class GestureTrackingView : public views::View {
  public:
-  GestureTrackingView()
-      : got_gesture_event_(false),
-        consume_gesture_event_(true) {}
+  GestureTrackingView() = default;
 
   void set_consume_gesture_event(bool value) {
     consume_gesture_event_ = value;
@@ -401,10 +398,10 @@
 
  private:
   // Was OnGestureEvent() invoked?
-  bool got_gesture_event_;
+  bool got_gesture_event_ = false;
 
   // Dictates what OnGestureEvent() returns.
-  bool consume_gesture_event_;
+  bool consume_gesture_event_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(GestureTrackingView);
 };
@@ -603,7 +600,7 @@
 // Used to track calls to WidgetDelegate::OnWidgetMove().
 class MoveTestWidgetDelegate : public WidgetDelegateView {
  public:
-  MoveTestWidgetDelegate() : got_move_(false) {}
+  MoveTestWidgetDelegate() = default;
   ~MoveTestWidgetDelegate() override = default;
 
   void ClearGotMove() { got_move_ = false; }
@@ -613,7 +610,7 @@
   void OnWidgetMove() override { got_move_ = true; }
 
  private:
-  bool got_move_;
+  bool got_move_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(MoveTestWidgetDelegate);
 };
diff --git a/ui/views/widget/root_view_unittest.cc b/ui/views/widget/root_view_unittest.cc
index 1e298b34..2e619a2 100644
--- a/ui/views/widget/root_view_unittest.cc
+++ b/ui/views/widget/root_view_unittest.cc
@@ -76,10 +76,7 @@
 // Tracks whether a context menu is shown.
 class TestContextMenuController : public ContextMenuController {
  public:
-  TestContextMenuController()
-      : show_context_menu_calls_(0),
-        menu_source_view_(nullptr),
-        menu_source_type_(ui::MENU_SOURCE_NONE) {}
+  TestContextMenuController() = default;
   ~TestContextMenuController() override = default;
 
   int show_context_menu_calls() const { return show_context_menu_calls_; }
@@ -102,9 +99,9 @@
   }
 
  private:
-  int show_context_menu_calls_;
-  View* menu_source_view_;
-  ui::MenuSourceType menu_source_type_;
+  int show_context_menu_calls_ = 0;
+  View* menu_source_view_ = nullptr;
+  ui::MenuSourceType menu_source_type_ = ui::MENU_SOURCE_NONE;
 
   DISALLOW_COPY_AND_ASSIGN(TestContextMenuController);
 };
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
index b040b3a..041161e4 100644
--- a/ui/views/widget/widget_interactive_uitest.cc
+++ b/ui/views/widget/widget_interactive_uitest.cc
@@ -97,7 +97,7 @@
 // A view that always processes all mouse events.
 class MouseView : public View {
  public:
-  MouseView() : entered_(0), exited_(0), pressed_(0) {}
+  MouseView() = default;
   ~MouseView() override = default;
 
   bool OnMousePressed(const ui::MouseEvent& event) override {
@@ -126,10 +126,10 @@
   int pressed() const { return pressed_; }
 
  private:
-  int entered_;
-  int exited_;
+  int entered_ = 0;
+  int exited_ = 0;
 
-  int pressed_;
+  int pressed_ = 0;
 
   DISALLOW_COPY_AND_ASSIGN(MouseView);
 };
@@ -842,8 +842,7 @@
 // window caption by sending fake WM_NCACTIVATE messages.
 class WidgetActivationTest : public Widget {
  public:
-  WidgetActivationTest()
-      : active_(false) {}
+  WidgetActivationTest() = default;
 
   ~WidgetActivationTest() override = default;
 
@@ -855,7 +854,7 @@
   bool active() const { return active_; }
 
  private:
-  bool active_;
+  bool active_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(WidgetActivationTest);
 };
@@ -1537,7 +1536,7 @@
 // OnMouseCaptureLost has been invoked for a widget.
 class CaptureLostState {
  public:
-  CaptureLostState() : got_capture_lost_(false) {}
+  CaptureLostState() = default;
 
   bool GetAndClearGotCaptureLost() {
     bool value = got_capture_lost_;
@@ -1548,7 +1547,7 @@
   void OnMouseCaptureLost() { got_capture_lost_ = true; }
 
  private:
-  bool got_capture_lost_;
+  bool got_capture_lost_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(CaptureLostState);
 };
@@ -1775,7 +1774,7 @@
 // Widget observer which grabs capture when the widget is activated.
 class CaptureOnActivationObserver : public WidgetObserver {
  public:
-  CaptureOnActivationObserver() : activation_observed_(false) {}
+  CaptureOnActivationObserver() = default;
   ~CaptureOnActivationObserver() override = default;
 
   // WidgetObserver:
@@ -1789,7 +1788,7 @@
   bool activation_observed() const { return activation_observed_; }
 
  private:
-  bool activation_observed_;
+  bool activation_observed_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(CaptureOnActivationObserver);
 };
@@ -1838,7 +1837,7 @@
 // Used to verify OnMouseEvent() has been invoked.
 class MouseEventTrackingWidget : public Widget {
  public:
-  MouseEventTrackingWidget() : got_mouse_event_(false) {}
+  MouseEventTrackingWidget() = default;
   ~MouseEventTrackingWidget() override = default;
 
   bool GetAndClearGotMouseEvent() {
@@ -1854,7 +1853,7 @@
   }
 
  private:
-  bool got_mouse_event_;
+  bool got_mouse_event_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(MouseEventTrackingWidget);
 };
diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc
index e48c2f6..fea8ac0c 100644
--- a/ui/views/widget/widget_unittest.cc
+++ b/ui/views/widget/widget_unittest.cc
@@ -320,10 +320,10 @@
 
 // A bag of state to monitor destructions.
 struct OwnershipTestState {
-  OwnershipTestState() : widget_deleted(false), native_widget_deleted(false) {}
+  OwnershipTestState() = default;
 
-  bool widget_deleted;
-  bool native_widget_deleted;
+  bool widget_deleted = false;
+  bool native_widget_deleted = false;
 };
 
 // A Widget subclass that updates a bag of state when it is destroyed.
@@ -1376,12 +1376,7 @@
 // paints are expected.
 class DesktopAuraTestValidPaintWidget : public Widget, public WidgetObserver {
  public:
-  DesktopAuraTestValidPaintWidget()
-      : received_paint_(false),
-        expect_paint_(true),
-        received_paint_while_hidden_(false) {
-    AddObserver(this);
-  }
+  DesktopAuraTestValidPaintWidget() { AddObserver(this); }
 
   ~DesktopAuraTestValidPaintWidget() override { RemoveObserver(this); }
 
@@ -1424,9 +1419,9 @@
   }
 
  private:
-  bool received_paint_;
-  bool expect_paint_;
-  bool received_paint_while_hidden_;
+  bool received_paint_ = false;
+  bool expect_paint_ = true;
+  bool received_paint_while_hidden_ = false;
   base::OnceClosure quit_closure_;
 
   DISALLOW_COPY_AND_ASSIGN(DesktopAuraTestValidPaintWidget);
@@ -2204,7 +2199,7 @@
 // An observer that registers that an animation has ended.
 class AnimationEndObserver : public ui::ImplicitAnimationObserver {
  public:
-  AnimationEndObserver() : animation_completed_(false) {}
+  AnimationEndObserver() = default;
   ~AnimationEndObserver() override = default;
 
   bool animation_completed() const { return animation_completed_; }
@@ -2213,7 +2208,7 @@
   void OnImplicitAnimationsCompleted() override { animation_completed_ = true; }
 
  private:
-  bool animation_completed_;
+  bool animation_completed_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(AnimationEndObserver);
 };
diff --git a/ui/views/window/custom_frame_view_unittest.cc b/ui/views/window/custom_frame_view_unittest.cc
index da08cbd0..577afbf 100644
--- a/ui/views/window/custom_frame_view_unittest.cc
+++ b/ui/views/window/custom_frame_view_unittest.cc
@@ -23,9 +23,7 @@
 // forms of delegates. By default this can minimize and maximize.
 class MinimizeAndMaximizeStateControlDelegate : public WidgetDelegateView {
  public:
-  MinimizeAndMaximizeStateControlDelegate()
-        : can_maximize_(true),
-          can_minimize_(true) {}
+  MinimizeAndMaximizeStateControlDelegate() = default;
   ~MinimizeAndMaximizeStateControlDelegate() override = default;
 
   void set_can_maximize(bool can_maximize) {
@@ -41,8 +39,8 @@
   bool CanMinimize() const override { return can_minimize_; }
 
  private:
-  bool can_maximize_;
-  bool can_minimize_;
+  bool can_maximize_ = true;
+  bool can_minimize_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(MinimizeAndMaximizeStateControlDelegate);
 };
diff --git a/ui/views/window/dialog_delegate_unittest.cc b/ui/views/window/dialog_delegate_unittest.cc
index 2966a19..61f2f236 100644
--- a/ui/views/window/dialog_delegate_unittest.cc
+++ b/ui/views/window/dialog_delegate_unittest.cc
@@ -115,7 +115,7 @@
 
 class DialogTest : public ViewsTestBase {
  public:
-  DialogTest() : dialog_(nullptr) {}
+  DialogTest() = default;
   ~DialogTest() override = default;
 
   void SetUp() override {
@@ -150,7 +150,7 @@
   TestDialog* dialog() const { return dialog_; }
 
  private:
-  TestDialog* dialog_;
+  TestDialog* dialog_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(DialogTest);
 };