diff --git a/BUILD.gn b/BUILD.gn
index 7616de2..09eeeee 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -797,7 +797,6 @@
         "//third_party/freetype-testing:fuzzers",
         "//third_party/grpc:fuzzers",
         "//third_party/icu/fuzzers",
-        "//third_party/qcms:fuzzers",
         "//third_party/ukey2/fuzzers",
         "//third_party/zlib/contrib/tests/fuzzers",
       ]
diff --git a/DEPS b/DEPS
index 2bf3f2fa..fee2a015 100644
--- a/DEPS
+++ b/DEPS
@@ -280,7 +280,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': 'cb18e028c403caba0f1189583d281ef72b5a4a2b',
+  'skia_revision': '472faa80deaf1f357b285b38360a63d8f03484c6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
@@ -288,7 +288,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': 'd65751b40f7e4441ca0e41210eadcc8a9cbccce5',
+  'angle_revision': 'fbaaeb7b83bce2a6ec8519b4d7f990f0e2feb839',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
@@ -396,7 +396,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.
-  'dawn_revision': '3f908f3907e532481e4c91d3b814b46869405fe8',
+  'dawn_revision': '6b0812ec42b723b52efa7a8294a841c0299e8de8',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -496,7 +496,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling llvm-libc
   # and whatever else without interference from each other.
-  'llvm_libc_revision':    'd7c6dddc045ba4080880d43c34a2d9c2ce5c600f',
+  'llvm_libc_revision':    'b0c04a4ce44caf3bcb5dffc315d7cc58c20f4ba7',
 
   # If you change this, also update the libc++ revision in
   # //buildtools/deps_revisions.gni.
@@ -1439,7 +1439,7 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    '61ca08e978df2e55fe40731b7c5c1ed333480e42',
+    'c0f9cfa5836eb7aedcef22bb09fa19001ed59c35',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
@@ -1598,7 +1598,7 @@
     'packages': [
       {
           'package': 'chromium/third_party/androidx',
-          'version': 'R1-nD-_Tg8Aa4iBdGNF1S-cmJxWGMTeiDCjAHq37rYgC',
+          'version': 'hed62mh6OgdqejEpv68I9aWfPEbNarJBHejKazMdkWEC',
       },
     ],
     'condition': 'checkout_android and non_git_source',
@@ -2195,7 +2195,7 @@
   },
 
   'src/third_party/leveldatabase/src':
-    Var('chromium_git') + '/external/leveldb.git' + '@' + '23e35d792b9154f922b8b575b12596a4d8664c65',
+    Var('chromium_git') + '/external/leveldb.git' + '@' + '578eeb702ec0fbb6b9780f3d4147b1076630d633',
 
   'src/third_party/libFuzzer/src':
     Var('chromium_git') + '/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git' + '@' +  Var('libfuzzer_revision'),
@@ -2436,7 +2436,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '522ede17aa6880e302642a4147b9f511d15ddd8e',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + 'aa335456a8b3c7fb70ec60f6c6f4c455c7efdcf3',
 
   'src/base/tracing/test/data': {
     'bucket': 'perfetto',
@@ -2806,7 +2806,7 @@
     Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'),
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '549c9b717fcbdfdf5d76068b3dd37076a9ffeacb',
+    Var('webrtc_git') + '/src.git' + '@' + 'd7b2f8560a4980111501dd8c0bdf19ae86287e41',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -2943,7 +2943,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/help_app/app',
-        'version': '0PhIc72kc4JXyHzVzku5VY89N8EwcqyCyaOmMkqohIUC',
+        'version': 'Lcl--fF22r7qT8IXmu0Pj6g9OMdpD3z6RUVR3mP_Gv4C',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -2954,7 +2954,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'QIjYxtpMp-UQZZA7MhROCwqx5ELMrOcqkCwmqjk_sT8C',
+        'version': '4U1LHRCb6yJ8RMwUmUT92zhnkHIAObRycm9gaTtOgJUC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -2987,7 +2987,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/projector_app/app',
-        'version': 'pXOtcKeVya83_m-iFsRtje-hKCqSrAZksbpSTNNKkjYC',
+        'version': 'sGvMIWo8sGY8C2QjlEL-HhFUMoXsRSWgUbUj8p5ZPtYC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4634,7 +4634,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '5d0e91884d86fd282c91ecf82a87a83192703707',
+        '2176f6fa521b3b9a6920b35a5fad854711c883b9',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 181db90..becdc1ea 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -2028,7 +2028,7 @@
 <translation id="7875575368831396199">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಆಫ್ ಆಗಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಫೋನ್ ಹಬ್ ಅನ್ನು ಬಳಸಲು ಬ್ಲೂಟೂತ್ ಅನ್ನು ಆನ್ ಮಾಡಿ.</translation>
 <translation id="7884446017008693258">ಹಾಟ್‌ಸ್ಪಾಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="7884902759927478774">ಟ್ಯಾಬ್ ಡ್ರ್ಯಾಗ್ ಮಾಡುವುದನ್ನು ರದ್ದುಮಾಡಿ</translation>
-<translation id="7886169021410746335">ಗೌಪ್ಯತೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಹೊಂದಿಸಿ</translation>
+<translation id="7886169021410746335">ಗೌಪ್ಯತೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅಡ್ಜಸ್ಟ್ ಮಾಡಿ</translation>
 <translation id="7886277072580235377">ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸೆಶನ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ. <ph name="LEARN_MORE" /></translation>
 <translation id="788781083998633524">ಇಮೇಲ್‌ ಕಳುಹಿಸಿ</translation>
 <translation id="7893503627044934815">ಈ ಫೈಲ್ ಅನ್ನು ತೋರಿಸುವುದು ಬೇಡ</translation>
@@ -2322,7 +2322,7 @@
 <translation id="8875021410787719674">ಕೆಳಗಿನ ಬಲ ಮೂಲೆ, ಲಾಂಚರ್, ವಿಳಾಸ ಪಟ್ಟಿ, ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳ ಪಟ್ಟಿ, ತೆರೆದಿರುವ ವೆಬ್‌ಸೈಟ್ ಮತ್ತು ಡೌನ್‌ಲೋಡ್‌ಗಳ ನಡುವೆ ಸರಿಸಿ</translation>
 <translation id="8876148469852588625">ಒಟ್ಟು <ph name="EVENT_TOTAL_COUNT" /> ರಲ್ಲಿ <ph name="EVENT_POSITION" /> ಈವೆಂಟ್</translation>
 <translation id="8876661425082386199">ನಿಮ್ಮ ಕನೆಕ್ಷನ್ ಪರಿಶೀಲಿಸಿ</translation>
-<translation id="8877788021141246043">ಜ್ಞಾಪನೆಯನ್ನು ಹೊಂದಿಸಿ</translation>
+<translation id="8877788021141246043">ಜ್ಞಾಪನೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="8878886163241303700">ಪರದೆಯನ್ನು ವಿಸ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8885424115080869847">YouTube Music ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="888982883502837004">ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಫರ್ಮ್‌ವೇರ್ ಅಪ್‌ಡೇಟ್‌ಗಳು ಲಭ್ಯವಿವೆ. ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb
index da662cd7..c96a6875 100644
--- a/ash/strings/ash_strings_te.xtb
+++ b/ash/strings/ash_strings_te.xtb
@@ -64,7 +64,7 @@
 <translation id="1190609913194133056">నోటిఫికేషన్ కేంద్రం</translation>
 <translation id="1195412055398077112">ఓవర్‌స్కాన్</translation>
 <translation id="1195667586424773550">ట్యాబ్ యొక్క అడ్రస్‌ బార్‌లోకి లింక్‌ను లాగండి</translation>
-<translation id="119944043368869598">అన్ని క్లియర్ చేయండి</translation>
+<translation id="119944043368869598">అన్నీ క్లియర్ చేయండి</translation>
 <translation id="1199716647557067911">స్విచ్ యాక్సెస్‌ను మీరు ఆఫ్ చేయాలనుకుంటున్నారా?</translation>
 <translation id="1201402288615127009">తర్వాత</translation>
 <translation id="1210557957257435379">స్క్రీన్ రికార్డింగ్</translation>
@@ -1504,7 +1504,7 @@
 <translation id="6040143037577758943">మూసివేయండి</translation>
 <translation id="6043212731627905357">మీ <ph name="DEVICE_TYPE" />తో ఈ మానిటర్ పని చేయడం లేదు (మానిటర్‌కు మద్దతు లేదు).</translation>
 <translation id="6043994281159824495">ఇప్పుడే సైన్ అవుట్ చేయి</translation>
-<translation id="6045629311476491587"><ph name="APP_COUNT" /> యాప్‌ల ద్వారా ఉపయోగించబడింది</translation>
+<translation id="6045629311476491587"><ph name="APP_COUNT" /> యాప్‌లు ఉపయోగించాయి</translation>
 <translation id="6045998054441862242">అధిక కాంట్రాస్ట్ మోడ్‌ని ఆన్ చేయండి</translation>
 <translation id="6047696787498798094">మీరు మరొక వినియోగదారుకు మారినప్పుడు స్క్రీన్ షేర్‌ ఆపివేయబడుతుంది. మీరు కొనసాగించాలని అనుకుంటున్నారా?</translation>
 <translation id="6052614013050385269">లింక్‌ను కుడి-క్లిక్ చేయండి</translation>
diff --git a/ash/system/privacy_screen/privacy_screen_toast_controller.cc b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
index e73f5ec..18c60a6 100644
--- a/ash/system/privacy_screen/privacy_screen_toast_controller.cc
+++ b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
@@ -85,6 +85,7 @@
 
 void PrivacyScreenToastController::BubbleViewDestroyed() {
   close_timer_.Stop();
+  toast_view_ = nullptr;
   bubble_view_ = nullptr;
   bubble_widget_ = nullptr;
 }
diff --git a/base/time/time.h b/base/time/time.h
index bd50f58b..da5c4c9 100644
--- a/base/time/time.h
+++ b/base/time/time.h
@@ -414,6 +414,8 @@
       kMicrosecondsPerHour * kHoursPerDay;
   static constexpr int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7;
   static constexpr int64_t kNanosecondsPerMicrosecond = 1000;
+  static constexpr int64_t kNanosecondsPerMillisecond =
+      kNanosecondsPerMicrosecond * kMicrosecondsPerMillisecond;
   static constexpr int64_t kNanosecondsPerSecond =
       kNanosecondsPerMicrosecond * kMicrosecondsPerSecond;
 
diff --git a/build/check_gn_headers_whitelist.txt b/build/check_gn_headers_whitelist.txt
index 080f3c1..0fe5645 100644
--- a/build/check_gn_headers_whitelist.txt
+++ b/build/check_gn_headers_whitelist.txt
@@ -197,9 +197,6 @@
 third_party/opus/src/src/opus_private.h
 third_party/opus/src/tests/test_opus_common.h
 third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_names.h
-third_party/qcms/src/halffloat.h
-third_party/qcms/src/tests/qcms_test_util.h
-third_party/qcms/src/tests/timing.h
 third_party/snappy/linux/config.h
 third_party/speech-dispatcher/libspeechd.h
 third_party/sqlite/sqlite3.h
diff --git a/chrome/VERSION b/chrome/VERSION
index b4a9f814..790e795 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=133
 MINOR=0
-BUILD=6942
+BUILD=6943
 PATCH=0
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 3f51d59a..2a1bf86d 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -632,11 +632,9 @@
   "java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
   "java/src/org/chromium/chrome/browser/findinpage/FindToolbarPhone.java",
   "java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java",
-  "java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.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/FirstRunAppRestrictionInfo.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",
@@ -649,7 +647,6 @@
   "java/src/org/chromium/chrome/browser/firstrun/FreIntentCreator.java",
   "java/src/org/chromium/chrome/browser/firstrun/HistorySyncFirstRunFragment.java",
   "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
-  "java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java",
   "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
   "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java",
   "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java",
@@ -1001,7 +998,11 @@
   "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallMessageHandler.java",
   "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java",
   "java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
+  "java/src/org/chromium/chrome/browser/signin/AppRestrictionSupplier.java",
+  "java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java",
+  "java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java",
   "java/src/org/chromium/chrome/browser/signin/LegacySyncPromoView.java",
+  "java/src/org/chromium/chrome/browser/signin/PolicyLoadListener.java",
   "java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivity.java",
   "java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivityLauncherImpl.java",
   "java/src/org/chromium/chrome/browser/signin/SigninBridge.java",
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni
index aecb2ee..d8b56c2 100644
--- a/chrome/android/chrome_junit_test_java_sources.gni
+++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -232,12 +232,10 @@
   "junit/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollectorUnitTest.java",
   "junit/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollectorTest.java",
   "junit/src/org/chromium/chrome/browser/findinpage/FindToolbarManagerTest.java",
-  "junit/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplierTest.java",
   "junit/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfoTest.java",
   "junit/src/org/chromium/chrome/browser/firstrun/FirstRunFilterTouchUnitTest.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/PolicyLoadListenerUnitTest.java",
   "junit/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListenerUnitTest.java",
   "junit/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidatorUnitTest.java",
   "junit/src/org/chromium/chrome/browser/flags/BadFlagsSnackbarManagerTest.java",
@@ -353,6 +351,8 @@
   "junit/src/org/chromium/chrome/browser/share/ShareHelperMultiInstanceUnitTest.java",
   "junit/src/org/chromium/chrome/browser/share/ShareHelperUnitTest.java",
   "junit/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallMessageHandlerTest.java",
+  "junit/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplierTest.java",
+  "junit/src/org/chromium/chrome/browser/signin/PolicyLoadListenerUnitTest.java",
   "junit/src/org/chromium/chrome/browser/signin/SigninBridgeTest.java",
   "junit/src/org/chromium/chrome/browser/signin/SigninManagerImplTest.java",
   "junit/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImplTest.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowView.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowView.java
index 6c3c1b3..7cf78b4b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowView.java
@@ -14,7 +14,6 @@
 import android.widget.TextView;
 
 import org.chromium.chrome.R;
-import org.chromium.components.sync.SyncFeatureMap;
 
 /** Controls the bookmarks save-flow view. */
 public class ImprovedBookmarkSaveFlowView extends FrameLayout {
@@ -44,10 +43,8 @@
         mBookmarkContainer.setBackgroundResource(
                 R.drawable.improved_bookmark_save_flow_single_pane_background);
 
-        if (SyncFeatureMap.isEnabled(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE)) {
-            mBookmarkTitleView.setTextAppearance(R.style.TextAppearance_TextMedium_Secondary);
-            mBookmarkSubtitleView.setTextAppearance(R.style.TextAppearance_TextMedium_Secondary);
-        }
+        mBookmarkTitleView.setTextAppearance(R.style.TextAppearance_TextMedium_Secondary);
+        mBookmarkSubtitleView.setTextAppearance(R.style.TextAppearance_TextMedium_Secondary);
     }
 
     void setBookmarkRowClickListener(View.OnClickListener listener) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
index 62c90c5..1a52eb3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
@@ -383,7 +383,7 @@
                         RecordHistogram.recordTimesHistogram(
                                 "MobileFre.FromLaunch.FirstFragmentInflatedV2",
                                 inflationCompletion - mIntentCreationElapsedRealtimeMs);
-                        getFirstRunAppRestrictionInfo()
+                        getAppRestrictionSupplier()
                                 .getCompletionElapsedRealtimeMs(
                                         restrictionsCompletion -> {
                                             if (restrictionsCompletion > inflationCompletion) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
index ba9c058..0822c2c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
@@ -9,42 +9,19 @@
 import android.app.PendingIntent.CanceledException;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
-import android.graphics.Color;
 import android.os.Bundle;
-import android.os.SystemClock;
 
-import androidx.annotation.CallSuper;
-import androidx.annotation.Nullable;
-
-import org.chromium.base.BuildInfo;
 import org.chromium.base.IntentUtils;
 import org.chromium.base.Log;
-import org.chromium.base.ResettersForTesting;
-import org.chromium.base.supplier.ObservableSupplier;
-import org.chromium.base.supplier.ObservableSupplierImpl;
-import org.chromium.base.supplier.OneshotSupplier;
-import org.chromium.base.supplier.OneshotSupplierImpl;
-import org.chromium.chrome.browser.back_press.BackPressHelper;
-import org.chromium.chrome.browser.back_press.SecondaryActivityBackPressUma.SecondaryActivity;
 import org.chromium.chrome.browser.customtabs.CustomTabsConnection;
-import org.chromium.chrome.browser.init.ActivityProfileProvider;
-import org.chromium.chrome.browser.init.AsyncInitializationActivity;
 import org.chromium.chrome.browser.metrics.SimpleStartupForegroundSessionDetector;
 import org.chromium.chrome.browser.metrics.UmaUtils;
-import org.chromium.chrome.browser.policy.PolicyServiceFactory;
-import org.chromium.chrome.browser.profiles.OtrProfileId;
 import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
-import org.chromium.chrome.browser.profiles.ProfileProvider;
-import org.chromium.chrome.browser.ui.system.StatusBarColorController;
+import org.chromium.chrome.browser.signin.FullscreenSigninAndHistorySyncActivityBase;
 import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
-import org.chromium.components.policy.PolicyService;
-import org.chromium.components.signin.AccountManagerFacade;
-import org.chromium.components.signin.AccountManagerFacadeProvider;
 
 /** Base class for First Run Experience. */
-// TODO(crbug.com/349787455): Consider renaming it now that it is also the base for non-FRE
-// fullscreen sign-in flows.
-public abstract class FirstRunActivityBase extends AsyncInitializationActivity
+public abstract class FirstRunActivityBase extends FullscreenSigninAndHistorySyncActivityBase
         implements BackPressHandler {
     private static final String TAG = "FirstRunActivity";
 
@@ -70,73 +47,14 @@
 
     public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = true;
 
-    private static PolicyLoadListenerFactory sPolicyLoadListenerFactoryForTesting;
-
     private boolean mNativeInitialized;
 
-    private final FirstRunAppRestrictionInfo mFirstRunAppRestrictionInfo;
-    private final OneshotSupplierImpl<PolicyService> mPolicyServiceSupplier;
-    private final ObservableSupplierImpl<Boolean> mBackPressStateSupplier =
-            new ObservableSupplierImpl<>() {
-                // Always intercept back press.
-                {
-                    set(true);
-                }
-            };
-    private final PolicyLoadListener mPolicyLoadListener;
-
-    private final long mStartTime;
-
-    private ChildAccountStatusSupplier mChildAccountStatusSupplier;
-
-    public FirstRunActivityBase() {
-        mFirstRunAppRestrictionInfo = FirstRunAppRestrictionInfo.takeMaybeInitialized();
-        mPolicyServiceSupplier = new OneshotSupplierImpl<>();
-        mPolicyLoadListener =
-                sPolicyLoadListenerFactoryForTesting == null
-                        ? new PolicyLoadListener(
-                                mFirstRunAppRestrictionInfo, mPolicyServiceSupplier)
-                        : sPolicyLoadListenerFactoryForTesting.inject(
-                                mFirstRunAppRestrictionInfo, mPolicyServiceSupplier);
-        mStartTime = SystemClock.elapsedRealtime();
-        mPolicyLoadListener.onAvailable(this::onPolicyLoadListenerAvailable);
-    }
-
-    protected long getStartTime() {
-        return mStartTime;
-    }
-
     @Override
     protected boolean requiresFirstRunToBeCompleted(Intent intent) {
         // The user is already in First Run.
         return false;
     }
 
-    @Override
-    public boolean shouldStartGpuProcess() {
-        return true;
-    }
-
-    @Override
-    @CallSuper
-    public void triggerLayoutInflation() {
-        AccountManagerFacade accountManagerFacade = AccountManagerFacadeProvider.getInstance();
-        mChildAccountStatusSupplier =
-                new ChildAccountStatusSupplier(accountManagerFacade, mFirstRunAppRestrictionInfo);
-
-        // TODO(crbug.com/40939710): Find the underlying issue causing the status bar not to be set
-        //  during FRE, this is just a temporary visual fix.
-        if (BuildInfo.getInstance().isAutomotive) {
-            StatusBarColorController.setStatusBarColor(getWindow(), Color.BLACK);
-        }
-    }
-
-    @Override
-    protected void onPreCreate() {
-        super.onPreCreate();
-        BackPressHelper.create(this, getOnBackPressedDispatcher(), this, getSecondaryActivity());
-    }
-
     // Activity:
     @Override
     public void onPause() {
@@ -160,42 +78,11 @@
     }
 
     @Override
-    protected OneshotSupplier<ProfileProvider> createProfileProvider() {
-        return new ActivityProfileProvider(getLifecycleDispatcher()) {
-            @Nullable
-            @Override
-            protected OtrProfileId createOffTheRecordProfileId() {
-                throw new IllegalStateException("Attempting to access incognito in the FRE");
-            }
-        };
-    }
-
-    @Override
     public void finishNativeInitialization() {
         super.finishNativeInitialization();
         mNativeInitialized = true;
-        mPolicyServiceSupplier.set(PolicyServiceFactory.getGlobalPolicyService());
     }
 
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-
-        mPolicyLoadListener.destroy();
-        mFirstRunAppRestrictionInfo.destroy();
-    }
-
-    @Override
-    public ObservableSupplier<Boolean> getHandleBackPressChangedSupplier() {
-        return mBackPressStateSupplier;
-    }
-
-    /** Called when back press is intercepted. */
-    @Override
-    public abstract @BackPressResult int handleBackPress();
-
-    public abstract @SecondaryActivity int getSecondaryActivity();
-
     protected void flushPersistentData() {
         if (mNativeInitialized) {
             ProfileManagerUtils.flushPersistentDataForAllProfiles();
@@ -289,26 +176,6 @@
         return false;
     }
 
-    protected FirstRunAppRestrictionInfo getFirstRunAppRestrictionInfo() {
-        return mFirstRunAppRestrictionInfo;
-    }
-
-    /** Observer method for the policy load listener. Overridden by inheriting classes. */
-    protected void onPolicyLoadListenerAvailable(boolean onDevicePolicyFound) {}
-
-    /**
-     * @return PolicyLoadListener used to indicate if policy initialization is complete.
-     * @see PolicyLoadListener for return value expectation.
-     */
-    public OneshotSupplier<Boolean> getPolicyLoadListener() {
-        return mPolicyLoadListener;
-    }
-
-    /** Returns the supplier that supplies child account status. */
-    public OneshotSupplier<Boolean> getChildAccountStatusSupplier() {
-        return mChildAccountStatusSupplier;
-    }
-
     /**
      * If the first run activity was triggered by a custom tab, notify app associated with custom
      * tab whether first run was completed.
@@ -328,24 +195,4 @@
         CustomTabsConnection.getInstance()
                 .sendFirstRunCallbackIfNecessary(launchIntentExtras, complete);
     }
-
-    /**
-     * Allows tests to inject a fake/mock {@link PolicyLoadListener} into {@link
-     * FirstRunActivityBase}'s constructor.
-     */
-    public interface PolicyLoadListenerFactory {
-        PolicyLoadListener inject(
-                FirstRunAppRestrictionInfo appRestrictionInfo,
-                OneshotSupplier<PolicyService> policyServiceSupplier);
-    }
-
-    /**
-     * Forces the {@link FirstRunActivityBase}'s constructor to use a {@link PolicyLoadListener}
-     * defined by a test, instead of creating its own instance.
-     */
-    public static void setPolicyLoadListenerFactoryForTesting(
-            PolicyLoadListenerFactory policyLoadListenerFactory) {
-        sPolicyLoadListenerFactoryForTesting = policyLoadListenerFactory;
-        ResettersForTesting.register(() -> sPolicyLoadListenerFactoryForTesting = null);
-    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
index 7bf4ef9..14e5c31 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
@@ -30,6 +30,7 @@
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileProvider;
 import org.chromium.chrome.browser.search_engines.SearchEnginePromoType;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
 import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
 import org.chromium.chrome.browser.signin.services.SigninPreferencesManager;
 import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper;
@@ -303,7 +304,7 @@
         CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes");
 
         // Launch the async restriction checking as soon as we know we'll be running FRE.
-        FirstRunAppRestrictionInfo.startInitializationHint();
+        AppRestrictionSupplier.startInitializationHint();
 
         if (inSameTask) {
             FreIntentCreator intentCreator = new FreIntentCreator();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java
index 20496a6..ac9d9248 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunPageDelegate.java
@@ -88,8 +88,8 @@
     OneshotSupplier<ProfileProvider> getProfileProviderSupplier();
 
     /**
-     * The supplier that supplies whether reading policy value is necessary.
-     * See {@link PolicyLoadListener} for details.
+     * The supplier that supplies whether reading policy value is necessary. See {@link
+     * PolicyLoadListener} for details.
      */
     OneshotSupplier<Boolean> getPolicyLoadListener();
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java
index bd350310..c4dfdaf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java
@@ -16,15 +16,16 @@
 import org.chromium.base.supplier.OneshotSupplier;
 import org.chromium.base.supplier.OneshotSupplierImpl;
 import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
+import org.chromium.chrome.browser.signin.PolicyLoadListener;
 import org.chromium.components.policy.PolicyService;
 
 /**
  * Class that listens to signals related to ToSDialogBehavior. Supplies whether ToS dialog should be
  * skipped given policy settings.
  *
- * To be more specific:
- *  - Supplies [True] if the ToS dialog is not enabled by policy while device is fully managed;
- *  - Supplies [False] otherwise.
+ * <p>To be more specific: - Supplies [True] if the ToS dialog is not enabled by policy while device
+ * is fully managed; - Supplies [False] otherwise.
  */
 public class SkipTosDialogPolicyListener implements OneshotSupplier<Boolean> {
     private static final String TAG = "SkipTosPolicy";
@@ -69,8 +70,8 @@
 
     /**
      * The value of whether the ToS dialog is enabled on the device. If the value is false, it means
-     * TosDialogBehavior policy is found and set to SKIP. This can be null when this information
-     * is not ready yet.
+     * TosDialogBehavior policy is found and set to SKIP. This can be null when this information is
+     * not ready yet.
      */
     private @Nullable Boolean mTosDialogEnabled;
 
@@ -81,31 +82,30 @@
     private @Nullable Boolean mIsDeviceOwned;
 
     /**
-     * @param firstRunAppRestrictionInfo Source that providers app restriction information.
+     * @param appRestrictionSupplier Source that providers app restriction information.
      * @param policyServiceSupplier Supplier that providers PolicyService when native initialized.
      * @param enterpriseInfo Source that provides whether device is managed.
      * @param histogramNameProvider Provider that provides histogram names when signals are
-     *         available.
+     *     available.
      */
     public SkipTosDialogPolicyListener(
-            FirstRunAppRestrictionInfo firstRunAppRestrictionInfo,
+            AppRestrictionSupplier appRestrictionSupplier,
             OneshotSupplier<PolicyService> policyServiceSupplier,
             EnterpriseInfo enterpriseInfo,
             @Nullable HistogramNameProvider histogramNameProvider) {
         mObjectCreatedTimeMs = SystemClock.elapsedRealtime();
         mHistNameProvider = histogramNameProvider;
-        mPolicyLoadListener =
-                new PolicyLoadListener(firstRunAppRestrictionInfo, policyServiceSupplier);
+        mPolicyLoadListener = new PolicyLoadListener(appRestrictionSupplier, policyServiceSupplier);
 
         initInternally(enterpriseInfo, mPolicyLoadListener);
     }
 
     /**
      * @param policyLoadListener Supplier that provides a boolean value *whether reading policy from
-     *         policy service is necessary*. See {@link PolicyLoadListener} for more information.
+     *     policy service is necessary*. See {@link PolicyLoadListener} for more information.
      * @param enterpriseInfo Source that provides whether device is managed.
      * @param histogramNameProvider Provider that provides histogram names when signals are
-     *         available.
+     *     available.
      */
     public SkipTosDialogPolicyListener(
             OneshotSupplier<Boolean> policyLoadListener,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java
index 2029ccce..a1c8b78 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java
@@ -15,12 +15,13 @@
 import org.chromium.base.supplier.OneshotSupplierImpl;
 import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo;
 import org.chromium.chrome.browser.policy.PolicyServiceFactory;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
 import org.chromium.components.policy.PolicyService;
 
 /**
  * Class that used to refresh "If the ToS was and should be skipped by policy TosDialogBehavior".
  *
- * Once FRE is skipped because of the enterprise policy TosDialogBehavior, this information is
+ * <p>Once FRE is skipped because of the enterprise policy TosDialogBehavior, this information is
  * stored in {@link ChromePreferenceKeys#FIRST_RUN_SKIPPED_BY_POLICY}. The FRE will be completely
  * avoided when this pref is true. This class checks if the enterprise policy is ever reset such
  * that the FRE should be run, and will clear the shared pref.
@@ -29,19 +30,18 @@
     private static final String TAG = "TosPolicyStatus";
 
     private final SkipTosDialogPolicyListener mPolicyListener;
-    private final FirstRunAppRestrictionInfo mAppRestrictionInfo;
+    private final AppRestrictionSupplier mAppRestrictionInfo;
     private final long mTimeObjectCreated;
 
     /**
-     * Refresh boolean value "If the ToS was and should be skipped by policy TosDialogBehavior"
-     * that is stored in the shared preference. If the ToS was not skipped, do nothing.
+     * Refresh boolean value "If the ToS was and should be skipped by policy TosDialogBehavior" that
+     * is stored in the shared preference. If the ToS was not skipped, do nothing.
      */
     public static void refreshSharedPreferenceIfTosSkipped() {
         ThreadUtils.assertOnUiThread();
         if (!FirstRunStatus.isFirstRunSkippedByPolicy()) return;
 
-        FirstRunAppRestrictionInfo appRestrictionInfo =
-                FirstRunAppRestrictionInfo.takeMaybeInitialized();
+        AppRestrictionSupplier appRestrictionInfo = AppRestrictionSupplier.takeMaybeInitialized();
         OneshotSupplierImpl<PolicyService> policyServiceSupplier = new OneshotSupplierImpl<>();
         policyServiceSupplier.set(PolicyServiceFactory.getGlobalPolicyService());
         SkipTosDialogPolicyListener policyListener =
@@ -56,7 +56,7 @@
 
     @VisibleForTesting
     TosDialogBehaviorSharedPrefInvalidator(
-            SkipTosDialogPolicyListener listener, FirstRunAppRestrictionInfo appRestrictionInfo) {
+            SkipTosDialogPolicyListener listener, AppRestrictionSupplier appRestrictionInfo) {
         mTimeObjectCreated = SystemClock.elapsedRealtime();
 
         mAppRestrictionInfo = appRestrictionInfo;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/AppRestrictionSupplier.java
similarity index 81%
rename from chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfo.java
rename to chrome/android/java/src/org/chromium/chrome/browser/signin/AppRestrictionSupplier.java
index 1f30e7f..24090c2b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/AppRestrictionSupplier.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.firstrun;
+package org.chromium.chrome.browser.signin;
 
 import android.content.Context;
 import android.os.Bundle;
@@ -27,23 +27,24 @@
 import java.util.concurrent.RejectedExecutionException;
 
 /**
- * A helper class used to check if app restrictions are present during first run. Internally it
- * uses an asynchronous background task to fetch restrictions, then notifies registered callbacks
- * once complete.
+ * Checks if app restrictions are present during a fullscreen signin activity. Internally it uses an
+ * asynchronous background task to fetch restrictions, then notifies registered callbacks once
+ * complete.
  *
- * In order to get a result as soon as possible, this class provides a mechanism to kick off the
+ * <p>In order to get a result as soon as possible, this class provides a mechanism to kick off the
  * async via {@link #startInitializationHint()}. This instance will be stored in a private static
  * field, and will be returned by {@link #takeMaybeInitialized}, as well as nulling out the private
  * static. This mechanism doesn't strictly need to be used, and {@link #startInitializationHint()}
  * can be ignored at the cost of latency.
  *
- * This class is only used during first run flow, so its lifecycle ends when first run completes. At
- * which point {@link #destroy()} should be called.
+ * <p>This class is used during fullscreen signin flows, so its lifecycle ends when the flow
+ * completes. At which point {@link #destroy()} should be called.
  */
-class FirstRunAppRestrictionInfo {
-    private static final String TAG = "FRAppRestrictionInfo";
+// TODO(crbug.com/385693639): This class should implement ObservableSupplier<Boolean>.
+public class AppRestrictionSupplier {
+    private static final String TAG = "AppRestriction";
 
-    private static FirstRunAppRestrictionInfo sInitializedInstance;
+    private static AppRestrictionSupplier sInitializedInstance;
 
     private boolean mInitialized;
     private boolean mHasAppRestriction;
@@ -53,33 +54,34 @@
 
     private AsyncTask<Boolean> mFetchAppRestrictionAsyncTask;
 
-    private FirstRunAppRestrictionInfo() {
+    private AppRestrictionSupplier() {
         initialize();
     }
 
     /**
-     * Starts initialization and stores an instance of {@link FirstRunAppRestrictionInfo} in a
-     * static field. This will be waiting for the first caller of
-     * {@link FirstRunAppRestrictionInfo#takeMaybeInitialized()}.
+     * Starts initialization and stores an instance of {@link AppRestrictionSupplier} in a static
+     * field. This will be waiting for the first caller of {@link
+     * AppRestrictionSupplier#takeMaybeInitialized()}.
      */
+    // TODO(crbug.com/349787455): Delete this method and the corresponding static field.
     public static void startInitializationHint() {
         if (sInitializedInstance == null) {
-            sInitializedInstance = new FirstRunAppRestrictionInfo();
+            sInitializedInstance = new AppRestrictionSupplier();
         }
     }
 
     /**
      * Tries to transfer ownership of the previously instantiated static instance if possible. When
-     * there is no such instance, this will simply return a new {@link FirstRunAppRestrictionInfo}.
+     * there is no such instance, this will simply return a new {@link AppRestrictionSupplier}.
      * Either way, an async check for app restrictions will have been started before this method
      * returns. Call {@link #getHasAppRestriction(Callback)} to be notified when the check
      * completes.
      */
-    public static FirstRunAppRestrictionInfo takeMaybeInitialized() {
+    public static AppRestrictionSupplier takeMaybeInitialized() {
         ThreadUtils.assertOnUiThread();
-        FirstRunAppRestrictionInfo info;
+        AppRestrictionSupplier info;
         if (sInitializedInstance == null) {
-            info = new FirstRunAppRestrictionInfo();
+            info = new AppRestrictionSupplier();
         } else {
             info = sInitializedInstance;
             sInitializedInstance = null;
@@ -198,10 +200,10 @@
         }
     }
 
-    static void setInitializedInstanceForTest(
-            FirstRunAppRestrictionInfo firstRunAppRestrictionInfo) {
+    public static void setInitializedInstanceForTest(
+            AppRestrictionSupplier appRestrictionSupplier) {
         var oldValue = sInitializedInstance;
-        sInitializedInstance = firstRunAppRestrictionInfo;
+        sInitializedInstance = appRestrictionSupplier;
         ResettersForTesting.register(() -> sInitializedInstance = oldValue);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
similarity index 82%
rename from chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
rename to chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
index b52c51c..0b1ce2f0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplier.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.firstrun;
+package org.chromium.chrome.browser.signin;
 
 import android.os.SystemClock;
 
@@ -16,14 +16,14 @@
 import org.chromium.components.signin.AccountUtils;
 
 /**
- * Fetches the child account status to be used by other FRE components.
+ * Fetches the child account status to be used by other fullscreen signin flows components.
  *
- * This class checks app restrictions for Chrome to obtain the child account status faster. This
+ * <p>This class checks app restrictions for Chrome to obtain the child account status faster. This
  * optimisation leverages the fact that FamilyLink always pushes some policies for Chrome on
- * supervised devices. So, if there are no app restrictions specified for Chrome -
- * {@link ChildAccountStatusSupplier} will consider that the child account status is false.
- * Note: this optimisation creates a potential conflict if there are no app restrictions on
- * a supervised device. However, this should never happen on real devices.
+ * supervised devices. So, if there are no app restrictions specified for Chrome - {@link
+ * ChildAccountStatusSupplier} will consider that the child account status is false. Note: this
+ * optimisation creates a potential conflict if there are no app restrictions on a supervised
+ * device. However, this should never happen on real devices.
  */
 public class ChildAccountStatusSupplier implements OneshotSupplier<Boolean> {
     private final OneshotSupplierImpl<Boolean> mValue = new OneshotSupplierImpl<>();
@@ -34,13 +34,13 @@
 
     /**
      * Creates ChildAccountStatusSupplier and starts fetching the child account status.
+     *
      * @param accountManagerFacade {@link AccountManagerFacade} instance to use for getting accounts
-     * @param appRestrictionInfo instance of {@link FirstRunAppRestrictionInfo} that can
-     *         be used to check app restrictions (see class-level JavaDoc).
+     * @param appRestrictionInfo instance of {@link AppRestrictionSupplier} that can be used to
+     *     check app restrictions (see class-level JavaDoc).
      */
     public ChildAccountStatusSupplier(
-            AccountManagerFacade accountManagerFacade,
-            FirstRunAppRestrictionInfo appRestrictionInfo) {
+            AccountManagerFacade accountManagerFacade, AppRestrictionSupplier appRestrictionInfo) {
         mChildAccountStatusStartTime = SystemClock.elapsedRealtime();
 
         appRestrictionInfo.getHasAppRestriction(this::onAppRestrictionDetected);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
new file mode 100644
index 0000000..b6c0118
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
@@ -0,0 +1,142 @@
+// Copyright 2024 The Chromium Authors
+// 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.signin;
+
+import android.graphics.Color;
+import android.os.SystemClock;
+
+import androidx.annotation.CallSuper;
+import androidx.annotation.Nullable;
+
+import org.chromium.base.BuildInfo;
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.ObservableSupplierImpl;
+import org.chromium.base.supplier.OneshotSupplier;
+import org.chromium.base.supplier.OneshotSupplierImpl;
+import org.chromium.chrome.browser.back_press.BackPressHelper;
+import org.chromium.chrome.browser.back_press.SecondaryActivityBackPressUma;
+import org.chromium.chrome.browser.init.ActivityProfileProvider;
+import org.chromium.chrome.browser.init.AsyncInitializationActivity;
+import org.chromium.chrome.browser.policy.PolicyServiceFactory;
+import org.chromium.chrome.browser.profiles.OtrProfileId;
+import org.chromium.chrome.browser.profiles.ProfileProvider;
+import org.chromium.chrome.browser.ui.system.StatusBarColorController;
+import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
+import org.chromium.components.policy.PolicyService;
+import org.chromium.components.signin.AccountManagerFacade;
+import org.chromium.components.signin.AccountManagerFacadeProvider;
+
+/** Base class for First run experience and fullscreen signin and history sync promos. */
+public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncInitializationActivity
+        implements BackPressHandler {
+    private final AppRestrictionSupplier mAppRestrictionSupplier;
+    private final OneshotSupplierImpl<PolicyService> mPolicyServiceSupplier;
+    private final ObservableSupplierImpl<Boolean> mBackPressStateSupplier =
+            new ObservableSupplierImpl<>() {
+                // Always intercept back press.
+                {
+                    set(true);
+                }
+            };
+    private final PolicyLoadListener mPolicyLoadListener;
+    private final long mStartTime;
+
+    private ChildAccountStatusSupplier mChildAccountStatusSupplier;
+
+    public FullscreenSigninAndHistorySyncActivityBase() {
+        mAppRestrictionSupplier = AppRestrictionSupplier.takeMaybeInitialized();
+        mPolicyServiceSupplier = new OneshotSupplierImpl<>();
+        mPolicyLoadListener =
+                new PolicyLoadListener(mAppRestrictionSupplier, mPolicyServiceSupplier);
+        mPolicyLoadListener.onAvailable(this::onPolicyLoadListenerAvailable);
+        mStartTime = SystemClock.elapsedRealtime();
+    }
+
+    /** Returns the elapsed time at which the activity was started, in milliseconds. */
+    protected long getStartTime() {
+        return mStartTime;
+    }
+
+    @Override
+    public boolean shouldStartGpuProcess() {
+        return false;
+    }
+
+    @Override
+    protected OneshotSupplier<ProfileProvider> createProfileProvider() {
+        return new ActivityProfileProvider(getLifecycleDispatcher()) {
+            @Nullable
+            @Override
+            protected OtrProfileId createOffTheRecordProfileId() {
+                throw new IllegalStateException("Attempting to access incognito in the re-FRE");
+            }
+        };
+    }
+
+    @Override
+    public void finishNativeInitialization() {
+        super.finishNativeInitialization();
+        mPolicyServiceSupplier.set(PolicyServiceFactory.getGlobalPolicyService());
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+
+        mPolicyLoadListener.destroy();
+        mAppRestrictionSupplier.destroy();
+    }
+
+    @Override
+    @CallSuper
+    public void triggerLayoutInflation() {
+        AccountManagerFacade accountManagerFacade = AccountManagerFacadeProvider.getInstance();
+        mChildAccountStatusSupplier =
+                new ChildAccountStatusSupplier(accountManagerFacade, mAppRestrictionSupplier);
+
+        // TODO(crbug.com/40939710): Find the underlying issue causing the status bar not to be set
+        //  during re-FRE, this is just a temporary visual fix.
+        if (BuildInfo.getInstance().isAutomotive) {
+            StatusBarColorController.setStatusBarColor(getWindow(), Color.BLACK);
+        }
+    }
+
+    /** Observer method for the policy load listener. Overridden by inheriting classes. */
+    protected void onPolicyLoadListenerAvailable(boolean onDevicePolicyFound) {}
+
+    /**
+     * @return PolicyLoadListener used to indicate if policy initialization is complete.
+     * @see PolicyLoadListener for return value expectation.
+     */
+    public OneshotSupplier<Boolean> getPolicyLoadListener() {
+        return mPolicyLoadListener;
+    }
+
+    /** Returns the supplier that supplies child account status. */
+    public OneshotSupplier<Boolean> getChildAccountStatusSupplier() {
+        return mChildAccountStatusSupplier;
+    }
+
+    protected AppRestrictionSupplier getAppRestrictionSupplier() {
+        return mAppRestrictionSupplier;
+    }
+
+    @Override
+    protected void onPreCreate() {
+        super.onPreCreate();
+        BackPressHelper.create(this, getOnBackPressedDispatcher(), this, getSecondaryActivity());
+    }
+
+    @Override
+    public ObservableSupplier<Boolean> getHandleBackPressChangedSupplier() {
+        return mBackPressStateSupplier;
+    }
+
+    /** Called when back press is intercepted. */
+    @Override
+    public abstract @BackPressResult int handleBackPress();
+
+    public abstract @SecondaryActivityBackPressUma.SecondaryActivity int getSecondaryActivity();
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/PolicyLoadListener.java
similarity index 90%
rename from chrome/android/java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java
rename to chrome/android/java/src/org/chromium/chrome/browser/signin/PolicyLoadListener.java
index 5d5b9de..4a392261 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/PolicyLoadListener.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/PolicyLoadListener.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.firstrun;
+package org.chromium.chrome.browser.signin;
 
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
@@ -20,14 +20,14 @@
  * C++. The value it supplies will be ready when a decision about *whether reading policy value is
  * necessary*.
  *
- * The signals this class observes are policy service initialization and Android app restrictions.
- * If no app restrictions are found before the policy service is initialized, early out of the
- * loading process and inform the listeners.
+ * <p>The signals this class observes are policy service initialization and Android app
+ * restrictions. If no app restrictions are found before the policy service is initialized, early
+ * out of the loading process and inform the listeners.
  *
- * To be more specific:
+ * <p>To be more specific:
  *
- *  - Supplies [True] if policy service is initialized and policy might be applied;
- *  - Supplies [False] if no app restriction is found, thus no polices will be found on device.
+ * <p>- Supplies [True] if policy service is initialized and policy might be applied; - Supplies
+ * [False] if no app restriction is found, thus no polices will be found on device.
  */
 public class PolicyLoadListener implements OneshotSupplier<Boolean> {
     private static final String TAG = "PolicyLoadListener";
@@ -53,11 +53,12 @@
 
     /**
      * Create the instance and start listening to signals from policy service and app restrictions.
+     *
      * @param appRestrictionInfo Class that provides whether app restriction is found on device.
      * @param policyServiceSupplier Supplier of PolicyService that this class listened to.
      */
     public PolicyLoadListener(
-            FirstRunAppRestrictionInfo appRestrictionInfo,
+            AppRestrictionSupplier appRestrictionInfo,
             OneshotSupplier<PolicyService> policyServiceSupplier) {
         mCallbackController = new CallbackController();
         mMightHavePoliciesSupplier = new OneshotSupplierImpl<>();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivity.java
index 59ebacf..80a39d3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninAndHistorySyncActivity.java
@@ -61,9 +61,10 @@
  * shown after sign-in completion.
  *
  * <p>The activity may also hold the re-FRE which consists of a fullscreen sign-in dialog followed
- * by the history sync opt-in. This is why the dependency on {@link FirstRunActivityBase} is needed.
+ * by the history sync opt-in. This is why the dependency on {@link
+ * FullscreenSigninAndHistorySyncActivityBase} is needed.
  */
-public class SigninAndHistorySyncActivity extends FirstRunActivityBase
+public class SigninAndHistorySyncActivity extends FullscreenSigninAndHistorySyncActivityBase
         implements BottomSheetSigninAndHistorySyncCoordinator.Delegate,
                 FullscreenSigninAndHistorySyncCoordinator.Delegate {
     private static final String ARGUMENT_ACCESS_POINT = "SigninAndHistorySyncActivity.AccessPoint";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java
index 56f6c6a..9cc205ed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java
@@ -46,6 +46,8 @@
 import org.chromium.components.signin.base.CoreAccountId;
 import org.chromium.components.signin.base.CoreAccountInfo;
 import org.chromium.components.signin.identitymanager.AccountInfoServiceProvider;
+import org.chromium.components.signin.identitymanager.AccountManagedStatusFinder;
+import org.chromium.components.signin.identitymanager.AccountManagedStatusFinderOutcome;
 import org.chromium.components.signin.identitymanager.ConsentLevel;
 import org.chromium.components.signin.identitymanager.IdentityManager;
 import org.chromium.components.signin.identitymanager.IdentityMutator;
@@ -57,6 +59,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -75,6 +78,8 @@
 class SigninManagerImpl implements IdentityManager.Observer, SigninManager, AccountsChangeObserver {
     private static final String TAG = "SigninManager";
 
+    private static final Duration MANAGED_STATUS_TIMEOUT = Duration.ofSeconds(10);
+
     /**
      * Address of the native Signin Manager android. This is not final, as destroy() updates this.
      */
@@ -665,7 +670,30 @@
     public void isAccountManaged(
             @NonNull CoreAccountInfo account, final Callback<Boolean> callback) {
         if (account == null) throw new IllegalArgumentException("Account shouldn't be null!");
-        SigninManagerImplJni.get().isAccountManaged(mNativeSigninManagerAndroid, account, callback);
+
+        if (SigninFeatureMap.isEnabled(
+                SigninFeatures.USE_HOSTED_DOMAIN_FOR_MANAGEMENT_CHECK_ON_SIGNIN)) {
+            Callback<Integer> finderCallback =
+                    (outcome) -> {
+                        boolean isManaged =
+                                outcome == AccountManagedStatusFinderOutcome.ENTERPRISE
+                                        || outcome
+                                                == AccountManagedStatusFinderOutcome
+                                                        .ENTERPRISE_GOOGLE_DOT_COM;
+                        callback.onResult(isManaged);
+                    };
+            AccountManagedStatusFinder finder =
+                    new AccountManagedStatusFinder(
+                            getIdentityManager(), account, finderCallback, MANAGED_STATUS_TIMEOUT);
+            if (finder.getOutcome() != AccountManagedStatusFinderOutcome.PENDING) {
+                finderCallback.onResult(finder.getOutcome());
+            }
+            // `destroy` for `finder` will be called automatically when the outcome is decided (or
+            // when the timeout is reached).
+        } else {
+            SigninManagerImplJni.get()
+                    .isAccountManaged(mNativeSigninManagerAndroid, account, callback);
+        }
     }
 
     private void seedThenReloadAllAccountsFromSystem(@Nullable CoreAccountId primaryAccountId) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/app/bookmarks/BookmarkTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/app/bookmarks/BookmarkTest.java
index 46d4b81..cafa4afc 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/app/bookmarks/BookmarkTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/app/bookmarks/BookmarkTest.java
@@ -124,7 +124,6 @@
 import org.chromium.components.power_bookmarks.PowerBookmarkMeta;
 import org.chromium.components.power_bookmarks.ShoppingSpecifics;
 import org.chromium.components.profile_metrics.BrowserProfileType;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.SyncService.SyncStateChangedListener;
 import org.chromium.content_public.browser.test.util.TouchCommon;
@@ -145,11 +144,7 @@
 /** Tests for the bookmark manager. */
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS,
-    ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP
-})
+@EnableFeatures({ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP})
 // TODO(crbug.com/40899175): Investigate batching.
 @DoNotBatch(reason = "BookmarkTest has behaviours and thus can't be batched.")
 public class BookmarkTest {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillUpstreamTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillUpstreamTest.java
index a0ec5c67..f43c425 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillUpstreamTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillUpstreamTest.java
@@ -53,7 +53,7 @@
 
     @Before
     public void setUp() {
-        mActivityTestRule.setUpAccountAndEnableSyncForTesting();
+        mActivityTestRule.setUpAccountAndSignInForTesting();
         mServer = new EmbeddedTestServer();
         mServer.initializeNative(
                 ApplicationProvider.getApplicationContext(),
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkOpenerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkOpenerTest.java
index 45ac57d3..3fdc7c8 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkOpenerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkOpenerTest.java
@@ -25,10 +25,8 @@
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.DoNotBatch;
-import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.base.test.util.UserActionTester;
 import org.chromium.chrome.browser.app.bookmarks.BookmarkActivity;
-import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.ui.signin.SyncPromoController.SyncPromoState;
@@ -41,7 +39,6 @@
 import org.chromium.components.bookmarks.BookmarkId;
 import org.chromium.components.browser_ui.widget.RecyclerViewTestUtils;
 import org.chromium.components.embedder_support.util.UrlConstants;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.ui.accessibility.AccessibilityState;
 import org.chromium.url.GURL;
 
@@ -52,10 +49,6 @@
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
 @DoNotBatch(reason = "Tabs can't be closed reliably between tests.")
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS
-})
 public class BookmarkOpenerTest {
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java
index 91db229..3575dd6 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java
@@ -51,7 +51,6 @@
 import org.chromium.chrome.test.util.BookmarkTestRule;
 import org.chromium.chrome.test.util.browser.signin.AccountManagerTestRule;
 import org.chromium.components.browser_ui.widget.RecyclerViewTestUtils;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.UserSelectableType;
 import org.chromium.ui.base.DeviceFormFactor;
@@ -63,11 +62,7 @@
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
 @Batch(Batch.PER_CLASS)
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS,
-    ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP
-})
+@EnableFeatures(ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP)
 public class BookmarkPersonalizedSigninPromoTest {
     private static final String CONTINUED_HISTOGRAM_NAME =
             "Signin.SyncPromo.Continued.Count.Bookmarks";
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowTest.java
index ae042ad..392dd7c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkSaveFlowTest.java
@@ -37,7 +37,6 @@
 import org.chromium.base.test.util.CriteriaHelper;
 import org.chromium.base.test.util.DoNotBatch;
 import org.chromium.base.test.util.Feature;
-import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.commerce.PriceTrackingUtils;
 import org.chromium.chrome.browser.commerce.PriceTrackingUtilsJni;
@@ -59,7 +58,6 @@
 import org.chromium.components.power_bookmarks.ShoppingSpecifics;
 import org.chromium.components.signin.base.CoreAccountInfo;
 import org.chromium.components.signin.identitymanager.IdentityManager;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.url.GURL;
 
 import java.io.IOException;
@@ -68,7 +66,6 @@
 /** Tests for the bookmark save flow. */
 @RunWith(ChromeJUnit4ClassRunner.class)
 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-@EnableFeatures({SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE})
 // TODO(crbug.com/40743432): Once SyncTestRule supports batching, investigate batching this suite.
 @DoNotBatch(reason = "SyncTestRule doesn't support batching.")
 public class BookmarkSaveFlowTest {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowRenderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowRenderTest.java
index 9e8516d..b204e84 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowRenderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/ImprovedBookmarkSaveFlowRenderTest.java
@@ -30,12 +30,10 @@
 import org.chromium.base.test.params.ParameterizedRunner;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.Feature;
-import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.bookmarks.ImprovedBookmarkSaveFlowProperties.FolderText;
 import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
 import org.chromium.chrome.test.util.ChromeRenderTestRule;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.ui.modelutil.PropertyModel;
 import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
 import org.chromium.ui.test.util.BlankUiTestActivity;
@@ -49,7 +47,6 @@
 @RunWith(ParameterizedRunner.class)
 @ParameterAnnotations.UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class)
 @Batch(Batch.PER_CLASS)
-@EnableFeatures(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE)
 public class ImprovedBookmarkSaveFlowRenderTest {
     @ClassParameter
     private static List<ParameterSet> sClassParams = new NightModeParams().getParameters();
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivitySigninAndSyncTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivitySigninAndSyncTest.java
index 1bdc80b..08813cc 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivitySigninAndSyncTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunActivitySigninAndSyncTest.java
@@ -9,10 +9,12 @@
 import static androidx.test.espresso.action.ViewActions.click;
 import static androidx.test.espresso.action.ViewActions.scrollTo;
 import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.RootMatchers.isDialog;
 import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
 import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
 import static androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
 import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 
 import static org.hamcrest.Matchers.allOf;
 import static org.hamcrest.Matchers.not;
@@ -74,6 +76,7 @@
 import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
 import org.chromium.components.externalauth.ExternalAuthUtils;
 import org.chromium.components.policy.test.annotations.Policies;
+import org.chromium.components.signin.SigninFeatures;
 import org.chromium.components.signin.identitymanager.ConsentLevel;
 import org.chromium.components.signin.identitymanager.IdentityManager;
 import org.chromium.components.signin.metrics.SigninAccessPoint;
@@ -178,6 +181,24 @@
     @Test
     @MediumTest
     @Restriction({DeviceRestriction.RESTRICTION_TYPE_NON_AUTO})
+    @Features.EnableFeatures(SigninFeatures.USE_HOSTED_DOMAIN_FOR_MANAGEMENT_CHECK_ON_SIGNIN)
+    public void managedAccountContinueButtonClickShowsManagementNotice() {
+        mAccountManagerTestRule.addAccount(TestAccounts.MANAGED_ACCOUNT);
+        launchFirstRunActivityAndWaitForNativeInitialization();
+        waitUntilCurrentPageIs(SigninFirstRunFragment.class);
+        onView(withId(R.id.signin_fre_selected_account)).check(matches(isDisplayed()));
+
+        clickButton(R.id.signin_fre_continue_button);
+
+        onViewWaiting(withText(R.string.sign_in_managed_account), /* check_root_dialog= */ true)
+                .check(matches(isDisplayed()));
+        onView(withText(R.string.continue_button)).inRoot(isDialog()).perform(click());
+        waitUntilCurrentPageIs(HistorySyncFirstRunFragment.class);
+    }
+
+    @Test
+    @MediumTest
+    @Restriction({DeviceRestriction.RESTRICTION_TYPE_NON_AUTO})
     @Features.EnableFeatures({
         ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS,
     })
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
index 90db75c..1cc6265 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/firstrun/FirstRunIntegrationTest.java
@@ -78,6 +78,7 @@
 import org.chromium.chrome.browser.search_engines.DefaultSearchEngineDialogHelperUtils;
 import org.chromium.chrome.browser.search_engines.SearchEnginePromoType;
 import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
 import org.chromium.chrome.browser.signin.SigninFirstRunFragment;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.R;
@@ -117,7 +118,7 @@
     @Rule public SigninTestRule mSigninTestRule = new SigninTestRule();
 
     @Mock private ExternalAuthUtils mExternalAuthUtilsMock;
-    @Mock public FirstRunAppRestrictionInfo mMockAppRestrictionInfo;
+    @Mock public AppRestrictionSupplier mMockAppRestrictionInfo;
 
     private final Set<Class> mSupportedActivities =
             Set.of(
@@ -207,7 +208,7 @@
         doCallback((Callback<Boolean> callback) -> callback.onResult(true))
                 .when(mMockAppRestrictionInfo)
                 .getHasAppRestriction(any());
-        FirstRunAppRestrictionInfo.setInitializedInstanceForTest(mMockAppRestrictionInfo);
+        AppRestrictionSupplier.setInitializedInstanceForTest(mMockAppRestrictionInfo);
     }
 
     private void skipTosDialogViaPolicy() {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/identity_disc/IdentityDiscControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/identity_disc/IdentityDiscControllerTest.java
index 330e35b..60b5c4e 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/identity_disc/IdentityDiscControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/identity_disc/IdentityDiscControllerTest.java
@@ -279,37 +279,6 @@
     @Test
     @MediumTest
     @SuppressWarnings("CheckReturnValue")
-    public void testIdentityDiscWithSigninAndEnableSync() {
-        // Identity Disc should be shown on sign-in state change without NTP refresh.
-        mSigninTestRule.addAccountThenSigninAndEnableSync(TestAccounts.ACCOUNT1);
-        String expectedContentDescription =
-                mActivityTestRule
-                        .getActivity()
-                        .getString(
-                                R.string
-                                        .accessibility_toolbar_btn_identity_disc_with_name_and_email,
-                                TestAccounts.ACCOUNT1.getFullName(),
-                                TestAccounts.ACCOUNT1.getEmail());
-        // TODO(crbug.com/40277716): This is a no-op, replace with ViewUtils.waitForVisibleView().
-        ViewUtils.isEventuallyVisible(
-                allOf(
-                        withId(R.id.optional_toolbar_button),
-                        withContentDescription(expectedContentDescription),
-                        isDisplayed()));
-
-        mSigninTestRule.signOut();
-        // TODO(crbug.com/40277716): This is a no-op, replace with ViewUtils.waitForVisibleView().
-        ViewUtils.isEventuallyVisible(
-                allOf(
-                        withId(R.id.optional_toolbar_button),
-                        withContentDescription(
-                                R.string.accessibility_toolbar_btn_signed_out_identity_disc),
-                        isDisplayed()));
-    }
-
-    @Test
-    @MediumTest
-    @SuppressWarnings("CheckReturnValue")
     public void testIdentityDiscWithSwitchToIncognito() {
         mSigninTestRule.addTestAccountThenSigninAndEnableSync();
         // TODO(crbug.com/40277716): This is a no-op, replace with ViewUtils.waitForVisibleView().
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordCheckupIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordCheckupIntegrationTest.java
index eb73ebd..982818b 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordCheckupIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/PasswordCheckupIntegrationTest.java
@@ -43,6 +43,7 @@
 import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
 import org.chromium.chrome.browser.sync.SyncTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
+import org.chromium.components.signin.test.util.TestAccounts;
 import org.chromium.ui.test.util.DeviceRestriction;
 import org.chromium.ui.test.util.GmsCoreVersionRestriction;
 import org.chromium.url.GURL;
@@ -135,8 +136,7 @@
                                 SAFETY_CHECK_INTERACTIONS_HISTOGRAM,
                                 SAFETY_CHECK_INTERACTION_PASSWORDS_MANAGE)
                         .build();
-        // TODO - b/342101044: Write a test for the non-syncing user.
-        mSyncTestRule.setUpAccountAndEnableSyncForTesting();
+        mSyncTestRule.getSigninTestRule().addAccountThenSignin(TestAccounts.ACCOUNT1);
         // Store the test credential.
         PasswordStoreCredential testCredential =
                 new PasswordStoreCredential(EXAMPLE_URL, USERNAME_TEXT, PASSWORD_TEXT);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java
index ed4eda95..3e80f47f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java
@@ -47,7 +47,8 @@
 import org.chromium.chrome.browser.sync.SyncTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.R;
-import org.chromium.components.signin.identitymanager.ConsentLevel;
+import org.chromium.components.signin.base.AccountInfo;
+import org.chromium.components.signin.test.util.TestAccounts;
 import org.chromium.ui.base.DeviceFormFactor;
 import org.chromium.ui.test.util.DeviceRestriction;
 import org.chromium.ui.test.util.GmsCoreVersionRestriction;
@@ -76,6 +77,8 @@
             new PayloadCallbackHelper<>();
     final PayloadCallbackHelper<Exception> mFailureCallbackHelper = new PayloadCallbackHelper<>();
 
+    private final AccountInfo mAccount = TestAccounts.ACCOUNT1;
+
     @Before
     public void setup() throws Exception {
         CredentialManagerLauncherFactory.setFactoryForTesting(mFakeLauncherFactory);
@@ -92,7 +95,7 @@
                         new Intent(context, MainSettings.class),
                         PendingIntent.FLAG_IMMUTABLE));
 
-        mSyncTestRule.setUpAccountAndEnableSyncForTesting();
+        mSyncTestRule.getSigninTestRule().addAccountThenSignin(mAccount);
     }
 
     @Test
@@ -144,11 +147,10 @@
         mSettingsActivityTestRule.startSettingsActivity();
         scrollToSetting(withText(R.string.prefs_safety_check));
         onView(withText(R.string.prefs_safety_check)).perform(click());
-        String testAccount = mSyncTestRule.getPrimaryAccount(ConsentLevel.SYNC).getEmail();
         String checkForAccountText =
                 ApplicationProvider.getApplicationContext()
                         .getString(R.string.safety_check_passwords_account_title)
-                        .replace("%1$s", testAccount);
+                        .replace("%1$s", mAccount.getEmail());
         onViewWaiting(withText(checkForAccountText)).perform(click());
 
         // Verify that success callback was called.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/BottomSheetSigninAndHistorySyncIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/BottomSheetSigninAndHistorySyncIntegrationTest.java
index 9da26f2..f685163 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/BottomSheetSigninAndHistorySyncIntegrationTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/BottomSheetSigninAndHistorySyncIntegrationTest.java
@@ -50,6 +50,7 @@
 import org.chromium.base.test.BaseActivityTestRule;
 import org.chromium.base.test.util.ApplicationTestUtils;
 import org.chromium.base.test.util.DoNotBatch;
+import org.chromium.base.test.util.Features;
 import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.device_lock.DeviceLockActivityLauncherImpl;
@@ -68,6 +69,7 @@
 import org.chromium.chrome.test.util.browser.signin.AccountManagerTestRule;
 import org.chromium.chrome.test.util.browser.signin.SigninTestRule;
 import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
+import org.chromium.components.signin.SigninFeatures;
 import org.chromium.components.signin.base.CoreAccountInfo;
 import org.chromium.components.signin.identitymanager.ConsentLevel;
 import org.chromium.components.signin.metrics.SigninAccessPoint;
@@ -339,6 +341,39 @@
 
     @Test
     @MediumTest
+    @Features.EnableFeatures(SigninFeatures.USE_HOSTED_DOMAIN_FOR_MANAGEMENT_CHECK_ON_SIGNIN)
+    public void testWithManagedAccount_signIn_showsManagementNotice() {
+        mSigninTestRule.addAccount(TestAccounts.MANAGED_ACCOUNT);
+
+        launchActivity(
+                NoAccountSigninMode.BOTTOM_SHEET,
+                WithAccountSigninMode.DEFAULT_ACCOUNT_BOTTOM_SHEET,
+                HistorySyncConfig.OptInMode.NONE);
+
+        // Start sign-in from the collapsed sign-in bottom-sheet shown.
+        onView(
+                        allOf(
+                                withId(R.id.account_picker_continue_as_button),
+                                withParent(withId(R.id.account_picker_state_collapsed)),
+                                isCompletelyDisplayed()))
+                .perform(click());
+
+        // The management notice should be displayed.
+        onViewWaiting(withText(R.string.sign_in_managed_account)).check(matches(isDisplayed()));
+        onView(allOf(withText(R.string.continue_button), isCompletelyDisplayed())).perform(click());
+
+        mSigninTestRule.waitForSignin(TestAccounts.MANAGED_ACCOUNT);
+        if (BuildInfo.getInstance().isAutomotive) {
+            verify(mDeviceLockActivityLauncher)
+                    .launchDeviceLockActivity(any(), any(), anyBoolean(), any(), any(), any());
+        }
+
+        // Verify that the activity is finished after the sign-in has completed.
+        ApplicationTestUtils.waitForActivityState(mActivity, Stage.DESTROYED);
+    }
+
+    @Test
+    @MediumTest
     public void testWithExistingAccount_signIn_optionalHistoryOptIn() {
         mSigninTestRule.addAccount(TestAccounts.AADC_ADULT_ACCOUNT);
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentRenderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentRenderTest.java
index 6c1de2fd..c92f08c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentRenderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentRenderTest.java
@@ -42,7 +42,6 @@
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.browser.firstrun.FirstRunPageDelegate;
-import org.chromium.chrome.browser.firstrun.PolicyLoadListener;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
 import org.chromium.chrome.browser.profiles.Profile;
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentTest.java
index 60b9e402..3906bc46 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/SigninFirstRunFragmentTest.java
@@ -78,7 +78,6 @@
 import org.chromium.chrome.browser.firstrun.FirstRunUtils;
 import org.chromium.chrome.browser.firstrun.FirstRunUtilsJni;
 import org.chromium.chrome.browser.firstrun.MobileFreProgress;
-import org.chromium.chrome.browser.firstrun.PolicyLoadListener;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
 import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
 import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -1300,7 +1299,8 @@
         when(mFirstRunUtils.getCctTosDialogEnabled()).thenReturn(false);
         launchActivityWithFragment();
 
-        // Detach the current fragment. Needs to be done before the PolicyLoadListener callback
+        // Detach the current fragment. Needs to be done before the PolicyLoadListener
+        // callback
         // otherwise this test is racy.
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java
index fe0f0e6..2efd4740 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java
@@ -40,6 +40,7 @@
 import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
 import org.chromium.components.signin.base.CoreAccountInfo;
 import org.chromium.components.signin.identitymanager.ConsentLevel;
+import org.chromium.components.signin.test.util.TestAccounts;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.protocol.AutofillWalletSpecifics;
 import org.chromium.components.sync.protocol.EntitySpecifics;
@@ -248,24 +249,23 @@
     }
 
     /**
-     * Set up a test account and sign in. Does not setup sync.
+     * Sets up an account and signs in and enables history sync.
      *
-     * @return the test accountInfo that is signed in.
+     * @return the test {@link CoreAccountInfo} that is signed in.
      */
-    public CoreAccountInfo setUpAccountAndSignInForTesting() {
-        return mSigninTestRule.addTestAccountThenSignin();
+    public CoreAccountInfo setUpAccountAndEnableHistorySync() {
+        mSigninTestRule.addAccountThenSigninAndEnableHistorySync(TestAccounts.ACCOUNT1);
+        return TestAccounts.ACCOUNT1;
     }
 
     /**
-     * Set up a test account, sign in but don't mark sync setup complete.
+     * Set up a test account and sign in. Does not setup sync.
      *
-     * @return the test account that is signed in.
+     * @return the test {@link CoreAccountInfo} that is signed in.
      */
-    public CoreAccountInfo setUpTestAccountAndSignInWithSyncSetupAsIncomplete() {
-        CoreAccountInfo accountInfo =
-                mSigninTestRule.addTestAccountThenSigninAndEnableSync(/* syncService= */ null);
-        SyncTestUtil.waitForSyncTransportActive();
-        return accountInfo;
+    public CoreAccountInfo setUpAccountAndSignInForTesting() {
+        mSigninTestRule.addAccountThenSignin(TestAccounts.ACCOUNT1);
+        return TestAccounts.ACCOUNT1;
     }
 
     public void signOut() {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java
index bc7cb63..4f8fd48e3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java
@@ -45,7 +45,6 @@
 import org.chromium.components.commerce.core.CommerceFeatureUtilsJni;
 import org.chromium.components.commerce.core.ShoppingService;
 import org.chromium.components.signin.identitymanager.IdentityManager;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.ui.base.DeviceFormFactor;
 import org.chromium.ui.base.TestActivity;
@@ -57,10 +56,7 @@
     ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
     ChromeSwitches.DISABLE_NATIVE_INITIALIZATION
 })
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS
-})
+@EnableFeatures(ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)
 // TODO(crbug.com/327387704): Add tests with this flag enabled.
 @Features.DisableFeatures(ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP)
 public class BookmarkManagerCoordinatorTest {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
index d5981a9..afddf04 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
@@ -116,7 +116,6 @@
 import org.chromium.components.signin.identitymanager.IdentityManager;
 import org.chromium.components.sync.DataType;
 import org.chromium.components.sync.LocalDataDescription;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.SyncService.SyncStateChangedListener;
 import org.chromium.components.url_formatter.SchemeDisplay;
@@ -145,10 +144,7 @@
 /** Unit tests for {@link BookmarkManagerMediator}. */
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(shadows = {ShadowPostTask.class})
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS
-})
+@EnableFeatures(ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)
 // TODO(crbug.com/327387704): Add tests with this flag enabled.
 @DisableFeatures(ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP)
 public class BookmarkManagerMediatorTest {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkPaneUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkPaneUnitTest.java
index 516938f..7bbb647ab 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkPaneUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkPaneUnitTest.java
@@ -38,7 +38,6 @@
 import org.chromium.chrome.browser.ui.favicon.FaviconHelperJni;
 import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
 import org.chromium.components.signin.identitymanager.IdentityManager;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.ui.base.TestActivity;
 
@@ -48,8 +47,7 @@
 @RunWith(BaseRobolectricTestRunner.class)
 @EnableFeatures({
     ChromeFeatureList.BOOKMARK_PANE_ANDROID,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS,
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE
+    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS
 })
 @DisableFeatures({ChromeFeatureList.UNO_PHASE_2_FOLLOW_UP})
 public class BookmarkPaneUnitTest {
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
index 0a6fbdb..85080b47 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkUtilsTest.java
@@ -28,7 +28,6 @@
 import org.chromium.base.Callback;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.base.test.util.Batch;
-import org.chromium.base.test.util.Features.EnableFeatures;
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
 import org.chromium.chrome.browser.commerce.ShoppingServiceFactoryJni;
@@ -51,7 +50,6 @@
 import org.chromium.components.profile_metrics.BrowserProfileType;
 import org.chromium.components.signin.base.CoreAccountInfo;
 import org.chromium.components.signin.identitymanager.IdentityManager;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.ui.base.TestActivity;
 import org.chromium.url.GURL;
 
@@ -59,7 +57,6 @@
 @Batch(Batch.UNIT_TESTS)
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(manifest = Config.NONE)
-@EnableFeatures(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE)
 public class BookmarkUtilsTest {
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfoTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfoTest.java
index 3564e67..b305711 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfoTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunAppRestrictionInfoTest.java
@@ -31,9 +31,10 @@
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.CommandLineFlags;
 import org.chromium.base.test.util.PayloadCallbackHelper;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
 import org.chromium.components.policy.PolicySwitches;
 
-/** Unit test for {@link FirstRunAppRestrictionInfo}. */
+/** Unit test for {@link AppRestrictionSupplier}. */
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(
         manifest = Config.NONE,
@@ -86,8 +87,7 @@
 
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
-                    FirstRunAppRestrictionInfo info =
-                            FirstRunAppRestrictionInfo.takeMaybeInitialized();
+                    AppRestrictionSupplier info = AppRestrictionSupplier.takeMaybeInitialized();
                     info.getHasAppRestriction(appResCallbackHelper::notifyCalled);
                     info.getCompletionElapsedRealtimeMs(
                             (ignored) -> completionCallbackHelper.notifyCalled());
@@ -112,8 +112,7 @@
         mPauseDuringPostTask = true;
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
-                    FirstRunAppRestrictionInfo info =
-                            FirstRunAppRestrictionInfo.takeMaybeInitialized();
+                    AppRestrictionSupplier info = AppRestrictionSupplier.takeMaybeInitialized();
                     info.getHasAppRestriction(appResCallbackHelper1::notifyCalled);
                     info.getHasAppRestriction(appResCallbackHelper2::notifyCalled);
                     info.getHasAppRestriction(appResCallbackHelper3::notifyCalled);
@@ -171,8 +170,7 @@
 
         ThreadUtils.runOnUiThreadBlocking(
                 () -> {
-                    FirstRunAppRestrictionInfo info =
-                            FirstRunAppRestrictionInfo.takeMaybeInitialized();
+                    AppRestrictionSupplier info = AppRestrictionSupplier.takeMaybeInitialized();
                     info.getHasAppRestriction(appResCallbackHelper::notifyCalled);
                     info.getCompletionElapsedRealtimeMs(
                             (ignored) -> completionCallbackHelper.notifyCalled());
@@ -198,7 +196,7 @@
         final PayloadCallbackHelper<Boolean> appResCallbackHelper = new PayloadCallbackHelper<>();
         ThreadUtils.runOnUiThreadBlocking(
                 () ->
-                        FirstRunAppRestrictionInfo.takeMaybeInitialized()
+                        AppRestrictionSupplier.takeMaybeInitialized()
                                 .getHasAppRestriction(appResCallbackHelper::notifyCalled));
         Assert.assertTrue(appResCallbackHelper.getOnlyPayloadBlocking());
     }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java
index 6505862..d8db87b 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencerTest.java
@@ -33,6 +33,8 @@
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.profiles.ProfileProvider;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
+import org.chromium.chrome.browser.signin.ChildAccountStatusSupplier;
 import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
 import org.chromium.chrome.browser.sync.SyncServiceFactory;
 import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper;
@@ -86,7 +88,7 @@
                     profileSupplier,
                     new ChildAccountStatusSupplier(
                             AccountManagerFacadeProvider.getInstance(),
-                            FirstRunAppRestrictionInfo.takeMaybeInitialized()));
+                            AppRestrictionSupplier.takeMaybeInitialized()));
         }
 
         @Override
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListenerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListenerUnitTest.java
index 17b3792..d03480d 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListenerUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListenerUnitTest.java
@@ -34,6 +34,9 @@
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo;
 import org.chromium.chrome.browser.enterprise.util.EnterpriseInfo.OwnedState;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
+import org.chromium.chrome.browser.signin.PolicyLoadListener;
+import org.chromium.chrome.browser.signin.PolicyLoadListenerUnitTest;
 import org.chromium.components.policy.PolicyService;
 
 /**
@@ -360,8 +363,7 @@
     @Test
     public void testCreateAndOwnPolicyLoadListener()
             throws NoSuchFieldException, IllegalAccessException {
-        FirstRunAppRestrictionInfo mockAppRestrictionInfo =
-                Mockito.mock(FirstRunAppRestrictionInfo.class);
+        AppRestrictionSupplier mockAppRestrictionInfo = Mockito.mock(AppRestrictionSupplier.class);
         OneshotSupplier<PolicyService> mockSupplier =
                 (OneshotSupplier<PolicyService>) Mockito.mock(OneshotSupplier.class);
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidatorUnitTest.java
index 850b86d..a54ee62 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidatorUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidatorUnitTest.java
@@ -28,6 +28,7 @@
 import org.chromium.base.Callback;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.chrome.browser.policy.PolicyServiceFactory;
+import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
 import org.chromium.components.policy.PolicyService;
 
 /** Unit test for {@link TosDialogBehaviorSharedPrefInvalidator}. */
@@ -35,7 +36,7 @@
 @Config(manifest = Config.NONE)
 public class TosDialogBehaviorSharedPrefInvalidatorUnitTest {
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
-    @Mock public FirstRunAppRestrictionInfo mMockAppRestrictionInfo;
+    @Mock public AppRestrictionSupplier mMockAppRestrictionInfo;
     @Mock public PolicyService mMockPolicyService;
     @Mock public SkipTosDialogPolicyListener mMockPolicyListener;
 
@@ -49,7 +50,7 @@
         Mockito.doReturn(null).when(mMockPolicyListener).get();
 
         FirstRunStatus.setFirstRunSkippedByPolicy(false);
-        FirstRunAppRestrictionInfo.setInitializedInstanceForTest(mMockAppRestrictionInfo);
+        AppRestrictionSupplier.setInitializedInstanceForTest(mMockAppRestrictionInfo);
         PolicyServiceFactory.setPolicyServiceForTest(mMockPolicyService);
     }
 
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplierTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplierTest.java
similarity index 87%
rename from chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplierTest.java
rename to chrome/android/junit/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplierTest.java
index 221e051..a663111 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplierTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/ChildAccountStatusSupplierTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.firstrun;
+package org.chromium.chrome.browser.signin;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -48,7 +48,7 @@
     @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     @Captor public ArgumentCaptor<Callback<Boolean>> mCallbackCaptor;
-    @Mock private FirstRunAppRestrictionInfo mFirstRunAppRestrictionInfoMock;
+    @Mock private AppRestrictionSupplier mAppRestrictionSupplierMock;
 
     @Test
     public void testNoAccounts() {
@@ -57,7 +57,7 @@
                 mAccountManagerFacade.blockGetCoreAccountInfos(/* populateCache= */ false)) {
             supplier =
                     new ChildAccountStatusSupplier(
-                            mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                            mAccountManagerFacade, mAppRestrictionSupplierMock);
             shadowOf(Looper.getMainLooper()).idle();
             // Supplier shouldn't be set and should not record any histograms until it can obtain
             // the list of accounts from AccountManagerFacade.
@@ -81,8 +81,7 @@
         mAccountManagerTestRule.addAccount(TestAccounts.CHILD_ACCOUNT);
 
         ChildAccountStatusSupplier supplier =
-                new ChildAccountStatusSupplier(
-                        mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                new ChildAccountStatusSupplier(mAccountManagerFacade, mAppRestrictionSupplierMock);
         shadowOf(Looper.getMainLooper()).idle();
 
         assertTrue(supplier.get());
@@ -97,8 +96,7 @@
         mAccountManagerTestRule.addAccount(ADULT_ACCOUNT_EMAIL);
 
         ChildAccountStatusSupplier supplier =
-                new ChildAccountStatusSupplier(
-                        mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                new ChildAccountStatusSupplier(mAccountManagerFacade, mAppRestrictionSupplierMock);
         shadowOf(Looper.getMainLooper()).idle();
 
         assertFalse(supplier.get());
@@ -114,8 +112,7 @@
         mAccountManagerTestRule.addAccount(ADULT_ACCOUNT_EMAIL);
 
         ChildAccountStatusSupplier supplier =
-                new ChildAccountStatusSupplier(
-                        mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                new ChildAccountStatusSupplier(mAccountManagerFacade, mAppRestrictionSupplierMock);
         shadowOf(Looper.getMainLooper()).idle();
 
         assertTrue(supplier.get());
@@ -132,11 +129,11 @@
         try (var ignored =
                 mAccountManagerFacade.blockGetCoreAccountInfos(/* populateCache= */ false)) {
             doNothing()
-                    .when(mFirstRunAppRestrictionInfoMock)
+                    .when(mAppRestrictionSupplierMock)
                     .getHasAppRestriction(mCallbackCaptor.capture());
             ChildAccountStatusSupplier supplier =
                     new ChildAccountStatusSupplier(
-                            mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                            mAccountManagerFacade, mAppRestrictionSupplierMock);
             shadowOf(Looper.getMainLooper()).idle();
             assertNull(supplier.get());
 
@@ -161,11 +158,11 @@
         try (var ignored =
                 mAccountManagerFacade.blockGetCoreAccountInfos(/* populateCache= */ false)) {
             doCallback((Callback<Boolean> callback) -> callback.onResult(true))
-                    .when(mFirstRunAppRestrictionInfoMock)
+                    .when(mAppRestrictionSupplierMock)
                     .getHasAppRestriction(any());
             supplier =
                     new ChildAccountStatusSupplier(
-                            mAccountManagerFacade, mFirstRunAppRestrictionInfoMock);
+                            mAccountManagerFacade, mAppRestrictionSupplierMock);
             shadowOf(Looper.getMainLooper()).idle();
             // Since app restrictions were found - ChildAccountSupplier should wait for status from
             // AccountManagerFacade, so the status shouldn't be available yet.
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/PolicyLoadListenerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/signin/PolicyLoadListenerUnitTest.java
similarity index 98%
rename from chrome/android/junit/src/org/chromium/chrome/browser/firstrun/PolicyLoadListenerUnitTest.java
rename to chrome/android/junit/src/org/chromium/chrome/browser/signin/PolicyLoadListenerUnitTest.java
index 41ed91a8..2b031e8 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/firstrun/PolicyLoadListenerUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/PolicyLoadListenerUnitTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package org.chromium.chrome.browser.firstrun;
+package org.chromium.chrome.browser.signin;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -51,7 +51,7 @@
 
     @Spy public Callback<Boolean> mListener;
     @Mock public PolicyService mPolicyService;
-    @Mock public FirstRunAppRestrictionInfo mTestAppRestrictionInfo;
+    @Mock public AppRestrictionSupplier mTestAppRestrictionInfo;
 
     private PolicyService.Observer mPolicyServiceObserver;
     private Callback<Boolean> mAppRestrictionsCallback;
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd
index 7a51150..1851378 100644
--- a/chrome/app/chromium_strings.grd
+++ b/chrome/app/chromium_strings.grd
@@ -2219,47 +2219,6 @@
         Continue
       </message>
 
-      <!-- Privacy Sandbox Dialog strings -->
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE" desc="A subtitle on the consent page. Consider this a tagline for the Privacy Sandbox project.* “exploring” conveys that this is a work in progress. * “new features” include settings that the user can turn on/off and also backend features that change the way Chrome works for everyone * “allow sites to deliver”: Privacy Sandbox is proposed by Google as a collaborative effort with the browser industry. We’re building and testing functionality that will live in the Chrome browser. In order to land the full promise of Privacy Sandbox, websites and advertisers need to adopt the new APIs / functionality that we’re developing. So “allow sites…” makes it clear to the user that we’re building something for the ecosystem. Typically a Google product builds something for the user, and that’s true in this case, but it’s bigger than that. * “same browsing experience using less of your info”: Another definition of the promise of Privacy Sandbox. Third-party cookies are going away. In this new world, the user will have essentially the same browsing experience but it’s more private because it doesn’t expose so much of the user’s info.">
-        Chromium is exploring new features that allow sites to deliver the same browsing experience using less of your info
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2" desc="A paragraph beneath the “More control over the ads you see” subtitle. * “see and remove topics of interests”: we want to stress the element of control * “estimate topics”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “recent browsing history”: Later in the UI, we define this as “a record of sites you’ve visited using Chrome on this device.” By “recent”, we mean the last 3 weeks (also defined later in the UI).">
-        You can see and remove topics of interest sites use to show you ads. Chromium estimates your interests based on your recent browsing history.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL" desc="Learn more link * Unfolds content within the page * The text that appears describes 2 ways in which a site can target ads: the “Topics API” and the “FLEDGE API”. You can see what those are at www.privacysanbox.com or they’re described for the user’s benefit in other text. * “ad personalization” can mean different things in different contexts. Here, we’re using it as a simple noun. In other words, it’s not the name of a control but a descriptive term used to describe the personalization of ads in the Chrome browser. This “ad personalization” shouldn’t be confused with the setting in the Google Account called “Ad personalization”.">
-        Learn more about ad personalization in Chromium
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER" desc="TOPICS API A sub title that describes the first of 2 ways a site can get info from Chromium in order to target ads to the user. Topics of interest include things like “Live comedy” and “Rock music”. Chromium estimates these interests based on the sites users visit. * “Your”: we need to convey a sense of ownership, even if the user didn’t explicitly choose the interests we’re talking about. Without the “your”, it could sound like Chromium is simply building a generic library of interests. * “estimated”: It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “by Chromium”: This is new behavior for a browser (Chromium) to take an active role in processing user data for the purposes of showing ads. It’s important to convey “Chromium”, the actor in this case.">
-        Your interests as estimated by Chromium
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1" desc="TOPICS API Bullet 1 of 3 that appear beneath the “Your interests as estimated by Chromium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The user’s browsing history is available beneath the “History” menu at Chromium’s top level. The Topics API estimates topics of interest based on sites in the user’s browsing history that are participating in the trials.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites you’ve visited using Chromium on this device.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2" desc="TOPICS API Bullet 2 of 3 that appear beneath the “Your interests as estimated by Chromium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Chromium estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”).">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Chromium can estimate your interests. Later, a site you visit can ask Chromium to see your interests in order to personalize the ads you see.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3" desc="TOPICS API Bullet 3 of 3 that appear beneath the “Your interests as estimated by Chromium” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How you can manage your data:” is bold and serves as a label to help people skimming the page. * “To protect your privacy”: Today, most data is kept for long periods of time. This new Topics API doesn’t retain estimated topics for more than 3 weeks. The only reason for this feature is to protect the user’s privacy. * “auto”: isn’t strictly necessary, but it conveys that this feature is an ongoing part of the service. This isn’t describing, for example, a one-time deletion. * “older than 3 weeks”: We’re trying to convey a rolling delete. Imagine a user opens a browser for the very first time. As the user browses, Chromium will estimate up to 5 topics of interest in the first week. In the second week, Chromium will estimate up to 5 additional topics of interest. The same for the third week, for a total of 15 potential interests. In week 4, Chromium will automatically delete the 5 interests from week 1 so that there aren’t ever more than 15 topics associated with a user at any given time. * “interests can refresh”: If a user loves horror films and reads about them for months on end, the interest “Horror movies” might get deleted and refreshed in the same week, so that “Horror movies” doesn’t ever disappear from the user’s list of interests. * “Or you can…”: A user might love horror movies but can’t stand the idea of seeing ads about horror movies (because even the visuals will ruin the surprise of opening night). In this case, the user can remove “Horror movies” from the list of interests Chromium will consider. This removal remains in place indefinitely. Note that the user might still see ads about Horror movies from different ad networks or by other means than Chromium’s “Browser-based ad personalization” setting.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How you can manage your data:<ph name="END_BOLD">&lt;/b&gt;</ph> To protect your privacy, we auto-delete your interests that are older than 4 weeks. As you keep browsing, an interest might appear on the list again. Or you can remove interests you don’t want Chromium to consider.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1" desc="FLEDGE APIBullet 1 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The user’s browsing history is available beneath the “History” menu at Chromium’s top level. This content taken in isolation is somewhat misleading. With FLEDGE, a site can store information in Chromium about the user’s visit to their site. For example, the site might store “running_shoes_red_size_35” to indicate that the user showed interest in a particular shoe. We’re OK with the simplification in this bullet because 1) we explain it in the next bullet and 2) we want the user to understand that at the top level, both Topics &amp; Fledge are based on the same thing and that is the user’s browsing history.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites you’ve visited using Chromium on this device.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2" desc="FLEDGE API Bullet 2 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Sites can store information with Chromium about your interests. For example, if you visit a site to buy shoes for a marathon, the site might define your interest as running marathons. Later, if you visit a different site to register for a race, that site can show you an ad for running shoes based on your interests.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but it’s no more associated with that topic than “Limit sharing between sites”. * “You can change your mind”: When writing a consent moment, we have a legal obligation to inform the user how they can “revoke their consent” or “opt out”. A friendlier way to say this is “change your mind”. * “in Chrome settings”: The URL is chrome://settings/privacySandbox. We don’t make it a live link because we need the users to stay in this moment until they make a choice. * “The trials run alongside…”: The trials happen in addition to today’s current system based on third-party cookies. In other words, even by accepting in this consent moment, the user’s core experience doesn’t change much. This is an experiment, and we need the user to understand as much. ">
-        You can change your mind at any time in Chromium settings. The trials run alongside the current way ads get served, so you won’t see changes right away.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE" desc="A subtitle on the consent page. Consider this a tagline for the Privacy Sandbox project.* “exploring” conveys that this is a work in progress. * “new features” include settings that the user can turn on/off and also backend features that change the way Chrome works for everyone * “allow sites to deliver”: Privacy Sandbox is proposed by Google as a collaborative effort with the browser industry. We’re building and testing functionality that will live in the Chrome browser. In order to land the full promise of Privacy Sandbox, websites and advertisers need to adopt the new APIs / functionality that we’re developing. So “allow sites…” makes it clear to the user that we’re building something for the ecosystem. Typically a Google product builds something for the user, and that’s true in this case, but it’s bigger than that. * “same browsing experience using less of your info”: Another definition of the promise of Privacy Sandbox. Third-party cookies are going away. In this new world, the user will have essentially the same browsing experience but it’s more private because it doesn’t expose so much of the user’s info.">
-        Chromium is exploring new features that allow sites to deliver the same browsing experience using less of your info
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2" desc="A paragraph beneath the “More control over the ads you see” subtitle.* “During the trials”: The trials happens in addition to today’s current system based on third-party cookies. In other words, even by agreeing to or remaining in a trial,, the user’s core experience doesn’t change much. This is an experiment, and we need the user to understand as much. * “see and remove topics of interests”: we want to stress the element of control * “estimate topics”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “recent browsing history”: Later in the UI, we define this as “a record of sites you’ve visited using Chrome on this device.” By “recent”, we mean the last 3 weeks (also defined later in the UI).">
-        During the trials, you can see and remove topics of interest sites use to show you ads. Chromium estimates your interests based on your recent browsing history.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but it’s no more associated with that topic than “Limit sharing between sites”. * “in Chrome settings”: The URL is chrome://settings/privacySandbox. We don’t make it a live link because we need the users to stay in this moment until they make a choice.">
-        You can learn more about these features in Chromium settings.
-      </message>
-
       <!-- Advanced security settings -->
       <message name="IDS_SETTINGS_SECURITY_V8_LINK_DESCRIPTION" desc="Description for the link row of the V8 security settings page.">
         Turn on additional protection in Chromium’s JavaScript and WebAssembly engine
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index c526e5c6..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f0d647258304f405a14f41f3a7abb2b06ecb1fd9
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1
deleted file mode 100644
index 28adee9..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1862062fb7efbe7d9a2eaafb585ba0c5fbf3c42
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1 b/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/chromium_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 54df9c25..a053b76 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -18265,62 +18265,6 @@
       </message>
     </if>
 
-    <!-- Privacy Sandbox Dialog strings -->
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_TITLE" desc="CONTEXT: there are updates to the Chrome browser each month. Just after the user accepts the latest update, this message will appear. The user must make a choice, and this page can’t be dismissed until they do. The title of the page. * The title needs to be framed so that clicking the accept button makes sense * “Help us” is intended to convey a sense of collaboration. Privacy Sandbox is an ongoing multi-year effort. There are sites participating to help us and we also need users to agree to these trials so that we can measure the effectiveness of the features we're building. * “build” is intended to convey that this is a process. The user is agreeing to an effort rather than a stable set of features. Something like “make” doesn't have the same nuance.* “private web” is the promise of privacy sandbox.">
-      Help us build a more private web
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_TITLE" desc="CONTEXT: there are updates to the Chrome browser each month. Just after the user accepts the latest update, this message will appear. The title of the page. * “Help us” is intended to convey a sense of collaboration. Privacy Sandbox is an ongoing multi-year effort. There are sites participating to help us and we also need users to agree to these trials so that we can measure the effectiveness of the features we're building. * “build” is intended to convey that this is a process. The user is agreeing to an effort rather than a stable set of features. Something like “make” doesn't have the same nuance. * See www.privacysandbox.com for more context">
-      Help us build a better web
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_1"  desc="1 of 2 subtitles on the page. We want to write for users who skim the page. That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) More control over the ads you see 4) Yes, I’ll try it">
-      Limited sharing between sites
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION" desc="The body text of the bubble.* “Chrome is finding new ways”: “finding” is meant to convey a work in progress, like “build” in the title. The features are live and functional, but still in beta. So we want a verb that’s stronger than “exploring” but weaker than “launching”. * “reduce tracking”: This used to read “reduce cross-site tracking”, but we’ve dropped “cross-site” because it makes the idea unnecessarily complicated. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “Then” is an important keyword. It suggests some amount of time later. The first step is that interests are generated. Later (minutes or weeks), a different site might request interests.">
-      Chrome is finding new ways to reduce tracking and keep you even safer as you browse. Chrome also <ph name="ESTIMATE_INTERESTS_LINK">$1<ex>estimates your interests</ex></ph> and enables you to manage them. Then, sites you visit can ask Chrome for your interests to show you ads.
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_SETTINGS_LINK" desc="The user can choose “Go to settings” to visit chrome://settings/privacySandbox. If they do, they’ll find the toggle on for Sandbox trials, which include everything they’ve read above. They can leave trials on or turn them off on this page. Choosing “Go to settings”, the user will navigate away from this page and won’t be able to return here.">
-      Go to settings
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK" desc="This will be inserted as a link in IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION instead of ESTIMATE_INTERESTS_LINK placeholder. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). ">
-      estimates your interests
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK_A11Y_NAME" desc="The accessible text read for IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). ">
-      estimates your interests - Chrome can estimate your interests
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_1" desc="The description beneath the “Limited sharing between sites” subtitle. * “exploring” conveys that this is a work in progress. * “restrict” means to lessen. We don’t want to suggest that we’re “eliminating” cross-site tracking. * “tracking”: An example: a user visits site A and then site B. Based on how third-party cookies work today, when that user later visits site C, site C can be aware that the user visited sites A and B, and can even have some sense for what they did on those sites. * “stop ad spam and fraud”:  This feature isn’t really related to restricting cross-site tracking but we combined these features in the same sentence / section for structural reasons.">
-      We’re exploring ways to restrict tracking while enabling sites to stop ad spam and fraud.
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_2" desc="2 of 2 subtitles on the page.That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) More control over the ads you see 4) Yes, I’ll try it">
-      More control over the ads you see
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_HEADER" desc="FLEDGE API. A sub title that describes the second of 2 ways a site can get info from Chrome in order to target ads to the user.">
-      Sites you visit that define your interests
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_3"  desc="FLEDGE API Bullet 3 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How you can manage your data:” is bold and serves as a label to help people skimming the page. * “To protect your privacy”: Today, most data is kept for long periods of time. This new Topics API doesn’t retain estimated topics for more than 3 weeks. The only reason for this feature is to protect the user’s privacy. * “auto”: isn’t strictly necessary, but it conveys that this feature is an ongoing part of the service. This isn’t describing, for example, a one-time deletion. * “older than 4 weeks”: We’re trying to convey a rolling delete. Imagine a user opens a browser for the very first time. As the user browses, sites can store info with Chrome for up to 4 weeks. So in week 1, the user visits site A. When week 5 starts, site A is removed from the list of sites. * “a site you visit…”: If a user visits site A every week for months on end, that site will remain on the user’s list of sites for months on end. * “Or you can…”: Say a user strongly dislikes www.siteB.com. But that user might visit siteB.com as part of their job, or just to see how bad it really is. The user can stop siteB from defining interests for them. This block lasts indefinitely.">
-      <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How you can manage your data:<ph name="END_BOLD">&lt;/b&gt;</ph> To protect your privacy, we auto-delete sites from the list that are older than 4 weeks. A site you visit again might appear on the list again. Or you can remove a site if you don’t want that site to ever define interests for you.
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_ACCEPT_BUTTON" desc="A button that allows the user to accept joining the Privacy Sandbox trials. If the user chooses “Yes, I’m in”: 1)  this consent page disappears and the flow is complete 2) The Privacy Sandbox trials are turned on for this user. These features include everything described above. The page that hosts the settings will appear at chrome://settings/privacySandbox. Saying “Yes, I’m in” is like turning the toggle on. “No thanks” is like keeping the toggle off.">
-      Yes, I’m in
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_DECLINE_BUTTON" desc="A button that allows the user to decline joining the Privacy Sandbox trials. If the user chooses “No thanks” this consent page disappears and the flow is complete.">
-      No thanks
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_1" desc="1 of 2 subtitles on the page. We want to write for users who skim the page. That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) Try more transparent ads 4) Yes, I’ll try it">
-      Limited sharing between sites
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_1" desc="* “restrict” means to lessen. We don’t want to suggest that we’re “eliminating” cross-site tracking. * “cross-site tracking”: An example: a user visits site A and then site B. Based on how third-party cookies work today, when that user later visits site C, site C can be aware that the user visited sites A and B, and can even have some sense for what they did on those sites. * “stop ad spam and fraud”:  This feature isn’t really related to restricting cross-site tracking but we combined these features in the same sentence / section for structural reasons.">
-      We’re exploring ways to restrict cross-site tracking while enabling sites to stop ad spam and fraud.
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_2" desc="2 of 2 subtitles on the page.That means that the page title, the sub titles, and the button label all work well together as a mini story: 1) Help us build a more private web How? 2) Limit sharing between sites 3) More control over the ads you see 4) Yes, I’ll try it">
-      More control over the ads you see
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_ACKNOWLEDGE_BUTTON" desc="The user can acknowledge the changes with “Got it”. This consent page disappears and the flow is complete.">
-      Got it
-    </message>
-    <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON" desc="The user can choose “Settings” to visit chrome://settings/privacySandbox. If they do, they’ll find the toggle on for Sandbox trials, which include everything they’ve read above. They can leave trials on or turn them off on this page. Choosing “Settings”, the user will navigate away from this page and won’t be able to return here.">
-      Settings
-    </message>
-
     <!-- Battery Saver Toolbar strings  -->
     <if expr="not is_android">
       <message name="IDS_BATTERY_SAVER_BUTTON_TOOLTIP" desc="The tooltip for the battery saver toolbar button">
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION.png.sha1
deleted file mode 100644
index 439bf40..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6ba94d5feb79c3f422a4db78e42595211d8a4c3a
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK.png.sha1
deleted file mode 100644
index b8a6c5d..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff7a1754ecdd3a4ecc3032fbb24bd9f4b71996ca
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK_A11Y_NAME.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK_A11Y_NAME.png.sha1
deleted file mode 100644
index b8a6c5d..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_DESCRIPTION_ESTIMATES_INTERESTS_LINK_A11Y_NAME.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff7a1754ecdd3a4ecc3032fbb24bd9f4b71996ca
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_SETTINGS_LINK.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_SETTINGS_LINK.png.sha1
deleted file mode 100644
index b8a6c5d..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_SETTINGS_LINK.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff7a1754ecdd3a4ecc3032fbb24bd9f4b71996ca
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_TITLE.png.sha1
deleted file mode 100644
index b8a6c5d..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_BUBBLE_NOTICE_TITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff7a1754ecdd3a4ecc3032fbb24bd9f4b71996ca
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_ACCEPT_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_ACCEPT_BUTTON.png.sha1
deleted file mode 100644
index 28adee9..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_ACCEPT_BUTTON.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1862062fb7efbe7d9a2eaafb585ba0c5fbf3c42
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_1.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_1.png.sha1
deleted file mode 100644
index c526e5c6..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f0d647258304f405a14f41f3a7abb2b06ecb1fd9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_1.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_1.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_2.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_2.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_DECLINE_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_DECLINE_BUTTON.png.sha1
deleted file mode 100644
index 28adee9..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_DECLINE_BUTTON.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1862062fb7efbe7d9a2eaafb585ba0c5fbf3c42
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_3.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_3.png.sha1
deleted file mode 100644
index 630079d3..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_3.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f01dadb69b9ebfacee11d1a0d561c15e1f39b933
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_HEADER.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_HEADER.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_HEADER.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_TITLE.png.sha1
deleted file mode 100644
index 28adee9..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_TITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1862062fb7efbe7d9a2eaafb585ba0c5fbf3c42
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_ACKNOWLEDGE_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_ACKNOWLEDGE_BUTTON.png.sha1
deleted file mode 100644
index 39673838..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_ACKNOWLEDGE_BUTTON.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ab18754f4a13ac43c2518e251d3c1ad7a80515f9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_1.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_1.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_1.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_1.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_2.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_2.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON.png.sha1 b/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON.png.sha1
deleted file mode 100644
index 39673838..0000000
--- a/chrome/app/generated_resources_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ab18754f4a13ac43c2518e251d3c1ad7a80515f9
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd
index a4174e3..fc50ccb 100644
--- a/chrome/app/google_chrome_strings.grd
+++ b/chrome/app/google_chrome_strings.grd
@@ -2399,47 +2399,6 @@
         Continue
       </message>
 
-      <!-- Privacy Sandbox Dialog strings -->
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE" desc="A subtitle on the consent page. Consider this a tagline for the Privacy Sandbox project. * “exploring” conveys that this is a work in progress. * “new features” include settings that the user can turn on/off and also backend features that change the way Chrome works for everyone * “allow sites to deliver”: Privacy Sandbox is proposed by Google as a collaborative effort with the browser industry. We’re building and testing functionality that will live in the Chrome browser. In order to land the full promise of Privacy Sandbox, websites and advertisers need to adopt the new APIs / functionality that we’re developing. So “allow sites…” makes it clear to the user that we’re building something for the ecosystem. Typically a Google product builds something for the user, and that’s true in this case, but it’s bigger than that. * “same browsing experience using less of your info”: Another definition of the promise of Privacy Sandbox. Third-party cookies are going away. In this new world, the user will have essentially the same browsing experience but it’s more private because it doesn’t expose so much of the user’s info.">
-        Chrome is exploring new features that allow sites to deliver the same browsing experience using less of your info
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2" desc="A paragraph beneath the “More control over the ads you see” subtitle. * “see and remove topics of interests”: we want to stress the element of control * “estimate topics”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “recent browsing history”: Later in the UI, we define this as “a record of sites you’ve visited using Chrome on this device.” By “recent”, we mean the last 3 weeks (also defined later in the UI).">
-        You can see and remove topics of interest sites use to show you ads. Chrome estimates your interests based on your recent browsing history.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL" desc="Learn more link * Unfolds content within the page * The text that appears describes 2 ways in which a site can target ads: the “Topics API” and the “FLEDGE API”. You can see what those are at www.privacysanbox.com or they’re described for the user’s benefit in other text. * “ad personalization” can mean different things in different contexts. Here, we’re using it as a simple noun. In other words, it’s not the name of a control but a descriptive term used to describe the personalization of ads in the Chrome browser. This “ad personalization” shouldn’t be confused with the setting in the Google Account called “Ad personalization”.">
-        Learn more about ad personalization in Chrome
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER" desc="TOPICS API A sub title that describes the first of 2 ways a site can get info from Chrome in order to target ads to the user. Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. * “Your”: we need to convey a sense of ownership, even if the user didn’t explicitly choose the interests we’re talking about. Without the “your”, it could sound like Chrome is simply building a generic library of interests. * “estimated”: It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “by Chrome”: This is new behavior for a browser (Chrome) to take an active role in processing user data for the purposes of showing ads. It’s important to convey “chrome”, the actor in this case.">
-        Your interests as estimated by Chrome
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1" desc="TOPICS API Bullet 1 of 3 that appear beneath the “Your interests as estimated by Chrome” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The user’s browsing history is available beneath the “History” menu at Chrome’s top level. The Topics API estimates topics of interest based on sites in the user’s browsing history that are participating in the trials.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites you’ve visited using Chrome on this device.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2" desc="TOPICS API Bullet 2 of 3 that appear beneath the “Your interests as estimated by Chrome” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page. * “estimate your interests”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”).">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Chrome can estimate your interests. Later, a site you visit can ask Chrome to see your interests in order to personalize the ads you see.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3" desc="TOPICS API Bullet 3 of 3 that appear beneath the “Your interests as estimated by Chrome” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How you can manage your data:” is bold and serves as a label to help people skimming the page. * “To protect your privacy”: Today, most data is kept for long periods of time. This new Topics API doesn’t retain estimated topics for more than 3 weeks. The only reason for this feature is to protect the user’s privacy. * “auto”: isn’t strictly necessary, but it conveys that this feature is an ongoing part of the service. This isn’t describing, for example, a one-time deletion. * “older than 3 weeks”: We’re trying to convey a rolling delete. Imagine a user opens a browser for the very first time. As the user browses, Chrome will estimate up to 5 topics of interest in the first week. In the second week, Chrome will estimate up to 5 additional topics of interest. The same for the third week, for a total of 15 potential interests. In week 4, Chrome will automatically delete the 5 interests from week 1 so that there aren’t ever more than 15 topics associated with a user at any given time. * “interests can refresh”: If a user loves horror films and reads about them for months on end, the interest “Horror movies” might get deleted and refreshed in the same week, so that “Horror movies” doesn’t ever disappear from the user’s list of interests. * “Or you can…”: A user might love horror movies but can’t stand the idea of seeing ads about horror movies (because even the visuals will ruin the surprise of opening night). In this case, the user can remove “Horror movies” from the list of interests Chrome will consider. This removal remains in place indefinitely. Note that the user might still see ads about Horror movies from different ad networks or by other means than Chrome’s “Browser-based ad personalization” setting.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How you can manage your data:<ph name="END_BOLD">&lt;/b&gt;</ph> To protect your privacy, we auto-delete your interests that are older than 4 weeks. As you keep browsing, an interest might appear on the list again. Or you can remove interests you don’t want Chrome to consider.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1" desc="FLEDGE APIBullet 1 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “What data is used:” is bold and serves as a label to help people skimming the page. * “Your browsing history”: The user’s browsing history is available beneath the “History” menu at Chrome’s top level. This content taken in isolation is somewhat misleading. With FLEDGE, a site can store information in Chrome about the user’s visit to their site. For example, the site might store “running_shoes_red_size_35” to indicate that the user showed interest in a particular shoe. We’re OK with the simplification in this bullet because 1) we explain it in the next bullet and 2) we want the user to understand that at the top level, both Topics &amp; Fledge are based on the same thing and that is the user’s browsing history.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>What data is used:<ph name="END_BOLD">&lt;/b&gt;</ph> Your browsing history, a record of sites you’ve visited using Chrome on this device.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2" desc="FLEDGE API Bullet 2 of 3 that appear beneath the “Sites you visit that define your interests” subtitle. We break the description into the 3 pieces users most care about: 1) what data, 2) why this data, 3) what can I do about it? * “How we use this data:” is bold and serves as a label to help people skimming the page.">
-        <ph name="BEGIN_BOLD">&lt;b&gt;</ph>How we use this data:<ph name="END_BOLD">&lt;/b&gt;</ph> Sites can store information with Chrome about your interests. For example, if you visit a site to buy shoes for a marathon, the site might define your interest as running marathons. Later, if you visit a different site to register for a race, that site can show you an ad for running shoes based on your interests.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but it’s no more associated with that topic than “Limit sharing between sites”. * “You can change your mind”: When writing a consent moment, we have a legal obligation to inform the user how they can “revoke their consent” or “opt out”. A friendlier way to say this is “change your mind”. * “in Chrome settings”: The URL is chrome://settings/privacySandbox. We don’t make it a live link because we need the users to stay in this moment until they make a choice. * “The trials run alongside…”: The trials happen in addition to today’s current system based on third-party cookies. In other words, even by accepting in this consent moment, the user’s core experience doesn’t change much. This is an experiment, and we need the user to understand as much. ">
-        You can change your mind at any time in Chrome settings. The trials run alongside the current way ads get served, so you won’t see changes right away.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE" desc="A subtitle on the consent page. Consider this a tagline for the Privacy Sandbox project. * “exploring” conveys that this is a work in progress. * “new features” include settings that the user can turn on/off and also backend features that change the way Chrome works for everyone * “allow sites to deliver”: Privacy Sandbox is proposed by Google as a collaborative effort with the browser industry. We’re building and testing functionality that will live in the Chrome browser. In order to land the full promise of Privacy Sandbox, websites and advertisers need to adopt the new APIs / functionality that we’re developing. So “allow sites…” makes it clear to the user that we’re building something for the ecosystem. Typically a Google product builds something for the user, and that’s true in this case, but it’s bigger than that. * “same browsing experience using less of your info”: Another definition of the promise of Privacy Sandbox. Third-party cookies are going away. In this new world, the user will have essentially the same browsing experience but it’s more private because it doesn’t expose so much of the user’s info.">
-        Chrome is exploring new features that allow sites to deliver the same browsing experience using less of your info
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2" desc="A paragraph beneath the “More control over the ads you see” subtitle. * “During the trials”: The trials happens in addition to today’s current system based on third-party cookies. In other words, even by agreeing to or remaining in a trial,, the user’s core experience doesn’t change much. This is an experiment, and we need the user to understand as much. * “see and remove topics of interests”: we want to stress the element of control * “estimate topics”: Topics of interest include things like “Live comedy” and “Rock music”. Chrome estimates these interests based on the sites users visit. It’s an “estimation”, and we don’t want to suggest that we know with certainty the user’s interests. Avoid words like “guess”, “establish”, “define”, etc. (in place of “estimate”). * “recent browsing history”: Later in the UI, we define this as “a record of sites you’ve visited using Chrome on this device.” By “recent”, we mean the last 3 weeks (also defined later in the UI).">
-        During the trials, you can see and remove topics of interest sites use to show you ads. Chrome estimates your interests based on your recent browsing history.
-      </message>
-      <message name="IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY" desc="A conclusion paragraph for the entire page. It sits beneath the “More control over the ads you see” subtitle but it’s no more associated with that topic than “Limit sharing between sites”. * “in Chrome settings”: The URL is chrome://settings/privacySandbox. We don’t make it a live link because we need the users to stay in this moment until they make a choice.">
-        You can learn more about these features in Chrome settings.
-      </message>
-
       <!-- Advanced security settings -->
       <message name="IDS_SETTINGS_SECURITY_V8_LINK_DESCRIPTION" desc="Description for the link row of the V8 security settings page.">
         Turn on additional protection in Chrome’s JavaScript and WebAssembly engine
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index c526e5c6..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f0d647258304f405a14f41f3a7abb2b06ecb1fd9
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1
deleted file mode 100644
index 8064dbf..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e5f971f70df72c51805eb10e6476421b9c76f5d1
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1
deleted file mode 100644
index 0a3d9ac..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-1ffcab13236568e1187cb514b8cb3755cf16bc4c
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1
deleted file mode 100644
index 28adee9..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1862062fb7efbe7d9a2eaafb585ba0c5fbf3c42
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1
deleted file mode 100644
index 6cab8a59..0000000
--- a/chrome/app/google_chrome_strings_grd/IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4b9b8c8088ac650f41638206b7eddc400e960bb9
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ka.xtb b/chrome/app/resources/chromium_strings_ka.xtb
index d41d4111..3a25da92 100644
--- a/chrome/app/resources/chromium_strings_ka.xtb
+++ b/chrome/app/resources/chromium_strings_ka.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">მოგვიანებით Chromium გკითხავთ, გსურთ თუ არა შენახული ინფორმაციის გამოყენება ფორმების ავტომატურად შესავსებად</translation>
 <translation id="2785438272836277133">ეს გაფართოება შეიცავს მავნე პროგრამას და ის არ არის უსაფრთხო. წაშალეთ ის Chromium-იდან, რომ მას აღარ შეეძლოს თქვენი მონაცემების (მათ შორის, პერსონალური ინფორმაციის) ნახვა და შეცვლა თქვენ მიერ მონახულებულ საიტებზე.</translation>
 <translation id="2799223571221894425">ხელახლა გაშვება</translation>
+<translation id="2803971713792056305">თქვენი Chromium</translation>
 <translation id="2806241689335397269">Chromium გკითხავთ, გსურთ თუ არა ფორმის ინფორმაციის (მაგალითად, დაბადების დღის, ასაკისა და პასპორტის ნომრის) შევსება.</translation>
 <translation id="2837693172913560447">ეს მოქმედება შექმნის ახალ Chromium პროფილს <ph name="USER_EMAIL_ADDRESS" />-ისთვის</translation>
 <translation id="2841525013647267359">თარგმნა ენიდან:</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">Chromium-ს სჭირდება ნებართვა თქვენი ხელების მოძრაობაზე თვალის მისადევნებლად</translation>
 <translation id="5174969993834422967">როგორც წესი, თქვენ ბლოკავთ შეტყობინებებს. ამ საიტისგან შეტყობინებების მისაღებად დააწკაპუნეთ მდებარეობის ზოლის მარჯვენა კუთხეში მდებარე ხატულას.</translation>
 <translation id="5187123684706427865">Chromium ანგარიში საჭიროებს ხელახლა ავტორიზაციას</translation>
+<translation id="5203572811198011329">თქვენს Google ანგარიშში (<ph name="ACCOUNT_EMAIL" />) Chromium-ის მონაცემები რომ გამოიყენოთ და შეინახოთ, შეიყვანეთ თქვენი საიდუმლო ფრაზა</translation>
 <translation id="5224391634244552924">შენახული პაროლები არ არის. პაროლების შემოწმებას Chromium შეძლებს მათი შენახვის შემდეგ.</translation>
 <translation id="5231355151045086930">Chromium-იდან გამოსვლა</translation>
 <translation id="5234764350956374838">გაუქმება</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">ინსტალაციის პროგრამის არქივი დაზიანებულია ან არასწორია. ხელახლა ჩამოტვირთეთ Chromium.</translation>
 <translation id="8458614432758743027">Chromium-ის მუშაობისთვის საჭიროა Windows 10 ან უფრო ახალი ვერსია.</translation>
 <translation id="8463672209299734063">არასავალდებულო: ChromiumOS-ის ფუნქციებისა და წარმადობის გაუმჯობესების ხელშეწყობა დიაგნოსტიკური და გამოყენების მონაცემების Google-ისთვის ავტომატურად გაგზავნის მეშვეობით.</translation>
+<translation id="8471947159125090285">თქვენს Google ანგარიშში Chromium მონაცემები რომ შეინახოთ და გამოიყენოთ ისინი, დაადასტურეთ ვინაობა</translation>
 <translation id="8493179195440786826">Chromium მოძველდა</translation>
 <translation id="8522801943730206384">პაროლების შემოწმებას Chromium შეძლებს მათი შენახვის შემდეგ</translation>
 <translation id="8550334526674375523">სამსახურის ეს პროფილი თქვენი პირადი პროფილისგან სრულიად დამოუკიდებლად ფუნქციონირებს.</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 6e0b8824..fa1e8b91 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -139,14 +139,14 @@
 <translation id="2806241689335397269">ನಿಮ್ಮ ಜನ್ಮದಿನ, ವಯಸ್ಸು ಮತ್ತು ಪಾಸ್‌ಪೋರ್ಟ್ ಸಂಖ್ಯೆಯಂತಹ ಫಾರ್ಮ್‌ ಮಾಹಿತಿಯನ್ನು ನೀವು ಸೇವ್‌ ಮಾಡಲು ಬಯಸುತ್ತೀರಾ ಎಂದು Chromium ಕೇಳುತ್ತದೆ</translation>
 <translation id="2837693172913560447">ಇದು <ph name="USER_EMAIL_ADDRESS" /> ಗಾಗಿ ಹೊಸ Chromium ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ</translation>
 <translation id="2841525013647267359">ಈ ಭಾಷೆಯಿಂದ ಅನುವಾದಿಸಿ</translation>
-<translation id="2846251086934905009">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ. ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation>
+<translation id="2846251086934905009">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ. ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="2847479871509788944">Chromium ನಿಂದ ತೆಗೆದುಹಾಕಿ...</translation>
 <translation id="2850691299438350830">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ, Chromium ನಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸುತ್ತದೆ ಮತ್ತು ಇತರ Google ಆ್ಯಪ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಬಳಸಬಹುದು</translation>
 <translation id="2885378588091291677">ಕಾರ್ಯ ನಿರ್ವಾಹಕ</translation>
 <translation id="2910007522516064972">&amp;Chromium ಕುರಿತು</translation>
 <translation id="2915996080311180594">ನಂತರ ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2928420929544864228">ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಪೂರ್ಣಗೊಂಡಿದೆ.</translation>
-<translation id="2945997411976714835">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
+<translation id="2945997411976714835">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="2970426615109535079">ನಿಮ್ಮ ಸಂಸ್ಥೆಯು Chromium ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ</translation>
 <translation id="2977470724722393594">Chromium ಅಪ್‌ ಟು ಡೇಟ್‌ ಆಗಿದೆ</translation>
 <translation id="2977506796191543575">ಯಾವುದಾದರೂ ಸೈಟ್ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕದಿಯಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಅಥವಾ ನೀವು ಹಾನಿಕಾರಕ ಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದಾಗ, ಪುಟದ ವಿಷಯದ ತುಣುಕುಗಳನ್ನು ಒಳಗೊಂಡ URL ಗಳನ್ನು ಸಹ Chromium, ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
@@ -214,7 +214,7 @@
 <translation id="390528597099634151">ಈ Chromium ಪ್ರೊಫೈಲ್‌ಗೆ ಈಗಾಗಲೇ <ph name="EXISTING_USER" /> ಅವರು ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು, Chromium ನಿಮಗಾಗಿ ನಿಮ್ಮ ಸ್ವಂತ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಬಹುದು.</translation>
 <translation id="3909353120217047026">ಈ ವಿಸ್ತರಣೆಯು Chrome ವೆಬ್ ಸ್ಟೋರ್‌ನ ಕಾರ್ಯನೀತಿಯನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ ಮತ್ತು ಸುರಕ್ಷಿತ ಆಗಿಲ್ಲದಿರಬಹುದು. Chromium ನಿಂದ ವಿಸ್ತರಣೆಯನ್ನು ತೆಗೆದುಹಾಕಿ ಇದರಿಂದ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಇನ್ನು ಮುಂದೆ ವೀಕ್ಷಿಸಲು ಮತ್ತು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="391789666908693569">ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="MANAGER_NAME" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಈ Chromium ಬ್ರೌಸರ್ ಪ್ರೊಫೈಲ್ ಹಾಗೂ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್‌ಗಳಂತಹ ಅದರ ಡೇಟಾವನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಎಡಿಟ್ ಮಾಡಬಹುದು.</translation>
-<translation id="3941890832296813527">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.</translation>
+<translation id="3941890832296813527">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.</translation>
 <translation id="3945058413678539331">Chromium, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="3962647064319009959">Chromium ನಿಮ್ಮನ್ನು ಹೇಗೆ ಸುರಕ್ಷಿತವಾಗಿರಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ</translation>
 <translation id="3975724895399328945">Google Chrome for Testing ಕುರಿತು</translation>
@@ -422,7 +422,7 @@
 <translation id="6663852025006259149">ಸೈಟ್‌ಗಳು ನೀವು ನಿರೀಕ್ಷಿಸಿದಂತೆ ಬಹುಶಃ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಆದರೆ ನೀವು ಎಲ್ಲಾ Chromium ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚಿದ ನಂತರ ನಿಮ್ಮನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳುವುದಿಲ್ಲ</translation>
 <translation id="6669284030132180248">ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಸಹ ನೀವು ಸೇವ್ ಮಾಡಿದರೆ, ನೀವು Chromium ನಲ್ಲಿ ಉತ್ಪನ್ನದ ಬೆಲೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ಬೆಲೆ ಕಡಿಮೆಯಾದಾಗ ಸೂಚನೆ ಪಡೆಯಬಹುದು</translation>
 <translation id="6676384891291319759">ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
-<translation id="668175097507315160">ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ChromiumOS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
+<translation id="668175097507315160">ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ChromiumOS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="6692797197837897398">ನೀವು ನೋಡುವ ಜಾಹೀರಾತುಗಳ ಮೇಲೆ Chromium ನಿಮಗೆ ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ಸೈಟ್‌ಗಳಲ್ಲಿ ನೀವು ವೈಯಕ್ತೀಕರಿಸಿದ ಜಾಹೀರಾತುಗಳನ್ನು ನೋಡಿದಾಗ ನಿಮ್ಮ ಕುರಿತು ಯಾವ ಸೈಟ್‌ಗಳು ತಿಳಿಯಬಹುದು ಎಂಬುದನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ</translation>
 <translation id="6709350901466051922">ಈ ಸೈಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ Chromium ಗೆ ಮೈಕ್ರೊಫೋನ್ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="6712881677154121168">ಡೌನ್‌ಲೋಡ್ ದೋಷ: <ph name="DOWNLOAD_ERROR" />.</translation>
@@ -571,7 +571,7 @@
 <translation id="8697124171261953979">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಓಮ್ನಿಬಾಕ್ಸ್‌ನಿಂದ ಹುಡುಕಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="8704119203788522458">ಇದು ನಿಮ್ಮ Chromium</translation>
 <translation id="8719993436687031146">Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕೆ?</translation>
-<translation id="878572486461146056">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರು ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ತಡೆಯುವ ಗುಂಪು ನೀತಿಯನ್ನು ಅನ್ವಯಿಸಿದ್ದಾರೆ: <ph name="INSTALL_ERROR" /></translation>
+<translation id="878572486461146056">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರು ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ತಡೆಯುವ ಗುಂಪು ನೀತಿಯನ್ನು ಅನ್ವಯಿಸಿದ್ದಾರೆ: <ph name="INSTALL_ERROR" /></translation>
 <translation id="8796602469536043152">ಈ ಸೈಟ್‌ಗಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್‌ಗೆ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="8818550178040858407">Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕೆ?</translation>
 <translation id="8826492472752484139">“Password Manager” ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index 6735b3b..0a1e6e70 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">പിന്നീട്, സംരക്ഷിച്ച വിവരങ്ങൾ സ്വയമേവ ഫോമുകൾ പൂരിപ്പിക്കാനായി ഉപയോഗിക്കണമെന്നുണ്ടോ എന്ന് Chromium നിങ്ങളോട് ചോദിക്കും</translation>
 <translation id="2785438272836277133">ഈ വിപുലീകരണത്തിൽ മാല്‍വെയർ അടങ്ങിയിരിക്കുന്നു, ഇത് സുരക്ഷിതമല്ല. Chromium-ൽ നിന്ന് ഇത് നീക്കം ചെയ്യുന്നതിലൂടെ, നിങ്ങളുടെ വ്യക്തിപരമായ വിവരങ്ങൾ ഉൾപ്പെടെ നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളിലെ ഡാറ്റ അതിന് ഇനി കാണാനും മാറ്റാനുമാകില്ല.</translation>
 <translation id="2799223571221894425">വീണ്ടും സമാരംഭിക്കുക</translation>
+<translation id="2803971713792056305">നിങ്ങളുടെ Chromium</translation>
 <translation id="2806241689335397269">നിങ്ങളുടെ ജന്മദിനം, വയസ്സ്, പാസ്‌പോർട്ട് നമ്പർ പോലുള്ള ഫോം വിവരങ്ങൾ സംരക്ഷിക്കണോയെന്ന് Chromium നിങ്ങളോട് ചോദിക്കും</translation>
 <translation id="2837693172913560447">ഇത് <ph name="USER_EMAIL_ADDRESS" /> എന്ന അക്കൗണ്ടിനായി പുതിയൊരു Chromium പ്രൊഫൈൽ സൃഷ്ടിക്കും</translation>
 <translation id="2841525013647267359">ഈ ഭാഷയിൽ നിന്ന് വിവർത്തനം ചെയ്യുക</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">നിങ്ങളുടെ കൈകൾ ട്രാക്ക് ചെയ്യാൻ Chromium-ന് അനുമതി ആവശ്യമാണ്</translation>
 <translation id="5174969993834422967">നിങ്ങൾ സാധാരണയായി അറിയിപ്പുകൾ ബ്ലോക്ക് ചെയ്യാറുണ്ട്. നിങ്ങൾക്ക് അറിയിപ്പ് അയയ്ക്കുന്നതിന് ഈ സൈറ്റിനെ അനുവദിക്കാൻ, നിങ്ങളുടെ ലൊക്കേഷൻ ബാറിന്റെ വലത് മൂലയിലെ അറിയിപ്പ് ഐക്കൺ ക്ലിക്ക് ചെയ്യുക.</translation>
 <translation id="5187123684706427865">Chromium അക്കൗണ്ട് വീണ്ടും പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്</translation>
+<translation id="5203572811198011329">നിങ്ങളുടെ Google Account-ലെ Chromium ഡാറ്റ ഉപയോഗിക്കാനും സംരക്ഷിക്കാനും, നിങ്ങളുടെ പാസ്ഫ്രെയ്‌സ് നൽകുക, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">സംരക്ഷിച്ച പാസ്‌വേഡുകളൊന്നുമില്ല. നിങ്ങളുടെ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയാണങ്കിൽ, Chromium-ന് അവ പരിശോധിക്കാനാവും.</translation>
 <translation id="5231355151045086930">Chromium-ത്തിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക</translation>
 <translation id="5234764350956374838">ഡിസ്മിസ്സ് ചെയ്യുക</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">ഇൻസ്റ്റാളർ ആർക്കൈവ് കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation>
 <translation id="8458614432758743027">Chromium-ത്തിന് Windows 10 അല്ലെങ്കിൽ അതിനുശേഷമുള്ള പതിപ്പ് ആവശ്യമാണ്.</translation>
 <translation id="8463672209299734063">ഓപ്ഷണൽ: പ്രശ്നനിർണ്ണയ, ഉപയോഗ ഡാറ്റ സ്വയമേവ Google-ന് അയച്ച് ChromiumOS ഫീച്ചറുകളും പ്രകടനവും മെച്ചപ്പെടുത്താൻ സഹായിക്കുക.</translation>
+<translation id="8471947159125090285">നിങ്ങളുടെ Google Account-ലെ Chromium ഡാറ്റ ഉപയോഗിക്കാനും സംരക്ഷിക്കാനും, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="8493179195440786826">Chromium കാലഹരണപ്പെട്ടു</translation>
 <translation id="8522801943730206384">നിങ്ങളുടെ പാസ്‌വേഡുകൾ സംരക്ഷിക്കുകയാണങ്കിൽ, Chromium-ന് അവ പരിശോധിക്കാനാകും</translation>
 <translation id="8550334526674375523">ഈ ഔദ്യോഗിക പ്രൊഫൈൽ നിങ്ങളുടെ വ്യക്തിപരമായ പ്രൊഫൈലിൽ നിന്ന് തികച്ചും വ്യത്യസ്തമാണ്.</translation>
diff --git a/chrome/app/resources/chromium_strings_pa.xtb b/chrome/app/resources/chromium_strings_pa.xtb
index 07bef2b..e16909a 100644
--- a/chrome/app/resources/chromium_strings_pa.xtb
+++ b/chrome/app/resources/chromium_strings_pa.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">ਇਸ ਤੋਂ ਬਾਅਦ, Chromium ਪੁੱਛੇਗਾ ਕਿ ਕੀ ਤੁਸੀਂ ਫ਼ਾਰਮਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਭਰਨ ਲਈ, ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ</translation>
 <translation id="2785438272836277133">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਵਿੱਚ ਮਾਲਵੇਅਰ ਹੈ ਅਤੇ ਇਹ ਅਸੁਰੱਖਿਅਤ ਹੈ। ਇਸਨੂੰ Chromium ਤੋਂ ਹਟਾਓ, ਤਾਂ ਜੋ ਇਹ ਹੁਣ ਤੁਹਾਡੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਸਮੇਤ ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਗਈਆਂ ਸਾਈਟਾਂ 'ਤੇ ਮੌਜੂਦ ਤੁਹਾਡੇ ਡਾਟੇ ਨੂੰ ਦੇਖ ਅਤੇ ਬਦਲ ਨਾ ਸਕੇ।</translation>
 <translation id="2799223571221894425">ਰੀਲੌਂਚ ਕਰੋ</translation>
+<translation id="2803971713792056305">ਤੁਹਾਡਾ Chromium</translation>
 <translation id="2806241689335397269">Chromium ਪੁੱਛੇਗਾ ਕਿ ਕੀ ਤੁਸੀਂ ਫ਼ਾਰਮ ਦੀ ਜਾਣਕਾਰੀ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਤੁਹਾਡਾ ਜਨਮਦਿਨ, ਉਮਰ ਅਤੇ ਪਾਸਪੋਰਟ ਨੰਬਰ</translation>
 <translation id="2837693172913560447">ਇਸ ਨਾਲ <ph name="USER_EMAIL_ADDRESS" /> ਲਈ ਨਵਾਂ Chromium ਪ੍ਰੋਫਾਈਲ ਬਣਾਇਆ ਜਾਵੇਗਾ</translation>
 <translation id="2841525013647267359">ਇਸ ਤੋਂ ਅਨੁਵਾਦ ਕਰੋ</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">Chromium ਨੂੰ ਤੁਹਾਡੇ ਹੱਥਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
 <translation id="5174969993834422967">ਆਮ ਤੌਰ 'ਤੇ ਤੁਸੀਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਬਲਾਕ ਕਰਦੇ ਹੋ। ਆਪਣੀ ਟਿਕਾਣਾ ਪੱਟੀ ਦੇ ਸੱਜੇ ਕੋਨੇ 'ਤੇ ਸੂਚਨਾ ਪ੍ਰਤੀਕ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਤਾਂ ਜੋ ਇਹ ਸਾਈਟ ਤੁਹਾਨੂੰ ਸੂਚਿਤ ਕਰ ਸਕੇ।</translation>
 <translation id="5187123684706427865">Chromium ਖਾਤੇ ਨੂੰ ਮੁੜ-ਪ੍ਰਮਾਣੀਕਰਨ ਦੀ ਲੋੜ ਹੈ</translation>
+<translation id="5203572811198011329">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chromium ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਦਾਖਲ ਕਰੋ, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">ਕੋਈ ਰੱਖਿਅਤ ਕੀਤਾ ਪਾਸਵਰਡ ਨਹੀਂ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨ 'ਤੇ Chromium ਉਹਨਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ।</translation>
 <translation id="5231355151045086930">Chromium ਤੋਂ ਸਾਈਨ-ਆਊਟ ਕਰੋ</translation>
 <translation id="5234764350956374838">ਬਰਖ਼ਾਸਤ ਕਰੋ</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">ਸਥਾਪਨਾਕਾਰ ਪੁਰਾਲੇਖ ਖਰਾਬ ਜਾਂ ਅਵੈਧ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ Chromium ਨੂੰ ਦੁਬਾਰਾ ਡਾਊਨਲੋਡ ਕਰੋ।</translation>
 <translation id="8458614432758743027">Chromium ਨੂੰ Windows 10 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਵਾਲੇ ਵਰਜਨ ਦੀ ਲੋੜ ਹੈ।</translation>
 <translation id="8463672209299734063">ਵਿਕਲਪਿਕ: ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਤਸ਼ਖੀਸੀ ਅਤੇ ਵਰਤੋਂ ਡਾਟਾ Google ਨੂੰ ਭੇਜ ਕੇ ChromiumOS ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ।</translation>
+<translation id="8471947159125090285">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chromium ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="8493179195440786826">Chromium ਪੁਰਾਣਾ ਹੈ</translation>
 <translation id="8522801943730206384">ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਪਣੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ 'ਤੇ Chromium ਉਨ੍ਹਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹੈ</translation>
 <translation id="8550334526674375523">ਇਹ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਤੁਹਾਡੀ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵੱਖ ਹੈ।</translation>
diff --git a/chrome/app/resources/chromium_strings_sr-Latn.xtb b/chrome/app/resources/chromium_strings_sr-Latn.xtb
index 9b25e5f..ffc1ad7c 100644
--- a/chrome/app/resources/chromium_strings_sr-Latn.xtb
+++ b/chrome/app/resources/chromium_strings_sr-Latn.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">Chromium će kasnije pitati da li želite da koristite sačuvane informacije za automatsko popunjavanje obrazaca</translation>
 <translation id="2785438272836277133">Ovaj dodatak sadrži malver i nije bezbedan. Uklonite ga iz Chromium-a da više ne bi mogao da vidi i menja podatke na sajtovima koje posećujete, uključujući lične podatke.</translation>
 <translation id="2799223571221894425">Ponovo pokreni</translation>
+<translation id="2803971713792056305">Vaš Chromium</translation>
 <translation id="2806241689335397269">Chromium će vas pitati da li želite da sačuvate informacije iz obrasca, poput datuma rođenja, uzrasta i broja pasoša</translation>
 <translation id="2837693172913560447">Ovim će se napraviti nov Chromium profil za <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2841525013647267359">Prevedite sa jezika</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">Chromium-u treba dozvola za praćenje ruku</translation>
 <translation id="5174969993834422967">Obično blokirate obaveštenja. Da biste dozvolili ovom sajtu da vas obaveštava, kliknite na ikonu obaveštenja u desnom uglu trake za lokaciju.</translation>
 <translation id="5187123684706427865">Chromium nalog zahteva ponovnu potvrdu identiteta</translation>
+<translation id="5203572811198011329">Da biste koristili i čuvali Chromium podatke na Google nalogu, unesite pristupnu frazu, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">Nema sačuvanih lozinki. Chromium može da proverava lozinke kada ih sačuvate.</translation>
 <translation id="5231355151045086930">Odjavite se iz Chromium-a</translation>
 <translation id="5234764350956374838">Odbaci</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">Arhiva programa za instalaciju je oštećena ili nevažeća. Preuzmite Chromium ponovo.</translation>
 <translation id="8458614432758743027">Za Chromium je potreban Windows 10 ili novija verzija.</translation>
 <translation id="8463672209299734063">Opcionalno: Automatski šaljite Google-u dijagnostiku i podatke o korišćenju da biste nam pomogli da poboljšamo funkcije i učinak Chromium OS-a.</translation>
+<translation id="8471947159125090285">Da biste koristili i čuvali Chromium podatke na Google nalogu, potvrdite svoj identitet</translation>
 <translation id="8493179195440786826">Chromium je zastareo</translation>
 <translation id="8522801943730206384">Chromium može da proverava lozinke kada ih sačuvate</translation>
 <translation id="8550334526674375523">Ovaj poslovni profil je potpuno odvojen od ličnog profila.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index eadaacd..adac0cfa 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">Chromium ће касније питати да ли желите да користите сачуване информације за аутоматско попуњавање образаца</translation>
 <translation id="2785438272836277133">Овај додатак садржи малвер и није безбедан. Уклоните га из Chromium-а да више не би могао да види и мења податке на сајтовима које посећујете, укључујући личне податке.</translation>
 <translation id="2799223571221894425">Поново покрени</translation>
+<translation id="2803971713792056305">Ваш Chromium</translation>
 <translation id="2806241689335397269">Chromium ће вас питати да ли желите да сачувате информације из обрасца, попут датума рођења, узраста и броја пасоша</translation>
 <translation id="2837693172913560447">Овим ће се направити нов Chromium профил за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2841525013647267359">Преведите са језика</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">Chromium-у треба дозвола за праћење руку</translation>
 <translation id="5174969993834422967">Обично блокирате обавештења. Да бисте дозволили овом сајту да вас обавештава, кликните на икону обавештења у десном углу траке за локацију.</translation>
 <translation id="5187123684706427865">Chromium налог захтева поновну потврду идентитета</translation>
+<translation id="5203572811198011329">Да бисте користили и чували Chromium податке на Google налогу, унесите приступну фразу, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">Нема сачуваних лозинки. Chromium може да проверава лозинке када их сачувате.</translation>
 <translation id="5231355151045086930">Одјавите се из Chromium-а</translation>
 <translation id="5234764350956374838">Одбаци</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">Архива програма за инсталацију је оштећена или неважећа. Преузмите Chromium поново.</translation>
 <translation id="8458614432758743027">За Chromium је потребан Windows 10 или новија верзија.</translation>
 <translation id="8463672209299734063">Опционално: Аутоматски шаљите Google-у дијагностику и податке о коришћењу да бисте нам помогли да побољшамо функције и учинак Chromium ОС-а.</translation>
+<translation id="8471947159125090285">Да бисте користили и чували Chromium податке на Google налогу, потврдите свој идентитет</translation>
 <translation id="8493179195440786826">Chromium је застарео</translation>
 <translation id="8522801943730206384">Chromium може да проверава лозинке када их сачувате</translation>
 <translation id="8550334526674375523">Овај пословни профил је потпуно одвојен од личног профила.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 2066775d..9913f7c6 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -138,6 +138,7 @@
 <translation id="277338894894732084">Senare frågar Chromium om du vill använda sparade uppgifter för att fylla i formulär automatiskt</translation>
 <translation id="2785438272836277133">Tillägget innehåller skadlig kod och är osäkert. Ta bort det från Chromium så att det inte längre kan se och ändra data, inklusive dina personliga uppgifter, på webbplatser du besöker.</translation>
 <translation id="2799223571221894425">Starta om</translation>
+<translation id="2803971713792056305">Ditt Chromium</translation>
 <translation id="2806241689335397269">Chromium frågar om du vill spara formuläruppgifter, till exempel födelsedatum, ålder och passnummer</translation>
 <translation id="2837693172913560447">En ny Chromium-profil skapas för <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2841525013647267359">Översätt från</translation>
@@ -301,6 +302,7 @@
 <translation id="5123973130450702873">Chromium behöver behörighet för handspårning</translation>
 <translation id="5174969993834422967">Du brukar blockera aviseringar. Klicka på aviseringsikonen uppe till höger om platsfältet om du vill tillåta aviseringar från webbplatsen.</translation>
 <translation id="5187123684706427865">Omautentisering krävs för Chromium-kontot</translation>
+<translation id="5203572811198011329">Ange lösenfrasen om du vill använda och spara Chromium-data i ditt Google-konto, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">Inga sparade lösenord. Chromium kan bara kontrollera dina lösenord om du sparar dem.</translation>
 <translation id="5231355151045086930">Logga ut från Chromium</translation>
 <translation id="5234764350956374838">Stäng</translation>
@@ -562,6 +564,7 @@
 <translation id="8453117565092476964">Arkivet för installationsfilen är skadat eller ogiltigt. Ladda ned Chromium igen.</translation>
 <translation id="8458614432758743027">För Chromium krävs Windows 10 eller senare.</translation>
 <translation id="8463672209299734063">Valfritt: Skicka diagnostik- och användningsdata automatiskt till Google och hjälp oss att förbättra funktioner och prestanda i Chromium OS.</translation>
+<translation id="8471947159125090285">Verifiera din identitet för att använda och spara Chromium-data i ditt Google-konto</translation>
 <translation id="8493179195440786826">Den här versionen av Chromium är inaktuell</translation>
 <translation id="8522801943730206384">Chromium kan bara kontrollera dina lösenord om du sparar dem</translation>
 <translation id="8550334526674375523">Jobbprofilen hålls helt åtskild från din privata profil.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 611e1e3..74bbd20 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -136,6 +136,7 @@
 <translation id="277338894894732084">ఆపై, ఫారమ్‌లను ఆటోమేటిక్‌గా పూరించడానికి మీరు సేవ్ చేసిన సమాచారాన్ని ఉపయోగించాలనుకుంటున్నారా అని Chromium మిమ్మల్ని అడుగుతుంది</translation>
 <translation id="2785438272836277133">ఈ ఎక్స్‌టెన్షన్‌లో మాల్‌వేర్ ఉంది, ఇది సురక్షితం కాకపోవచ్చు. Chromium నుండి దాన్ని తీసివేయండి, తద్వారా ఇది మీ వ్యక్తిగత సమాచారంతో సహా మీరు సందర్శించే సైట్‌లలోని మీ డేటాను ఇకపై చూడలేదు, మార్చలేదు.</translation>
 <translation id="2799223571221894425">మళ్లీ ప్రారంభించండి</translation>
+<translation id="2803971713792056305">మీ Chromium</translation>
 <translation id="2806241689335397269">మీరు ఫారమ్ సమాచారాన్ని సేవ్ చేయాలనుకుంటున్నారా అని Chromium మిమ్మల్ని అడుగుతుంది, ఉదాహరణకు మీ పుట్టినరోజు, వయస్సు, ఇంకా పాస్‌పోర్ట్ నంబర్ వంటివి</translation>
 <translation id="2837693172913560447">ఇది <ph name="USER_EMAIL_ADDRESS" />కు కొత్త Chromium ప్రొఫైల్‌ను క్రియేట్ చేస్తుంది</translation>
 <translation id="2841525013647267359">ఈ భాష నుండి అనువదించండి</translation>
@@ -297,6 +298,7 @@
 <translation id="5123973130450702873">Chromium మీ హ్యాండ్స్‌ను ట్రాక్ చేయడానికి అనుమతి అవసరం</translation>
 <translation id="5174969993834422967">మీరు సాధారణంగా నోటిఫికేషన్‌లను బ్లాక్ చేస్తుంటారు. ఈ సైట్ నుండి నోటిఫికేషన్‌లను పొందాలంటే, మీ లొకేషన్ బార్ కుడి మూలన ఉన్న నోటిఫికేషన్ చిహ్నాన్ని క్లిక్ చేయండి.</translation>
 <translation id="5187123684706427865">Chromium ఖాతాకు మళ్లీ ప్రామాణీకరణ అనసరమవుతుంది</translation>
+<translation id="5203572811198011329">మీ Google ఖాతాలోని Chromium డేటాను ఉపయోగించడానికి, అందులో డేటాను సేవ్ చేయడానికి, మీ రహస్య పదబంధాన్ని, <ph name="ACCOUNT_EMAIL" /> ఎంటర్ చేయండి</translation>
 <translation id="5224391634244552924">సేవ్ చేసిన పాస్‌వర్డ్‌లు లేవు. మీరు మీ పాస్‌వర్డ్‌లను సేవ్ చేసినప్పుడు Chromium వాటిని చెక్ చేయగలదు.</translation>
 <translation id="5231355151045086930">Chromium నుండి సైన్ అవుట్ చేయండి</translation>
 <translation id="5234764350956374838">తొలగించండి</translation>
@@ -556,6 +558,7 @@
 <translation id="8453117565092476964">ఇన్‌స్టాలర్ ఆర్కైవ్ పాడైంది లేదా చెల్లదు. దయచేసి Chromiumను మళ్లీ డౌన్‌లోడ్ చేయండి.</translation>
 <translation id="8458614432758743027">Chromiumకు Windows 10 లేదా అంతకంటే ఆధునికమైన వెర్షన్ అవసరం.</translation>
 <translation id="8463672209299734063">ఆప్షనల్: Googleకు సమస్య విశ్లేషణ, అలాగే వినియోగ డేటాను ఆటోమేటిక్‌గా పంపడం ద్వారా ChromiumOS ఫీచర్‌లను, ఇంకా పనితీరును మెరుగుపరచడంలో సహాయపడండి.</translation>
+<translation id="8471947159125090285">మీ Google ఖాతాలో Chromium డేటాను ఉపయోగించడానికి, సేవ్ చేయడానికి, ఇది మీరేనని వెరిఫై చేయండి</translation>
 <translation id="8493179195440786826">Chromium కాలం చెల్లినది</translation>
 <translation id="8522801943730206384">మీరు వాటిని సేవ్ చేసినప్పుడు Chromium మీ పాస్‌వర్డ్‌లను చెక్ చేయగలదు</translation>
 <translation id="8550334526674375523">ఈ వర్క్ ప్రొఫైల్, మీ వ్యక్తిగత ప్రొఫైల్ నుండి పూర్తిగా భిన్నంగా ఉంది.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 3c78448..f1872f7 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -135,6 +135,7 @@
 <translation id="277338894894732084">Chromium จะถามว่าคุณต้องการใช้ข้อมูลที่บันทึกไว้เพื่อกรอกแบบฟอร์มโดยอัตโนมัติหรือไม่ในภายหลัง</translation>
 <translation id="2785438272836277133">ส่วนขยายนี้มีมัลแวร์และไม่ปลอดภัย นำส่วนขยายดังกล่าวออกจาก Chromium เพื่อไม่ให้ดูและเปลี่ยนแปลงข้อมูลของคุณในเว็บไซต์ที่เข้าชม รวมถึงข้อมูลส่วนบุคคลได้อีกต่อไป</translation>
 <translation id="2799223571221894425">เปิดใหม่</translation>
+<translation id="2803971713792056305">Chromium ของคุณ</translation>
 <translation id="2806241689335397269">Chromium จะถามว่าคุณต้องการบันทึกข้อมูลในแบบฟอร์ม เช่น วันเกิด อายุ และหมายเลขหนังสือเดินทางหรือไม่</translation>
 <translation id="2837693172913560447">การดำเนินการนี้จะสร้างโปรไฟล์ Chromium ใหม่สำหรับ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="2841525013647267359">แปลจากภาษา</translation>
@@ -298,6 +299,7 @@
 <translation id="5123973130450702873">Chromium ต้องการสิทธิ์ในการติดตามการเคลื่อนไหวของมือ</translation>
 <translation id="5174969993834422967">คุณมักจะบล็อกการแจ้งเตือน หากต้องการให้เว็บไซต์ส่งการแจ้งเตือน ให้คลิกไอคอนการแจ้งเตือนที่มุมขวาของแถบตําแหน่ง</translation>
 <translation id="5187123684706427865">บัญชี Chromium ต้องมีการตรวจสอบสิทธิ์อีกครั้ง</translation>
+<translation id="5203572811198011329">โปรดป้อนรหัสผ่านเพื่อใช้และบันทึกข้อมูล Chromium ในบัญชี Google <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="5224391634244552924">ไม่มีรหัสผ่านที่บันทึกไว้ Chromium จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกรหัสผ่านไว้</translation>
 <translation id="5231355151045086930">ออกจากระบบ Chromium</translation>
 <translation id="5234764350956374838">ปิด</translation>
@@ -559,6 +561,7 @@
 <translation id="8453117565092476964">การเก็บข้อมูลของโปรแกรมติดตั้งเสียหายหรือไม่ถูกต้อง โปรดดาวน์โหลด Chromium อีกครั้ง</translation>
 <translation id="8458614432758743027">Chromium ต้องใช้ Windows 10 ขึ้นไป</translation>
 <translation id="8463672209299734063">ไม่บังคับ: ช่วยปรับปรุงฟีเจอร์และประสิทธิภาพของ Chromium OS โดยการส่งข้อมูลการวินิจฉัยและการใช้งานให้ Google โดยอัตโนมัติ</translation>
+<translation id="8471947159125090285">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกข้อมูล Chromium ในบัญชี Google</translation>
 <translation id="8493179195440786826">Chromium ล้าสมัย</translation>
 <translation id="8522801943730206384">Chromium จะตรวจสอบรหัสผ่านได้เมื่อคุณบันทึกรหัสผ่านไว้</translation>
 <translation id="8550334526674375523">โปรไฟล์งานนี้แยกออกจากโปรไฟล์ส่วนตัวโดยสิ้นเชิง</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb
index 9d574730..52ccb9c 100644
--- a/chrome/app/resources/generated_resources_af.xtb
+++ b/chrome/app/resources/generated_resources_af.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Voer ’n profielnaam in</translation>
 <translation id="2765100602267695013">Kontak jou mobielediensverskaffer</translation>
 <translation id="2765217105034171413">Klein</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> het ’n oortjie verwyder</translation>
 <translation id="2765820627968019645">Lig</translation>
 <translation id="276582196519778359">Voer jou PIN vir ouerkontroles in</translation>
 <translation id="2766006623206032690">Plak en gaan</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Maak skyfspasie beskikbaar, anders sal jou toestel nie meer reageer nie.</translation>
 <translation id="3873315167136380065">Om dit aan te skakel, <ph name="BEGIN_LINK" />stel sinkronisering terug<ph name="END_LINK" /> om jou sinkroniseringwagfrase te verwyder</translation>
 <translation id="3873423927483480833">Wys PIN-nommers</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> het ’n oortjie bygevoeg</translation>
 <translation id="3873915545594852654">Iets was fout met ARC++.</translation>
 <translation id="3874164307099183178">Skakel Google Assistent aan</translation>
 <translation id="3875511946736639169">Aktiveer prente</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Eienaar</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Meer handelinge vir <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> het die groep verlaat</translation>
 <translation id="3963753386716096475">Gebruik ’n ander foon, tablet of sekuriteitsleutel</translation>
 <translation id="3964480518399667971">Skakel sellulêre netwerk af</translation>
 <translation id="3965965397408324205">Verlaat <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Kan nie spraaklêers installeer nie. Jou toestel moet opgedateer word. Herbegin jou toestel en probeer weer.</translation>
 <translation id="4789550509729954245">Wys kennisgewing wanneer toestelle in die omtrek deel</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Geen voorstelle beskikbaar nie. Probeer om iets soos “som hierdie bladsy op” of jou eie vraag te vra.</translation>
 <translation id="4791793693640849493">Stoor items in rekening</translation>
 <translation id="4792290259143007505">Aktiveer TrackPoint-versnelling</translation>
 <translation id="4792711294155034829">Meld 'n probleem aan …</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">Verlaat oortjiegroep?</translation>
 <translation id="7421925624202799674">Bekyk bladsybron</translation>
 <translation id="7422192691352527311">Voorkeure …</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> het die groepnaam verander</translation>
 <translation id="7423425410216218516">Sigbaarheid is aan vir <ph name="MINUTES" /> minute</translation>
 <translation id="7423513079490750513">Verwyder <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> moet toestemming hê om te werk</translation>
@@ -9514,7 +9509,6 @@
 <translation id="7772032839648071052">Bevestig wagfrase</translation>
 <translation id="7772127298218883077">Meer oor <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sessieberging</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> het by die groep aangesluit</translation>
 <translation id="7774365994322694683">Voël</translation>
 <translation id="7774581652827321413">Kry ’n bladsyopsomming, verwante soektogte en ander nuttige inligting oor hierdie bladsy</translation>
 <translation id="7774792847912242537">Te veel versoeke.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">Jou program sal oopmaak wanneer die opgradering voltooi is. Opgraderings kan 'n paar minute neem.</translation>
 <translation id="8888459276890791557">Jy kan vir maklike toegang hierdie kantpaneel vasspeld</translation>
 <translation id="8889294078294184559">Terwyl jy aanhou blaai, kan werwe met Chrome kontroleer en met ’n vorige werf wat jy besoek het verifieer dat jy waarskynlik ’n regte persoon is</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> het die groepkleur verander</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> kan die volgende lêers en vouers wysig</translation>
 <translation id="8890170499370378450">Kan mobiele dataheffings aangaan</translation>
 <translation id="8890516388109605451">Bronne</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">Werf kan jou mikrofoon gebruik</translation>
 <translation id="8991694323904646277">Geen kamera nie</translation>
 <translation id="8991766915726096402">Terugstelling van plaaslike data</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> m. gelede}=1{<ph name="TIME_COUNT" /> u. gelede}other{<ph name="TIME_COUNT" /> d. gelede}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – geheuegebruik – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jy kan steeds jou plaaslike data terugstel as jy jou <ph name="DEVICE_TYPE" />-wagwoord vergeet. Jy sal by jou Google-rekening moet aanmeld of rekeningherwinning moet gebruik.</translation>
 <translation id="8993198843374358393">Kopieer sertifikaathuts vir <ph name="CERT_NAME" /></translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">Muisgrootte</translation>
 <translation id="973788791897303708">Hierdie oortjiegroep is vol</translation>
 <translation id="97381968209917373">Vee sertifikaat <ph name="CERT_NAME" /> uit</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> het ’n oortjie verander</translation>
 <translation id="975893173032473675">Taal om in te vertaal</translation>
 <translation id="976499800099896273">Ontdoendialoog vir outokorrigeer word gewys vir <ph name="TYPED_WORD" />, wat gekorrigeer is na <ph name="CORRECTED_WORD" />.  Druk oppyl om daarheen te gaan, Escape om te ignoreer.</translation>
 <translation id="976572010712028687">Verifieer dat jy 'n ouer is</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index cacaa0cf..231b429 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -2572,7 +2572,6 @@
 <translation id="2764920001292228569">የመገለጫ ስም ያስገቡ</translation>
 <translation id="2765100602267695013">እባክዎ የሞባይል አገልግሎት አቅራቢዎን ያነጋግሩ</translation>
 <translation id="2765217105034171413">ትንሽ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ይህን ትር አስወግደዋል</translation>
 <translation id="2765820627968019645">ብርሃን</translation>
 <translation id="276582196519778359">ለወላጅ መቆጣጠሪያዎች ፒንዎን ያስገቡ</translation>
 <translation id="2766006623206032690">ለ&amp;ጥፍና እና ሂድ</translation>
@@ -4136,7 +4135,6 @@
 <translation id="3872991219937722530">የዲስክ ቦታ ያስለቅቁ፣ አለበለዚያ መሣሪያው ምላሽ የማይሰጥ ይሆናል</translation>
 <translation id="3873315167136380065">ይህን ለማብራት፣ የእርስዎን የስምረት ግዢ ለማስወገድ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያቀናብሩ<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">ፒኖችን አሳይ</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ትር አክለዋል</translation>
 <translation id="3873915545594852654">በARC++ ላይ ችግር አጋጥሟል።</translation>
 <translation id="3874164307099183178">Google ረዳትን ያብሩ</translation>
 <translation id="3875511946736639169">ምስሎችን አንቃ</translation>
@@ -4266,7 +4264,6 @@
 <translation id="3959969108528118741">ባለቤት</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">ለ<ph name="IBAN_DESCRIPTION" /> ተጨማሪ እርምጃዎች</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ቡድኑን ለቅቀው ወጥተዋል</translation>
 <translation id="3963753386716096475">የተለየ ስልክ፣ ጡባዊ ወይም የደህንነት ቁልፍ ይጠቀሙ</translation>
 <translation id="3964480518399667971">ተንቀሳቃሽ አውታረ መረብን አጥፋ</translation>
 <translation id="3965965397408324205">ከ<ph name="PROFILE_NAME" /> ውጣ</translation>
@@ -5387,7 +5384,6 @@
 <translation id="4789348252524569426">የንግግር ፋይሎችን መጫን አልተቻለም። መሣሪያዎ መዘመን አለበት። መሣሪያዎን ዳግም ያስጀምሩት እና እንደገና ይሞክሩ።</translation>
 <translation id="4789550509729954245">መሣሪያዎች በአቅራቢያ ሲያጋሩ ማሳወቂያን አሳይ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">ምንም ጥቆማዎች የሉም። እንደ «ይህን ገፅ አጠቃልል» ያሉ ነገሮችን ወይም የራስዎን ጥያቄ መጠየቅ ይሞክሩ።</translation>
 <translation id="4791793693640849493">በመለያ ውስጥ ንጥሎችን ያስቀምጡ</translation>
 <translation id="4792290259143007505">የTrackPoint ማፋጠኛን አንቃ</translation>
 <translation id="4792711294155034829">&amp;ችግር ሪፖርት ያድርጉ...</translation>
@@ -9019,7 +9015,6 @@
 <translation id="7421293530411019405">የትር ቡድኑን ይለቅቃሉ?</translation>
 <translation id="7421925624202799674">&amp;የገጹን መነሻ አሳይ</translation>
 <translation id="7422192691352527311">ምርጫዎች…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> የቡድኑን ስም ለውጠዋል</translation>
 <translation id="7423425410216218516">ታይነት ለ<ph name="MINUTES" /> ደቂቃዎች በርቷል</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" />ን ያስወግዱ</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ለማሄድ ፈቃድ ያስፈልገዋል</translation>
@@ -9510,7 +9505,6 @@
 <translation id="7772032839648071052">የይለፍ ሐረግ ያረጋግጡ</translation>
 <translation id="7772127298218883077">ስለ <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">የክፍለ-ጊዜ ማከማቻ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ቡድኑን ተቀላቅለዋል</translation>
 <translation id="7774365994322694683">ወፍ</translation>
 <translation id="7774581652827321413">የገፅ ማጠቃለያ፣ የተያያዙ ፍለጋዎች እና ስለዚህ ገፅ ሌላ ጠቃሚ መረጃ ያግኙ</translation>
 <translation id="7774792847912242537">ከልክ በላይ ብዙ ጥያቄዎች።</translation>
@@ -11113,7 +11107,6 @@
 <translation id="8888253246822647887">ማላቁ ሲያልቅ መተግበሪያዎ ይከፈታል ማላቆች ጥቂት ደቂቃዎችን ሊወስዱ ይችላሉ</translation>
 <translation id="8888459276890791557">በቀላሉ ለመድረስ ይህንን የጐን ፓነል ፒን ማድረግ ይችላሉ</translation>
 <translation id="8889294078294184559">ማሰስዎን ሲቀጥሉ እውነተኛ ሰው ሊሆኑ እንደሚችሉ ጣቢያዎች በChrome መፈተሽ እና እርስዎ ከዚህ ቀደም በጎበኙት ጣቢያ ላይ ማረጋገጥ ይችላሉ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> የቡድን ቀለሙን ለውጠዋል</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> የሚከተሉትን ፋይሎች እና አቃፊዎች ማርትዕ ይችላል</translation>
 <translation id="8890170499370378450">የተንቀሳቃሽ ስልክ ውሂብ ክፍያዎችን ሊያስከትል ይችላል</translation>
 <translation id="8890516388109605451">ምንጮች</translation>
@@ -11264,7 +11257,6 @@
 <translation id="8991520179165052608">ጣቢያ የእርስዎን ማይክሮፎን መጠቀም ይችላል</translation>
 <translation id="8991694323904646277">ምንም ካሜራ የለም</translation>
 <translation id="8991766915726096402">የአካባቢያዊ ውሂብ መልሶ ማግኛ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{ከ<ph name="TIME_COUNT" /> ደቂቃ በፊት}=1{ከ<ph name="TIME_COUNT" /> ሰዓት በፊት}one{ከ<ph name="TIME_COUNT" /> ቀን በፊት}other{ከ<ph name="TIME_COUNT" /> ቀናት በፊት}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - የማህደረ ትውስታ አጠቃቀም - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">የ<ph name="DEVICE_TYPE" /> የይለፍ ቃልዎን ከዘነጉ አካባቢያዊ ውሂብዎን አሁንም ወደነበረበት መመለስ ይችላሉ። ወደ የእርስዎ Google መለያ በመለያዎ መግባት ወይም የጠፋ መለያ ማግኛን መጠቀም ያስፈልግዎታል።</translation>
 <translation id="8993198843374358393">ለ<ph name="CERT_NAME" /> የዕውቅና ማረጋገጫ ሃሽ ቅዳ</translation>
@@ -11666,7 +11658,6 @@
 <translation id="973558314812359997">የመዳፊት መጠን</translation>
 <translation id="973788791897303708">ይህ የትር ቡድን ሙሉ ነው</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> የእውቅና ማረጋገጫን ሰርዝ</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ትር ለውጠዋል</translation>
 <translation id="975893173032473675">የሚተረጎምበት ቋንቋ</translation>
 <translation id="976499800099896273">የራስ-ሰር አራሚ ቀልብስ መገናኛ ወደ <ph name="CORRECTED_WORD" /> ለተስተካከለው <ph name="TYPED_WORD" /> ይታያል።  ለመድረስ የላይ ቀስትን ይጫኑ፣ ችላ ለማለት ይዝለሉ።</translation>
 <translation id="976572010712028687">ወላጅ መሆንዎን ያረጋግጡ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 1c58680..e4e90cd 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -2569,7 +2569,6 @@
 <translation id="2764920001292228569">يُرجى إدخال اسم للملف الشخصي.</translation>
 <translation id="2765100602267695013">يُرجى التواصل مع مقدِّم خدمة الجوّال.</translation>
 <translation id="2765217105034171413">صغير</translation>
-<translation id="2765349783094807040">تمت إزالة علامة تبويب من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="2765820627968019645">فاتح</translation>
 <translation id="276582196519778359">أدخِل رقم التعريف الشخصي لأدوات رقابة الأهل</translation>
 <translation id="2766006623206032690">‏&amp;لصق عنوان URL والدخول إليه</translation>
@@ -4133,7 +4132,6 @@
 <translation id="3872991219937722530">احرص على تفريغ مساحة على القرص أو سيصبح الجهاز غير مستجيب.</translation>
 <translation id="3873315167136380065">لتفعيل هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /> لإزالة عبارة مرور المزامنة.</translation>
 <translation id="3873423927483480833">إظهار أرقام التعريف الشخصية</translation>
-<translation id="3873893412864594794">تمت إضافة علامة تبويب من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="3873915545594852654">‏حدثت مشكلة في "وقت تشغيل التطبيقات في Chrome (ARC++)".</translation>
 <translation id="3874164307099183178">‏تفعيل خدمة "مساعد Google"</translation>
 <translation id="3875511946736639169">السماح بعرض الصور</translation>
@@ -4260,7 +4258,6 @@
 <translation id="3959969108528118741">المالك</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">مزيد من الإجراءات لـ "<ph name="IBAN_DESCRIPTION" />"</translation>
-<translation id="3962607437409665666">تمت مغادرة المجموعة من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="3963753386716096475">استخدام هواتف أو أجهزة لوحية أو مفاتيح أمان مختلفة</translation>
 <translation id="3964480518399667971">إيقاف شبكة الجوّال</translation>
 <translation id="3965965397408324205">الخروج من <ph name="PROFILE_NAME" /></translation>
@@ -5383,7 +5380,6 @@
 <translation id="4789348252524569426">يتعذّر تثبيت ملفات التعرّف على الكلام. يجب تحديث جهازك. أعِد تشغيل الجهاز وحاوِل مجددًا.</translation>
 <translation id="4789550509729954245">عرض الإشعارات عند محاولة الأجهزة المجاورة مشاركة محتوى</translation>
 <translation id="4791037424585594169">‏بروتوكول (UDP)</translation>
-<translation id="4791200512372376561">لا تتوفّر أي اقتراحات. جرِّب طلبات مثل "تلخيص هذه الصفحة" أو اطرح سؤالك الخاص.</translation>
 <translation id="4791793693640849493">حفظ العناصر في الحساب</translation>
 <translation id="4792290259143007505">‏تفعيل تسارع TrackPoint</translation>
 <translation id="4792711294155034829">&amp;الإبلاغ عن مشكلة...</translation>
@@ -9022,7 +9018,6 @@
 <translation id="7421293530411019405">هل تريد مغادرة مجموعة علامات التبويب؟</translation>
 <translation id="7421925624202799674">عرض م&amp;صدر الصفحة</translation>
 <translation id="7422192691352527311">الإعدادات المفضّلة...</translation>
-<translation id="7422516375032300779">تم تغيير اسم المجموعة من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="7423425410216218516">تم تفعيل ظهور الجهاز لمدة <ph name="MINUTES" /> دقيقة.</translation>
 <translation id="7423513079490750513">إزالة <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">يجب الحصول على إذن لتشغيل <ph name="APP_NAME" /></translation>
@@ -9512,7 +9507,6 @@
 <translation id="7772032839648071052">تأكيد عبارة المرور</translation>
 <translation id="7772127298218883077">لمحة عن <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">مساحة تخزين الجلسة</translation>
-<translation id="7773887159761725143">تم الانضمام إلى المجموعة من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="7774365994322694683">طائر</translation>
 <translation id="7774581652827321413">يمكنك الحصول على ملخّص للصفحة وعمليات البحث ذات الصلة ومعلومات أخرى مفيدة حول هذه الصفحة.</translation>
 <translation id="7774792847912242537">عدد الطلبات كبير جدًا.</translation>
@@ -11114,7 +11108,6 @@
 <translation id="8888253246822647887">سيتم فتح التطبيق عند انتهاء الترقية. قد تستغرق عمليات الترقية بضع دقائق.</translation>
 <translation id="8888459276890791557">يمكنك تثبيت هذه اللوحة الجانبية للوصول إليها بسهولة.</translation>
 <translation id="8889294078294184559">‏عند مواصلة التصفُّح على الإنترنت، يمكن للمواقع الإلكترونية التأكّد من أنّك مستخدِم حقيقي من خلال متصفّح Chrome وأحد المواقع الإلكترونية التي سبقت لك زيارتها.</translation>
-<translation id="88895904696396879">تم تغيير لون المجموعة من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="8889651696183044030">بإمكان <ph name="ORIGIN" /> تعديل الملفات والمجلدات التالية:</translation>
 <translation id="8890170499370378450">قد يتم تحصيل رسوم منك مقابل استخدام بيانات الجوّال.</translation>
 <translation id="8890516388109605451">المصادر</translation>
@@ -11265,7 +11258,6 @@
 <translation id="8991520179165052608">يمكن للموقع الإلكتروني استخدام الميكروفون.</translation>
 <translation id="8991694323904646277">ما مِن كاميرا متّصلة بالجهاز.</translation>
 <translation id="8991766915726096402">استرداد البيانات المحلّية</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{قبل <ph name="TIME_COUNT" /> دقيقة}=1{قبل ساعة واحدة (<ph name="TIME_COUNT" />)}two{قبل يوميَن (<ph name="TIME_COUNT" />)}few{قبل <ph name="TIME_COUNT" /> أيام}many{قبل <ph name="TIME_COUNT" /> يومًا}other{قبل <ph name="TIME_COUNT" /> يوم}}</translation>
 <translation id="8992671062738341478">"<ph name="WINDOW_TITLE" />" - استخدام الذاكرة - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">‏في حال نسيت كلمة مرور <ph name="DEVICE_TYPE" />، سيظل بإمكانك استعادة بياناتك المُخزّنة على الجهاز. ما عليك سوى تسجيل الدخول إلى حسابك على Google أو استخدام ميزة "استرداد الحساب".</translation>
 <translation id="8993198843374358393">نسخ تجزئة شهادة <ph name="CERT_NAME" /></translation>
@@ -11667,7 +11659,6 @@
 <translation id="973558314812359997">حجم مؤشر الماوس</translation>
 <translation id="973788791897303708">مجموعة علامات التبويب هذه ممتلئة</translation>
 <translation id="97381968209917373">هل تريد حذف الشهادة "<ph name="CERT_NAME" />"؟</translation>
-<translation id="973825986436797073">تم تغيير علامة تبويب من قِبل "<ph name="MEMBER_FIRST_NAME" />"</translation>
 <translation id="975893173032473675">اللغة التي تريد الترجمة إليها</translation>
 <translation id="976499800099896273">‏يُظهر مربّع الحوار إمكانية التراجع عن التصحيح التلقائي لكلمة <ph name="TYPED_WORD" /> التي تم تصحيحها بكلمة <ph name="CORRECTED_WORD" />.  اضغط على مفتاح السهم المتّجه للأعلى للتراجع عن التصحيح التلقائي، أو اضغط على مفتاح escape للتجاهل.</translation>
 <translation id="976572010712028687">إثبات أنّك أحد الوالدَين</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb
index f656b6c..48994ea 100644
--- a/chrome/app/resources/generated_resources_as.xtb
+++ b/chrome/app/resources/generated_resources_as.xtb
@@ -2574,7 +2574,6 @@
 <translation id="2764920001292228569">এটা প্ৰ’ফাইলৰ নাম দিয়ক</translation>
 <translation id="2765100602267695013">অনুগ্ৰহ কৰি আপোনাৰ ম’বাইল সেৱা প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক</translation>
 <translation id="2765217105034171413">সৰু</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />এ এটা টেব আঁতৰাইছে</translation>
 <translation id="2765820627968019645">পাতল</translation>
 <translation id="276582196519778359">অভিভাৱকীয় নিয়ন্ত্ৰণৰ বাবে আপোনাৰ পিনটো দিয়ক</translation>
 <translation id="2766006623206032690">পে&amp;ষ্ট কৰক আৰু আগবাঢ়ক</translation>
@@ -4138,7 +4137,6 @@
 <translation id="3872991219937722530">ডিস্কত খালী ঠাই উলিয়াওক অন্যথা ডিভাইচটো কাম নকৰা হৈ যাব।</translation>
 <translation id="3873315167136380065">এইটো অন কৰিবলৈ, আপোনাৰ ছিংক পাছফ্ৰে’জ আঁতৰাবলৈ <ph name="BEGIN_LINK" />ছিংক ৰিছেট<ph name="END_LINK" /> কৰক</translation>
 <translation id="3873423927483480833">পিনসমূহ দেখুৱাওক</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />এ এটা টেব যোগ দিছে</translation>
 <translation id="3873915545594852654">ARC++ৰ ক্ষেত্ৰত এটা সমস্যাই দেখা দিছে।</translation>
 <translation id="3874164307099183178">Google Assistant অন কৰক</translation>
 <translation id="3875511946736639169">প্ৰতিচ্ছবি সক্ষম কৰক</translation>
@@ -4267,7 +4265,6 @@
 <translation id="3959969108528118741">গৰাকী</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />ৰ বাবে আৰু অধিক কাৰ্য</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" />এ গোটটো এৰি গৈছে</translation>
 <translation id="3963753386716096475">অন্য এটা ফ’ন, টেবলেট অথবা সুৰক্ষা সম্পৰ্কীয় চাবি ব্যৱহাৰ কৰক</translation>
 <translation id="3964480518399667971">চেলুলাৰ নেটৱৰ্ক অফ কৰক</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />ৰ পৰা বাহিৰ হওক</translation>
@@ -5390,7 +5387,6 @@
 <translation id="4789348252524569426">কথনৰ ফাইল ইনষ্টল কৰিব নোৱাৰি। আপোনাৰ ডিভাইচটো আপডে’ট কৰাৰ প্ৰয়োজন। আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক আৰু পুনৰ চেষ্টা কৰক।</translation>
 <translation id="4789550509729954245">নিকটৱৰ্তী ডিভাইচসমূহে শ্বেয়াৰ কৰি থাকিলে জাননী দেখুৱাওক</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">কোনো পৰামর্শ নাই। “এই পৃষ্ঠাৰ সাৰাংশ প্ৰস্তুত কৰক”ৰ দৰে কাৰ্য কৰিবলৈ কৈ চাওক বা আপোনাৰ নিজৰ প্ৰশ্ন সুধি চাওক।</translation>
 <translation id="4791793693640849493">একাউণ্টত বস্তু ছেভ কৰক</translation>
 <translation id="4792290259143007505">TrackPointৰ এক্সিলাৰেশ্বন সক্ষম কৰক</translation>
 <translation id="4792711294155034829">কোনো সমস্যাৰ বিষয়ে &amp;অভিযোগ কৰক...</translation>
@@ -9021,7 +9017,6 @@
 <translation id="7421293530411019405">টেবৰ গোট এৰিবনে?</translation>
 <translation id="7421925624202799674">পৃষ্ঠাৰ উৎস &amp;চাওক</translation>
 <translation id="7422192691352527311">অগ্ৰাধিকাৰসমূহ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />এ গোটৰ নামটো সলনি কৰিছে</translation>
 <translation id="7423425410216218516">দৃশ্যমানতাৰ সুবিধাটো <ph name="MINUTES" /> মিনিট অন হৈ থাকিব</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> আঁতৰাওক</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> চলাবলৈ অনুমতিৰ আৱশ্যক</translation>
@@ -9512,7 +9507,6 @@
 <translation id="7772032839648071052">পাছফ্ৰেজ নিশ্চিত কৰক</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" />ৰ বিষয়ে</translation>
 <translation id="7773726648746946405">ছেশ্বনৰ সঞ্চয়াগাৰ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />এ গোটটোত যোগদান কৰিছে</translation>
 <translation id="7774365994322694683">চৰাই</translation>
 <translation id="7774581652827321413">পৃষ্ঠাৰ সাৰাংশ, প্ৰাসংগিক সন্ধান আৰু এই পৃষ্ঠাখনৰ বিষয়ে দৰকাৰী তথ্য পাওক</translation>
 <translation id="7774792847912242537">অতিং বেছিসংখ্যক অনুৰোধ।</translation>
@@ -11109,7 +11103,6 @@
 <translation id="8888253246822647887">আপগ্ৰেড সম্পূৰ্ণ হ’লে আপোনাৰ এপ্ খোল খাব৷ আপগ্ৰেড কৰোঁতে কেইমিনিটমান লাগিব পাৰে৷</translation>
 <translation id="8888459276890791557">সহজে এক্সেছ কৰিবলৈ আপুনি এই ছাইডৰ পেনেলটো পিন কৰিব পাৰে</translation>
 <translation id="8889294078294184559">আপুনি ব্ৰাউজ কৰি থাকিলে, ছাইটসমূহে Chromeৰ জৰিয়তে পৰীক্ষা কৰিব পাৰে আৰু আপুনি পূৰ্বে চোৱা ছাইটৰ পৰা সত্যাপন কৰিব পাৰে যে আপুনি এগৰাকী প্ৰকৃত ব্যৱহাৰকাৰী হোৱাৰ সম্ভাৱনা বেছি</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />এ গোটৰ ৰঙটো সলনি কৰিছে</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" />এ তলৰ ফাইলসমূহ আৰু ফ’ল্ডাৰসমূহ সম্পাদনা কৰিব পাৰে</translation>
 <translation id="8890170499370378450">ম’বাইল ডেটাৰ মাচুল প্ৰযোজ্য হ’ব পাৰে</translation>
 <translation id="8890516388109605451">উৎস</translation>
@@ -11260,7 +11253,6 @@
 <translation id="8991520179165052608">ছাইটে আপোনাৰ ডিভাইচৰ মাইক্ৰ’ফ’ন ব্যৱহাৰ কৰিব পাৰে</translation>
 <translation id="8991694323904646277">কোনো কেমেৰা নাই</translation>
 <translation id="8991766915726096402">স্থানীয় ডেটাৰ পুনৰুদ্ধাৰ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> মিনিট পূৰ্বে}=1{<ph name="TIME_COUNT" /> ঘণ্টা পূৰ্বে}one{<ph name="TIME_COUNT" /> দিন পূৰ্বে}other{<ph name="TIME_COUNT" /> দিন পূৰ্বে}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - মেম’ৰীৰ ব্যৱহাৰ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">যদি আপুনি আপোনাৰ <ph name="DEVICE_TYPE" />ৰ পাছৱৰ্ড পাহৰি যায়, আপুনি তথাপি আপোনাৰ স্থানীয় ডেটা পুনৰুদ্ধাৰ কৰিব পাৰিব। আপুনি আপোনাৰ Google একাউণ্টত ছাইন ইন কৰিব লাগিব অথবা একাউণ্টৰ পুনৰুদ্ধাৰ সুবিধাটো ব্যৱহাৰ কৰিব লাগিব।</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />ৰ বাবে প্ৰমাণপত্ৰৰ হেশ্ব প্ৰতিলিপি কৰক</translation>
@@ -11662,7 +11654,6 @@
 <translation id="973558314812359997">মাউছৰ আকাৰ</translation>
 <translation id="973788791897303708">এই টেবৰ গোটটো ভৰি পৰিছে</translation>
 <translation id="97381968209917373">প্ৰমাণপত্ৰ <ph name="CERT_NAME" /> মচক</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />এ এটা টেব সলনি কৰিছে</translation>
 <translation id="975893173032473675">যি ভাষালৈ অনুবাদ কৰিব লাগে সেই ভাষা</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" />ৰ শুধৰণি কৰি <ph name="CORRECTED_WORD" /> কৰাৰ বাবে স্বয়ং শুধৰণি আনডু কৰাৰ ডায়লগ দেখুওৱা হৈছে।  এক্সেছ কৰিবলৈ উপৰমুৱা কাঁড়চিহ্নত টিপক, উপেক্ষা কৰিবলৈ এস্কে’প টিপক।</translation>
 <translation id="976572010712028687">আপুনি এগৰাকী অভিভাৱক বুলি সত্যাপন কৰক</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb
index 71b3f5c6..ad0e234 100644
--- a/chrome/app/resources/generated_resources_az.xtb
+++ b/chrome/app/resources/generated_resources_az.xtb
@@ -2562,7 +2562,6 @@
 <translation id="2764920001292228569">Profil adı daxil edin</translation>
 <translation id="2765100602267695013">Mobil provayderinizlə əlaqə saxlayın</translation>
 <translation id="2765217105034171413">Kiçik</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> tabı sildi</translation>
 <translation id="2765820627968019645">İşıqlı</translation>
 <translation id="276582196519778359">Valideyn nəzarəti üçün PIN daxil edin</translation>
 <translation id="2766006623206032690">Yerləşdirin və keçin</translation>
@@ -4126,7 +4125,6 @@
 <translation id="3872991219937722530">Diskdə yer boşaldın əks halda cihaz reaksiya verməyəcək.</translation>
 <translation id="3873315167136380065">Bunu aktiv edərək sinxronizasiya parolunuzu silmək üçün<ph name="BEGIN_LINK" />sinxronizasiyanı sıfırlayın<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">PIN-ləri göstərin</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> tab əlavə etdi</translation>
 <translation id="3873915545594852654">ARC++ ilə bağlı problem yarandı.</translation>
 <translation id="3874164307099183178">Google Assistenti aktiv edin</translation>
 <translation id="3875511946736639169">Şəkilləri aktivləşdirin</translation>
@@ -4256,7 +4254,6 @@
 <translation id="3959969108528118741">Sahib</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> üçün digər əməliyyatlar</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> qrupu tərk etdi</translation>
 <translation id="3963753386716096475">Başqa telefon, planşet və ya təhlükəsizlik açarı istifadə edin</translation>
 <translation id="3964480518399667971">Mobil şəbəkəni deaktiv edin</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> profilindən çıxın</translation>
@@ -5377,7 +5374,6 @@
 <translation id="4789348252524569426">Nitq fayllarını quraşdırmaq olmur. Cihazınız güncəllənməlidir. Cihazı yenidən başladıb təkrar cəhd edin.</translation>
 <translation id="4789550509729954245">Cihazlar yaxınlıqda paylaşım edərkən bildiriş göstərin</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Əlçatan təklif yoxdur. "Bu səhifəni ümumiləşdirin" kimi əmrlər verin və ya öz sualınızı soruşun.</translation>
 <translation id="4791793693640849493">Elementləri hesabda yadda saxlayın</translation>
 <translation id="4792290259143007505">TrackPoint sürətlənməsini aktiv edin</translation>
 <translation id="4792711294155034829">Problemi xəbər verin...</translation>
@@ -9004,7 +9000,6 @@
 <translation id="7421293530411019405">Tab qrupundan çıxırsınız?</translation>
 <translation id="7421925624202799674">&amp;Səhifə Mənbəsinə Baxın</translation>
 <translation id="7422192691352527311">Seçimlər...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> qrupun adını dəyişdi</translation>
 <translation id="7423425410216218516">Görünmə <ph name="MINUTES" /> dəqiqə ərzində aktiv olacaq</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> silin</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> tətbiqinin işləməsi üçün icazə tələb olunur</translation>
@@ -9495,7 +9490,6 @@
 <translation id="7772032839648071052">Parolu təsdiq edin</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> haqqında</translation>
 <translation id="7773726648746946405">Sessiya yaddaşı</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> qrupa qoşuldu</translation>
 <translation id="7774365994322694683">Quş</translation>
 <translation id="7774581652827321413">Səhifə xülasəsi, əlaqədar axtarışlar və bu səhifə haqqında başqa faydalı məlumatlar əldə edin</translation>
 <translation id="7774792847912242537">Həddən çox sorğu var.</translation>
@@ -11089,7 +11083,6 @@
 <translation id="8888253246822647887">Tətbiq güncəlləmə tamamlandıqdan sonra açılacaq. Güncəlləmə bir neçə dəqiqə çəkə bilər.</translation>
 <translation id="8888459276890791557">Asan giriş üçün bu yan paneli bərkidə bilərsiniz</translation>
 <translation id="8889294078294184559">Baxmağa davam etdikcə saytlar Chrome ilə yoxlanış apara və daxil olduğunuz əvvəlki sayt ilə real insan olduğunuzu təsdiqləyə bilər</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> qrup rəngini dəyişdi</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> aşağıdakı fayl və qovluqları redaktə edə bilər</translation>
 <translation id="8890170499370378450">Mobil data xərcləri tutula bilər</translation>
 <translation id="8890516388109605451">Mənbələr</translation>
@@ -11240,7 +11233,6 @@
 <translation id="8991520179165052608">Sayt mikrofonu paylaşa bilər</translation>
 <translation id="8991694323904646277">Kamera yoxdur</translation>
 <translation id="8991766915726096402">Lokal data bərpası</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> dəq əvvəl}=1{<ph name="TIME_COUNT" /> saat əvvəl}other{<ph name="TIME_COUNT" /> gün əvvəl}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Yaddaş istifadəsi - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> parolunuzu unutsanız, yenə də lokal datanızı bərpa edə bilərsiniz. Google Hesabınıza daxil olmalı və ya hesabın bərpasından istifadə etməlisiniz.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> üçün sertifikat heşini kopiyalayın</translation>
@@ -11642,7 +11634,6 @@
 <translation id="973558314812359997">Maus ölçüsü</translation>
 <translation id="973788791897303708">Bu tap qrupu doludur</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> sertifikatını silin</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> tabı dəyişdi</translation>
 <translation id="975893173032473675">Tərcümə ediləcək dil</translation>
 <translation id="976499800099896273">Avtodüzəlişin geri qaytarılması dialoqu <ph name="TYPED_WORD" /> sözünün <ph name="CORRECTED_WORD" /> şəklində düzəlişi üçün göstərilir.  Giriş üçün yuxarı oxu, imtina etmək üçün escape düyməsini basın.</translation>
 <translation id="976572010712028687">Valideyn olduğunuzu doğrulayın</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb
index d334e967..251ef14e 100644
--- a/chrome/app/resources/generated_resources_be.xtb
+++ b/chrome/app/resources/generated_resources_be.xtb
@@ -2564,7 +2564,6 @@
 <translation id="2764920001292228569">Увядзіце назву профілю</translation>
 <translation id="2765100602267695013">Звярніцеся да свайго аператара мабільнай сувязі</translation>
 <translation id="2765217105034171413">Малы</translation>
-<translation id="2765349783094807040">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) выдаліў гэту ўкладку</translation>
 <translation id="2765820627968019645">Светлая</translation>
 <translation id="276582196519778359">Увядзіце PIN-код, каб адкрыць налады бацькоўскага кантролю</translation>
 <translation id="2766006623206032690">Ус&amp;тавіць і перайсці</translation>
@@ -4126,7 +4125,6 @@
 <translation id="3872991219937722530">Вызваліце месца на дыску, інакш прылада перастане адказваць на запыты.</translation>
 <translation id="3873315167136380065">Каб уключыць гэта, трэба выдаліць фразу-пароль – <ph name="BEGIN_LINK" />скіньце налады сінхранізацыі<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">Паказваць PIN-коды</translation>
-<translation id="3873893412864594794">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) дадаў укладку</translation>
 <translation id="3873915545594852654">Узнікла праблема з ARC++.</translation>
 <translation id="3874164307099183178">Уключыць Памочніка Google</translation>
 <translation id="3875511946736639169">Уключыць паказ відарысаў</translation>
@@ -4256,7 +4254,6 @@
 <translation id="3959969108528118741">Уладальнік</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Іншыя дзеянні з нумарам "<ph name="IBAN_DESCRIPTION" />"</translation>
-<translation id="3962607437409665666">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) пакінуў групу</translation>
 <translation id="3963753386716096475">Выкарыстаць іншы тэлефон, планшэт або ключ бяспекі</translation>
 <translation id="3964480518399667971">Выключыць сотавую сетку</translation>
 <translation id="3965965397408324205">Выйсці з профілю <ph name="PROFILE_NAME" /></translation>
@@ -5379,7 +5376,6 @@
 <translation id="4789348252524569426">Не ўдалося ўсталяваць файлы для распазнавання маўлення. Неабходна абнавіць прыладу. Перазапусціце яе і паўтарыце спробу.</translation>
 <translation id="4789550509729954245">Паказваць апавяшчэнне, калі прылады, якія знаходзяцца паблізу, абагульваюць змесціва</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Няма даступных прапаноў. Паспрабуйце папрасіць "падсумаваць гэту старонку" ці задайце сваё пытанне.</translation>
 <translation id="4791793693640849493">Захавайце элементы ва ўліковым запісе</translation>
 <translation id="4792290259143007505">Уключыць паскарэнне TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Паведаміць аб праблеме...</translation>
@@ -9013,7 +9009,6 @@
 <translation id="7421293530411019405">Выйсці з групы ўкладак?</translation>
 <translation id="7421925624202799674">&amp;Прагляд зыходнага тэксту старонкі</translation>
 <translation id="7422192691352527311">Параметры...</translation>
-<translation id="7422516375032300779">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) змяніў назву групы</translation>
 <translation id="7423425410216218516">Прылада будзе бачнай яшчэ <ph name="MINUTES" /> хв</translation>
 <translation id="7423513079490750513">Выдаліць: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Праграме <ph name="APP_NAME" /> патрабуецца ваш дазвол</translation>
@@ -9504,7 +9499,6 @@
 <translation id="7772032839648071052">Пацвердзіце фразу-пароль</translation>
 <translation id="7772127298218883077">Інфармацыя пра <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Захаванне сеанса</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> цяпер у групе</translation>
 <translation id="7774365994322694683">Птушка</translation>
 <translation id="7774581652827321413">Праглядзіце зводку па старонцы, падобныя пошукавыя запыты і іншую карысную інфармацыю пра яе</translation>
 <translation id="7774792847912242537">Занадта многа запытаў.</translation>
@@ -11103,7 +11097,6 @@
 <translation id="8888253246822647887">Праграма будзе адкрыта пасля завяршэння абнаўлення. Абнаўленні могуць заняць некалькі хвілін.</translation>
 <translation id="8888459276890791557">Для лёгкага доступу да гэтай бакавой панэлі яе можна замацаваць</translation>
 <translation id="8889294078294184559">Гэта дазваляе іншым сайтам, якія вы наведваеце, запытваць гэты даныя ў Chrome, каб правяраць, ці сапраўды вы чалавек.</translation>
-<translation id="88895904696396879">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) змяніў колер групы</translation>
 <translation id="8889651696183044030">Сайт <ph name="ORIGIN" /> можа змяняць наступныя файлы і папкі</translation>
 <translation id="8890170499370378450">За мабільную перадачу даных можа спаганяцца плата</translation>
 <translation id="8890516388109605451">Крыніцы</translation>
@@ -11254,7 +11247,6 @@
 <translation id="8991520179165052608">Сайт можа выкарыстоўваць ваш мікрафон</translation>
 <translation id="8991694323904646277">Няма камеры</translation>
 <translation id="8991766915726096402">Аднаўленне лакальных даных</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> хв таму}=1{<ph name="TIME_COUNT" /> гадз таму}one{<ph name="TIME_COUNT" /> сут таму}few{<ph name="TIME_COUNT" /> сут таму}many{<ph name="TIME_COUNT" /> сут таму}other{<ph name="TIME_COUNT" /> сут таму}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Выкарыстанне памяці: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Калі вы забудзеце пароль для прылады <ph name="DEVICE_TYPE" />, лакальныя даныя можна будзе аднавіць. Вам трэба будзе ўвайсці ва Уліковы запіс Google або выкарыстаць функцыю аднаўлення доступу да ўліковага запісу.</translation>
 <translation id="8993198843374358393">Скапіраваць хэш сертыфіката "<ph name="CERT_NAME" />"</translation>
@@ -11653,7 +11645,6 @@
 <translation id="973558314812359997">Памер курсора мышы</translation>
 <translation id="973788791897303708">Гэта група ўкладак запоўнена</translation>
 <translation id="97381968209917373">Выдаліць сертыфікат "<ph name="CERT_NAME" />"</translation>
-<translation id="973825986436797073">Карыстальнік (<ph name="MEMBER_FIRST_NAME" />) змяніў укладку</translation>
 <translation id="975893173032473675">На якую мову перакласці</translation>
 <translation id="976499800099896273">Паказваецца дыялогавае акно, з дапамогай якога аўтавыпраўленне слова "<ph name="TYPED_WORD" />" на слова "<ph name="CORRECTED_WORD" />" можна адрабіць.  Націсніце стрэлку ўверх, каб перайсці да выпраўленага слова, або Escape, каб адхіліць гэта акно.</translation>
 <translation id="976572010712028687">Спраўдзіце, што вы з’яўляецеся адным з бацькоў</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index f827c46..0ccfefee 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2572,7 +2572,6 @@
 <translation id="2764920001292228569">Въведете име на потребителския профил</translation>
 <translation id="2765100602267695013">Свържете се с мобилния си оператор</translation>
 <translation id="2765217105034171413">Малък</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> премахна раздел</translation>
 <translation id="2765820627968019645">Светла</translation>
 <translation id="276582196519778359">Въведете ПИН кода си за родителски контроли</translation>
 <translation id="2766006623206032690">&amp;Поставяне и старт</translation>
@@ -4137,7 +4136,6 @@
 <translation id="3872991219937722530">Освободете място на диска, в противен случай устройството ви ще престане да реагира.</translation>
 <translation id="3873315167136380065">За да включите тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" />, така че да премахнете съответния си пропуск</translation>
 <translation id="3873423927483480833">Показване на ПИН кодовете</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> добави раздел</translation>
 <translation id="3873915545594852654">Възникна проблем със СИПС++.</translation>
 <translation id="3874164307099183178">Включване на Google Асистент</translation>
 <translation id="3875511946736639169">Активиране на изображенията</translation>
@@ -4267,7 +4265,6 @@
 <translation id="3959969108528118741">Собственик</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Още действия за <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> напусна групата</translation>
 <translation id="3963753386716096475">Използване на друг телефон, таблет или ключ за сигурност</translation>
 <translation id="3964480518399667971">Изключване на мобилната мрежа</translation>
 <translation id="3965965397408324205">Изход от <ph name="PROFILE_NAME" /></translation>
@@ -5390,7 +5387,6 @@
 <translation id="4789348252524569426">Инсталирането на файловете с говора не е възможно. Устройството ви трябва да бъде актуализирано. Рестартирайте го и опитайте отново.</translation>
 <translation id="4789550509729954245">Показване на известие, когато наблизо има споделящи устройства</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Няма налични предложения. Опитайте да поискате нещо, като например „обобщи тази страница“, или задайте свой собствен въпрос.</translation>
 <translation id="4791793693640849493">Запазване на елементите в профила</translation>
 <translation id="4792290259143007505">Активиране на ускоряването на TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Подаване на сигнал за проблем...</translation>
@@ -9021,7 +9017,6 @@
 <translation id="7421293530411019405">Искате ли да напуснете групата раздели?</translation>
 <translation id="7421925624202799674">&amp;Преглед на изходния код на страницата</translation>
 <translation id="7422192691352527311">Предпочитания...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> промени името на групата</translation>
 <translation id="7423425410216218516">Видимостта е включена за <ph name="MINUTES" /> минути</translation>
 <translation id="7423513079490750513">Премахване на <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">За стартирането на <ph name="APP_NAME" /> е необходимо разрешение</translation>
@@ -9512,7 +9507,6 @@
 <translation id="7772032839648071052">Потвърдете пропуска</translation>
 <translation id="7772127298218883077">Всичко за <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Хранилище за сесията</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> се присъедини към групата</translation>
 <translation id="7774365994322694683">Птица</translation>
 <translation id="7774581652827321413">Вижте обобщена информация за страницата, сродни търсения и други полезни сведения за нея</translation>
 <translation id="7774792847912242537">Твърде много заявки.</translation>
@@ -11109,7 +11103,6 @@
 <translation id="8888253246822647887">Приложението ще се отвори, щом надстройването завърши. Това може да отнеме няколко минути.</translation>
 <translation id="8888459276890791557">Можете да фиксирате този страничен панел за лесен достъп</translation>
 <translation id="8889294078294184559">Докато сърфирате, сайтовете могат да направят справка с Chrome и да потвърдят чрез по-рано посетен от вас сайт, че най-вероятно сте истински човек</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> промени цвета на групата</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> може да редактира следните файлове и папки</translation>
 <translation id="8890170499370378450">Може да доведе до таксуване за мобилни данни</translation>
 <translation id="8890516388109605451">Източници</translation>
@@ -11260,7 +11253,6 @@
 <translation id="8991520179165052608">Сайтът може да използва микрофона ви</translation>
 <translation id="8991694323904646277">Няма камера</translation>
 <translation id="8991766915726096402">Възстановяване на локални данни</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Преди <ph name="TIME_COUNT" /> мин}=1{Преди <ph name="TIME_COUNT" /> ч}other{Преди <ph name="TIME_COUNT" /> д}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – използвана памет: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Дори да забравите паролата си за <ph name="DEVICE_TYPE" />, можете да възстановите локалните си данни. Ще се наложи да влезете в профила си в Google или да използвате функцията за възстановяването му.</translation>
 <translation id="8993198843374358393">Копиране на хеш стойността на сертификата за <ph name="CERT_NAME" /></translation>
@@ -11662,7 +11654,6 @@
 <translation id="973558314812359997">Размер на курсора на мишката</translation>
 <translation id="973788791897303708">Тази група раздели е пълна</translation>
 <translation id="97381968209917373">Изтриване на сертификата „<ph name="CERT_NAME" />“</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> промени раздел</translation>
 <translation id="975893173032473675">Целеви език</translation>
 <translation id="976499800099896273">Показва се диалоговият прозорец за отмяна на автоматичното коригиране на думата <ph name="TYPED_WORD" />, поправена на <ph name="CORRECTED_WORD" />.  Натиснете стрелката за нагоре за достъп или Escape за пренебрегване.</translation>
 <translation id="976572010712028687">Потвърдете, че сте родител</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 3a1fb53..b6fc55b 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">প্রোফাইল নাম লিখুন</translation>
 <translation id="2765100602267695013">আপনার মোবাইল পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন</translation>
 <translation id="2765217105034171413">ক্ষুদ্র</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> একটি ট্যাব সরিয়ে দিয়েছেন</translation>
 <translation id="2765820627968019645">লাইট</translation>
 <translation id="276582196519778359">অভিভাবকীয় নিয়ন্ত্রণের জন্য আপনার পিন লিখুন</translation>
 <translation id="2766006623206032690">প্র&amp;তিলেপন করুন ও যান</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">ডিস্কে জায়গা খালি করুন, নাহলে ডিভাইস সাড়া দিবে না।</translation>
 <translation id="3873315167136380065">এটি চালু করতে, আপনার সিঙ্ক পাসফ্রেজটি সরিয়ে দিতে <ph name="BEGIN_LINK" />সিঙ্ক রিসেট করুন<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">পিন দেখুন</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> একটি ট্যাব যোগ করেছেন</translation>
 <translation id="3873915545594852654">ARC++ নিয়ে একটি সমস্যা হয়েছে।</translation>
 <translation id="3874164307099183178">Google Assistant অ্যাপ চালু করুন</translation>
 <translation id="3875511946736639169">ছবি দেখার বিকল্প চালু করুন</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">মালিক</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />-এর জন্য আরও অ্যাকশন</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> গ্রুপটি ছেড়ে গেছেন</translation>
 <translation id="3963753386716096475">আলাদা ফোন, ট্যাবলেট বা নিরাপত্তা কী ব্যবহার করুন</translation>
 <translation id="3964480518399667971">মোবাইল নেটওয়ার্ক বন্ধ করুন</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> ছেড়ে যান</translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">স্পিচ ফাইল ইনস্টল করা যাচ্ছে না। আপনার ডিভাইস আপডেট করতে হবে। ডিভাইস রিস্টার্ট করে আবার চেষ্টা করুন।</translation>
 <translation id="4789550509729954245">ডিভাইস আশেপাশে শেয়ার করা হলে বিজ্ঞপ্তি দেখুন</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">কোনও সাজেশন উপলভ্য নেই। “এই পৃষ্ঠার সারসংক্ষেপ করো” প্রম্পটের মতো কথা বা নিজের প্রশ্ন বলে দেখুন।</translation>
 <translation id="4791793693640849493">অ্যাকাউন্টে আইটেম সেভ করে রাখুন</translation>
 <translation id="4792290259143007505">TrackPoint অ্যাক্সিলারেশন চালু করুন</translation>
 <translation id="4792711294155034829">&amp;কোনও সমস্যা অভিযোগ করুন...</translation>
@@ -9027,7 +9023,6 @@
 <translation id="7421293530411019405">ট্যাব গ্রুপ থেকে বেরিয়ে যেতে চান?</translation>
 <translation id="7421925624202799674">পৃষ্ঠা উৎস &amp;দেখুন</translation>
 <translation id="7422192691352527311">অভিরুচিসমূহ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> গ্রুপের নাম পরিবর্তন করেছেন</translation>
 <translation id="7423425410216218516">'দৃশ্যমানতা' সেটিং <ph name="MINUTES" /> মিনিটের জন্য চালু আছে</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> সরিয়ে দিন</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> চালু করতে অনুমতি দিতে হবে</translation>
@@ -9518,7 +9513,6 @@
 <translation id="7772032839648071052">পাসফ্রেজ নিশ্চিত করুন</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> সম্বন্ধে</translation>
 <translation id="7773726648746946405">সেশন স্টোরেজ</translation>
-<translation id="7773887159761725143">গ্রুপে <ph name="MEMBER_FIRST_NAME" /> যোগ দিয়েছেন</translation>
 <translation id="7774365994322694683">পাখি</translation>
 <translation id="7774581652827321413">পৃষ্ঠার সারাংশ, সংশ্লিষ্ট সার্চ ও এই পৃষ্ঠা সম্পর্কে অন্যান্য প্রয়োজনীয় তথ্য পান</translation>
 <translation id="7774792847912242537">অত্যধিক অনুরোধ।</translation>
@@ -11115,7 +11109,6 @@
 <translation id="8888253246822647887">আপগ্রেড প্রক্রিয়া শেষ হওয়ার পরেই আপনার অ্যাপ চালু হবে। আপগ্রেড প্রক্রিয়াতে কয়েক মিনিট লাগতে পারে।</translation>
 <translation id="8888459276890791557">সহজে অ্যাক্সেস করার জন্য আপনি এই সাইড প্যানেলে পিন করতে পারেন</translation>
 <translation id="8889294078294184559">ব্রাউজ করা চালিয়ে গেলে, সাইট Chrome-এর মাধ্যমে চেক করতে পারে এবং আপনার দেখা কোনও সাইটের থেকে এটি যাচাই করতে পারে যে আপনি আসলে একজন ব্যক্তি, কোনও বট নন</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> গ্রুপের রঙ পরিবর্তন করেছেন</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> নিচে উল্লেখ করা ফাইল এবং ফোল্ডার এডিট করতে পারবে</translation>
 <translation id="8890170499370378450">মোবাইল ডেটা খরচের জন্য আপনাকে চার্জ করা হতে পারে</translation>
 <translation id="8890516388109605451">উৎস</translation>
@@ -11266,7 +11259,6 @@
 <translation id="8991520179165052608">সাইটটি আপনার মাইক্রোফোন ব্যবহার করতে পারে</translation>
 <translation id="8991694323904646277">কোনও ক্যামেরা নেই</translation>
 <translation id="8991766915726096402">স্থানীয় ডেটা রিকভারি</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />মিনিট আগে}=1{<ph name="TIME_COUNT" />ঘণ্টা আগে}one{<ph name="TIME_COUNT" />দিন আগে}other{<ph name="TIME_COUNT" />দিন আগে}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - মেমরির ব্যবহার - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">আপনার <ph name="DEVICE_TYPE" />-এর পাসওয়ার্ড ভুলে গেলে, আপনি এখনও আপনার স্থানীয় ডেটা রিস্টোর করতে পারবেন। আপনার Google অ্যাকাউন্টে সাইন-ইন করতে বা 'অ্যাকাউন্টের পুনরুদ্ধার' বিকল্প ব্যবহার করতে হবে।</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />-এর জন্য সার্টিফিকেট হ্যাশ কপি করুন</translation>
@@ -11668,7 +11660,6 @@
 <translation id="973558314812359997">মাউসের সাইজ</translation>
 <translation id="973788791897303708">এই ট্যাব গ্রুপে আর জায়গা নেই</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> সার্টিফিকেট মুছবেন</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> একটি ট্যাব পরিবর্তন করেছেন</translation>
 <translation id="975893173032473675">যে ভাষায় অনুবাদ করতে হবে</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> সংশোধন করে <ph name="CORRECTED_WORD" /> করা হয়েছে, তাই 'অটোমেটিক সংশোধন আগের অবস্থায় ফেরান' ডায়ালগ দেখানো হয়েছে।  অ্যাক্সেস করতে ঊর্ধ্বমুখী তীরচিহ্ন আর এড়িয়ে যেতে Escape প্রেস করুন।</translation>
 <translation id="976572010712028687">আপনি যে একজন অভিভাবক তা যাচাই করুন</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
index 61937f12..e2e8a1e1 100644
--- a/chrome/app/resources/generated_resources_bs.xtb
+++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">Unesite naziv profila</translation>
 <translation id="2765100602267695013">Kontaktirajte mobilnog operatera</translation>
 <translation id="2765217105034171413">Malo</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> je uklonio/la karticu</translation>
 <translation id="2765820627968019645">Svijetlo</translation>
 <translation id="276582196519778359">Unesite PIN za roditeljski nadzor</translation>
 <translation id="2766006623206032690">Za&amp;lijepi i kreni</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">Oslobodite prostor na disku ili će uređaj prestati reagirati.</translation>
 <translation id="3873315167136380065">Da uključite ovo, <ph name="BEGIN_LINK" />poništite sinhronizaciju<ph name="END_LINK" /> da uklonite svoju šifru za pristup za sinhroniziranje</translation>
 <translation id="3873423927483480833">Prikaži PIN-ove</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> je dodao/la karticu</translation>
 <translation id="3873915545594852654">Došlo je do problema koji se odnosi na ARC++.</translation>
 <translation id="3874164307099183178">Uključite Google Asistenta</translation>
 <translation id="3875511946736639169">Omogućavanje slika</translation>
@@ -4269,7 +4267,6 @@
 <translation id="3959969108528118741">Vlasnik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Više radnji za oznaku <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> je napustio/la grupu</translation>
 <translation id="3963753386716096475">Koristite drugi telefon, tablet ili sigurnosni ključ</translation>
 <translation id="3964480518399667971">Isključi mobilnu mrežu</translation>
 <translation id="3965965397408324205">Izađi iz profila <ph name="PROFILE_NAME" /></translation>
@@ -5392,7 +5389,6 @@
 <translation id="4789348252524569426">Nije moguće instalirati fajlove za govor. Potrebno je ažurirati uređaj. Ponovo pokrenite uređaj i pokušajte ponovo.</translation>
 <translation id="4789550509729954245">Prikaz obavještenja kada uređaji dijele u blizini</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nije dostupan nijedan prijedlog. Pokušajte pitati npr., "sažmi ovu stranicu" ili postavite vlastito pitanje.</translation>
 <translation id="4791793693640849493">Sačuvajte stavke na računu</translation>
 <translation id="4792290259143007505">Omogući ubrzanje TrackPointa</translation>
 <translation id="4792711294155034829">&amp;Prijavi problem...</translation>
@@ -9026,7 +9022,6 @@
 <translation id="7421293530411019405">Napustiti grupu kartica?</translation>
 <translation id="7421925624202799674">&amp;Prikaz izvora stranice</translation>
 <translation id="7422192691352527311">Postavke...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> je promijenio/la naziv grupe</translation>
 <translation id="7423425410216218516">Vidljivost je uključena na <ph name="MINUTES" /> min</translation>
 <translation id="7423513079490750513">Uklonite <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Za pokretanje aplikacije <ph name="APP_NAME" /> je potrebno odobrenje</translation>
@@ -9517,7 +9512,6 @@
 <translation id="7772032839648071052">Potvrdite pristupni izraz</translation>
 <translation id="7772127298218883077">O proizvodu <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Pohrana sesije</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> se pridružio/la grupi</translation>
 <translation id="7774365994322694683">Ptica</translation>
 <translation id="7774581652827321413">Dobijte sažetak stranice, srodna pretraživanja i druge korisne informacije o ovoj stranici</translation>
 <translation id="7774792847912242537">Previše zahtjeva.</translation>
@@ -11116,7 +11110,6 @@
 <translation id="8888253246822647887">Vaša aplikacija će se otvoriti kada se završi nadogradnja. Nadogradnje mogu potrajati nekoliko minuta.</translation>
 <translation id="8888459276890791557">Možete zakačiti ovu bočnu ploču radi lakog pristupa</translation>
 <translation id="8889294078294184559">Kako nastavljate pregledati, web lokacije mogu provjeravati u Chromeu i s prethodnom web lokacijom koju ste posjetili potvrditi da ste stvarna osoba</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> je promijenio/la boju grupe</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> može uređivati sljedeće fajlove i foldere</translation>
 <translation id="8890170499370378450">Mogu nastati troškovi prenosa podataka na mobilnoj mreži</translation>
 <translation id="8890516388109605451">Izvori</translation>
@@ -11267,7 +11260,6 @@
 <translation id="8991520179165052608">Web lokacija može koristiti vaš mikrofon</translation>
 <translation id="8991694323904646277">Nema kamere</translation>
 <translation id="8991766915726096402">Oporavak lokalnih podataka</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Prije <ph name="TIME_COUNT" /> min}=1{Prije <ph name="TIME_COUNT" /> h}one{Prije <ph name="TIME_COUNT" /> dan}few{Prije <ph name="TIME_COUNT" /> dana}other{Prije <ph name="TIME_COUNT" /> dana}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – korištenje memorije – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ako zaboravite lozinku za <ph name="DEVICE_TYPE" />, i dalje možete vratiti lokalne podatke. Trebat ćete se prijaviti na Google račun ili koristiti oporavak računa.</translation>
 <translation id="8993198843374358393">Kopiranje hasha certifikata <ph name="CERT_NAME" /></translation>
@@ -11669,7 +11661,6 @@
 <translation id="973558314812359997">Veličina miša</translation>
 <translation id="973788791897303708">Grupa kartica je puna</translation>
 <translation id="97381968209917373">Brisanje certifikata <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> je promijenio/la karticu</translation>
 <translation id="975893173032473675">Jezik na koji se prevodi</translation>
 <translation id="976499800099896273">Dijaloški okvir za poništavanje automatskog ispravljanja je prikazan za riječ <ph name="TYPED_WORD" /> koja je ispravljena u <ph name="CORRECTED_WORD" />.  Pritisnite strelicu nagore da pristupite, a tipku Esc da zanemarite.</translation>
 <translation id="976572010712028687">Potvrdite da ste roditelj</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index b92dfcc2..29124d69 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Introdueix un nom per al perfil</translation>
 <translation id="2765100602267695013">Contacta amb el teu proveïdor de telefonia mòbil</translation>
 <translation id="2765217105034171413">Petita</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ha suprimit una pestanya</translation>
 <translation id="2765820627968019645">Clar</translation>
 <translation id="276582196519778359">Introdueix el PIN per als controls parentals</translation>
 <translation id="2766006623206032690">En&amp;ganxa i ves</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">Allibera espai de disc o el dispositiu deixarà de respondre.</translation>
 <translation id="3873315167136380065">Si vols activar aquesta opció, <ph name="BEGIN_LINK" />restableix la sincronització<ph name="END_LINK" /> per suprimir la frase de contrasenya de sincronització</translation>
 <translation id="3873423927483480833">Mostra els PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ha afegit una pestanya</translation>
 <translation id="3873915545594852654">S'ha produït un problema amb ARC++.</translation>
 <translation id="3874164307099183178">Activa l'Assistent de Google</translation>
 <translation id="3875511946736639169">Activa les imatges</translation>
@@ -4254,7 +4252,6 @@
 <translation id="3959969108528118741">Propietari</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Més accions per a <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ha marxat del grup</translation>
 <translation id="3963753386716096475">Utilitza un telèfon, una tauleta o una clau de seguretat diferents</translation>
 <translation id="3964480518399667971">Desactiva la xarxa mòbil</translation>
 <translation id="3965965397408324205">Surt del perfil <ph name="PROFILE_NAME" /></translation>
@@ -5377,7 +5374,6 @@
 <translation id="4789348252524569426">No es poden instal·lar els fitxers de parla. Cal actualitzar el dispositiu. Reinicia'l i torna-ho a provar.</translation>
 <translation id="4789550509729954245">Mostra una notificació quan hi hagi dispositius compartint contingut a prop</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">No hi ha cap suggeriment disponible. Prova de demanar coses com ara "resumeix aquesta pàgina" o fes la teva pròpia pregunta.</translation>
 <translation id="4791793693640849493">Desa els elements al compte</translation>
 <translation id="4792290259143007505">Activa l'acceleració TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Informa d'un problema...</translation>
@@ -9004,7 +9000,6 @@
 <translation id="7421293530411019405">Vols sortir del grup de pestanyes?</translation>
 <translation id="7421925624202799674">&amp;Visualitza l'origen de la pàgina</translation>
 <translation id="7422192691352527311">Preferències...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ha canviat el nom del grup</translation>
 <translation id="7423425410216218516">La visibilitat estarà activada durant <ph name="MINUTES" /> minuts</translation>
 <translation id="7423513079490750513">Suprimeix <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> necessita permís per executar-se</translation>
@@ -9495,7 +9490,6 @@
 <translation id="7772032839648071052">Confirmeu la frase de contrasenya</translation>
 <translation id="7772127298218883077">Informació sobre <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Emmagatzematge de sessions</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> s'ha unit al grup</translation>
 <translation id="7774365994322694683">Ocell</translation>
 <translation id="7774581652827321413">Obtén un resum de la pàgina, cerques relacionades i altres dades útils sobre aquesta pàgina</translation>
 <translation id="7774792847912242537">Hi ha massa sol·licituds.</translation>
@@ -11093,7 +11087,6 @@
 <translation id="8888253246822647887">L'aplicació s'obrirà quan finalitzi l'actualització. Les actualitzacions poden tardar uns quants minuts.</translation>
 <translation id="8888459276890791557">Pots fixar aquest tauler lateral per accedir-hi fàcilment</translation>
 <translation id="8889294078294184559">Mentre continuïs navegant, els llocs web podran recórrer a Chrome per verificar que ets una persona real mitjançant llocs web que hagis visitat anteriorment</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ha canviat el color del grup</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> pot editar els fitxers i les carpetes següents</translation>
 <translation id="8890170499370378450">És possible que s'apliquin càrrecs per ús de dades mòbils</translation>
 <translation id="8890516388109605451">Fonts</translation>
@@ -11244,7 +11237,6 @@
 <translation id="8991520179165052608">El lloc web pot utilitzar el micròfon</translation>
 <translation id="8991694323904646277">Càmera no disponible</translation>
 <translation id="8991766915726096402">Recuperació de dades locals</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Fa <ph name="TIME_COUNT" /> min}=1{Fa <ph name="TIME_COUNT" /> h}other{Fa <ph name="TIME_COUNT" /> d}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Ús de memòria - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Encara que oblidis la contrasenya del <ph name="DEVICE_TYPE" />, pots restaurar les dades locals. Hauràs d'iniciar la sessió al Compte de Google o utilitzar la recuperació del compte.</translation>
 <translation id="8993198843374358393">Copia el valor resum del certificat de <ph name="CERT_NAME" /></translation>
@@ -11646,7 +11638,6 @@
 <translation id="973558314812359997">Mida del ratolí</translation>
 <translation id="973788791897303708">Aquest grup de pestanyes és ple</translation>
 <translation id="97381968209917373">Suprimeix el certificat <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ha canviat una pestanya</translation>
 <translation id="975893173032473675">Idioma d'arribada de la traducció</translation>
 <translation id="976499800099896273">Es mostra el quadre de diàleg Desfés de la correcció automàtica per a la paraula <ph name="TYPED_WORD" />, que s'ha corregit com a <ph name="CORRECTED_WORD" />.  Prem la fletxa amunt per accedir i la tecla d'escapada per ignorar.</translation>
 <translation id="976572010712028687">Verifica que ets el pare o la mare</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index b348a7a0..059108bc 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Zadejte název profilu</translation>
 <translation id="2765100602267695013">Obraťte se na svého mobilního operátora.</translation>
 <translation id="2765217105034171413">Malé</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> odstranil(a) kartu</translation>
 <translation id="2765820627968019645">Světlý</translation>
 <translation id="276582196519778359">Zadejte PIN pro rodičovskou kontrolu</translation>
 <translation id="2766006623206032690">Vl&amp;ožit a rovnou otevřít</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">Uvolněte místo na disku, jinak zařízení přestane reagovat.</translation>
 <translation id="3873315167136380065">Chcete-li tuto funkci zapnout, <ph name="BEGIN_LINK" />resetováním synchronizace<ph name="END_LINK" /> odstraňte svou heslovou frázi pro synchronizaci</translation>
 <translation id="3873423927483480833">Zobrazit kódy PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> přidal(a) kartu</translation>
 <translation id="3873915545594852654">Došlo k problému s ARC++.</translation>
 <translation id="3874164307099183178">Zapnout Asistenta Google</translation>
 <translation id="3875511946736639169">Povolit obrázky</translation>
@@ -4256,7 +4254,6 @@
 <translation id="3959969108528118741">Vlastník</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Další akce pro <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> opustil(a) skupinu</translation>
 <translation id="3963753386716096475">Použít jiný telefon, tablet nebo bezpečnostní klíč</translation>
 <translation id="3964480518399667971">Vypnout mobilní síť</translation>
 <translation id="3965965397408324205">Zavřít profil <ph name="PROFILE_NAME" /></translation>
@@ -5379,7 +5376,6 @@
 <translation id="4789348252524569426">Řečové soubory nelze nainstalovat. Zařízení je třeba aktualizovat. Restartujte zařízení a zkuste to znovu.</translation>
 <translation id="4789550509729954245">Zobrazit oznámení, když zařízení v okolí sdílí obsah</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Žádné návrhy nejsou k dispozici. Zkuste zadat třeba „shrnout tuto stránku“ nebo položit vlastní dotaz.</translation>
 <translation id="4791793693640849493">Uložení položek do účtu</translation>
 <translation id="4792290259143007505">Povolit akceleraci TrackPointu</translation>
 <translation id="4792711294155034829">&amp;Nahlásit problém...</translation>
@@ -9008,7 +9004,6 @@
 <translation id="7421293530411019405">Opustit skupinu karet?</translation>
 <translation id="7421925624202799674">Zobrazit zdrojo&amp;vý kód stránky</translation>
 <translation id="7422192691352527311">Nastavení...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> změnil název skupiny</translation>
 <translation id="7423425410216218516">Viditelnost je zapnutá na <ph name="MINUTES" /> min</translation>
 <translation id="7423513079490750513">Odstranit: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Aplikace <ph name="APP_NAME" /> ke spuštění potřebuje povolení</translation>
@@ -9498,7 +9493,6 @@
 <translation id="7772032839648071052">Potvrďte heslovou frázi</translation>
 <translation id="7772127298218883077">O aplikaci <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Úložiště návštěvy</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> se připojil(a) ke skupině</translation>
 <translation id="7774365994322694683">Pták</translation>
 <translation id="7774581652827321413">Získejte souhrn stránky, související vyhledávání a další užitečné informace o této stránce</translation>
 <translation id="7774792847912242537">Příliš mnoho požadavků.</translation>
@@ -11096,7 +11090,6 @@
 <translation id="8888253246822647887">Aplikace se spustí po dokončení upgradu. Upgrade může trvat několik minut.</translation>
 <translation id="8888459276890791557">Tento boční panel můžete pro snadný přístup připnout</translation>
 <translation id="8889294078294184559">Při dalším procházení může Chrome na požádání jinému webu sdělit, že vás předchozí web ověřil jako pravděpodobně skutečného uživatele</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> změnil(a) barvu skupiny</translation>
 <translation id="8889651696183044030">Web <ph name="ORIGIN" /> může upravovat následující soubory a složky</translation>
 <translation id="8890170499370378450">Mohou být účtovány poplatky za mobilní data</translation>
 <translation id="8890516388109605451">Zdroje</translation>
@@ -11247,7 +11240,6 @@
 <translation id="8991520179165052608">Web může použít mikrofon</translation>
 <translation id="8991694323904646277">Žádný fotoaparát</translation>
 <translation id="8991766915726096402">Obnovení místních dat</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Před <ph name="TIME_COUNT" /> min}=1{Před <ph name="TIME_COUNT" /> h}few{Před <ph name="TIME_COUNT" /> dny}many{Před <ph name="TIME_COUNT" /> dne}other{Před <ph name="TIME_COUNT" /> dny}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Využití paměti – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Pokud zapomenete heslo k zařízení <ph name="DEVICE_TYPE" />, můžete přesto obnovit místní data. Budete se muset přihlásit ke svému účtu Google nebo použít obnovení účtu.</translation>
 <translation id="8993198843374358393">Kopírovat hodnotu hash certifikátu <ph name="CERT_NAME" /></translation>
@@ -11649,7 +11641,6 @@
 <translation id="973558314812359997">Velikost myši</translation>
 <translation id="973788791897303708">Tato skupina karet je plná</translation>
 <translation id="97381968209917373">Smazat certifikát <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> změnil(a) kartu</translation>
 <translation id="975893173032473675">Cílový jazyk překladu</translation>
 <translation id="976499800099896273">Je zobrazeno dialogové okno automatických oprav pro slovo <ph name="TYPED_WORD" /> opravené na <ph name="CORRECTED_WORD" />.  Stisknutím šipky nahoru do něj přejdete, stisknutím klávesy Escape ho ignorujete.</translation>
 <translation id="976572010712028687">Potvrďte, že jste rodič</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb
index d205fc0f..bcb0ce6 100644
--- a/chrome/app/resources/generated_resources_cy.xtb
+++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2579,7 +2579,6 @@
 <translation id="2764920001292228569">Rhowch enw proffil</translation>
 <translation id="2765100602267695013">Cysylltwch â'ch darparwr symudol</translation>
 <translation id="2765217105034171413">Bach</translation>
-<translation id="2765349783094807040">Mae <ph name="MEMBER_FIRST_NAME" /> wedi tynnu tab</translation>
 <translation id="2765820627968019645">Golau</translation>
 <translation id="276582196519778359">Rhowch eich PIN ar gyfer rheolaethau rhieni</translation>
 <translation id="2766006623206032690">Gl&amp;udo a mynd</translation>
@@ -4143,7 +4142,6 @@
 <translation id="3872991219937722530">Crëwch ragor o le ar y disg neu bydd y ddyfais yn dod yn anymatebol.</translation>
 <translation id="3873315167136380065">I'w droi ymlaen, <ph name="BEGIN_LINK" />ailosodwch y cysoni<ph name="END_LINK" /> i dynnu eich cyfrinymadrodd cysoni</translation>
 <translation id="3873423927483480833">Dangos PIN</translation>
-<translation id="3873893412864594794">Mae <ph name="MEMBER_FIRST_NAME" /> wedi ychwanegu tab</translation>
 <translation id="3873915545594852654">Bu problem gydag ARC++.</translation>
 <translation id="3874164307099183178">Troi Google Assistant ymlaen</translation>
 <translation id="3875511946736639169">Galluogi lluniau</translation>
@@ -4273,7 +4271,6 @@
 <translation id="3959969108528118741">Perchennog</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Rhagor o gamau gweithredu ar gyfer <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Mae <ph name="MEMBER_FIRST_NAME" /> wedi gadael y grŵp</translation>
 <translation id="3963753386716096475">Defnyddio ffôn, llechen neu allwedd ddiogelwch wahanol</translation>
 <translation id="3964480518399667971">Diffodd rhwydwaith symudol</translation>
 <translation id="3965965397408324205">Gadael <ph name="PROFILE_NAME" /></translation>
@@ -5396,7 +5393,6 @@
 <translation id="4789348252524569426">Methu â gosod ffeiliau llais. Mae angen diweddaru eich dyfais. Ailgychwynnwch eich dyfais a rhowch gynnig arall arni.</translation>
 <translation id="4789550509729954245">Dangos hysbysiad pan fydd dyfeisiau yn rhannu gerllaw</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Dim awgrymiadau ar gael. Rhowch gynnig ar ofyn pethau fel “crynhowch y dudalen hon” neu eich cwestiwn eich hun.</translation>
 <translation id="4791793693640849493">Cadw eitemau yn y cyfrif</translation>
 <translation id="4792290259143007505">Galluogi cyflymiad TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Adrodd am Broblem...</translation>
@@ -9034,7 +9030,6 @@
 <translation id="7421293530411019405">Gadael grŵp tabiau?</translation>
 <translation id="7421925624202799674">&amp;Gweld Ffynhonnell y Dudalen</translation>
 <translation id="7422192691352527311">Dewisiadau...</translation>
-<translation id="7422516375032300779">Mae <ph name="MEMBER_FIRST_NAME" /> wedi newid enw'r grŵp</translation>
 <translation id="7423425410216218516">Mae gwelededd ymlaen am <ph name="MINUTES" /> o funudau</translation>
 <translation id="7423513079490750513">Tynnu <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Mae angen caniatâd ar <ph name="APP_NAME" /> i redeg</translation>
@@ -9525,7 +9520,6 @@
 <translation id="7772032839648071052">Cadarnhau cyfrinymadrodd</translation>
 <translation id="7772127298218883077">Ynglŷn â <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Storfa'r sesiwn</translation>
-<translation id="7773887159761725143">Mae <ph name="MEMBER_FIRST_NAME" /> wedi ymuno â'r grŵp</translation>
 <translation id="7774365994322694683">Aderyn</translation>
 <translation id="7774581652827321413">Cael crynodeb tudalen, chwiliadau cysylltiedig, a gwybodaeth ddefnyddiol arall am y dudalen hon</translation>
 <translation id="7774792847912242537">Gormod o geisiadau.</translation>
@@ -11125,7 +11119,6 @@
 <translation id="8888253246822647887">Bydd eich ap yn agor pan fydd yr uwchraddiad wedi'i orffen. Gall uwchraddio gymryd ychydig funudau.</translation>
 <translation id="8888459276890791557">Gallwch binio'r panel ochr hwn i gael mynediad hawdd</translation>
 <translation id="8889294078294184559">Wrth i chi barhau i bori, gall gwefannau wirio gyda Chrome a chadarnhau gyda gwefan flaenorol rydych wedi ymweld â hi eich bod yn debygol o fod yn berson go iawn</translation>
-<translation id="88895904696396879">Newidiodd <ph name="MEMBER_FIRST_NAME" /> liw'r grŵp</translation>
 <translation id="8889651696183044030">Gall <ph name="ORIGIN" /> olygu'r ffeiliau a'r ffolderi canlynol</translation>
 <translation id="8890170499370378450">Mae'n bosib y codir taliadau data symudol</translation>
 <translation id="8890516388109605451">Ffynonellau</translation>
@@ -11276,7 +11269,6 @@
 <translation id="8991520179165052608">Gall y wefan ddefnyddio eich meicroffon</translation>
 <translation id="8991694323904646277">Dim camera</translation>
 <translation id="8991766915726096402">Adfer Data Lleol</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />m yn ôl}=1{<ph name="TIME_COUNT" />a yn ôl}two{<ph name="TIME_COUNT" />dd yn ôl}few{<ph name="TIME_COUNT" />d yn ôl}many{<ph name="TIME_COUNT" />d yn ôl}other{<ph name="TIME_COUNT" />d yn ôl}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Defnydd cof - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Os byddwch yn anghofio eich cyfrinair <ph name="DEVICE_TYPE" />, gallwch barhau i adfer eich data lleol. Bydd angen i chi fewngofnodi i'ch Cyfrif Google neu ddefnyddio adferiad cyfrif.</translation>
 <translation id="8993198843374358393">Copïo hash tystysgrif ar gyfer <ph name="CERT_NAME" /></translation>
@@ -11678,7 +11670,6 @@
 <translation id="973558314812359997">Maint y llygoden</translation>
 <translation id="973788791897303708">Mae'r grŵp tabiau hwn yn llawn</translation>
 <translation id="97381968209917373">Dileu tystysgrif <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">Mae <ph name="MEMBER_FIRST_NAME" /> wedi newid tab</translation>
 <translation id="975893173032473675">Iaith i Gyfieithu iddi</translation>
 <translation id="976499800099896273">Dangosir deialog dadwneud awtogywiro ar gyfer <ph name="TYPED_WORD" /> sydd wedi'i gywiro i <ph name="CORRECTED_WORD" />.  Pwyswch y saeth i fyny i gael mynediad neu Escape i'w anwybyddu.</translation>
 <translation id="976572010712028687">Dilysu eich bod yn rhiant</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 07a046f9..876e7cf 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Angiv et profilnavn</translation>
 <translation id="2765100602267695013">Kontakt dit mobilselskab</translation>
 <translation id="2765217105034171413">Lille</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> har fjernet en fane</translation>
 <translation id="2765820627968019645">Lys</translation>
 <translation id="276582196519778359">Angiv din pinkode til børnesikring</translation>
 <translation id="2766006623206032690">Indsæt og fortsæt</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Din enhed holder op med at svare, hvis du ikke frigør diskplads.</translation>
 <translation id="3873315167136380065">Du kan aktivere indstillingen ved at <ph name="BEGIN_LINK" />nulstille synkronisering<ph name="END_LINK" /> for at fjerne din adgangssætning til synkronisering</translation>
 <translation id="3873423927483480833">Vis pinkoder</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> har tilføjet en fane</translation>
 <translation id="3873915545594852654">Der opstod et problem med ARC++.</translation>
 <translation id="3874164307099183178">Slå Google Assistent til</translation>
 <translation id="3875511946736639169">Aktivér billeder</translation>
@@ -4271,7 +4269,6 @@
 <translation id="3959969108528118741">Ejer</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Flere handlinger for <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> har forladt gruppen</translation>
 <translation id="3963753386716096475">Brug en anden telefon, tablet eller sikkerhedsnøgle</translation>
 <translation id="3964480518399667971">Deaktiver mobilnetværk</translation>
 <translation id="3965965397408324205">Log <ph name="PROFILE_NAME" /> ud</translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">Talefilerne kan ikke installeres Din enhed skal opdateres. Genstart din enhed, og prøv igen.</translation>
 <translation id="4789550509729954245">Vis en notifikation, når enheder i nærheden deler indhold</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ingen tilgængelige forslag. Prøv at spørge om ting som f.eks. "opsummer denne side" eller stille dit eget spørgsmål.</translation>
 <translation id="4791793693640849493">Gem elementer på kontoen</translation>
 <translation id="4792290259143007505">Aktivér TrackPoint-acceleration</translation>
 <translation id="4792711294155034829">&amp;Rapporter et problem...</translation>
@@ -9026,7 +9022,6 @@
 <translation id="7421293530411019405">Vil du forlade fanegruppen?</translation>
 <translation id="7421925624202799674">&amp;Vis sidens kilde</translation>
 <translation id="7422192691352527311">Indstillinger...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> har ændret gruppenavnet</translation>
 <translation id="7423425410216218516">Synlighed er aktiveret i <ph name="MINUTES" /> minutter</translation>
 <translation id="7423513079490750513">Fjern <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> skal have tilladelse til at køre</translation>
@@ -9517,7 +9512,6 @@
 <translation id="7772032839648071052">Bekræft adgangssætning</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sessionlagring</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> deltager nu i gruppen</translation>
 <translation id="7774365994322694683">Fugl</translation>
 <translation id="7774581652827321413">Få en sideoversigt, relaterede søgninger og andre nyttige oplysninger om denne side</translation>
 <translation id="7774792847912242537">For mange anmodninger.</translation>
@@ -11115,7 +11109,6 @@
 <translation id="8888253246822647887">Din app åbner, når opgraderingen er fuldført. Opgraderinger kan tage et par minutter.</translation>
 <translation id="8888459276890791557">Du kan fastgøre dette sidepanel, så du nemt kan tilgå det</translation>
 <translation id="8889294078294184559">Når du derefter bruger nettet, kan websites ved hjælp af Chrome tjekke og verificere via et website, du tidligere har besøgt, at du sandsynligvis er en rigtig person</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> har ændret gruppefarven</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> kan redigere følgende filer og mapper</translation>
 <translation id="8890170499370378450">Der opkræves muligvis mobildatagebyrer</translation>
 <translation id="8890516388109605451">Kilder</translation>
@@ -11266,7 +11259,6 @@
 <translation id="8991520179165052608">Websitet kan anvende din mikrofon</translation>
 <translation id="8991694323904646277">Der er intet kamera</translation>
 <translation id="8991766915726096402">Gendannelse af lokale data</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{For <ph name="TIME_COUNT" /> min. siden}=1{For <ph name="TIME_COUNT" /> t. siden}one{For <ph name="TIME_COUNT" /> dag siden}other{For <ph name="TIME_COUNT" /> dage siden}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Hukommelsesforbrug – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Hvis du glemmer din adgangskode til <ph name="DEVICE_TYPE" />, kan du stadig gendanne dine lokale data. Du skal logge ind på din Google-konto eller gendanne din konto.</translation>
 <translation id="8993198843374358393">Kopiér certifikathash-værdien for <ph name="CERT_NAME" /></translation>
@@ -11668,7 +11660,6 @@
 <translation id="973558314812359997">Musemarkørens størrelse</translation>
 <translation id="973788791897303708">Denne fanegruppe er fuld</translation>
 <translation id="97381968209917373">Slet certifikatet: <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> har ændret en fane</translation>
 <translation id="975893173032473675">Sprog, der skal oversættes til</translation>
 <translation id="976499800099896273">Dialogboksen for fortrydelse af automatisk rettelse vises for <ph name="TYPED_WORD" />, som er rettet til <ph name="CORRECTED_WORD" />.  Tryk på pil op for at få adgang til rettelsen, tryk på Escape for at ignorere.</translation>
 <translation id="976572010712028687">Verificer, at du er forælder</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index b308f931..4978edcf 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -2560,7 +2560,6 @@
 <translation id="2764920001292228569">Profilname eingeben</translation>
 <translation id="2765100602267695013">Bitte wende dich an deinen Mobilfunkanbieter</translation>
 <translation id="2765217105034171413">Klein</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> hat einen Tab entfernt</translation>
 <translation id="2765820627968019645">Hell</translation>
 <translation id="276582196519778359">PIN für Jugendschutzeinstellungen eingeben</translation>
 <translation id="2766006623206032690">Einfügen und &amp;aufrufen</translation>
@@ -4122,7 +4121,6 @@
 <translation id="3872991219937722530">Gib Speicherplatz frei oder dein Gerät reagiert nicht mehr.</translation>
 <translation id="3873315167136380065">Wenn du diese Funktion aktivieren möchtest, musst du die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />, um die Synchronisierungspassphrase zu entfernen</translation>
 <translation id="3873423927483480833">PINs anzeigen</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> hat einen Tab hinzugefügt</translation>
 <translation id="3873915545594852654">Ein Problem mit ARC++ ist aufgetreten.</translation>
 <translation id="3874164307099183178">Google Assistant einschalten</translation>
 <translation id="3875511946736639169">Bilder aktivieren</translation>
@@ -4252,7 +4250,6 @@
 <translation id="3959969108528118741">Inhaber</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Weitere Aktionen für „<ph name="IBAN_DESCRIPTION" />“</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> hat die Gruppe verlassen</translation>
 <translation id="3963753386716096475">Anderes Smartphone, anderes Tablet oder anderen Sicherheitsschlüssel verwenden</translation>
 <translation id="3964480518399667971">Mobilfunknetz ausschalten</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> beenden</translation>
@@ -5375,7 +5372,6 @@
 <translation id="4789348252524569426">Sprachdateien können nicht installiert werden. Dein Gerät muss aktualisiert werden. Starte das Gerät neu und versuche es noch einmal.</translation>
 <translation id="4789550509729954245">Benachrichtigung anzeigen, wenn Geräte in der Nähe etwas teilen</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Keine Vorschläge verfügbar Du kannst z. B. sagen „Fasse diese Seite zusammen“ oder eine Frage stellen.</translation>
 <translation id="4791793693640849493">Elemente im Konto speichern</translation>
 <translation id="4792290259143007505">TrackPoint-Beschleunigung aktivieren</translation>
 <translation id="4792711294155034829">&amp;Problem melden...</translation>
@@ -9000,7 +8996,6 @@
 <translation id="7421293530411019405">Tabgruppe verlassen?</translation>
 <translation id="7421925624202799674">Seitenquelltext &amp;anzeigen</translation>
 <translation id="7422192691352527311">Einstellungen...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> hat den Gruppennamen geändert</translation>
 <translation id="7423425410216218516">Sichtbarkeit ist <ph name="MINUTES" /> Minuten lang aktiviert</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> entfernen</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> benötigt die Berechtigung zur Ausführung</translation>
@@ -9491,7 +9486,6 @@
 <translation id="7772032839648071052">Passphrase bestätigen</translation>
 <translation id="7772127298218883077">Über <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sitzungsspeicher</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ist der Gruppe beigetreten</translation>
 <translation id="7774365994322694683">Vogel</translation>
 <translation id="7774581652827321413">Du kannst dir eine Zusammenfassung der Seite, ähnliche Suchanfragen und andere nützliche Informationen zu dieser Seite anzeigen lassen</translation>
 <translation id="7774792847912242537">Zu viele Anfragen.</translation>
@@ -11088,7 +11082,6 @@
 <translation id="8888253246822647887">Deine App wird geöffnet, wenn das Upgrade abgeschlossen ist. Upgrades können ein paar Minuten dauern.</translation>
 <translation id="8888459276890791557">Du kannst diese Seitenleiste anpinnen, um leichter darauf zuzugreifen</translation>
 <translation id="8889294078294184559">Wenn du weitersurfst, können Websites diese Daten von Chrome abrufen und über eine zuvor von dir besuchte Website bestätigen, dass du wahrscheinlich eine echte Person bist</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> hat die Gruppenfarbe geändert</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> kann die folgenden Dateien und Ordner bearbeiten</translation>
 <translation id="8890170499370378450">Es können Gebühren für mobile Daten anfallen</translation>
 <translation id="8890516388109605451">Quellen</translation>
@@ -11239,7 +11232,6 @@
 <translation id="8991520179165052608">Die Website kann dein Mikrofon verwenden</translation>
 <translation id="8991694323904646277">Keine Kamera</translation>
 <translation id="8991766915726096402">Wiederherstellung lokaler Daten</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Vor <ph name="TIME_COUNT" /> Min.}=1{Vor <ph name="TIME_COUNT" /> Std.}other{Vor <ph name="TIME_COUNT" /> Tagen}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Arbeitsspeichernutzung – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Wenn du dein <ph name="DEVICE_TYPE" />-Passwort vergessen hast, kannst du trotzdem deine lokalen Daten wiederherstellen. Melde dich in deinem Google-Konto an oder verwende die Kontowiederherstellung.</translation>
 <translation id="8993198843374358393">Zertifikatshash für <ph name="CERT_NAME" /> kopieren</translation>
@@ -11641,7 +11633,6 @@
 <translation id="973558314812359997">Cursorgröße</translation>
 <translation id="973788791897303708">Diese Tabgruppe ist voll</translation>
 <translation id="97381968209917373">Zertifikat „<ph name="CERT_NAME" />“ löschen</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> hat einen Tab geändert</translation>
 <translation id="975893173032473675">Sprache, in die übersetzt wird</translation>
 <translation id="976499800099896273">Dialogfeld zum Rückgängigmachen der Autokorrektur wird für <ph name="TYPED_WORD" /> angezeigt, das zu <ph name="CORRECTED_WORD" /> geändert wurde.  Wenn du auf das Dialogfeld zugreifen möchtest, drücke den Aufwärtspfeil, wenn du es ignorieren möchtest, drücke die Escape-Taste.</translation>
 <translation id="976572010712028687">Bestätigen, dass du ein Elternteil bist</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index b32c799..d3c0a40c 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Εισαγάγετε όνομα προφίλ</translation>
 <translation id="2765100602267695013">Επικοινωνήστε με τον πάροχο κινητής τηλεφωνίας σας.</translation>
 <translation id="2765217105034171413">Μικρό</translation>
-<translation id="2765349783094807040">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> κατάργησε μια καρτέλα</translation>
 <translation id="2765820627968019645">Φωτεινό</translation>
 <translation id="276582196519778359">Εισαγάγετε το PIN για γονικούς ελέγχους</translation>
 <translation id="2766006623206032690">Επικό&amp;λληση και μετάβαση</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Αποδεσμεύστε χώρο στον δίσκο, διαφορετικά η συσκευή θα σταματήσει να ανταποκρίνεται.</translation>
 <translation id="3873315167136380065">Για ενεργοποίηση, <ph name="BEGIN_LINK" />κάντε επαναφορά στον συγχρονισμό<ph name="END_LINK" />, ώστε να καταργηθεί η φράση πρόσβασης συγχρονισμού</translation>
 <translation id="3873423927483480833">Εμφάνιση PIN</translation>
-<translation id="3873893412864594794">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> πρόσθεσε μια καρτέλα</translation>
 <translation id="3873915545594852654">Παρουσιάστηκε ένα πρόβλημα με το ARC++.</translation>
 <translation id="3874164307099183178">Ενεργοποίηση Βοηθού Google.</translation>
 <translation id="3875511946736639169">Ενεργοποίηση εικόνων</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Κάτοχος</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Περισσότερες ενέργειες για <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> αποχώρησε από την ομάδα</translation>
 <translation id="3963753386716096475">Χρήση διαφορετικού τηλεφώνου, tablet ή κλειδιού ασφαλείας</translation>
 <translation id="3964480518399667971">Απενεργοποίηση δικτύου κινητής τηλεφωνίας</translation>
 <translation id="3965965397408324205">Έξοδος από <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Δεν είναι δυνατή η εγκατάσταση αρχείων ομιλίας. Η συσκευή σας πρέπει να ενημερωθεί. Επανεκκινήστε τη συσκευή και δοκιμάστε ξανά.</translation>
 <translation id="4789550509729954245">Εμφάνιση ειδοποίησης όταν συσκευές που βρίσκονται σε κοντινή απόσταση κοινοποιούν περιεχόμενο</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Δεν υπάρχουν διαθέσιμες προτάσεις. Δοκιμάστε να ζητήσετε κάτι όπως "συνόψισε αυτή τη σελίδα" ή να κάνετε τη δική σας ερώτηση.</translation>
 <translation id="4791793693640849493">Αποθήκευση στοιχείων στον λογαριασμό</translation>
 <translation id="4792290259143007505">Ενεργοποίηση επιτάχυνσης TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Αναφορά προβλήματος...</translation>
@@ -9024,7 +9020,6 @@
 <translation id="7421293530411019405">Αποχώρηση από την ομάδα καρτελών;</translation>
 <translation id="7421925624202799674">&amp;Προβολή Πηγαίου Κώδικα Σελίδας</translation>
 <translation id="7422192691352527311">Προτιμήσεις</translation>
-<translation id="7422516375032300779">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> άλλαξε το όνομα της ομάδας</translation>
 <translation id="7423425410216218516">Η ορατότητα είναι ενεργή για <ph name="MINUTES" /> λεπτά.</translation>
 <translation id="7423513079490750513">Κατάργηση <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Απαιτείται άδεια για την εκτέλεση της εφαρμογής <ph name="APP_NAME" /></translation>
@@ -9515,7 +9510,6 @@
 <translation id="7772032839648071052">Επιβεβαίωση φράσης πρόσβασης</translation>
 <translation id="7772127298218883077">Σχετικά με το <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Αποθηκευτικός χώρος περιόδου σύνδεσης</translation>
-<translation id="7773887159761725143">Ο <ph name="MEMBER_FIRST_NAME" /> έγινε μέλος της ομάδας</translation>
 <translation id="7774365994322694683">Πουλί</translation>
 <translation id="7774581652827321413">Λάβετε μια σύνοψη σελίδας, συναφείς αναζητήσεις και άλλες χρήσιμες πληροφορίες σχετικά με αυτή τη σελίδα</translation>
 <translation id="7774792847912242537">Πάρα πολλά αιτήματα.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">Η εφαρμογή σας θα ανοίξει όταν η αναβάθμιση ολοκληρωθεί. Οι αναβαθμίσεις μπορεί να διαρκέσουν μερικά λεπτά.</translation>
 <translation id="8888459276890791557">Μπορείτε να καρφιτσώσετε αυτό το πλαϊνό πλαίσιο για εύκολη πρόσβαση</translation>
 <translation id="8889294078294184559">Καθώς συνεχίζετε την περιήγηση, οι ιστότοποι μπορούν να ελέγξουν με το Chrome και να επαληθεύσουν ότι πιθανώς είστε πραγματικό άτομο, χρησιμοποιώντας έναν προηγούμενο ιστότοπο που έχετε επισκεφτεί.</translation>
-<translation id="88895904696396879">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> άλλαξε το χρώμα της ομάδας</translation>
 <translation id="8889651696183044030">Ο ιστότοπος <ph name="ORIGIN" /> μπορεί να επεξεργαστεί τα παρακάτω αρχεία και φακέλους</translation>
 <translation id="8890170499370378450">Μπορεί να επιφέρει χρεώσεις δεδομένων κινητής τηλεφωνίας.</translation>
 <translation id="8890516388109605451">Πηγές</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">Ο ιστότοπος μπορεί να χρησιμοποιήσει το μικρόφωνό σας</translation>
 <translation id="8991694323904646277">Δεν υπάρχει κάμερα</translation>
 <translation id="8991766915726096402">Ανάκτηση τοπικών δεδομένων</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Πριν από <ph name="TIME_COUNT" /> λ.}=1{Πριν από <ph name="TIME_COUNT" /> ώ.}other{Πριν από <ph name="TIME_COUNT" /> η.}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Χρήση μνήμης - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Αν ξεχάσετε τον κωδικό πρόσβασης <ph name="DEVICE_TYPE" />, μπορείτε ακόμα να επαναφέρετε τα τοπικά δεδομένα σας. Θα πρέπει να συνδεθείτε στον Λογαριασμό σας Google ή να χρησιμοποιήσετε την ανάκτηση λογαριασμού.</translation>
 <translation id="8993198843374358393">Αντιγραφή του κατακερματισμού πιστοποιητικού για το <ph name="CERT_NAME" /></translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">Μέγεθος δείκτη ποντικιού</translation>
 <translation id="973788791897303708">Αυτή η ομάδα καρτελών είναι πλήρης</translation>
 <translation id="97381968209917373">Διαγραφή πιστοποιητικού <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">Ο χρήστης <ph name="MEMBER_FIRST_NAME" /> άλλαξε μια καρτέλα</translation>
 <translation id="975893173032473675">Γλώσσα στην οποία θα γίνει η μετάφραση</translation>
 <translation id="976499800099896273">Εμφανίζεται το παράθυρο διαλόγου αναίρεσης αυτόματης διόρθωσης για τη λέξη <ph name="TYPED_WORD" /> που διορθώθηκε σε <ph name="CORRECTED_WORD" />.  Πατήστε το επάνω βέλος για πρόσβαση. Διαφορετικά, πατήστε Escape για παράβλεψη.</translation>
 <translation id="976572010712028687">Επαληθεύστε ότι είστε γονέας</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index e81fa03..d2a891f4 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Enter a profile name</translation>
 <translation id="2765100602267695013">Please contact your mobile provider</translation>
 <translation id="2765217105034171413">Small</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> removed a tab</translation>
 <translation id="2765820627968019645">Light</translation>
 <translation id="276582196519778359">Enter your PIN for parental controls</translation>
 <translation id="2766006623206032690">Pa&amp;ste and go</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Free up disk space or device will become unresponsive.</translation>
 <translation id="3873315167136380065">To turn this on, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" /> to remove your sync passphrase</translation>
 <translation id="3873423927483480833">Show PINs</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> added a tab</translation>
 <translation id="3873915545594852654">A problem with ARC++ occurred.</translation>
 <translation id="3874164307099183178">Turn on Google Assistant</translation>
 <translation id="3875511946736639169">Enable images</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Owner</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">More actions for <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> left the group</translation>
 <translation id="3963753386716096475">Use a different phone, tablet or security key</translation>
 <translation id="3964480518399667971">Turn off mobile network</translation>
 <translation id="3965965397408324205">Exit <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Can't install speech files. Your device needs to be updated. Restart your device and try again.</translation>
 <translation id="4789550509729954245">Show notification when devices are sharing nearby</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">No suggestions available. Try asking things like 'summarise this page' or your own question.</translation>
 <translation id="4791793693640849493">Save items in account</translation>
 <translation id="4792290259143007505">Enable TrackPoint acceleration</translation>
 <translation id="4792711294155034829">&amp;Report an Issue...</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">Leave tab group?</translation>
 <translation id="7421925624202799674">&amp;View Page Source</translation>
 <translation id="7422192691352527311">Preferences...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> changed the group name</translation>
 <translation id="7423425410216218516">Visibility is on for <ph name="MINUTES" /> minutes</translation>
 <translation id="7423513079490750513">Remove <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> needs permission to run</translation>
@@ -9514,7 +9509,6 @@
 <translation id="7772032839648071052">Confirm passphrase</translation>
 <translation id="7772127298218883077">About <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Session Storage</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> joined the group</translation>
 <translation id="7774365994322694683">Bird</translation>
 <translation id="7774581652827321413">Get a page summary, related searches and other useful info about this page</translation>
 <translation id="7774792847912242537">Too many requests.</translation>
@@ -11111,7 +11105,6 @@
 <translation id="8888253246822647887">Your app will open when the upgrade is finished. Upgrades can take a few minutes.</translation>
 <translation id="8888459276890791557">You can pin this side panel for easy access</translation>
 <translation id="8889294078294184559">As you keep browsing, sites can check with Chrome and verify with a previous site that you've visited that you're likely a real person</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> changed the group colour</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> can edit the following files and folders</translation>
 <translation id="8890170499370378450">May incur mobile data charges</translation>
 <translation id="8890516388109605451">Sources</translation>
@@ -11262,7 +11255,6 @@
 <translation id="8991520179165052608">Site can use your microphone</translation>
 <translation id="8991694323904646277">No camera</translation>
 <translation id="8991766915726096402">Local Data Recovery</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />m ago}=1{<ph name="TIME_COUNT" />h ago}other{<ph name="TIME_COUNT" />d ago}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Memory usage - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">If you forget your <ph name="DEVICE_TYPE" /> password, you can still restore your local data. You'll need to sign in to your Google Account or use account recovery.</translation>
 <translation id="8993198843374358393">Copy certificate hash for <ph name="CERT_NAME" /></translation>
@@ -11664,7 +11656,6 @@
 <translation id="973558314812359997">Mouse size</translation>
 <translation id="973788791897303708">This tab group is full</translation>
 <translation id="97381968209917373">Delete certificate <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> changed a tab</translation>
 <translation id="975893173032473675">Language to translate into</translation>
 <translation id="976499800099896273">Autocorrect undo dialogue is shown for <ph name="TYPED_WORD" /> corrected to <ph name="CORRECTED_WORD" />.  Press up arrow to access, escape to ignore.</translation>
 <translation id="976572010712028687">Verify that you're a parent</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 74ecad68..7c5632d 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2560,7 +2560,6 @@
 <translation id="2764920001292228569">Ingresa un nombre de perfil</translation>
 <translation id="2765100602267695013">Comunícate con tu proveedor de servicios móviles</translation>
 <translation id="2765217105034171413">Pequeño</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> quitó una pestaña</translation>
 <translation id="2765820627968019645">Claro</translation>
 <translation id="276582196519778359">Ingresa tu PIN para acceder a los controles parentales</translation>
 <translation id="2766006623206032690">Pe&amp;gar y acceder</translation>
@@ -4124,7 +4123,6 @@
 <translation id="3872991219937722530">Libera espacio en el disco o el dispositivo dejará de funcionar.</translation>
 <translation id="3873315167136380065">A fin de activar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para quitar la frase de contraseña de sincronización</translation>
 <translation id="3873423927483480833">Muestra los PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> agregó una pestaña</translation>
 <translation id="3873915545594852654">Hubo un problema con ARC++.</translation>
 <translation id="3874164307099183178">Activar el Asistente de Google</translation>
 <translation id="3875511946736639169">Habilitar imágenes</translation>
@@ -4254,7 +4252,6 @@
 <translation id="3959969108528118741">Propietario</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Más acciones para <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> salió del grupo</translation>
 <translation id="3963753386716096475">Usar un teléfono, una tablet o una llave de seguridad diferentes</translation>
 <translation id="3964480518399667971">Desactivar la red móvil</translation>
 <translation id="3965965397408324205">Salir de <ph name="PROFILE_NAME" /></translation>
@@ -5377,7 +5374,6 @@
 <translation id="4789348252524569426">No se pueden instalar los archivos de voz. Debes actualizar el dispositivo. Reinicia el dispositivo y vuelve a intentarlo.</translation>
 <translation id="4789550509729954245">Mostrar notificación cuando hay dispositivos cercanos compartiendo contenido</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">No hay sugerencias disponibles. Intenta decir algo como “resume esta página”, o haz tu propia pregunta.</translation>
 <translation id="4791793693640849493">Guarda elementos en la cuenta</translation>
 <translation id="4792290259143007505">Habilitar la aceleración del TrackPoint</translation>
 <translation id="4792711294155034829">Informar de un &amp;problema...</translation>
@@ -9007,7 +9003,6 @@
 <translation id="7421293530411019405">¿Quieres abandonar el grupo de pestañas?</translation>
 <translation id="7421925624202799674">&amp;Ver el código fuente de la página</translation>
 <translation id="7422192691352527311">Preferencias...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> cambió el nombre del grupo</translation>
 <translation id="7423425410216218516">La visibilidad está activada durante <ph name="MINUTES" /> minutos.</translation>
 <translation id="7423513079490750513">Quitar <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> necesita permiso para ejecutarse</translation>
@@ -9498,7 +9493,6 @@
 <translation id="7772032839648071052">Confirmar frase de contraseña</translation>
 <translation id="7772127298218883077">Acerca de <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Almacenamiento de sesión</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> se unió al grupo</translation>
 <translation id="7774365994322694683">Pájaro</translation>
 <translation id="7774581652827321413">Obtén un resumen de la página, búsquedas relacionadas y otra información útil acerca de esta página</translation>
 <translation id="7774792847912242537">Hay demasiadas solicitudes.</translation>
@@ -11095,7 +11089,6 @@
 <translation id="8888253246822647887">Cuando se complete la actualización, se abrirá la app. Las actualizaciones pueden tardar algunos minutos.</translation>
 <translation id="8888459276890791557">Puedes fijar este panel lateral para acceder a él fácilmente</translation>
 <translation id="8889294078294184559">A medida que navegas, los sitios pueden comprobar con Chrome y verificar con otro sitio que hayas visitado que eres una persona real.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> cambió el color del grupo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> puede editar los siguientes archivos y carpetas</translation>
 <translation id="8890170499370378450">Es posible que se apliquen cargos por el uso de datos móviles</translation>
 <translation id="8890516388109605451">Fuentes</translation>
@@ -11246,7 +11239,6 @@
 <translation id="8991520179165052608">El sitio puede usar el micrófono</translation>
 <translation id="8991694323904646277">No hay cámara</translation>
 <translation id="8991766915726096402">Recuperación de datos locales</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Hace <ph name="TIME_COUNT" /> min}=1{Hace <ph name="TIME_COUNT" /> h}other{Hace <ph name="TIME_COUNT" /> días}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" />: Uso de memoria: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Si olvidas tu contraseña de <ph name="DEVICE_TYPE" />, puedes restablecer los datos locales. Tendrás que acceder a tu Cuenta de Google o usar la recuperación de la cuenta.</translation>
 <translation id="8993198843374358393">Copiar el hash de certificado de <ph name="CERT_NAME" /></translation>
@@ -11648,7 +11640,6 @@
 <translation id="973558314812359997">Tamaño del mouse</translation>
 <translation id="973788791897303708">Este grupo de pestañas está completo</translation>
 <translation id="97381968209917373">Eliminar el certificado <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> cambió una pestaña</translation>
 <translation id="975893173032473675">Idioma de destino de la traducción</translation>
 <translation id="976499800099896273">Se muestra el diálogo para deshacer la autocorrección de la palabra <ph name="TYPED_WORD" /> corregida a <ph name="CORRECTED_WORD" />.  Presiona la flecha hacia arriba para acceder al botón Deshacer o Esc para ignorar el diálogo.</translation>
 <translation id="976572010712028687">Verifica que eres madre o padre</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 262b548..4ee86092 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2564,7 +2564,6 @@
 <translation id="2764920001292228569">Introduce un nombre de perfil</translation>
 <translation id="2765100602267695013">Ponte en contacto con tu proveedor de telefonía móvil</translation>
 <translation id="2765217105034171413">Pequeño</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ha eliminado una pestaña</translation>
 <translation id="2765820627968019645">Claro</translation>
 <translation id="276582196519778359">Introduce tu PIN de controles parentales</translation>
 <translation id="2766006623206032690">Pe&amp;gar y acceder</translation>
@@ -4128,7 +4127,6 @@
 <translation id="3872991219937722530">Libera espacio del disco o el dispositivo no responderá.</translation>
 <translation id="3873315167136380065">Para activar esta opción, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para eliminar tu frase de contraseña de sincronización</translation>
 <translation id="3873423927483480833">Mostrar PINs</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ha añadido una pestaña</translation>
 <translation id="3873915545594852654">Ha habido un problema con ARC++.</translation>
 <translation id="3874164307099183178">Activar Asistente de Google</translation>
 <translation id="3875511946736639169">Habilitar imágenes</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">Propietario</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Más acciones para <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ha abandonado el grupo</translation>
 <translation id="3963753386716096475">Utilizar un teléfono, una tablet o una llave de seguridad diferentes</translation>
 <translation id="3964480518399667971">Desactivar red móvil</translation>
 <translation id="3965965397408324205">Salir de <ph name="PROFILE_NAME" /></translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">No se pueden instalar los archivos de voz. El dispositivo debe actualizarse. Reinícialo y vuelve a intentarlo.</translation>
 <translation id="4789550509729954245">Mostrar notificación cuando algún dispositivo cercano esté compartiendo contenido</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">No hay sugerencias disponibles. Prueba a pedir cosas como "resume esta página" o haz tu propia pregunta.</translation>
 <translation id="4791793693640849493">Guardar elementos en la cuenta</translation>
 <translation id="4792290259143007505">Habilitar aceleración del TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Notificar un error...</translation>
@@ -9008,7 +9004,6 @@
 <translation id="7421293530411019405">¿Salir del grupo de pestañas?</translation>
 <translation id="7421925624202799674">&amp;Ver código fuente de la página</translation>
 <translation id="7422192691352527311">Preferencias...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ha cambiado el nombre del grupo</translation>
 <translation id="7423425410216218516">La visibilidad está activada durante <ph name="MINUTES" /> minutos</translation>
 <translation id="7423513079490750513">Quitar <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> necesita permiso para ejecutarse</translation>
@@ -9499,7 +9494,6 @@
 <translation id="7772032839648071052">Repite la frase de contraseña</translation>
 <translation id="7772127298218883077">Información de <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Almacenamiento de sesión</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> se ha unido al grupo</translation>
 <translation id="7774365994322694683">Pájaro</translation>
 <translation id="7774581652827321413">Obtén un resumen de la página, búsquedas relacionadas y otra información útil sobre ella</translation>
 <translation id="7774792847912242537">Demasiadas solicitudes.</translation>
@@ -11096,7 +11090,6 @@
 <translation id="8888253246822647887">La aplicación se abrirá cuando la actualización se haya completado. Las actualizaciones pueden tardar varios minutos.</translation>
 <translation id="8888459276890791557">Puedes fijar este panel lateral para acceder a él fácilmente</translation>
 <translation id="8889294078294184559">A medida que sigas navegando, los sitios podrán realizar comprobaciones con Chrome y verificar, con un sitio que hayas visitado anteriormente, que es probable que seas una persona real</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ha cambiado el color del grupo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> puede editar los siguientes archivos y carpetas</translation>
 <translation id="8890170499370378450">Es posible que se apliquen cargos por el uso de datos móviles</translation>
 <translation id="8890516388109605451">Fuentes</translation>
@@ -11247,7 +11240,6 @@
 <translation id="8991520179165052608">El sitio web puede usar tu micrófono</translation>
 <translation id="8991694323904646277">No hay cámara</translation>
 <translation id="8991766915726096402">Recuperación de datos locales</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Hace <ph name="TIME_COUNT" /> min}=1{Hace <ph name="TIME_COUNT" /> h}other{Hace <ph name="TIME_COUNT" /> días}}</translation>
 <translation id="8992671062738341478">Uso de memoria de <ph name="WINDOW_TITLE" />: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Aunque olvides la contraseña de tu <ph name="DEVICE_TYPE" />, puedes restaurar tus datos locales. Deberás iniciar sesión en tu cuenta de Google o usar la recuperación de la cuenta.</translation>
 <translation id="8993198843374358393">Copiar hash de certificado de <ph name="CERT_NAME" /></translation>
@@ -11649,7 +11641,6 @@
 <translation id="973558314812359997">Tamaño del ratón</translation>
 <translation id="973788791897303708">Este grupo de pestañas está lleno</translation>
 <translation id="97381968209917373">Eliminar certificado <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ha cambiado una pestaña</translation>
 <translation id="975893173032473675">Idioma al que se va a traducir</translation>
 <translation id="976499800099896273">Se muestra el cuadro de diálogo para deshacer la autocorrección de <ph name="TYPED_WORD" /> a <ph name="CORRECTED_WORD" />.  Pulsa la flecha hacia arriba para acceder a la palabra y Escape para ignorar.</translation>
 <translation id="976572010712028687">Verifica que eres padre o madre</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index f3f886d..5b0a09e4 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -2567,7 +2567,6 @@
 <translation id="2764920001292228569">Sisestage profiili nimi</translation>
 <translation id="2765100602267695013">Võtke ühendust oma mobiiliteenuse pakkujaga</translation>
 <translation id="2765217105034171413">Väike</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> eemaldas vahelehe</translation>
 <translation id="2765820627968019645">Hele</translation>
 <translation id="276582196519778359">Sisestage vanemliku järelevalve jaoks PIN-kood</translation>
 <translation id="2766006623206032690">Kl&amp;eebi ja mine</translation>
@@ -4131,7 +4130,6 @@
 <translation id="3872991219937722530">Vabastage kettaruumi, muidu seade ei reageeri.</translation>
 <translation id="3873315167136380065">Selle sisselülitamiseks <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" />, et eemaldada oma sünkroonimisparool</translation>
 <translation id="3873423927483480833">PIN-koodide kuvamine</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> lisas vahelehe</translation>
 <translation id="3873915545594852654">Ilmnes ARC++ probleem.</translation>
 <translation id="3874164307099183178">Google'i assistendi sisselülitamine</translation>
 <translation id="3875511946736639169">Kujutiste lubamine</translation>
@@ -4261,7 +4259,6 @@
 <translation id="3959969108528118741">Omanik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Rohkem toiminguid: <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> lahkus grupist</translation>
 <translation id="3963753386716096475">Kasutage teist nutitelefoni, tahvelarvutit või turvavõtit</translation>
 <translation id="3964480518399667971">Mobiilsidevõrgu väljalülitamine</translation>
 <translation id="3965965397408324205">Välju profiililt <ph name="PROFILE_NAME" /></translation>
@@ -5384,7 +5381,6 @@
 <translation id="4789348252524569426">Kõnefaile ei saa installida. Teie seadet on vaja värskendada. Taaskäivitage seade ja proovige uuesti.</translation>
 <translation id="4789550509729954245">Kuva märguanne, kui seadmed läheduses jagavad</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Soovitused puuduvad. Proovige paluda selliseid asju nagu „Loo sellest lehest kokkuvõte“ või esitage oma küsimusi.</translation>
 <translation id="4791793693640849493">Üksuste salvestamine kontole</translation>
 <translation id="4792290259143007505">Luba näpuhiire kiirendus</translation>
 <translation id="4792711294155034829">&amp;Teata probleemist ...</translation>
@@ -9014,7 +9010,6 @@
 <translation id="7421293530411019405">Kas soovite vahelehegrupist lahkuda?</translation>
 <translation id="7421925624202799674">&amp;Vaata lehe allikat</translation>
 <translation id="7422192691352527311">Eelistused...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> muutis grupi nime</translation>
 <translation id="7423425410216218516">Nähtavus on <ph name="MINUTES" /> minutiks sisse lülitatud</translation>
 <translation id="7423513079490750513">Eemalda <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Rakendus <ph name="APP_NAME" /> vajab käitamiseks luba</translation>
@@ -9505,7 +9500,6 @@
 <translation id="7772032839648071052">Kinnitage parool</translation>
 <translation id="7772127298218883077">Teave <ph name="PRODUCT_NAME" /> kohta</translation>
 <translation id="7773726648746946405">Seansi talletusruum</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> liitus grupiga</translation>
 <translation id="7774365994322694683">Lind</translation>
 <translation id="7774581652827321413">Hankige lehe kokkuvõte, seotud otsingud ja muud kasulikku teavet selle lehe kohta</translation>
 <translation id="7774792847912242537">Liiga palju päringuid.</translation>
@@ -11102,7 +11096,6 @@
 <translation id="8888253246822647887">Rakendus avatakse, kui uuendamine on lõppenud. Uuendamiseks võib kuluda mõni minut.</translation>
 <translation id="8888459276890791557">Võite selle külgpaneeli kiirjuurdepääsu jaoks kinnitada</translation>
 <translation id="8889294078294184559">Kui jätkate sirvimist, saavad saidid Chrome’iga kontrollida ja teie eelmisel külastatud saidil kinnitada, et olete tõenäoliselt päris inimene</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> muutis grupi värvi</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> saab muuta järgmisi faile ja kaustu</translation>
 <translation id="8890170499370378450">Võib põhjustada mobiilse andmeside tasusid</translation>
 <translation id="8890516388109605451">Allikad</translation>
@@ -11253,7 +11246,6 @@
 <translation id="8991520179165052608">Sait saab kasutada teie mikrofoni</translation>
 <translation id="8991694323904646277">Kaamerat pole</translation>
 <translation id="8991766915726096402">Kohalike andmete taastamine</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min tagasi}=1{<ph name="TIME_COUNT" /> h tagasi}other{<ph name="TIME_COUNT" /> p tagasi}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Mälukasutus - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Kui unustate oma seadme <ph name="DEVICE_TYPE" /> parooli, saate siiski oma kohalikud andmed taastada. Peate sisse logima oma Google'i kontole või kasutama konto taastamise funktsiooni.</translation>
 <translation id="8993198843374358393">Sertifikaadi <ph name="CERT_NAME" /> jaoks sertifikaadi räsiväärtuse kopeerimine</translation>
@@ -11655,7 +11647,6 @@
 <translation id="973558314812359997">Kursori suurus</translation>
 <translation id="973788791897303708">See vahelehegrupp on täis</translation>
 <translation id="97381968209917373">Sertifikaadi <ph name="CERT_NAME" /> kustutamine</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> muutis vahelehte</translation>
 <translation id="975893173032473675">Keel, millesse tõlkida</translation>
 <translation id="976499800099896273">Kuvatakse automaatkorrektuuri tagasivõtmise dialoog sõna „<ph name="TYPED_WORD" />” jaoks, mis parandati sõnaks „<ph name="CORRECTED_WORD" />”.  Juurdepääsemiseks vajutage ülesnoolt, eiramiseks vajutage paoklahvi.</translation>
 <translation id="976572010712028687">Kinnitage, et olete lapsevanem</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
index 47f35e3..10ebb8a3 100644
--- a/chrome/app/resources/generated_resources_eu.xtb
+++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Eman izen bat profilari</translation>
 <translation id="2765100602267695013">Jarri mugikorraren operadorearekin harremanetan</translation>
 <translation id="2765217105034171413">Txikia</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> erabiltzaileak fitxa bat kendu du</translation>
 <translation id="2765820627968019645">Argia</translation>
 <translation id="276582196519778359">Guraso-murriztapenak erabiltzeko, idatzi PINa</translation>
 <translation id="2766006623206032690">It&amp;satsi eta listo</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">Egin tokia diskoan; bestela, gailuak ez du erantzungo.</translation>
 <translation id="3873315167136380065">Aukera hori aktibatzeko, <ph name="BEGIN_LINK" />berrezarri sinkronizazioa<ph name="END_LINK" /> sinkronizazio-pasaesaldia kentzeko</translation>
 <translation id="3873423927483480833">Erakutsi PIN kodeak</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> erabiltzaileak fitxa bat gehitu du</translation>
 <translation id="3873915545594852654">Arazo bat izan da ARC++ eginbidearekin.</translation>
 <translation id="3874164307099183178">Aktibatu Google-ren Laguntzailea</translation>
 <translation id="3875511946736639169">Gaitu irudiak</translation>
@@ -4255,7 +4253,6 @@
 <translation id="3959969108528118741">Jabea</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> ordainketa-metodoarekin erlazionatutako ekintza gehiago</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> taldetik irten da</translation>
 <translation id="3963753386716096475">Erabili beste telefono, tableta edo segurtasun-giltza bat</translation>
 <translation id="3964480518399667971">Desaktibatu sare mugikorra</translation>
 <translation id="3965965397408324205">Irten <ph name="PROFILE_NAME" /> profiletik</translation>
@@ -5378,7 +5375,6 @@
 <translation id="4789348252524569426">Ezin dira instalatu hizketa-fitxategiak. Gailua eguneratu behar da. Berrabiarazi gailua eta saiatu berriro.</translation>
 <translation id="4789550509729954245">Erakutsi jakinarazpen bat gailuak inguruan edukia partekatzen ari direnean</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ez dago iradokizunik erabilgarri. Eskatu "laburbildu orri hau" edo egin galdera bat.</translation>
 <translation id="4791793693640849493">Gorde elementuak kontuan</translation>
 <translation id="4792290259143007505">Gaitu TrackPoint-aren azelerazioa</translation>
 <translation id="4792711294155034829">Eman a&amp;razo baten berri…</translation>
@@ -9002,7 +8998,6 @@
 <translation id="7421293530411019405">Fitxa taldetik irten nahi duzu?</translation>
 <translation id="7421925624202799674">&amp;Ikusi orriaren iturburua</translation>
 <translation id="7422192691352527311">Hobespenak…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> erabiltzaileak taldearen izena aldatu du</translation>
 <translation id="7423425410216218516">Ikusgai egongo da <ph name="MINUTES" /> minutuz</translation>
 <translation id="7423513079490750513">Kendu <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> exekutatu nahi baduzu, baimena eman behar diozu</translation>
@@ -9492,7 +9487,6 @@
 <translation id="7772032839648071052">Berretsi pasaesaldia</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" />-ri buruz</translation>
 <translation id="7773726648746946405">Saioaren biltegiratzea</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> taldean sartu da</translation>
 <translation id="7774365994322694683">Txoria</translation>
 <translation id="7774581652827321413">Lortu orri honen laburpena, erlazionatutako bilaketak eta bestelako informazio erabilgarria</translation>
 <translation id="7774792847912242537">Eskaera gehiegi daude.</translation>
@@ -11088,7 +11082,6 @@
 <translation id="8888253246822647887">Bertsio-berritzen amaitzen denean irekiko da aplikazioa. Agian minutu batzuk beharko dira bertsioa berritzeko.</translation>
 <translation id="8888459276890791557">Errazago atzitzeko, ainguratu alboko panela</translation>
 <translation id="8889294078294184559">Arakatzen jarraitu ahala, beste webgune batzuek Chrome-ren informazioa ikus dezakete, eta aurrez bisitatu duzun webgune batek benetako pertsonatzat hartu zaituela egiaztatu.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> erabiltzaileak taldearen kolorea aldatu du</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> webguneak fitxategi eta karpeta hauek edita ditzake</translation>
 <translation id="8890170499370378450">Baliteke datu-erabilera ordaindu behar izatea</translation>
 <translation id="8890516388109605451">Iturburuak</translation>
@@ -11239,7 +11232,6 @@
 <translation id="8991520179165052608">Webguneak mikrofonoa erabil dezake</translation>
 <translation id="8991694323904646277">Ez dago kamerarik</translation>
 <translation id="8991766915726096402">Gailuko datuak berreskuratzea</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Duela <ph name="TIME_COUNT" /> min}=1{Duela <ph name="TIME_COUNT" /> h}other{Duela <ph name="TIME_COUNT" /> egun}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Memoriaren erabilera - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> gailuko pasahitza ahazten baduzu ere, gailuko datuak lehenera ditzakezu. Horretarako, Google-ko kontuan saioa hasi beharko duzu, edo kontua berreskuratzeko eginbidea erabili.</translation>
 <translation id="8993198843374358393">Kopiatu <ph name="CERT_NAME" /> ziurtagiriaren hash-a</translation>
@@ -11641,7 +11633,6 @@
 <translation id="973558314812359997">Sagu-kurtsorearen tamaina</translation>
 <translation id="973788791897303708">Fitxa talde hau beteta dago</translation>
 <translation id="97381968209917373">Ezabatu <ph name="CERT_NAME" /> ziurtagiria</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> erabiltzaileak fitxa bat aldatu du</translation>
 <translation id="975893173032473675">Itzulpenaren xede-hizkuntza</translation>
 <translation id="976499800099896273">Zuzenketa automatikoa desegiteko leihoa ageri da, "<ph name="TYPED_WORD" />" hitzaren ordez "<ph name="CORRECTED_WORD" />" idatzi delako. Sakatu Gora gezi-tekla hura atzitzeko edo Ihes tekla hari ez ikusi egiteko.</translation>
 <translation id="976572010712028687">Egiaztatu guraso bat zarela</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 2c0f804..7093249 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -2573,7 +2573,6 @@
 <translation id="2764920001292228569">نام نمایه را وارد کنید</translation>
 <translation id="2765100602267695013">لطفاً با ارائه‌دهنده تلفن همراهتان تماس بگیرید</translation>
 <translation id="2765217105034171413">کوچک</translation>
-<translation id="2765349783094807040">‫<ph name="MEMBER_FIRST_NAME" /> این برگه را برداشت</translation>
 <translation id="2765820627968019645">روشن</translation>
 <translation id="276582196519778359">پین کنترل‌های والدین را وارد کنید</translation>
 <translation id="2766006623206032690">جا&amp;گذاری و رفتن</translation>
@@ -4137,7 +4136,6 @@
 <translation id="3872991219937722530">فضای دیسک را خالی کنید، در غیر این صورت دستگاه پاسخ نخواهد داد.</translation>
 <translation id="3873315167136380065">برای روشن کردن این گزینه، <ph name="BEGIN_LINK" />همگام‌سازی را بازنشانی کنید<ph name="END_LINK" /> تا گذرعبارت همگام‌سازی حذف شود</translation>
 <translation id="3873423927483480833">نمایش پین‌ها</translation>
-<translation id="3873893412864594794">‫<ph name="MEMBER_FIRST_NAME" /> برگه‌ای اضافه کرد</translation>
 <translation id="3873915545594852654">‏در رابطه با ++ARC مشکلی پیش آمد.</translation>
 <translation id="3874164307099183178">‏روشن کردن «دستیار Google»</translation>
 <translation id="3875511946736639169">فعال کردن تصاویر</translation>
@@ -4267,7 +4265,6 @@
 <translation id="3959969108528118741">مالک</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">کنش‌های بیشتر برای <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">‫<ph name="MEMBER_FIRST_NAME" /> گروه را ترک کرد</translation>
 <translation id="3963753386716096475">استفاده از تلفن، رایانه لوحی، یا کلید ایمنی دیگر</translation>
 <translation id="3964480518399667971">خاموش کردن شبکه تلفن همراه</translation>
 <translation id="3965965397408324205">خارج شدن از <ph name="PROFILE_NAME" /></translation>
@@ -5390,7 +5387,6 @@
 <translation id="4789348252524569426">فایل‌های گفتار نصب نشد. دستگاهتان باید به‌روزرسانی شود. دستگاه را بازراه‌اندازی کنید و دوباره امتحان کنید.</translation>
 <translation id="4789550509729954245">نمایش اعلان هنگامی‌که دستگاه‌های اطراف درحال هم‌رسانی هستند</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">پیشنهادی دردسترس نیست. چیزی مثل «خلاصه کردن این صفحه» یا سؤال خودتان را بپرسید.</translation>
 <translation id="4791793693640849493">ذخیره کردن موارد در حساب</translation>
 <translation id="4792290259143007505">‏فعال کردن شتاب TrackPoint</translation>
 <translation id="4792711294155034829">&amp;گزارش یک مشکل...</translation>
@@ -9022,7 +9018,6 @@
 <translation id="7421293530411019405">از گروه برگه خارج می‌شوید؟</translation>
 <translation id="7421925624202799674">&amp;مشاهده منبع صفحه</translation>
 <translation id="7422192691352527311">موارد برگزیده...</translation>
-<translation id="7422516375032300779">‫<ph name="MEMBER_FIRST_NAME" /> نام گروه را تغییر داد</translation>
 <translation id="7423425410216218516">«رؤیت‌پذیری» به‌مدت <ph name="MINUTES" /> دقیقه روشن است</translation>
 <translation id="7423513079490750513">حذف <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> برای اجرا شدن به اجازه نیاز دارد</translation>
@@ -9513,7 +9508,6 @@
 <translation id="7772032839648071052">تأیید گذرعبارت</translation>
 <translation id="7772127298218883077">درباره <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">ذخیره جلسه</translation>
-<translation id="7773887159761725143">‫<ph name="MEMBER_FIRST_NAME" /> به گروه پیوست</translation>
 <translation id="7774365994322694683">پرنده</translation>
 <translation id="7774581652827321413">خلاصه صفحه، جستجوهای مربوط، و اطلاعات مفید دیگری درباره این صفحه دریافت کنید</translation>
 <translation id="7774792847912242537">تعداد درخواست‌ها بیش از حد است.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">وقتی ارتقا به پایان برسد، برنامه‌تان باز خواهد شد. ارتقا ممکن است چند دقیقه طول بکشد.</translation>
 <translation id="8888459276890791557">برای دسترسی آسان، می‌توانید این پانل کناری را سنجاق کنید</translation>
 <translation id="8889294078294184559">‏همان‌طور که مرور می‌کنید، سایت‌ها می‌توانند ازطریق Chrome بررسی کنند و بااستفاده از سایت قبلی که بازدید کرده‌اید تأیید کنند که احتمالاً شما شخص واقعی هستید</translation>
-<translation id="88895904696396879">‫<ph name="MEMBER_FIRST_NAME" /> رنگ گروه را تغییر داد</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> می‌تواند این فایل‌ها و پوشه‌ها را ویرایش کند:</translation>
 <translation id="8890170499370378450">ممکن است هزینه داده تلفن همراه اعمال شود</translation>
 <translation id="8890516388109605451">منابع</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">سایت می‌تواند از میکروفن شما استفاده کند</translation>
 <translation id="8991694323904646277">دوربین متصل نیست</translation>
 <translation id="8991766915726096402">بازیابی داده‌های محلی</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{‫<ph name="TIME_COUNT" /> دقیقه پیش}=1{‫<ph name="TIME_COUNT" /> ساعت پیش}one{‫<ph name="TIME_COUNT" /> روز پیش}other{‫<ph name="TIME_COUNT" /> روز پیش}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - استفاده از حافظه - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">‏اگر گذرواژه <ph name="DEVICE_TYPE" /> را فراموش کنید، همچنان می‌توانید داده‌های محلی‌تان را بازیابی کنید. باید به سیستم «حساب Google» خود وارد شوید یا از بازیابی حساب استفاده کنید.</translation>
 <translation id="8993198843374358393">کپی کردن درهم‌سازی گواهینامه <ph name="CERT_NAME" /></translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">اندازه موشواره</translation>
 <translation id="973788791897303708">این گروه برگه پر است</translation>
 <translation id="97381968209917373">حذف کردن گواهینامه <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">‫<ph name="MEMBER_FIRST_NAME" /> برگه‌ای را تغییر داد</translation>
 <translation id="975893173032473675">زبانی که می‌خواهید به آن ترجمه کنید</translation>
 <translation id="976499800099896273">کادر گفتگوی واگرد کردن تصحیح خودکار برای کلمه «<ph name="TYPED_WORD" />» که به «<ph name="CORRECTED_WORD" />» تصحیح شده است نشان داده شد.  برای دسترسی به آن، کلید «پیکان روبه‌بالا»، و برای نادیده گرفتن، کلید «گریز» را فشار دهید.</translation>
 <translation id="976572010712028687">تأیید کنید که ولی هستید</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 713520ec..29e7774 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">Kirjoita profiilin nimi</translation>
 <translation id="2765100602267695013">Ota yhteyttä matkapuhelinoperaattoriin</translation>
 <translation id="2765217105034171413">Pieni</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> poisti välilehden</translation>
 <translation id="2765820627968019645">Vaalea</translation>
 <translation id="276582196519778359">Lisää lapsilukkoa varten PIN-koodi</translation>
 <translation id="2766006623206032690">&amp;Liitä ja avaa</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">Vapauta levytilaa, tai laite ei enää vastaa.</translation>
 <translation id="3873315167136380065">Jos haluat ottaa tämän käyttöön, <ph name="BEGIN_LINK" />nollaa synkronointi<ph name="END_LINK" /> poistaaksesi synkronoinnin tunnuslauseen</translation>
 <translation id="3873423927483480833">Näytä PIN-koodit</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> lisäsi välilehden</translation>
 <translation id="3873915545594852654">ARC++:n kanssa tapahtui ongelma.</translation>
 <translation id="3874164307099183178">Laita Google Assistant päälle</translation>
 <translation id="3875511946736639169">Ota kuvat käyttöön</translation>
@@ -4266,7 +4264,6 @@
 <translation id="3959969108528118741">Omistaja</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />: lisää toimintoja</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> lähti ryhmästä.</translation>
 <translation id="3963753386716096475">Käytä toista puhelinta, tablettia tai suojausavainta</translation>
 <translation id="3964480518399667971">Laita mobiiliverkko pois päältä</translation>
 <translation id="3965965397408324205">Sulje <ph name="PROFILE_NAME" /></translation>
@@ -5389,7 +5386,6 @@
 <translation id="4789348252524569426">Puhetiedostojen asentaminen ei onnistu. Laite on päivitettävä. Käynnistä laite uudelleen ja yritä sitten.</translation>
 <translation id="4789550509729954245">Näytä ilmoitus, kun lähistöllä olevat laitteet jakavat sisältöä</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ehdotuksia ei ole saatavilla. Kokeile esimerkiksi pyytää "tiivistä tämä sivu" tai kysyä oman kysymyksesi.</translation>
 <translation id="4791793693640849493">Tallenna kohteet tilille</translation>
 <translation id="4792290259143007505">Ota TrackPoint-nopeuttaminen käyttöön</translation>
 <translation id="4792711294155034829">&amp;Ilmoita ongelmasta...</translation>
@@ -9019,7 +9015,6 @@
 <translation id="7421293530411019405">Poistutaanko välilehtiryhmästä?</translation>
 <translation id="7421925624202799674">&amp;Näytä sivun lähdekoodi</translation>
 <translation id="7422192691352527311">Asetukset...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> vaihtoi ryhmän nimen</translation>
 <translation id="7423425410216218516">Näkyvyys on päällä <ph name="MINUTES" /> minuutin ajan</translation>
 <translation id="7423513079490750513">Poista <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> tarvitsee luvan toimiakseen</translation>
@@ -9510,7 +9505,6 @@
 <translation id="7772032839648071052">Vahvista tunnuslause</translation>
 <translation id="7772127298218883077">Tietoja tuotteesta <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Käyttökerran tallennustila</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> liittyi ryhmään</translation>
 <translation id="7774365994322694683">Lintu</translation>
 <translation id="7774581652827321413">Saat sivun yhteenvedon, aiheeseen liittyviä hakuja ja muita hyödyllisiä tietoja tästä sivusta</translation>
 <translation id="7774792847912242537">Liikaa pyyntöjä.</translation>
@@ -11106,7 +11100,6 @@
 <translation id="8888253246822647887">Sovelluksesi avautuu, kun päivitys on valmis. Päivitykset voivat kestää muutaman minuutin.</translation>
 <translation id="8888459276890791557">Kiinnitä sivupaneeli, niin voit käyttää sitä helposti</translation>
 <translation id="8889294078294184559">Kun jatkat selaamista, sivustot voivat Chromen avulla tarkistaa edelliseltä avaamasi sivustolta, että olet todennäköisesti oikea ihminen.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> muutti ryhmän väriä</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> saa muokata seuraavia tiedostoja ja kansioita</translation>
 <translation id="8890170499370378450">Voi aiheuttaa mobiilidatamaksuja</translation>
 <translation id="8890516388109605451">Lähteet</translation>
@@ -11257,7 +11250,6 @@
 <translation id="8991520179165052608">Sivusto voi käyttää mikrofoniasi</translation>
 <translation id="8991694323904646277">Ei kameraa</translation>
 <translation id="8991766915726096402">Paikallisen datan palautus</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min sitten}=1{<ph name="TIME_COUNT" /> h sitten}other{<ph name="TIME_COUNT" /> pv sitten}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Muistin käyttö - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jos unohdat salasanan (<ph name="DEVICE_TYPE" />), voit silti palauttaa paikallisen datan. Sinun on kirjauduttava Google-tilillesi tai käytettävä tilin palautusta.</translation>
 <translation id="8993198843374358393">Kopioi varmenteen <ph name="CERT_NAME" /> hajautusarvo</translation>
@@ -11659,7 +11651,6 @@
 <translation id="973558314812359997">Hiiren koko</translation>
 <translation id="973788791897303708">Välilehtiryhmä on täynnä</translation>
 <translation id="97381968209917373">Poista varmenne <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> muutti välilehteä</translation>
 <translation id="975893173032473675">Kieli, jolle käännetään</translation>
 <translation id="976499800099896273">Automaattisen korjauksen kumoamisikkuna: <ph name="TYPED_WORD" /> korjattu muotoon <ph name="CORRECTED_WORD" />.  Avaa korjaus painamalla ylänuolta ja ohita se painamalla Esc.</translation>
 <translation id="976572010712028687">Vahvista olevasi vanhempi</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index b48c486..b1a8d0a 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Maglagay ng pangalan ng profile</translation>
 <translation id="2765100602267695013">Makipag-ugnayan sa iyong provider sa mobile</translation>
 <translation id="2765217105034171413">Maliit</translation>
-<translation id="2765349783094807040">Nag-alis ng tab si <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="2765820627968019645">Maliwanag</translation>
 <translation id="276582196519778359">Ilagay ang iyong PIN para sa parental controls</translation>
 <translation id="2766006623206032690">Pa&amp;ste at umalis</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Magbakante ng espasyo sa disk o hindi gagana nang maayos ang iyong device.</translation>
 <translation id="3873315167136380065">Para i-on ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /> para alisin ang iyong passphrase sa pag-sync</translation>
 <translation id="3873423927483480833">Ipakita ang Mga PIN</translation>
-<translation id="3873893412864594794">Nagdagdag ng tab si <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="3873915545594852654">Nagkaproblema sa ARC++.</translation>
 <translation id="3874164307099183178">I-on ang Google Assistant</translation>
 <translation id="3875511946736639169">I-enable ang mga larawan</translation>
@@ -4271,7 +4269,6 @@
 <translation id="3959969108528118741">May-ari</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Higit pang pagkilos para sa <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Umalis sa grupo si <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="3963753386716096475">Gumamit ng ibang telepono, tablet, o security key</translation>
 <translation id="3964480518399667971">I-off ang Cellular network</translation>
 <translation id="3965965397408324205">Lumabas sa <ph name="PROFILE_NAME" /></translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">Hindi ma-install ang mga file ng speech. Kailangang i-update ang iyong device. I-restart ang iyong device at subukan ulit.</translation>
 <translation id="4789550509729954245">Magpakita ng notification kapag nagbabahagi ang mga kalapit na device</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Walang available na suhestyon. Subukang humiling ng mga bagay tulad ng “ibuod ang page na ito” o sarili mong tanong.</translation>
 <translation id="4791793693640849493">Mag-save ng mga item sa account</translation>
 <translation id="4792290259143007505">I-enable ang pag-accelerate ng TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Mag-ulat ng Isyu...</translation>
@@ -9026,7 +9022,6 @@
 <translation id="7421293530411019405">Umalis sa grupo ng tab?</translation>
 <translation id="7421925624202799674">&amp;Tingnan ang Pinagmulan ng Pahina</translation>
 <translation id="7422192691352527311">Preferences...</translation>
-<translation id="7422516375032300779">Binago ni <ph name="MEMBER_FIRST_NAME" /> ang pangalan ng grupo</translation>
 <translation id="7423425410216218516">Naka-on ang visibility sa loob ng <ph name="MINUTES" /> (na) minuto</translation>
 <translation id="7423513079490750513">Alisin ang <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Kinakailangan ng <ph name="APP_NAME" /> ng pahintulot para tumakbo</translation>
@@ -9517,7 +9512,6 @@
 <translation id="7772032839648071052">Kumpirmahin ang passphrase</translation>
 <translation id="7772127298218883077">Tungkol sa <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Storage ng session</translation>
-<translation id="7773887159761725143">Sumali si <ph name="MEMBER_FIRST_NAME" /> sa grupo</translation>
 <translation id="7774365994322694683">Ibon</translation>
 <translation id="7774581652827321413">Makakuha ng buod ng page, mga kaugnay na paghahanap, at iba pang kapaki-pakinabang na impormasyon tungkol sa page na ito</translation>
 <translation id="7774792847912242537">Masyadong maraming kahilingan.</translation>
@@ -11117,7 +11111,6 @@
 <translation id="8888253246822647887">Bubukas ang iyong app kapag tapos na ang pag-upgrade. Maaaring tumagal nang ilang minuto ang mga pag-upgrade.</translation>
 <translation id="8888459276890791557">Puwede mong i-pin ang panel sa gilid na ito para sa madaling access</translation>
 <translation id="8889294078294184559">Habang patuloy kang nagba-browse, puwedeng sumangguni ang mga site sa Chrome at i-verify sa naunang site na binisita mo kung malamang na totoong tao ka.</translation>
-<translation id="88895904696396879">Binago ni <ph name="MEMBER_FIRST_NAME" /> ang kulay ng grupo</translation>
 <translation id="8889651696183044030">Puwedeng i-edit ng <ph name="ORIGIN" /> ang mga sumusunod na file at folder</translation>
 <translation id="8890170499370378450">Puwedeng magkaroon ng mga singil sa mobile data</translation>
 <translation id="8890516388109605451">Mga Source</translation>
@@ -11268,7 +11261,6 @@
 <translation id="8991520179165052608">Maaaring gamitin ng site ang iyong mikropono</translation>
 <translation id="8991694323904646277">Walang camera</translation>
 <translation id="8991766915726096402">Pag-recover ng Lokal na Data</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> minuto ang nakalipas}=1{<ph name="TIME_COUNT" /> oras ang nakalipas}one{<ph name="TIME_COUNT" /> araw ang nakalipas}other{<ph name="TIME_COUNT" /> na araw ang nakalipas}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Paggamit ng memory - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Kung nakalimutan mo ang iyong password sa <ph name="DEVICE_TYPE" />, puwede mo pa ring i-restore ang iyong lokal na data. Kakailanganin mong mag-sign in sa iyong Google Account o gamitin ang pag-recover ng account.</translation>
 <translation id="8993198843374358393">Kopyahin ang hash ng certificate para sa <ph name="CERT_NAME" /></translation>
@@ -11670,7 +11662,6 @@
 <translation id="973558314812359997">Laki ng mouse</translation>
 <translation id="973788791897303708">Puno na ang grupo ng tab na ito</translation>
 <translation id="97381968209917373">I-delete ang certificate na <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">May binagong tab si <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="975893173032473675">Wika kung saan Isasalin</translation>
 <translation id="976499800099896273">Ipinapakita ang dialog sa pag-undo ng autocorrect para sa <ph name="TYPED_WORD" /> na naiwasto at ginawang <ph name="CORRECTED_WORD" />.  Pindutin ang pataas na arrow para i-access, pindutin ang escape para balewalain.</translation>
 <translation id="976572010712028687">I-verify na isa kang magulang</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb
index 6c723a6..5c0339f 100644
--- a/chrome/app/resources/generated_resources_fr-CA.xtb
+++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Entrez un nom de profil</translation>
 <translation id="2765100602267695013">Veuillez communiquer avec votre fournisseur de services mobiles</translation>
 <translation id="2765217105034171413">Petit</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> a retiré un onglet</translation>
 <translation id="2765820627968019645">Clair</translation>
 <translation id="276582196519778359">Entrer votre NIP pour les contrôles parentaux</translation>
 <translation id="2766006623206032690">Coller l'adre&amp;sse URL et y accéder</translation>
@@ -4130,7 +4129,6 @@
 <translation id="3872991219937722530">Libérez de l'espace disque ou votre appareil ne répondra plus.</translation>
 <translation id="3873315167136380065">Pour activer ce paramètre, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /> afin de supprimer votre phrase de passe de synchronisation</translation>
 <translation id="3873423927483480833">Afficher les NIP</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> a ajouté un onglet</translation>
 <translation id="3873915545594852654">Un problème avec ARC++ s'est produit.</translation>
 <translation id="3874164307099183178">Activer l'Assistant Google</translation>
 <translation id="3875511946736639169">Afficher les images</translation>
@@ -4260,7 +4258,6 @@
 <translation id="3959969108528118741">Propriétaire</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Autres actions pour <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> a quitté le groupe</translation>
 <translation id="3963753386716096475">Utiliser une tablette, une clé de sécurité ou un téléphone différent</translation>
 <translation id="3964480518399667971">Désactiver la connectivité cellulaire</translation>
 <translation id="3965965397408324205">Quitter <ph name="PROFILE_NAME" /></translation>
@@ -5383,7 +5380,6 @@
 <translation id="4789348252524569426">Impossible d'installer les fichiers vocaux. Votre appareil doit être mis à jour. Redémarrez votre appareil et réessayez.</translation>
 <translation id="4789550509729954245">Afficher une notification lorsque des appareils partagent du contenu à proximité</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Aucune suggestion proposée. Essayez de poser des questions comme « résumer cette page » ou votre propre question.</translation>
 <translation id="4791793693640849493">Enregistrer les éléments dans le compte</translation>
 <translation id="4792290259143007505">Activer l'accélération du TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Signaler un problème…</translation>
@@ -9012,7 +9008,6 @@
 <translation id="7421293530411019405">Quitter le groupe d'onglets?</translation>
 <translation id="7421925624202799674">Affic&amp;her le code source de la page</translation>
 <translation id="7422192691352527311">Préférences...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> a modifié le nom du groupe</translation>
 <translation id="7423425410216218516">La visibilité est activée pendant <ph name="MINUTES" /> minutes</translation>
 <translation id="7423513079490750513">Retirer <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> a besoin d'une autorisation pour s'exécuter</translation>
@@ -9503,7 +9498,6 @@
 <translation id="7772032839648071052">Confirmer la phrase de passe</translation>
 <translation id="7772127298218883077">À propos de <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Stockage de session</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> s'est joint au groupe</translation>
 <translation id="7774365994322694683">Oiseau</translation>
 <translation id="7774581652827321413">Obtenez un résumé de la page, des recherches associées et d'autres informations utiles à propos de cette page</translation>
 <translation id="7774792847912242537">Trop de demandes.</translation>
@@ -11099,7 +11093,6 @@
 <translation id="8888253246822647887">L'application s'ouvrira quand la mise à niveau sera terminée. Les mises à niveau peuvent prendre quelques minutes.</translation>
 <translation id="8888459276890791557">Vous pouvez épingler ce panneau latéral pour y accéder facilement</translation>
 <translation id="8889294078294184559">Pendant que vous continuez à les parcourir, les sites peuvent vérifier la probabilité que vous soyez une personne réelle par le biais de Chrome et d'un site que vous avez visité précédemment</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> a modifié la couleur du groupe</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> peut modifier les fichiers et les dossiers suivants</translation>
 <translation id="8890170499370378450">Cela pourrait engendrer des frais de données cellulaires</translation>
 <translation id="8890516388109605451">Sources</translation>
@@ -11250,7 +11243,6 @@
 <translation id="8991520179165052608">Le site peut utiliser votre microphone</translation>
 <translation id="8991694323904646277">Aucun appareil photo</translation>
 <translation id="8991766915726096402">Récupération des données locales</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Il y a <ph name="TIME_COUNT" /> min}=1{Il y a <ph name="TIME_COUNT" /> h}one{Il y a <ph name="TIME_COUNT" /> j}other{Il y a <ph name="TIME_COUNT" /> j}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Utilisation de la mémoire – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Si vous oubliez votre mot de passe <ph name="DEVICE_TYPE" />, vous pouvez toujours restaurer vos données locales. Vous devrez vous connecter à votre compte Google ou utiliser la récupération du compte.</translation>
 <translation id="8993198843374358393">Copier le hachage du certificat pour <ph name="CERT_NAME" /></translation>
@@ -11652,7 +11644,6 @@
 <translation id="973558314812359997">Taille du curseur de souris</translation>
 <translation id="973788791897303708">Ce groupe d'onglets est complet</translation>
 <translation id="97381968209917373">Supprimer le certificat <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> a modifié un onglet</translation>
 <translation id="975893173032473675">Langue cible</translation>
 <translation id="976499800099896273">Boîte de dialogue d'annulation de la correction automatique affichée pour la correction de <ph name="TYPED_WORD" /> en <ph name="CORRECTED_WORD" />.  Appuyez sur la flèche vers le haut pour y accéder, ou sur Échap pour l'ignorer.</translation>
 <translation id="976572010712028687">Confirmer que vous êtes un parent</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index 7461094..ee86549 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2564,7 +2564,6 @@
 <translation id="2764920001292228569">Entrez un nom de profil</translation>
 <translation id="2765100602267695013">Veuillez contacter votre opérateur de téléphonie mobile</translation>
 <translation id="2765217105034171413">Petite</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> a supprimé un onglet</translation>
 <translation id="2765820627968019645">Clair</translation>
 <translation id="276582196519778359">Saisir votre code pour le contrôle parental</translation>
 <translation id="2766006623206032690">Coller l'URL et y a&amp;ccéder</translation>
@@ -4126,7 +4125,6 @@
 <translation id="3872991219937722530">Libérez de l'espace disque, car l'appareil risque de ne plus répondre.</translation>
 <translation id="3873315167136380065">Pour activer cette fonctionnalité, <ph name="BEGIN_LINK" />réinitialisez la synchronisation<ph name="END_LINK" /> pour supprimer votre phrase secrète de synchronisation</translation>
 <translation id="3873423927483480833">Afficher les codes</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> a ajouté un onglet</translation>
 <translation id="3873915545594852654">Un problème est survenu avec ARC++.</translation>
 <translation id="3874164307099183178">Activer l'Assistant Google</translation>
 <translation id="3875511946736639169">Afficher les images</translation>
@@ -4256,7 +4254,6 @@
 <translation id="3959969108528118741">Propriétaire</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Plus d'actions pour <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> a quitté le groupe</translation>
 <translation id="3963753386716096475">Utiliser un autre téléphone, une autre tablette ou une autre clé de sécurité</translation>
 <translation id="3964480518399667971">Désactiver le réseau mobile</translation>
 <translation id="3965965397408324205">Quitter <ph name="PROFILE_NAME" /></translation>
@@ -5379,7 +5376,6 @@
 <translation id="4789348252524569426">Impossible d'installer les fichiers vocaux. Votre appareil doit être mis à jour. Redémarrez-le et réessayez.</translation>
 <translation id="4789550509729954245">Afficher la notification en cas de partage entre appareils à proximité</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Aucune suggestion disponible. Posez votre propre question ou dites, par exemple, "Résume cette page".</translation>
 <translation id="4791793693640849493">Enregistrer les éléments dans le compte</translation>
 <translation id="4792290259143007505">Activer l'accélération de TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Signaler un problème...</translation>
@@ -9010,7 +9006,6 @@
 <translation id="7421293530411019405">Quitter le groupe d'onglets ?</translation>
 <translation id="7421925624202799674">&amp;Afficher le code source de la page</translation>
 <translation id="7422192691352527311">Préférences...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> a modifié le nom du groupe</translation>
 <translation id="7423425410216218516">Visibilité activée pendant <ph name="MINUTES" /> minutes</translation>
 <translation id="7423513079490750513">Supprimer <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">L'exécution de <ph name="APP_NAME" /> requiert votre autorisation</translation>
@@ -9501,7 +9496,6 @@
 <translation id="7772032839648071052">Confirmez la phrase secrète</translation>
 <translation id="7772127298218883077">À propos de <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Stockage de session</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> a rejoint le groupe</translation>
 <translation id="7774365994322694683">Oiseau</translation>
 <translation id="7774581652827321413">Obtenez un résumé de la page, les recherches associées et d'autres informations utiles sur cette page</translation>
 <translation id="7774792847912242537">Trop de demandes.</translation>
@@ -11099,7 +11093,6 @@
 <translation id="8888253246822647887">Votre application s'ouvrira une fois la mise à jour terminée. Les mises à jour peuvent prendre quelques minutes.</translation>
 <translation id="8888459276890791557">Vous pouvez épingler ce panneau latéral pour y accéder facilement</translation>
 <translation id="8889294078294184559">Lorsque vous continuez à naviguer, les sites peuvent vérifier avec Chrome et avec un site que vous avez déjà visité si vous êtes une personne réelle</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> a changé la couleur du groupe</translation>
 <translation id="8889651696183044030">Le site <ph name="ORIGIN" /> peut modifier les fichiers et les dossiers suivants</translation>
 <translation id="8890170499370378450">Des frais liés à la consommation de données mobiles peuvent s'appliquer</translation>
 <translation id="8890516388109605451">Sources</translation>
@@ -11250,7 +11243,6 @@
 <translation id="8991520179165052608">Le site peut utiliser votre micro</translation>
 <translation id="8991694323904646277">Aucun appareil photo</translation>
 <translation id="8991766915726096402">Récupération des données locales</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Il y a <ph name="TIME_COUNT" /> min}=1{Il y a <ph name="TIME_COUNT" /> h}one{Il y a <ph name="TIME_COUNT" /> j}other{Il y a <ph name="TIME_COUNT" /> j}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Utilisation de la mémoire - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Même si vous oubliez votre mot de passe <ph name="DEVICE_TYPE" />, vous pouvez restaurer vos données locales. Vous devrez pour cela vous connecter à votre compte Google ou utiliser la récupération de compte.</translation>
 <translation id="8993198843374358393">Copier le hachage du certificat pour <ph name="CERT_NAME" /></translation>
@@ -11652,7 +11644,6 @@
 <translation id="973558314812359997">Taille du curseur</translation>
 <translation id="973788791897303708">Ce groupe d'onglets est complet</translation>
 <translation id="97381968209917373">Supprimer le certificat "<ph name="CERT_NAME" />"</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> a modifié un onglet</translation>
 <translation id="975893173032473675">Langue cible</translation>
 <translation id="976499800099896273">Le mot "<ph name="TYPED_WORD" />" a été remplacé automatiquement par "<ph name="CORRECTED_WORD" />". Dans la boîte de dialogue qui s'affiche, appuyez sur la flèche vers le haut pour accepter cette correction ou sur la touche Échap pour l'ignorer.</translation>
 <translation id="976572010712028687">Confirmez que vous êtes un parent</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
index 8c20957c..babec64 100644
--- a/chrome/app/resources/generated_resources_gl.xtb
+++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -2562,7 +2562,6 @@
 <translation id="2764920001292228569">Pon un nome de perfil</translation>
 <translation id="2765100602267695013">Contacta co teu operador móbil</translation>
 <translation id="2765217105034171413">Pequeno</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> quitou unha pestana</translation>
 <translation id="2765820627968019645">Claro</translation>
 <translation id="276582196519778359">Escribe o teu PIN dos controis parentais</translation>
 <translation id="2766006623206032690">Pe&amp;gar e ir</translation>
@@ -4129,7 +4128,6 @@
 <translation id="3872991219937722530">Libera espazo en disco para que o dispositivo non se bloquee.</translation>
 <translation id="3873315167136380065">Se queres activar esta opción, <ph name="BEGIN_LINK" />restablece a sincronización<ph name="END_LINK" /> para quitar a frase de acceso da sincronización</translation>
 <translation id="3873423927483480833">Mostrar PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> engadiu unha pestana</translation>
 <translation id="3873915545594852654">Produciuse un problema con ARC++.</translation>
 <translation id="3874164307099183178">Activar Asistente de Google</translation>
 <translation id="3875511946736639169">Activar as imaxes</translation>
@@ -4259,7 +4257,6 @@
 <translation id="3959969108528118741">Persoa propietaria</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Máis accións para <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> saíu do grupo</translation>
 <translation id="3963753386716096475">Usar outro teléfono, tableta ou chave de seguranza</translation>
 <translation id="3964480518399667971">Desactivar rede móbil</translation>
 <translation id="3965965397408324205">Saír de <ph name="PROFILE_NAME" /></translation>
@@ -5382,7 +5379,6 @@
 <translation id="4789348252524569426">Non se puideron instalar os ficheiros de voz. Cómpre actualizar o teu dispositivo. Reinicia o dispositivo e téntao de novo.</translation>
 <translation id="4789550509729954245">Mostrar notificación cando os dispositivos están a compartir contido preto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Non hai ningunha suxestión. Proba a dicir algo como "resume esta páxina" ou fai a túa propia pregunta.</translation>
 <translation id="4791793693640849493">Gardar os elementos na conta</translation>
 <translation id="4792290259143007505">Activar aceleración de TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Informar dun problema...</translation>
@@ -9008,7 +9004,6 @@
 <translation id="7421293530411019405">Queres saír do grupo de pestanas?</translation>
 <translation id="7421925624202799674">&amp;Ver fonte da páxina</translation>
 <translation id="7422192691352527311">Preferencias...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> cambiou o nome do grupo</translation>
 <translation id="7423425410216218516">A visibilidade está activada durante <ph name="MINUTES" /> minutos</translation>
 <translation id="7423513079490750513">Quitar <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> necesita permiso para poder executarse</translation>
@@ -9499,7 +9494,6 @@
 <translation id="7772032839648071052">Confirmar frase de acceso</translation>
 <translation id="7772127298218883077">Acerca de <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Almacenamento da sesión</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> uniuse ao grupo</translation>
 <translation id="7774365994322694683">Paxaro</translation>
 <translation id="7774581652827321413">Obtén un resumo desta páxina, buscas relacionadas e outra información útil acerca dela</translation>
 <translation id="7774792847912242537">Hai demasiadas solicitudes.</translation>
@@ -11095,7 +11089,6 @@
 <translation id="8888253246822647887">A aplicación abrirase cando finalice a actualización. As actualizacións poden tardar uns minutos.</translation>
 <translation id="8888459276890791557">Podes fixar este panel lateral para así acceder facilmente a el</translation>
 <translation id="8889294078294184559">Cando navegues, os sitios poderán facer comprobacións con Chrome e verificar con outros sitios que xa visitases que es unha persoa real</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> cambiou a cor do grupo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> pode editar os seguintes ficheiros e cartafoles</translation>
 <translation id="8890170499370378450">É posible que se apliquen cargos polo uso de datos móbiles</translation>
 <translation id="8890516388109605451">Fontes</translation>
@@ -11246,7 +11239,6 @@
 <translation id="8991520179165052608">O sitio pode usar o teu micrófono</translation>
 <translation id="8991694323904646277">Non hai ningunha cámara conectada</translation>
 <translation id="8991766915726096402">Recuperación de datos locais</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Hai <ph name="TIME_COUNT" /> min}=1{Hai <ph name="TIME_COUNT" /> h}other{Hai <ph name="TIME_COUNT" /> d}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Uso da memoria - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Aínda que esqueceras o contrasinal de <ph name="DEVICE_TYPE" />, podes restaurar os teus datos locais igualmente. Terás que iniciar sesión coa túa Conta de Google ou usar a recuperación da conta.</translation>
 <translation id="8993198843374358393">Copiar o hash do certificado <ph name="CERT_NAME" /></translation>
@@ -11648,7 +11640,6 @@
 <translation id="973558314812359997">Tamaño do rato</translation>
 <translation id="973788791897303708">Este grupo de pestanas está cheo</translation>
 <translation id="97381968209917373">Eliminar o certificado <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> modificou unha pestana</translation>
 <translation id="975893173032473675">Idioma ao que queres traducir o contido</translation>
 <translation id="976499800099896273">Móstrase o cadro de diálogo para desfacer a autocorrección de "<ph name="TYPED_WORD" />", que se cambiou por "<ph name="CORRECTED_WORD" />".  Preme Frecha arriba para acceder ou Escape para ignorar o cadro de diálogo.</translation>
 <translation id="976572010712028687">Verifica que es o pai ou a nai</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index 4e924966..85ee3d1d 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2561,7 +2561,6 @@
 <translation id="2764920001292228569">પ્રોફાઇલ નામ દાખલ કરો</translation>
 <translation id="2765100602267695013">કૃપા કરીને તમારા મોબાઇલ નેટવર્ક પ્રદાતાનો સંપર્ક કરો</translation>
 <translation id="2765217105034171413">નાનું</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> દ્વારા કોઈ ટૅબ કાઢી નાખવામાં આવ્યું</translation>
 <translation id="2765820627968019645">લાઇટ</translation>
 <translation id="276582196519778359">માતાપિતાના યોગ્ય નિયંત્રણો માટે તમારો પિન દાખલ કરો</translation>
 <translation id="2766006623206032690">પે&amp;સ્ટ કરો અને જાઓ</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">ડિસ્ક સ્થાન ખાલી કરો અથવા ઉપકરણ પ્રતિભાવવિહીન બની જશે.</translation>
 <translation id="3873315167136380065">આ ચાલુ કરવા માટે, તમારો સિંક પાસફ્રેઝ કાઢી નાખવા માટે <ph name="BEGIN_LINK" />સિંકને રીસેટ કરો<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">પિન બતાવો</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> દ્વારા કોઈ ટૅબ ઉમેરવામાં આવ્યું</translation>
 <translation id="3873915545594852654">ARC++માં સમસ્યા આવી.</translation>
 <translation id="3874164307099183178">Google Assistant ચાલુ કરો</translation>
 <translation id="3875511946736639169">છબીઓ બતાવવાનું ચાલુ કરો</translation>
@@ -4255,7 +4253,6 @@
 <translation id="3959969108528118741">માલિક</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> માટે વધુ ક્રિયાઓ</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> દ્વારા ગ્રૂપ છોડી દેવામાં આવ્યું</translation>
 <translation id="3963753386716096475">કોઈ અલગ ફોન, ટૅબ્લેટ કે સિક્યુરિટી કીનો ઉપયોગ કરો</translation>
 <translation id="3964480518399667971">સેલ્યુલર નેટવર્ક બંધ કરો</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />માંથી બહાર નીકળો</translation>
@@ -5378,7 +5375,6 @@
 <translation id="4789348252524569426">સ્પીચ માટેની ફાઇલો ઇન્સ્ટૉલ કરી શકતા નથી. તમારા ડિવાઇસને અપડેટ કરવાની જરૂર છે. તમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો.</translation>
 <translation id="4789550509729954245">જ્યારે ડિવાઇસ નજીકમાં શેર કરી રહ્યાં હોય ત્યારે નોટિફિકેશન બતાવો</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">કોઈ સૂચન ઉપલબ્ધ નથી. "આ પેજનો સારાંશ આપો" અથવા તમારા પોતાના પ્રશ્ન જેવી વસ્તુઓ પૂછવાનો પ્રયાસ કરો.</translation>
 <translation id="4791793693640849493">એકાઉન્ટમાં આઇટમ સાચવો</translation>
 <translation id="4792290259143007505">TrackPoint ઍક્સલરેશન ચાલુ કરો</translation>
 <translation id="4792711294155034829">&amp;સમસ્યાની જાણ કરો...</translation>
@@ -9012,7 +9008,6 @@
 <translation id="7421293530411019405">ટૅબનું ગ્રૂપ છોડી દઈએ?</translation>
 <translation id="7421925624202799674">પેજ સૉર્સ &amp;જુઓ</translation>
 <translation id="7422192691352527311">પસંદગીઓ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> દ્વારા ગ્રૂપના નામમાં ફેરફાર કરવામાં આવ્યો</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> મિનિટ માટે દૃશ્યતા ચાલુ છે</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" />ને કાઢી નાખો</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" />ને ચલાવવા માટે પરવાનગીની જરૂર છે</translation>
@@ -9503,7 +9498,6 @@
 <translation id="7772032839648071052">પાસફ્રેઝની પુષ્ટિ કરો</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> વિશે</translation>
 <translation id="7773726648746946405">સત્ર સ્ટોરેજ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ગ્રૂપમાં જોડાયા</translation>
 <translation id="7774365994322694683">પક્ષી</translation>
 <translation id="7774581652827321413">પેજનો સારાંશ, સંબંધિત શોધો તેમજ આ પેજ વિશે અન્ય ઉપયોગી માહિતી મેળવો</translation>
 <translation id="7774792847912242537">ઘણી બધી વિનંતીઓ.</translation>
@@ -11095,7 +11089,6 @@
 <translation id="8888253246822647887">જ્યારે અપગ્રેડ પૂર્ણ થશે ત્યારે તમારી ઍપ ખુલશે. અપગ્રેડમાં થોડી મિનિટ લાગી શકે છે.</translation>
 <translation id="8888459276890791557">સરળ ઍક્સેસ માટે, તમે બાજુની આ પૅનલ પિન કરી શકો છો</translation>
 <translation id="8889294078294184559">જેમ જેમ તમે બ્રાઉઝ કરવાનું ચાલુ રાખો છો, તેમ તેમ વિવિધ વેબસાઇટ Chrome વડે એ ચેક કરી શકે છે કે તમે અસલી વપરાશકર્તા છો કે નહીં અને સાથે જ તમે મુલાકાત લીધી હોય એવી અગાઉની સાઇટ વડે આ બાબતની ચકાસણી પણ તે કરી શકે છે</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> દ્વારા ગ્રૂપના રંગમાં ફેરફાર કરવામાં આવ્યો</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> નીચે આપેલી ફાઇલો અને ફોલ્ડરોમાં ફેરફાર કરી શકે છે</translation>
 <translation id="8890170499370378450">મોબાઇલ ડેટા શુલ્ક લાગુ થઈ શકે</translation>
 <translation id="8890516388109605451">સ્રોતો</translation>
@@ -11246,7 +11239,6 @@
 <translation id="8991520179165052608">સાઇટ તમારા માઇક્રોફોનનો ઉપયોગ કરી શકે છે</translation>
 <translation id="8991694323904646277">કોઈ કૅમેરા નથી</translation>
 <translation id="8991766915726096402">સ્થાનિક ડેટા રિકવરી</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> મિનિટ પહેલાં}=1{<ph name="TIME_COUNT" /> કલાક પહેલાં}one{<ph name="TIME_COUNT" /> દિવસ પહેલાં}other{<ph name="TIME_COUNT" /> દિવસ પહેલાં}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - મેમેરીનો વપરાશ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">તમે તમારો <ph name="DEVICE_TYPE" /> પાસવર્ડ ભૂલી ગયા હો, તેમ છતાં તમે તમારો સ્થાનિક ડેટા રિસ્ટોર કરી શકો છો. તમારે તમારા Google એકાઉન્ટમાં સાઇન ઇન કરવું અથવા એકાઉન્ટની રિકવરી કરવી જરૂરી રહેશે.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> માટે સર્ટિફિકેટ હૅશને કૉપિ કરો</translation>
@@ -11648,7 +11640,6 @@
 <translation id="973558314812359997">માઉસનું કદ</translation>
 <translation id="973788791897303708">આ ટૅબનું ગ્રૂપ ભરાઈ ગયું છે</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" />નું સર્ટિફિકેટ ડિલીટ કરો</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> દ્વારા કોઈ ટૅબમાં ફેરફાર કરવામાં આવ્યો</translation>
 <translation id="975893173032473675">જેમાં અનુવાદ કરવો છે તે ભાષા</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> માટે ઑટોમૅટિક રીતે સુધારણાનો છેલ્લો ફેરફાર રદ કરવાનો સંવાદ બતાવવામાં આવ્યો અને તેને સુધારીને <ph name="CORRECTED_WORD" /> કર્યો.  ઍક્સેસ કરવા માટે ઉપર એરો કી દબાવો અથવા છોડી દેવા માટે Escape કી દબાવો.</translation>
 <translation id="976572010712028687">તમે માતાપિતા છો તેની ચકાસણી કરો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index 3ebdb61..885b5c3e 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">कोई प्रोफ़ाइल नाम डालें</translation>
 <translation id="2765100602267695013">कृपया मोबाइल सेवा देने वाली कंपनी से संपर्क करें</translation>
 <translation id="2765217105034171413">छोटा</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ने एक टैब हटा दिया है</translation>
 <translation id="2765820627968019645">हल्के रंग वाला मोड</translation>
 <translation id="276582196519778359">माता-पिता के कंट्रोल वाली सेटिंग के लिए अपना पिन डालें</translation>
 <translation id="2766006623206032690">&amp;चिपकाएं और जाएं</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">डिस्क में स्पेस खाली करें अन्यथा डिवाइस प्रतिक्रिया नहीं देगा.</translation>
 <translation id="3873315167136380065">इसे चालू करने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /> ताकि आपका सिंक करने का लंबा पासवर्ड हटाया जा सके</translation>
 <translation id="3873423927483480833">पिन दिखाएं</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ने एक टैब जोड़ा</translation>
 <translation id="3873915545594852654">एआरसी++ के साथ कोई समस्या हुई.</translation>
 <translation id="3874164307099183178">Google Assistant चालू करें</translation>
 <translation id="3875511946736639169">इमेज दिखाने की सुविधा चालू करें</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">एडमिन</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> के लिए और कार्रवाइयां</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ने ग्रुप छोड़ दिया</translation>
 <translation id="3963753386716096475">किसी दूसरे फ़ोन, टैबलेट या सुरक्षा कुंजी का इस्तेमाल करें</translation>
 <translation id="3964480518399667971">सेल्युलर नेटवर्क बंद करें</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> से बाहर निकलें</translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">बोली पहचानने वाली फ़ाइलों को इंस्टॉल नहीं किया जा सका. इसके लिए, आपको अपने डिवाइस को अपडेट करना होगा. डिवाइस को रीस्टार्ट करके, फिर से कोशिश करें.</translation>
 <translation id="4789550509729954245">आस-पास मौजूद डिवाइसों के साथ शेयर करने की सुविधा चालू होने पर, सूचना दिखाएं</translation>
 <translation id="4791037424585594169">(यूडीपी)</translation>
-<translation id="4791200512372376561">कोई सुझाव उपलब्ध नहीं. “इस पेज की खास जानकारी दो” जैसा कुछ बोलें या फिर कोई दूसरा सवाल पूछें.</translation>
 <translation id="4791793693640849493">आइटम को खाते में सेव करें</translation>
 <translation id="4792290259143007505">TrackPoint ऐक्सेलरेशन चालू करें</translation>
 <translation id="4792711294155034829">किसी समस्या की &amp;रिपोर्ट करें...</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">क्या आपको टैब ग्रुप से बाहर निकलना है?</translation>
 <translation id="7421925624202799674">पेज का स्रोत &amp;देखें</translation>
 <translation id="7422192691352527311">प्राथमिकताएं...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ने ग्रुप का नाम बदल दिया</translation>
 <translation id="7423425410216218516">'किसको दिखाई दे' सेटिंग <ph name="MINUTES" /> मिनट तक चालू है</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> हटाएं</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> को चलाने के लिए अनुमति चाहिए</translation>
@@ -9513,7 +9508,6 @@
 <translation id="7772032839648071052">'पासफ़्रेज' की पुष्टि करें</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> के बारे में</translation>
 <translation id="7773726648746946405">सत्र संग्ररण</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />, अब ग्रुप का हिस्सा हैं</translation>
 <translation id="7774365994322694683">पक्षी</translation>
 <translation id="7774581652827321413">इस पेज के बारे में खास जानकारी, इससे मिलती-जुलती खोजें, और इससे जुड़ी काम की अन्य जानकारी पाएं</translation>
 <translation id="7774792847912242537">बहुत सारे अनुरोध.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">अपग्रेड पूरा होने पर आपका ऐप्लिकेशन खुल जाएगा. अपग्रेड में कुछ समय लग सकता है.</translation>
 <translation id="8888459276890791557">आसानी से ऐक्सेस करने के लिए, इस साइड पैनल को पिन किया जा सकता है</translation>
 <translation id="8889294078294184559">आपके ब्राउज़ करने के दौरान, साइटें Chrome की मदद से यह जांच कर सकती हैं कि आप असली उपयोगकर्ता हैं या नहीं. ऐसा, आपकी पहले विज़िट की गई साइट की जानकारी से किया जाता है</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ने ग्रुप का रंग बदला</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> नीचे दी गई फ़ाइलों और फ़ोल्डर में बदलाव कर सकती है</translation>
 <translation id="8890170499370378450">हो सकता है कि आपको मोबाइल डेटा का शुल्क देना पड़े</translation>
 <translation id="8890516388109605451">स्रोत</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">साइट आपके माइक्रोफ़ोन का इस्तेमाल कर सकती है</translation>
 <translation id="8991694323904646277">कोई कैमरा कनेक्ट नहीं है</translation>
 <translation id="8991766915726096402">स्थानीय डेटा वापस पाने की प्रक्रिया</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> मिनट पहले}=1{<ph name="TIME_COUNT" /> घंटा पहले}one{<ph name="TIME_COUNT" /> दिन पहले}other{<ph name="TIME_COUNT" /> दिन पहले}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - मेमोरी का इस्तेमाल - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">अगर आपको <ph name="DEVICE_TYPE" /> का पासवर्ड याद नहीं है, तब भी आपको अपना लोकल डेटा वापस मिल सकता है. आपको अपने Google खाते में साइन इन करना होगा या खाता वापस पाने की सुविधा का इस्तेमाल करना होगा.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> के लिए सर्टिफ़िकेट हैश कॉपी करें</translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">कर्सर को बड़ा करने से जुड़ी सेटिंग पर जाएं</translation>
 <translation id="973788791897303708">इस टैब ग्रुप में अब और लोग नहीं जोड़े जा सकते</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> सर्टिफ़िकेट को मिटाएं</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ने एक टैब बदला है</translation>
 <translation id="975893173032473675">वह भाषा जिसमें अनुवाद करना है</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> को सही करके <ph name="CORRECTED_WORD" /> किया गया, जिसके लिए 'ऑटो करेक्ट को पहले जैसा करें' डायलॉग दिखाया गया.  ऐक्सेस करने के लिए 'अप ऐरो', अनदेखा करने के लिए escape दबाएं.</translation>
 <translation id="976572010712028687">पुष्टि करें कि आप माता, पिता या अभिभावक हैं</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 4a8943e..5ecc01e 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -2566,7 +2566,6 @@
 <translation id="2764920001292228569">Unesite naziv profila</translation>
 <translation id="2765100602267695013">Obratite se mobilnom operateru</translation>
 <translation id="2765217105034171413">Mali</translation>
-<translation id="2765349783094807040">Korisnik <ph name="MEMBER_FIRST_NAME" /> uklonio je karticu</translation>
 <translation id="2765820627968019645">Svijetlo</translation>
 <translation id="276582196519778359">Unesite PIN za roditeljski nadzor</translation>
 <translation id="2766006623206032690">Za&amp;lijepi i idi</translation>
@@ -4129,7 +4128,6 @@
 <translation id="3872991219937722530">Oslobodite prostor na disku ili će uređaj prestati reagirati.</translation>
 <translation id="3873315167136380065">Da biste uključili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation>
 <translation id="3873423927483480833">Prikaz PIN-ova</translation>
-<translation id="3873893412864594794">Korisnik <ph name="MEMBER_FIRST_NAME" /> dodao je karticu</translation>
 <translation id="3873915545594852654">Pojavio se problem koji se odnosi na ARC++.</translation>
 <translation id="3874164307099183178">Uključivanje Google asistenta</translation>
 <translation id="3875511946736639169">Omogućite slike</translation>
@@ -4259,7 +4257,6 @@
 <translation id="3959969108528118741">Vlasnik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Više radnji za <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Korisnik <ph name="MEMBER_FIRST_NAME" /> napustio je grupu</translation>
 <translation id="3963753386716096475">Upotrijebite drugi telefon, tablet ili sigurnosni ključ</translation>
 <translation id="3964480518399667971">Isključivanje mobilne mreže</translation>
 <translation id="3965965397408324205">Zatvori profil <ph name="PROFILE_NAME" /></translation>
@@ -5382,7 +5379,6 @@
 <translation id="4789348252524569426">Nije moguće instalirati govorne datoteke. Uređaj se treba ažurirati. Ponovno pokrenite uređaj i pokušajte opet.</translation>
 <translation id="4789550509729954245">Prikaži obavijest kada uređaji dijele u blizini</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Prijedlozi nisu dostupni. Pokušajte postaviti upit kao što je "sažmi ovu stranicu" ili vlastito pitanje.</translation>
 <translation id="4791793693640849493">Spremite stavke na račun</translation>
 <translation id="4792290259143007505">Omogući TrackPoint ubrzanje</translation>
 <translation id="4792711294155034829">&amp;Prijavljivanje problema...</translation>
@@ -9011,7 +9007,6 @@
 <translation id="7421293530411019405">Želite li napustiti grupu kartica?</translation>
 <translation id="7421925624202799674">&amp;Prikaži izvor stranice</translation>
 <translation id="7422192691352527311">Postavke...</translation>
-<translation id="7422516375032300779">Korisnik <ph name="MEMBER_FIRST_NAME" /> promijenio je naziv grupe</translation>
 <translation id="7423425410216218516">Vidljivost je uključena sljedeći broj minuta: <ph name="MINUTES" /></translation>
 <translation id="7423513079490750513">Ukloni <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> treba vaše dopuštenje za pokretanje</translation>
@@ -9502,7 +9497,6 @@
 <translation id="7772032839648071052">Potvrdi zaporku</translation>
 <translation id="7772127298218883077">O proizvodu <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Pohrana sesije</translation>
-<translation id="7773887159761725143">Korisnik <ph name="MEMBER_FIRST_NAME" /> pridružio se grupi</translation>
 <translation id="7774365994322694683">Ptica</translation>
 <translation id="7774581652827321413">Primajte sažetak stranice, povezana pretraživanja i druge korisne informacije o ovoj stranici</translation>
 <translation id="7774792847912242537">Previše zahtjeva.</translation>
@@ -11101,7 +11095,6 @@
 <translation id="8888253246822647887">Aplikacija će se otvoriti kad nadogradnja završi. Nadogradnje mogu trajati nekoliko minuta.</translation>
 <translation id="8888459276890791557">Tu bočnu ploču možete prikvačiti radi lakšeg pristupa</translation>
 <translation id="8889294078294184559">Tijekom vašeg daljnjeg pregledavanja web-lokacije mogu provjeriti u Chromeu i od prethodne web-lokacije koju ste posjetili dobiti potvrdu da ste vjerojatno stvarna osoba</translation>
-<translation id="88895904696396879">Korisnik <ph name="MEMBER_FIRST_NAME" /> promijenio je boju grupe</translation>
 <translation id="8889651696183044030">Web-lokacija <ph name="ORIGIN" /> može uređivati sljedeće datoteke i mape</translation>
 <translation id="8890170499370378450">Možda će se naplatiti mobilni podatkovni promet</translation>
 <translation id="8890516388109605451">Izvori</translation>
@@ -11252,7 +11245,6 @@
 <translation id="8991520179165052608">Web-lokacija može upotrebljavati vaš mikrofon</translation>
 <translation id="8991694323904646277">Nema kamere</translation>
 <translation id="8991766915726096402">Oporavak lokalnih podataka</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Prije <ph name="TIME_COUNT" /> min}=1{Prije <ph name="TIME_COUNT" /> h}one{Prije <ph name="TIME_COUNT" /> dan}few{Prije <ph name="TIME_COUNT" /> dana}other{Prije <ph name="TIME_COUNT" /> dana}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Upotreba memorije – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ako zaboravite zaporku za <ph name="DEVICE_TYPE" />, i dalje možete vratiti svoje lokalne podatke. Morat ćete se prijaviti na Google račun ili upotrijebiti značajku oporavka računa.</translation>
 <translation id="8993198843374358393">Kopiraj hash certifikata <ph name="CERT_NAME" /></translation>
@@ -11654,7 +11646,6 @@
 <translation id="973558314812359997">Veličina miša</translation>
 <translation id="973788791897303708">Ova grupa kartica je puna</translation>
 <translation id="97381968209917373">Izbrišite certifikat <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">Korisnik <ph name="MEMBER_FIRST_NAME" /> promijenio je karticu</translation>
 <translation id="975893173032473675">Jezik na koji se prevodi</translation>
 <translation id="976499800099896273">Dijaloški okvir za poništavanje automatskog ispravka prikazuje se za riječ <ph name="TYPED_WORD" /> ispravljenu u <ph name="CORRECTED_WORD" />.  Pritisnite strelicu prema gore da biste joj pristupili, Esc da biste je zanemarili.</translation>
 <translation id="976572010712028687">Potvrdite da ste roditelj</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index b580b4d..bd1bb7c 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">Adjon meg profilnevet</translation>
 <translation id="2765100602267695013">Forduljon mobilszolgáltatójához</translation>
 <translation id="2765217105034171413">Kicsi</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> eltávolított egy lapot</translation>
 <translation id="2765820627968019645">Világos</translation>
 <translation id="276582196519778359">A szülői felügyelet használatához adja meg a PIN-kódot</translation>
 <translation id="2766006623206032690">Beille&amp;sztés és ugrás</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">Szabadítson fel tárhelyet, máskülönben eszköze lefagy.</translation>
 <translation id="3873315167136380065">Ennek bekapcsolásához <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />, hogy eltávolíthassa az összetett szinkronizálási jelszót</translation>
 <translation id="3873423927483480833">PIN-kódok megjelenítése</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> hozzáadott egy lapot</translation>
 <translation id="3873915545594852654">ARC++-hiba történt.</translation>
 <translation id="3874164307099183178">A Google Segéd bekapcsolása</translation>
 <translation id="3875511946736639169">Képek engedélyezése</translation>
@@ -4268,7 +4266,6 @@
 <translation id="3959969108528118741">Tulajdonos</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">További műveletek a következőhöz: <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> kilépett a csoportból</translation>
 <translation id="3963753386716096475">Másik telefon, táblagép vagy biztonsági kulcs használata</translation>
 <translation id="3964480518399667971">Mobilhálózat kikapcsolása</translation>
 <translation id="3965965397408324205">Kilépés a(z) <ph name="PROFILE_NAME" /> profilból</translation>
@@ -5391,7 +5388,6 @@
 <translation id="4789348252524569426">Nem sikerült telepíteni a beszédfájlokat. Szükség van az eszköz frissítésére. Indítsa újra az eszközt, és próbálkozzon újra.</translation>
 <translation id="4789550509729954245">Értesítés megjelenítése, amikor a közelben lévő eszközök megosztást végeznek</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nincs javaslat. Próbáljon meg olyan kérdéseket feltenni, mint például „foglald össze ezt az oldalt”, vagy tegyen fel saját kérdést.</translation>
 <translation id="4791793693640849493">Elemek mentése a fiókba</translation>
 <translation id="4792290259143007505">TrackPoint gyorsításának engedélyezése</translation>
 <translation id="4792711294155034829">&amp;Hibabejelentés...</translation>
@@ -9022,7 +9018,6 @@
 <translation id="7421293530411019405">Kilép a lapcsoportból?</translation>
 <translation id="7421925624202799674">&amp;Oldal forrásának megtekintése</translation>
 <translation id="7422192691352527311">Beállítások...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> módosította a csoport nevét</translation>
 <translation id="7423425410216218516">Láthatóság bekapcsolva <ph name="MINUTES" /> percre</translation>
 <translation id="7423513079490750513">A(z) <ph name="INPUT_METHOD_NAME" /> eltávolítása</translation>
 <translation id="7423807071740419372">A(z) <ph name="APP_NAME" /> futtatásához jogosultságra van szükség</translation>
@@ -9512,7 +9507,6 @@
 <translation id="7772032839648071052">Összetett jelszó megerősítése</translation>
 <translation id="7772127298218883077">A <ph name="PRODUCT_NAME" /> névjegye</translation>
 <translation id="7773726648746946405">Programfolyamat-tárolás</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> csatlakozott a csoporthoz</translation>
 <translation id="7774365994322694683">Madár</translation>
 <translation id="7774581652827321413">Oldalösszegzést, kapcsolódó kereséseket és egyéb hasznos információkat kaphat erről az oldalról</translation>
 <translation id="7774792847912242537">Túl sok kérelem.</translation>
@@ -11109,7 +11103,6 @@
 <translation id="8888253246822647887">A frissítés befejezése után megnyílik az alkalmazás. A frissítési folyamat eltarthat néhány percig.</translation>
 <translation id="8888459276890791557">Az egyszerű hozzáférés érdekében kitűzheti ezt az oldalsó panelt.</translation>
 <translation id="8889294078294184559">Böngészési tevékenységei során a webhelyek egyeztethetnek a Chrome-mal, és az előzőleg felkeresett webhely segítségével meggyőződhetnek arról, hogy Ön valószínűleg valódi felhasználó.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> módosította a csoport színét</translation>
 <translation id="8889651696183044030">A(z) <ph name="ORIGIN" /> szerkesztheti a következő fájlokat és mappákat:</translation>
 <translation id="8890170499370378450">Mobiladat-forgalmi díjjal járhat</translation>
 <translation id="8890516388109605451">Források</translation>
@@ -11260,7 +11253,6 @@
 <translation id="8991520179165052608">A webhely használhatja a mikrofonját</translation>
 <translation id="8991694323904646277">Nincs kamera</translation>
 <translation id="8991766915726096402">Helyi adatok helyreállítása</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> perce}=1{<ph name="TIME_COUNT" /> órája}other{<ph name="TIME_COUNT" /> napja}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Memóriahasználat – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Akkor is visszaállíthatja a helyi adatait, ha elfelejtette <ph name="DEVICE_TYPE" /> eszköze jelszavát. Ehhez be kell jelentkeznie Google-fiókjába, vagy fiók-helyreállítást kell végeznie.</translation>
 <translation id="8993198843374358393">A(z) <ph name="CERT_NAME" /> tanúsítványkivonatának másolása</translation>
@@ -11662,7 +11654,6 @@
 <translation id="973558314812359997">Egér mérete</translation>
 <translation id="973788791897303708">Ez a lapcsoport megtelt</translation>
 <translation id="97381968209917373">Törli a(z) „<ph name="CERT_NAME" />” tanúsítványt?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> módosított egy lapot</translation>
 <translation id="975893173032473675">Fordítás célnyelve</translation>
 <translation id="976499800099896273">Az automatikus javítás visszavonási párbeszédpanelje látható. Javítandó szó: <ph name="TYPED_WORD" />, javítási javaslat: <ph name="CORRECTED_WORD" />.  A javított szóhoz való hozzáféréshez nyomja meg a felfelé mutató nyilat, a figyelmen kívül hagyáshoz pedig az Escape gombot.</translation>
 <translation id="976572010712028687">Igazolja, hogy Ön szülő</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
index 4606ae8c..dda4902 100644
--- a/chrome/app/resources/generated_resources_hy.xtb
+++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Մուտքագրեք պրոֆիլի անվանում</translation>
 <translation id="2765100602267695013">Դիմեք ձեր բջջային կապի օպերատորին</translation>
 <translation id="2765217105034171413">Փոքր</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> օգտատերը հեռացրել է ներդիր</translation>
 <translation id="2765820627968019645">Բաց</translation>
 <translation id="276582196519778359">Մուտքագրեք ձեր PIN կոդը՝ ծնողական վերահսկողության կարգավորումների էջ անցնելու համար</translation>
 <translation id="2766006623206032690">Տեղա&amp;դրել և անցնել</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">Ազատեք սկավառակի տարածքը, այլապես սարքը կդադարի աշխատել:</translation>
 <translation id="3873315167136380065">Սա միացնելու համար <ph name="BEGIN_LINK" />վերակայեք համաժամացումը<ph name="END_LINK" />, որպեսզի հեռացնեք համաժամացման անցաբառը</translation>
 <translation id="3873423927483480833">Ցուցադրել PIN կոդերը</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> օգտատերն ավելացրել է ներդիր</translation>
 <translation id="3873915545594852654">Չհաջողվեց գործարկել ARC++ը։</translation>
 <translation id="3874164307099183178">Միացնել Google Օգնականը</translation>
 <translation id="3875511946736639169">Միացնել պատկերները</translation>
@@ -4255,7 +4253,6 @@
 <translation id="3959969108528118741">Սեփականատեր</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Լրացուցիչ գործողություններ <ph name="IBAN_DESCRIPTION" />-ի համար</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> օգտատերը հեռացավ խմբից</translation>
 <translation id="3963753386716096475">Օգտագործել մեկ այլ հեռախոս, պլանշետ կամ անվտանգության բանալի</translation>
 <translation id="3964480518399667971">Անջատել բջջային ցանցը</translation>
 <translation id="3965965397408324205">Դուրս գալ պրոֆիլից (<ph name="PROFILE_NAME" />)</translation>
@@ -5378,7 +5375,6 @@
 <translation id="4789348252524569426">Չհաջողվեց տեղադրել խոսքի ֆայլերը։ Ձեր սարքը թարմացման կարիք ունի։ Վերագործարկեք սարքը և նորից փորձեք։</translation>
 <translation id="4789550509729954245">Ցույց տալ ծանուցում, երբ մոտակա սարքերը ֆայլերով են փոխանակվում</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Առաջարկներ չկան: Փորձեք ասել, օրինակ՝ «ամփոփիր այս էջը», կամ մեկ այլ հարց տվեք։</translation>
 <translation id="4791793693640849493">Տարրերի պահում հաշվի մեջ</translation>
 <translation id="4792290259143007505">Միացնել TrackPoint-ի արագացումը</translation>
 <translation id="4792711294155034829">&amp;Հաղորդել խնդրի մասին…</translation>
@@ -9005,7 +9001,6 @@
 <translation id="7421293530411019405">Լքե՞լ ներդիրների խումբը</translation>
 <translation id="7421925624202799674">&amp;Դիտել էջի կոդը</translation>
 <translation id="7422192691352527311">Preferences...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> օգտատերը փոխել է խմբի անվանումը</translation>
 <translation id="7423425410216218516">Սարքի տեսանելիությունը միացված է <ph name="MINUTES" /> րոպեով</translation>
 <translation id="7423513079490750513">Հեռացնել (<ph name="INPUT_METHOD_NAME" />)</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> հավելվածն աշխատեցնելու համար թույլտվություն է անհրաժեշտ</translation>
@@ -9496,7 +9491,6 @@
 <translation id="7772032839648071052">Հաստատեք անցաբառը</translation>
 <translation id="7772127298218883077">About <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Աշխատաշրջանի պահեստավորում</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> օգտատերը միացել է խմբին</translation>
 <translation id="7774365994322694683">Թռչուն</translation>
 <translation id="7774581652827321413">Դիտեք էջի ամփոփագիրը, որոնման առնչվող հարցումները և այս էջի մասին այլ օգտակար տեղեկություններ</translation>
 <translation id="7774792847912242537">Չափազանց շատ հարցումներ</translation>
@@ -11092,7 +11086,6 @@
 <translation id="8888253246822647887">Հավելվածը կբացվի նորացումն ավարտելուց հետո: Դա կարող է մի քանի րոպե տևել:</translation>
 <translation id="8888459276890791557">Կարող եք ամրացնել այս կողային վահանակը, որպեսզի հարկ եղած դեպքում արագ բացեք այն</translation>
 <translation id="8889294078294184559">Երբ դուք կայքեր եք դիտարկում, դրանք կարող են Chrome-ում տեղեկություններ պահել, որոնք հաստատում են, որ դուք իրական օգտատեր եք։</translation>
-<translation id="88895904696396879">Խմբի գույնը փոխվել է <ph name="MEMBER_FIRST_NAME" />-ի կողմից</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> կայքը կարող է փոփոխել հետևյալ ֆայլերն ու պանակները</translation>
 <translation id="8890170499370378450">Բջջային ինտերնետի համար կարող է վճար գանձվել</translation>
 <translation id="8890516388109605451">Աղբյուրներ</translation>
@@ -11243,7 +11236,6 @@
 <translation id="8991520179165052608">Կայքը կարող է օգտագործել ձեր խոսափողը</translation>
 <translation id="8991694323904646277">Տեսախցիկ չկա</translation>
 <translation id="8991766915726096402">Սարքի տվյալների վերականգնում</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> ր առաջ}=1{<ph name="TIME_COUNT" /> ժ առաջ}one{<ph name="TIME_COUNT" /> օր առաջ}other{<ph name="TIME_COUNT" /> օր առաջ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Հիշողության օգտագործումը – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Եթե մոռանաք <ph name="DEVICE_TYPE" /> սարքի գաղտնաբառը, կարող եք վերականգնել լոկալ տվյալները։ Դրա համար անհրաժեշտ է, որ մուտք գործեք Google հաշիվ կամ օգտվեք հաշվի վերականգնման գործառույթից։</translation>
 <translation id="8993198843374358393">Պատճենել <ph name="CERT_NAME" /> հավաստագրի հեշը</translation>
@@ -11645,7 +11637,6 @@
 <translation id="973558314812359997">Մկնիկի չափսը</translation>
 <translation id="973788791897303708">Ներդիրների այս խումբը լցված է</translation>
 <translation id="97381968209917373">Ջնջե՞լ «<ph name="CERT_NAME" />» հավաստագիրը</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> օգտատերը փոփոխել է ներդիր</translation>
 <translation id="975893173032473675">Թարգմանության լեզուն</translation>
 <translation id="976499800099896273">Ցուցադրվում է ավտոմատ շտկումը հետարկելու երկխոսության պատուհանը <ph name="TYPED_WORD" /> բառի համար, որը ուղղվել և դարձել էր <ph name="CORRECTED_WORD" />։  Բացելու համար սեղմեք վեր սլաքը, անտեսելու համար՝ Escape։</translation>
 <translation id="976572010712028687">Հաստատեք, որ դուք ծնողն եք</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index 67f08b7..606ad9c 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Masukkan nama profil</translation>
 <translation id="2765100602267695013">Hubungi penyedia layanan seluler Anda</translation>
 <translation id="2765217105034171413">Kecil</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> menghapus tab</translation>
 <translation id="2765820627968019645">Terang</translation>
 <translation id="276582196519778359">Masukkan PIN untuk mengakses kontrol orang tua</translation>
 <translation id="2766006623206032690">Tem&amp;pel lalu buka</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Kosongkan ruang disk atau perangkat akan lambat merespons.</translation>
 <translation id="3873315167136380065">Untuk mengaktifkannya, <ph name="BEGIN_LINK" />reset sinkronisasi<ph name="END_LINK" /> untuk menghapus frasa sandi sinkronisasi</translation>
 <translation id="3873423927483480833">Tampilkan PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> menambahkan tab</translation>
 <translation id="3873915545594852654">Terjadi masalah dengan ARC++.</translation>
 <translation id="3874164307099183178">Aktifkan Asisten Google</translation>
 <translation id="3875511946736639169">Aktifkan gambar</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Pemilik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Tindakan lainnya untuk <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> keluar dari grup</translation>
 <translation id="3963753386716096475">Gunakan ponsel, tablet, atau kunci keamanan lain</translation>
 <translation id="3964480518399667971">Matikan jaringan Seluler</translation>
 <translation id="3965965397408324205">Tutup <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Tidak dapat menginstal file ucapan. Perangkat perlu diupdate. Mulai ulang perangkat lalu coba lagi.</translation>
 <translation id="4789550509729954245">Tampilkan notifikasi saat perangkat sedang berbagi di sekitar</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Saran tidak tersedia. Coba ajukan permintaan seperti “ringkas halaman ini” atau pertanyaan Anda sendiri.</translation>
 <translation id="4791793693640849493">Simpan item di akun</translation>
 <translation id="4792290259143007505">Aktifkan akselerasi TrackPoint</translation>
 <translation id="4792711294155034829">Lapo&amp;rkan Masalah...</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">Keluar dari grup tab?</translation>
 <translation id="7421925624202799674">&amp;Lihat Sumber Halaman</translation>
 <translation id="7422192691352527311">Preferensi...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> mengubah nama grup</translation>
 <translation id="7423425410216218516">Visibilitas aktif selama <ph name="MINUTES" /> menit</translation>
 <translation id="7423513079490750513">Hapus <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> perlu izin untuk berjalan</translation>
@@ -9513,7 +9508,6 @@
 <translation id="7772032839648071052">Konfirmasi frasa sandi</translation>
 <translation id="7772127298218883077">Tentang <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Penyimpanan sesi</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> bergabung ke grup</translation>
 <translation id="7774365994322694683">Burung</translation>
 <translation id="7774581652827321413">Dapatkan ringkasan halaman, penelusuran terkait, dan info bermanfaat lainnya tentang halaman ini</translation>
 <translation id="7774792847912242537">Terlalu banyak permintaan.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">Aplikasi Anda akan terbuka setelah proses upgrade selesai. Proses upgrade dapat memerlukan waktu beberapa menit.</translation>
 <translation id="8888459276890791557">Anda dapat menyematkan panel samping ini agar mudah diakses</translation>
 <translation id="8889294078294184559">Saat Anda terus menjelajah, situs dapat mengonfirmasi ke Chrome dan memverifikasi dengan situs sebelumnya yang telah Anda buka bahwa Anda kemungkinan adalah orang sungguhan</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> mengubah warna grup</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> dapat mengedit file dan folder berikut ini</translation>
 <translation id="8890170499370378450">Dapat dikenai biaya data seluler</translation>
 <translation id="8890516388109605451">Sumber</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">Situs dapat menggunakan mikrofon</translation>
 <translation id="8991694323904646277">Tidak ada kamera</translation>
 <translation id="8991766915726096402">Pemulihan Data Lokal</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> menit lalu}=1{<ph name="TIME_COUNT" /> jam lalu}other{<ph name="TIME_COUNT" /> hari lalu}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Penggunaan memori - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jika lupa sandi <ph name="DEVICE_TYPE" />, Anda masih dapat memulihkan data lokal. Anda harus login ke Akun Google Anda atau menggunakan pemulihan akun.</translation>
 <translation id="8993198843374358393">Salin hash sertifikat untuk <ph name="CERT_NAME" /></translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">Ukuran mouse</translation>
 <translation id="973788791897303708">Grup tab ini penuh</translation>
 <translation id="97381968209917373">Hapus sertifikat <ph name="CERT_NAME" />?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> mengubah tab</translation>
 <translation id="975893173032473675">Bahasa Target Terjemahan</translation>
 <translation id="976499800099896273">Dialog urungkan koreksi otomatis ditampilkan untuk mengoreksi <ph name="TYPED_WORD" /> ke <ph name="CORRECTED_WORD" />.  Tekan panah atas untuk mengakses kata, escape untuk mengabaikan.</translation>
 <translation id="976572010712028687">Verifikasi bahwa Anda adalah orang tua</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb
index 656c8f0..fdcec6a 100644
--- a/chrome/app/resources/generated_resources_is.xtb
+++ b/chrome/app/resources/generated_resources_is.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Sláðu inn prófílnafn</translation>
 <translation id="2765100602267695013">Hafðu samband við farsímafyrirtækið</translation>
 <translation id="2765217105034171413">Lítið</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> fjarlægði flipa</translation>
 <translation id="2765820627968019645">Ljóst</translation>
 <translation id="276582196519778359">Sláðu inn PIN-númerið fyrir barnalæsingu</translation>
 <translation id="2766006623206032690">Líma og opna</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Losaðu um geymslupláss, annars mun tækið þitt hætta að svara.</translation>
 <translation id="3873315167136380065">Til að kveikja á þessu þarftu að fjarlægja aðgangsorð samstillingar með því að <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">Sýna PIN-númer</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> bætti flipa við</translation>
 <translation id="3873915545594852654">Vandamál með ARC++ kom upp.</translation>
 <translation id="3874164307099183178">Kveikja á Google hjálpara</translation>
 <translation id="3875511946736639169">Gera myndir virkar</translation>
@@ -4271,7 +4269,6 @@
 <translation id="3959969108528118741">Eigandi</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Fleiri aðgerðir fyrir <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> yfirgaf hópinn</translation>
 <translation id="3963753386716096475">Nota annan síma, spjaldtölvu eða öryggislykil</translation>
 <translation id="3964480518399667971">Slökkva á farsímakerfi</translation>
 <translation id="3965965397408324205">Hætta sem <ph name="PROFILE_NAME" /></translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">Ekki er hægt að setja upp raddskrár. Þú þarft að uppfæra tækið. Endurræstu tækið og reyndu aftur.</translation>
 <translation id="4789550509729954245">Birta tilkynningu þegar tæki eru að deila í næsta nágrenni</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Engar tillögur í boði. Prófaðu að spyrja að einhverju á borð við „Búðu til samantekt á þessari síðu“ eða sláðu inn þína eigin spurningu.</translation>
 <translation id="4791793693640849493">Vista atriði á reikningi</translation>
 <translation id="4792290259143007505">Kveikja á TrackPoint-hröðun</translation>
 <translation id="4792711294155034829">Tilkynna vandamál...</translation>
@@ -9025,7 +9021,6 @@
 <translation id="7421293530411019405">Yfirgefa flipahóp?</translation>
 <translation id="7421925624202799674">Skoða frumkóða síðu</translation>
 <translation id="7422192691352527311">Kjörstillingar...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> breytti heiti hópsins</translation>
 <translation id="7423425410216218516">Kveikt er á sýnileika í <ph name="MINUTES" /> mínútur</translation>
 <translation id="7423513079490750513">Fjarlægja <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> þarf heimild til að keyra</translation>
@@ -9516,7 +9511,6 @@
 <translation id="7772032839648071052">Staðfestu aðgangsorðið</translation>
 <translation id="7772127298218883077">Um <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Lotugeymsla</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> tók þátt í hópnum</translation>
 <translation id="7774365994322694683">Fugl</translation>
 <translation id="7774581652827321413">Fáðu samantekt síðu, tengdar leitir og aðrar gagnlegar upplýsingar um þessa síðu</translation>
 <translation id="7774792847912242537">Of margar beiðnir.</translation>
@@ -11113,7 +11107,6 @@
 <translation id="8888253246822647887">Forritið verður opnað að uppfærslunni lokinni. Uppfærslur geta tekið nokkrar mínútur.</translation>
 <translation id="8888459276890791557">Þú getur fest þennan hliðarglugga til að auðvelda aðgengi</translation>
 <translation id="8889294078294184559">Þegar þú heldur áfram að vafra geta vefsvæði athugað upplýsingarnar hjá Chrome og staðfest frá fyrra vefsvæði að þú sért líklega mennskur notandi</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> breytti lit hópsins</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> getur breytt eftirfarandi skrám og möppum</translation>
 <translation id="8890170499370378450">Kann að hafa í för með sér gjöld fyrir farsímagögn</translation>
 <translation id="8890516388109605451">Uppruni</translation>
@@ -11264,7 +11257,6 @@
 <translation id="8991520179165052608">Vefsvæði getur notað hljóðnemann þinn</translation>
 <translation id="8991694323904646277">Engin myndavél</translation>
 <translation id="8991766915726096402">Endurheimt staðbundinna gagna</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Fyrir <ph name="TIME_COUNT" /> mín.}=1{Fyrir <ph name="TIME_COUNT" /> klst.}one{Fyrir <ph name="TIME_COUNT" /> degi}other{Fyrir <ph name="TIME_COUNT" /> dögum}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Minnisnotkun - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ef þú gleymir aðgangsorðinu að <ph name="DEVICE_TYPE" /> geturðu samt sem áður endurheimt staðbundin gögn. Þú þarft að skrá þig inn á Google-reikninginn þinn eða nota endurheimt reiknings.</translation>
 <translation id="8993198843374358393">Afrita tætigildi vottorðs fyrir <ph name="CERT_NAME" /></translation>
@@ -11666,7 +11658,6 @@
 <translation id="973558314812359997">Stærð músar</translation>
 <translation id="973788791897303708">Þessi flipahópur er fullskipaður</translation>
 <translation id="97381968209917373">Eyða <ph name="CERT_NAME" />-vottorði?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> breytti flipa</translation>
 <translation id="975893173032473675">Tungumál sem þýða á yfir á</translation>
 <translation id="976499800099896273">Afturköllunargluggi sjálfvirkrar leiðréttingar er sýndur fyrir <ph name="TYPED_WORD" /> leiðrétt í <ph name="CORRECTED_WORD" />.  Ýttu á ör upp til að nota eða Escape til að hunsa.</translation>
 <translation id="976572010712028687">Staðfestu að þú sért foreldri</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 59d59f4..ba449a5 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Inserisci un nome per il profilo</translation>
 <translation id="2765100602267695013">Contatta il tuo operatore di telefonia mobile</translation>
 <translation id="2765217105034171413">Piccola</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ha rimosso una scheda</translation>
 <translation id="2765820627968019645">Chiaro</translation>
 <translation id="276582196519778359">Inserisci il PIN per il Controllo genitori</translation>
 <translation id="2766006623206032690">In&amp;colla e vai</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">Libera spazio sul disco, altrimenti il dispositivo non risponderà più ai comandi.</translation>
 <translation id="3873315167136380065">Per attivare questa funzione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /> per rimuovere la passphrase di sincronizzazione</translation>
 <translation id="3873423927483480833">Mostra i codici PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ha aggiunto una scheda</translation>
 <translation id="3873915545594852654">Si è verificato un problema con ARC++.</translation>
 <translation id="3874164307099183178">Attivare l'Assistente Google</translation>
 <translation id="3875511946736639169">Attiva le immagini</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">Proprietario</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Altre azioni per <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ha lasciato il gruppo</translation>
 <translation id="3963753386716096475">Usa un altro smartphone, tablet o token di sicurezza</translation>
 <translation id="3964480518399667971">Disattiva rete mobile</translation>
 <translation id="3965965397408324205">Esci da <ph name="PROFILE_NAME" /></translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">Impossibile installare file di contenuti vocali. Il dispositivo deve essere aggiornato. Riavvialo e riprova.</translation>
 <translation id="4789550509729954245">Mostra una notifica quando i dispositivi usano Condivisione nelle vicinanze</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nessun suggerimento disponibile. Prova a fare richieste come: "Riassumi questa pagina" o a porre la tua domanda.</translation>
 <translation id="4791793693640849493">Salva elementi nell'account</translation>
 <translation id="4792290259143007505">Attiva accelerazione TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Segnala un problema...</translation>
@@ -9006,7 +9002,6 @@
 <translation id="7421293530411019405">Uscire dal gruppo di schede?</translation>
 <translation id="7421925624202799674">&amp;Visualizza sorgente pagina</translation>
 <translation id="7422192691352527311">Preferenze...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ha modificato il nome del gruppo</translation>
 <translation id="7423425410216218516">Visibilità attiva per <ph name="MINUTES" /> minuti</translation>
 <translation id="7423513079490750513">Rimuovi <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">È necessaria l'autorizzazione per l'esecuzione di <ph name="APP_NAME" /></translation>
@@ -9497,7 +9492,6 @@
 <translation id="7772032839648071052">Conferma passphrase</translation>
 <translation id="7772127298218883077">Informazioni su <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Session storage</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> fa ora parte del gruppo</translation>
 <translation id="7774365994322694683">Uccellino</translation>
 <translation id="7774581652827321413">Ricevi un riepilogo della pagina, ricerche correlate e altre informazioni utili su questa pagina</translation>
 <translation id="7774792847912242537">Numero eccessivo di richieste.</translation>
@@ -11094,7 +11088,6 @@
 <translation id="8888253246822647887">L'app verrà aperta al termine dell'upgrade. Gli upgrade possono richiedere qualche minuto.</translation>
 <translation id="8888459276890791557">Puoi bloccare questo riquadro laterale per un semplice accesso</translation>
 <translation id="8889294078294184559">Mentre continui a navigare, i siti possono controllare su Chrome e verificare con un sito che hai visitato in precedenza che potresti essere una persona reale</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ha modificato il colore del gruppo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> può modificare i file e le cartelle indicati di seguito</translation>
 <translation id="8890170499370378450">Potrebbero esserti addebitati costi per l'utilizzo dei dati mobili</translation>
 <translation id="8890516388109605451">Origini</translation>
@@ -11245,7 +11238,6 @@
 <translation id="8991520179165052608">Il sito può usare il microfono</translation>
 <translation id="8991694323904646277">Nessuna fotocamera</translation>
 <translation id="8991766915726096402">Recupero dei dati locali</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min fa}=1{<ph name="TIME_COUNT" /> h fa}other{<ph name="TIME_COUNT" /> g fa}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Memoria utilizzata - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Se non ricordi la password di <ph name="DEVICE_TYPE" />, puoi comunque ripristinare i dati locali. Dovrai accedere al tuo Account Google o usare il recupero dell'account.</translation>
 <translation id="8993198843374358393">Copia l'hash del certificato per <ph name="CERT_NAME" /></translation>
@@ -11647,7 +11639,6 @@
 <translation id="973558314812359997">Dimensioni del puntatore del mouse</translation>
 <translation id="973788791897303708">Questo gruppo di schede è al completo</translation>
 <translation id="97381968209917373">Vuoi eliminare il certificato "<ph name="CERT_NAME" />"?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ha modificato una scheda</translation>
 <translation id="975893173032473675">Lingua in cui tradurre</translation>
 <translation id="976499800099896273">Finestra di dialogo visualizzata per annullamento correzione automatica di <ph name="TYPED_WORD" /> in <ph name="CORRECTED_WORD" />.  Premi la Freccia su per accedere alla parola corretta o Esc per ignorare.</translation>
 <translation id="976572010712028687">Conferma di essere un genitore</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 3b150bc..476d263 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">יש להזין שם לפרופיל</translation>
 <translation id="2765100602267695013">עליך לפנות לספק השירות הסלולרי שלך</translation>
 <translation id="2765217105034171413">קטן</translation>
-<translation id="2765349783094807040">כרטיסייה הוסרה על ידי <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="2765820627968019645">בהיר</translation>
 <translation id="276582196519778359">עליך להזין קוד אימות לאמצעי בקרת ההורים</translation>
 <translation id="2766006623206032690">הדבקה והמשך</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">אם לא מפנים שטח אחסון, המכשיר יפסיק להגיב.</translation>
 <translation id="3873315167136380065">להפעלת האפשרות הזאת, צריך <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" /> כדי להסיר את ביטוי הסיסמה של הסנכרון</translation>
 <translation id="3873423927483480833">הצגת קודי אימות</translation>
-<translation id="3873893412864594794">כרטיסייה נוספה על ידי <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="3873915545594852654">‏התרחשה בעיה הקשורה ל-ARC++‎.</translation>
 <translation id="3874164307099183178">‏הפעלת Google Assistant</translation>
 <translation id="3875511946736639169">הפעלת התמונות</translation>
@@ -4269,7 +4267,6 @@
 <translation id="3959969108528118741">בעלים</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">עוד פעולות לגבי <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">‫<ph name="MEMBER_FIRST_NAME" /> עזב/ה את הקבוצה</translation>
 <translation id="3963753386716096475">שימוש בטלפון, בטאבלט או במפתח אבטחה אחר</translation>
 <translation id="3964480518399667971">כיבוי הרשת הסלולרית</translation>
 <translation id="3965965397408324205">יציאה מ-<ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">לא ניתן להתקין את קובצי זיהוי הדיבור. צריך לעדכן את המכשיר. כדאי להפעיל מחדש את המכשיר ולנסות שוב.</translation>
 <translation id="4789550509729954245">הצגת התראות כשמתבצע שיתוף על ידי מכשירים בקרבת מקום</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">אין הצעות זמינות. אפשר לנסות לבקש דברים כמו "אני רוצה סיכום של הדף הזה" או לשאול שאלה משלך.</translation>
 <translation id="4791793693640849493">שמירת הפריטים בחשבון</translation>
 <translation id="4792290259143007505">‏הפעלת האצה של TrackPoint</translation>
 <translation id="4792711294155034829">&amp;דיווח על בעיה...</translation>
@@ -9027,7 +9023,6 @@
 <translation id="7421293530411019405">לצאת מקבוצת הכרטיסיות?</translation>
 <translation id="7421925624202799674">&amp;הצגת מקור הדף</translation>
 <translation id="7422192691352527311">העדפות...</translation>
-<translation id="7422516375032300779">שם הקבוצה שונה על ידי <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="7423425410216218516">הרשאות הגישה פועלות למשך <ph name="MINUTES" /> דקות</translation>
 <translation id="7423513079490750513">הסרת <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">האפליקציה <ph name="APP_NAME" /> זקוקה להרשאה כדי לפעול</translation>
@@ -9518,7 +9513,6 @@
 <translation id="7772032839648071052">אישור משפט-סיסמה</translation>
 <translation id="7772127298218883077">מידע על <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">אחסון הפעלה</translation>
-<translation id="7773887159761725143">‫<ph name="MEMBER_FIRST_NAME" /> הצטרפ/ה לקבוצה</translation>
 <translation id="7774365994322694683">ציפור</translation>
 <translation id="7774581652827321413">ניתן לקבל סיכום של הדף, חיפושים קשורים ומידע שימושי נוסף על הדף הזה</translation>
 <translation id="7774792847912242537">יותר מדי בקשות.</translation>
@@ -11118,7 +11112,6 @@
 <translation id="8888253246822647887">האפליקציה תיפתח בסיום השדרוג. פעולת השדרוג יכולה להימשך כמה דקות.</translation>
 <translation id="8888459276890791557">אפשר להצמיד את החלונית הצדדית הזאת כדי לגשת אליה בקלות</translation>
 <translation id="8889294078294184559">‏במהלך הגלישה, אתרים אחרים יכולים לבדוק ב-Chrome ולאמת שסביר להניח שמדובר באדם אמיתי, לפי פרטים שנשמרו בביקור באתר קודם.</translation>
-<translation id="88895904696396879">הצבע של הקבוצה השתנה על ידי <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="8889651696183044030">ל-<ph name="ORIGIN" /> יש הרשאה לערוך את הקבצים והתיקיות הבאים</translation>
 <translation id="8890170499370378450">ייתכנו חיובים בגין שימוש בנתונים סלולריים</translation>
 <translation id="8890516388109605451">מקורות</translation>
@@ -11269,7 +11262,6 @@
 <translation id="8991520179165052608">האתר רשאי להשתמש במיקרופון</translation>
 <translation id="8991694323904646277">אין מצלמה</translation>
 <translation id="8991766915726096402">שחזור הנתונים המקומיים</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{לפני <ph name="TIME_COUNT" /> דק‘}=1{לפני שעה (<ph name="TIME_COUNT" />)}one{לפני יום אחד (<ph name="TIME_COUNT" />)}two{לפני יומיים (<ph name="TIME_COUNT" />)}other{לפני <ph name="TIME_COUNT" /> ימים}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – השימוש בזיכרון – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">‏אם שכחת את הסיסמה של <ph name="DEVICE_TYPE" />, עדיין אפשר לשחזר את הנתונים המקומיים. עליך להיכנס לחשבון Google או להשתמש בתכונת שחזור החשבון.</translation>
 <translation id="8993198843374358393">העתקת הגיבוב של האישור '<ph name="CERT_NAME" />'</translation>
@@ -11671,7 +11663,6 @@
 <translation id="973558314812359997">גודל סמן העכבר</translation>
 <translation id="973788791897303708">קבוצת הכרטיסיות הזו מלאה</translation>
 <translation id="97381968209917373">מחיקת האישור '<ph name="CERT_NAME" />'</translation>
-<translation id="973825986436797073">כרטיסייה שונתה על ידי <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="975893173032473675">שפת היעד של התרגום</translation>
 <translation id="976499800099896273">תיבת הדו-שיח של התיקון האוטומטי עם הפעולה 'ביטול' מוצגת עבור המילה <ph name="TYPED_WORD" /> שתוקנה למילה <ph name="CORRECTED_WORD" />.  יש ללחוץ על החצים למעלה כדי לגשת, לצאת או להתעלם.</translation>
 <translation id="976572010712028687">אימות היותך הורה</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 229ff34..0fb2737 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -2557,7 +2557,6 @@
 <translation id="2764920001292228569">プロファイルに名前を付けてください</translation>
 <translation id="2765100602267695013">ご利用の携帯通信会社にお問い合わせください。</translation>
 <translation id="2765217105034171413">小</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> さんがタブを削除しました</translation>
 <translation id="2765820627968019645">ライト</translation>
 <translation id="276582196519778359">保護者による使用制限を利用するには PIN を入力してください</translation>
 <translation id="2766006623206032690">貼り付けて移動(&amp;S)</translation>
@@ -4118,7 +4117,6 @@
 <translation id="3872991219937722530">ディスクの空き領域を確保してください。十分な空き領域がない場合、デバイスは応答しなくなります。</translation>
 <translation id="3873315167136380065">この設定をオンにするには、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />して同期パスフレーズを削除します</translation>
 <translation id="3873423927483480833">PIN を表示</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> さんがタブを追加しました</translation>
 <translation id="3873915545594852654">ARC++ で問題が発生しました。</translation>
 <translation id="3874164307099183178">Google アシスタントをオンにする</translation>
 <translation id="3875511946736639169">画像を有効にする</translation>
@@ -4248,7 +4246,6 @@
 <translation id="3959969108528118741">オーナー</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> に対するその他の操作</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> さんがグループから退出しました</translation>
 <translation id="3963753386716096475">別のスマートフォン、タブレット、またはセキュリティ キーを使用する</translation>
 <translation id="3964480518399667971">モバイル ネットワークをオフにする</translation>
 <translation id="3965965397408324205">「<ph name="PROFILE_NAME" />」を終了</translation>
@@ -5369,7 +5366,6 @@
 <translation id="4789348252524569426">音声ファイルをインストールできません。デバイスを更新する必要があります。デバイスを再起動してもう一度お試しください。</translation>
 <translation id="4789550509729954245">付近に共有を行っているデバイスがある場合に通知を表示します</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">候補はありません。「このページを要約」など好きな表現で質問してみてください。</translation>
 <translation id="4791793693640849493">アカウントに項目を保存</translation>
 <translation id="4792290259143007505">TrackPoint アクセラレーションを有効にする</translation>
 <translation id="4792711294155034829">問題の報告(&amp;R)...</translation>
@@ -8992,7 +8988,6 @@
 <translation id="7421293530411019405">タブグループから退出しますか?</translation>
 <translation id="7421925624202799674">ページのソースを表示(&amp;V)</translation>
 <translation id="7422192691352527311">環境設定...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> さんがグループ名を変更しました</translation>
 <translation id="7423425410216218516">公開設定は <ph name="MINUTES" /> 分間有効です</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> を削除</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> を実行する権限が必要です</translation>
@@ -9482,7 +9477,6 @@
 <translation id="7772032839648071052">パスフレーズの確認</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> について</translation>
 <translation id="7773726648746946405">セッション ストレージ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> さんがグループに参加しました</translation>
 <translation id="7774365994322694683">鳥</translation>
 <translation id="7774581652827321413">このページに関して、概要、関連する検索、その他の有益な情報を確認できます</translation>
 <translation id="7774792847912242537">リクエストが多すぎます。</translation>
@@ -11079,7 +11073,6 @@
 <translation id="8888253246822647887">アップグレードが完了するとアプリが起動します。アップグレードには数分かかることがあります。</translation>
 <translation id="8888459276890791557">このサイドパネルを固定すると簡単にアクセスできます</translation>
 <translation id="8889294078294184559">それ以降にアクセスしたサイトは、あなたが実在のユーザーであることを、前にアクセスしたサイトから Chrome を介して確認できます。</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> さんがグループの色を変更しました</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> は次のファイルとフォルダを編集できます</translation>
 <translation id="8890170499370378450">モバイルデータ通信料が発生することがあります</translation>
 <translation id="8890516388109605451">ソース</translation>
@@ -11230,7 +11223,6 @@
 <translation id="8991520179165052608">サイトにマイクの使用が許可されています</translation>
 <translation id="8991694323904646277">カメラがありません</translation>
 <translation id="8991766915726096402">ローカルデータの復元</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> 分前}=1{<ph name="TIME_COUNT" /> 時間前}other{<ph name="TIME_COUNT" /> 日前}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - メモリ使用量 - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> のパスワードを忘れた場合でも、ローカルデータを復元できます。Google アカウントにログインするか、アカウント復元を使用する必要があります。</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> の証明書ハッシュをコピー</translation>
@@ -11632,7 +11624,6 @@
 <translation id="973558314812359997">マウスのサイズ</translation>
 <translation id="973788791897303708">このタブグループのユーザーは上限に達しました</translation>
 <translation id="97381968209917373">証明書 <ph name="CERT_NAME" /> を削除</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> さんがタブを変更しました</translation>
 <translation id="975893173032473675">翻訳先の言語</translation>
 <translation id="976499800099896273">「<ph name="TYPED_WORD" />」から「<ph name="CORRECTED_WORD" />」への自動修正について、元に戻すかどうかを確認するダイアログが表示されました。ダイアログに移動する場合は上矢印キー、無視する場合は Esc キーを押してください。</translation>
 <translation id="976572010712028687">保護者であることをご確認ください</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb
index dabed98..8353b0ee 100644
--- a/chrome/app/resources/generated_resources_ka.xtb
+++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -461,6 +461,7 @@
 <translation id="1306606229401759371">პარამეტრების შეცვლა</translation>
 <translation id="1307165550267142340">PIN-კოდი შექმნილია</translation>
 <translation id="1307431692088049276">აღარ მკითხო</translation>
+<translation id="130744661532298792">თქვენს Google ანგარიშში არსებული პაროლები დაუბრკოლებლად რომ გამოიყენოთ, დაადასტურეთ ვინაობა</translation>
 <translation id="1307559529304613120">სისტემამ ვერ შეინახა გრძელვადიანი API წვდომის ჟეტონი ამ მოწყობილობისთვის.</translation>
 <translation id="1308548450293664112">მე შევქმენი ეს ფაილი, არჩევანის ღილაკის ჯგუფი, 3-დან 1</translation>
 <translation id="131112695174432497">მონაცემები, რომლებიც აისახება რეკლამის პერსონალიზებაზე, წაიშლება</translation>
@@ -2563,7 +2564,6 @@
 <translation id="2764920001292228569">შეიყვანეთ პროფილის სახელი</translation>
 <translation id="2765100602267695013">დაუკავშირდით თქვენს მობილურ ოპერატორს</translation>
 <translation id="2765217105034171413">პატარა</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />-მა ამოშალა ეს ჩანართი</translation>
 <translation id="2765820627968019645">ღია</translation>
 <translation id="276582196519778359">შეიყვანეთ თქვენი PIN-კოდი მშობელთა კონტროლისთვის</translation>
 <translation id="2766006623206032690">&amp;ჩასმა და გაგრძელება</translation>
@@ -2826,6 +2826,7 @@
 <translation id="2953210795988451570">უსაფრთხოების განახლებებს აღარ მიიღებთ. გამოცვალეთ თქვენი Chromebook.</translation>
 <translation id="2953218713108551165">შეტყობინებები არ არის დაშვებული <ph name="SITE" />-ისთვის. მომდევნო ვიზიტისას ხელახლა გაკითხავთ.</translation>
 <translation id="2956070239128776395">სექცია ჩადგმულია ჯგუფში: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">ჩართეთ შემმუშავებლის რეჟიმი, რომ გამოიყენოთ ეს გაფართოება, რომელიც ვერ მიმოიხილა Chrome Web Store-მა.</translation>
 <translation id="2958721676848865875">პაკეტის გაფართოების გაფრთხილება</translation>
 <translation id="2959127025785722291">წარმოიქმნა შეფერხება. სკანირების დასრულება ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
 <translation id="2959474507964749987">ეს დაშიფრული ფაილი, შესაძლოა, იყოს ვირუსი ან მავნე პროგრამა.<ph name="LINE_BREAK" />მისი უსაფრთხოების შემოწმების მიზნით, შეგიძლიათ ფაილი და პაროლი Google Safe Browsing-ს გაუგზავნოთ. სკანირებას, როგორც წესი, რამდენიმე წამი სჭირდება.<ph name="LINE_BREAK" />სკანირების დასაწყებად დაამატეთ ფაილის პაროლი.</translation>
@@ -4127,7 +4128,6 @@
 <translation id="3872991219937722530">გამოათავისუფლეთ მეხსიერება დისკზე. წინააღმდეგ შემთხვევაში, თქვენი მოწყობილობა რეაგირებას ვეღარ მოახდენს.</translation>
 <translation id="3873315167136380065">ამის ჩასართავად საჭიროა <ph name="BEGIN_LINK" />სინქრონიზაციის გადაყენება<ph name="END_LINK" /> სინქრონიზაციის საიდუმლო ფრაზის ამოსაშლელად</translation>
 <translation id="3873423927483480833">PIN-კოდების ჩვენება</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />-მა დაამატა ჩანართი</translation>
 <translation id="3873915545594852654">წარმოიქმნა ARC++-თან დაკავშირებული პრობლემა.</translation>
 <translation id="3874164307099183178">Google ასისტენტის ჩართვა</translation>
 <translation id="3875511946736639169">სურათების ჩართვა</translation>
@@ -4257,7 +4257,6 @@
 <translation id="3959969108528118741">მფლობელი</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">სხვა ქმედებები <ph name="IBAN_DESCRIPTION" />-ისთვის</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> გავიდა ჯგუფიდან</translation>
 <translation id="3963753386716096475">სხვა ტელეფონის, ტაბლეტის ან უსაფრთხოების გასაღების გამოყენება</translation>
 <translation id="3964480518399667971">ფიჭური ქსელის გამორთვა</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />-იდან გასვლა</translation>
@@ -4326,6 +4325,7 @@
 <translation id="4001540981461989979">მაუსის კურსორის გამოყოფა გადაადგილებისას</translation>
 <translation id="4002347779798688515">ჩამოტვირთული პროფილი, შესაძლოა, გამოუსადეგარი იყოს, თუ მობილური ქსელის პროვაიდერი ჩაკეტილია. მხარდაჭერისთვის მიმართეთ თქვენს პროვაიდერს.</translation>
 <translation id="4002440992267487163">PIN-კოდის დაყენება</translation>
+<translation id="4003617970184602156">თქვენს Google ანგარიშში პაროლები რომ გამოიყენოთ და შეინახოთ, დაადასტურეთ ვინაობა</translation>
 <translation id="4005817994523282006">სასაათო სარტყლის ამოცნობის მეთოდი</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{ამ მოქმედებით ჯგუფი სამუდამოდ წაიშლება თქვენი მოწყობილობიდან.}other{ამ მოქმედებით ჯგუფები სამუდამოდ წაიშლება თქვენი მოწყობილობიდან.}}</translation>
 <translation id="4010036441048359843">გამოყოფის ჩართვა</translation>
@@ -5380,7 +5380,6 @@
 <translation id="4789348252524569426">მეტყველების ფაილების ინსტალაცია ვერ მოხერხდა. საჭიროა თქვენი მოწყობილობის განახლება. გადატვირთეთ მოწყობილობა და ცადეთ ხელახლა.</translation>
 <translation id="4789550509729954245">შეტყობინების ჩვენება, როცა მოწყობილობები ახლომახლოა</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">შეთავაზებები ხელმისაწვდომია. ცადეთ ისეთი რამის კითხვა, როგორიცაა „შეაჯამე ეს გვერდი“, ან დასვით შეკითხვა.</translation>
 <translation id="4791793693640849493">ერთეულების ანგარიშში შენახვა</translation>
 <translation id="4792290259143007505">TrackPoint-ის აჩქარების ჩართვა</translation>
 <translation id="4792711294155034829">&amp;მოხსენება პრობლემის შესახებ…</translation>
@@ -6959,6 +6958,7 @@
 <translation id="5932224571077948991">საიტზე ნაჩვენებია მომაბეზრებელი ან შეცდომაში შემყვანი რეკლამა</translation>
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" />-ის USB მოწყობილობა</translation>
 <translation id="5932441198730183141">ამ Google Meet აპარატურული მოწყობილობის რეგისტრაციისთვის არასაკმარისი ლიცენზიები გაქვთ. მათ შესაძენად დაუკავშირდით გაყიდვების სამსახურს. თუ ფიქრობთ, რომ ეს შეცდომაა, მიმართეთ მხარდაჭერის გუნდს.</translation>
+<translation id="593271375210025655">ამ გაფართოების გამოსაყენებლად ჩართეთ შემმუშავებლის რეჟიმი, მაგრამ დარწმუნდით, რომ ის სანდოა ის შეიძლება შეიცავდეს საცდელ ფუნქციებს და არ იყოს მიმოხილული Chrome Web Store-ის მიერ.</translation>
 <translation id="5932881020239635062">სერიული ნომერი</translation>
 <translation id="5933376509899483611">დროის სარტყელი</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> იყენებს თქვენს კამერას და მიკროფონს</translation>
@@ -6986,6 +6986,7 @@
 <translation id="5948476936444935795">იმპორტირების გაუქმება</translation>
 <translation id="5948536763493709626">დააკავშირეთ კლავიატურა ან მაუსი, ან გააგრძელეთ დაყენება თქვენი სენსორული ეკრანის მეშვეობით. თუ Bluetooth მოწყობილობებს იყენებთ, დარწმუნდით, რომ ისინი დასაწყვილებლად მზადაა.</translation>
 <translation id="5949544233750246342">ფაილის გაანალიზება ვერ ხერხდება</translation>
+<translation id="5949795028157144515">შემმუშავებლის რეჟიმი გამორთულია. ზოგიერთი გაფართოება გაითიშა.</translation>
 <translation id="594993197557058302">დააჭირეთ 1-დან 4-მდე მოდიფიკატორ კლავიშს (ctrl, alt, shift, ძიება ან გამშვები) და კიდევ 1 კლავიშს. ერთი კლავიშის არჩევაც შეგიძლიათ.</translation>
 <translation id="5950762317146173294">ეს ფაილი, შესაძლოა, ვირუსი ან მავნე პროგრამა იყოს</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> ადგილობრივი შრიფტების გამოყენებას ითხოვს</translation>
@@ -9009,7 +9010,6 @@
 <translation id="7421293530411019405">დატოვებთ ჩანართების ჯგუფს?</translation>
 <translation id="7421925624202799674">გვერდის წყაროს &amp;ნახვა</translation>
 <translation id="7422192691352527311">პარამეტრები…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />-მა შეცვალა ჯგუფის სახელი</translation>
 <translation id="7423425410216218516">ხილვადობა ჩართულია <ph name="MINUTES" /> წუთით</translation>
 <translation id="7423513079490750513">წაიშალოს <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" />-ის გასაშვებად საჭიროა ნებართვა</translation>
@@ -9499,7 +9499,6 @@
 <translation id="7772032839648071052">დაადასტურეთ პაროლი</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" />-ის შესახებ</translation>
 <translation id="7773726648746946405">სესიის მეხსიერება</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> გაწევრიანდა ჯგუფში</translation>
 <translation id="7774365994322694683">ჩიტი</translation>
 <translation id="7774581652827321413">მიიღეთ გვერდის შეჯამება, დაკავშირებული ძიებები და სხვა სასარგებლო ინფორმაცია ამ გვერდის შესახებ</translation>
 <translation id="7774792847912242537">ზედმეტად ბევრი მოთხოვნაა.</translation>
@@ -11095,7 +11094,6 @@
 <translation id="8888253246822647887">თქვენი აპი გაიხსნება განახლების დასრულების შემდეგ. განახლებას შეიძლება დასჭირდეს რამდენიმე წუთი.</translation>
 <translation id="8888459276890791557">მარტივი წვდომისთვის შეგიძლიათ ამ გვერდითი პანელის ჩამაგრება</translation>
 <translation id="8889294078294184559">როცა ვების დათვალიერებას გააგრძელებთ, საიტებს შეეძლება Chrome-ში წინა საიტის მიერ შენახული ინფორმაციის გადამოწმება და იმის დადასტურება, რომ ნამდვილად ადამიანი ხართ.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />-მა შეცვალა ჯგუფის ფერი</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" />-ს შეუძლია მითითებული ფაილებისა და საქაღალდეების რედაქტირება</translation>
 <translation id="8890170499370378450">შესაძლოა, დაგეკისროთ მობილური ინტერნეტის საფასურის გადახდა</translation>
 <translation id="8890516388109605451">წყაროები</translation>
@@ -11246,7 +11244,6 @@
 <translation id="8991520179165052608">საიტს შეუძლია თქვენი მიკროფონის გამოყენება</translation>
 <translation id="8991694323904646277">კამერა არ არის</translation>
 <translation id="8991766915726096402">ადგილობრივ მონაცემთა აღდგენა</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> წთ-ის წინ}=1{<ph name="TIME_COUNT" /> სთ-ის წინ}other{<ph name="TIME_COUNT" /> დღის წინ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> — მეხსიერების მოხმარება — <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">თუ თქვენი <ph name="DEVICE_TYPE" />-ის პაროლი დაგავიწყდებათ, ადგილობრივი მონაცემების აღდგენის საშუალება მაინც გექნებათ. დაგჭირდებათ თქვენს Google ანგარიშში შესვლა ან ანგარიშის აღდგენის პროცედურის გავლა.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />-ის სერტიფიკატის ჰეშის კოპირება</translation>
@@ -11648,7 +11645,6 @@
 <translation id="973558314812359997">მაუსის ზომა</translation>
 <translation id="973788791897303708">ჩანართების ეს ჯგუფი შევსებულია</translation>
 <translation id="97381968209917373">„<ph name="CERT_NAME" />“ სერტიფიკატის წაშლა</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />-მა შეცვალა ჩანართი</translation>
 <translation id="975893173032473675">ენა, რომელზეც უნდა ითარგმნოს</translation>
 <translation id="976499800099896273">ნაჩვენებია ავტოკორექციის გაუქმების დიალოგი. <ph name="TYPED_WORD" /> შესწორდა და გახდა <ph name="CORRECTED_WORD" />.  წვდომისთვის დააჭირეთ ზემოთ მიმართულ ისარზე, იგნორირებისთვის კი escape კლავიშს.</translation>
 <translation id="976572010712028687">დაადასტურეთ, რომ მშობელი ხართ</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
index 0204de6..a2b2bdd 100644
--- a/chrome/app/resources/generated_resources_kk.xtb
+++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2560,7 +2560,6 @@
 <translation id="2764920001292228569">Профиль атауын енгізіңіз.</translation>
 <translation id="2765100602267695013">Мобильдік операторға хабарласыңыз.</translation>
 <translation id="2765217105034171413">Кіші</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> қойындыны өшірді.</translation>
 <translation id="2765820627968019645">Жарық</translation>
 <translation id="276582196519778359">Ата-ана бақылауына арналған PIN кодыңызды енгізіңіз</translation>
 <translation id="2766006623206032690">Қ&amp;ою және өту</translation>
@@ -4122,7 +4121,6 @@
 <translation id="3872991219937722530">Дискіде орын босатпасаңыз, құрылғы жауап бермейді.</translation>
 <translation id="3873315167136380065">Мұны қосу үшін <ph name="BEGIN_LINK" />синхрондауды бастапқы күйге қайтарып<ph name="END_LINK" />, синхрондау құпия фразасын өшіріңіз</translation>
 <translation id="3873423927483480833">PIN кодтарын көрсету</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> қойынды қосты.</translation>
 <translation id="3873915545594852654">ARC++ ақауы орын алды.</translation>
 <translation id="3874164307099183178">Google Assistant қолданбасын қосу</translation>
 <translation id="3875511946736639169">Кескіндерді қосу</translation>
@@ -4252,7 +4250,6 @@
 <translation id="3959969108528118741">Иесі</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> арналған қосымша әрекеттер</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> топтан шықты.</translation>
 <translation id="3963753386716096475">Басқа телефонды, планшетті немесе қауіпсіздік кілтін пайдалану</translation>
 <translation id="3964480518399667971">Ұялы байланыс желісін өшіру</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> профилінен шығу</translation>
@@ -5375,7 +5372,6 @@
 <translation id="4789348252524569426">Дыбыс тану файлдарын орнату мүмкін емес. Құрылғыны жаңарту қажет. Құрылғыны өшіріп қосып, әрекетті қайталаңыз.</translation>
 <translation id="4789550509729954245">Маңайдағы құрылғылар деректерді бөлісіп жатқан кезде, хабарландыруларды көрсету</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ұсыныстар жоқ. "Осы бетті қорытындыла" деген сияқты нұсқау беріңіз немесе сұрақ қойыңыз.</translation>
 <translation id="4791793693640849493">Элементтерді аккаунтқа сақтаңыз</translation>
 <translation id="4792290259143007505">TrackPoint жылдамдатуын қосу</translation>
 <translation id="4792711294155034829">&amp;Мәселе туралы хабарлау…</translation>
@@ -8999,7 +8995,6 @@
 <translation id="7421293530411019405">Қойындылар тобынан шығу қажет пе?</translation>
 <translation id="7421925624202799674">&amp;Бет дереккөзін көру</translation>
 <translation id="7422192691352527311">Реттеулер…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> топ атауын өзгертті.</translation>
 <translation id="7423425410216218516">Көріну мүмкіндігі <ph name="MINUTES" /> минутқа қосулы.</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> контентін өшіру</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> іске қосылуы үшін рұқсат қажет</translation>
@@ -9489,7 +9484,6 @@
 <translation id="7772032839648071052">Құпия фразаны растау</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> туралы</translation>
 <translation id="7773726648746946405">Сеанс жады</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> топқа қосылды.</translation>
 <translation id="7774365994322694683">Құс</translation>
 <translation id="7774581652827321413">Беттің қысқартылған нұсқасын, ұқсас сұрауларды және осы бет жайында басқа пайдалы ақпаратты алыңыз</translation>
 <translation id="7774792847912242537">Сұраулар тым көп.</translation>
@@ -11085,7 +11079,6 @@
 <translation id="8888253246822647887">Қолданба, жаңа нұсқа орнатылғаннан кейін, ашылады. Бұл бірнеше минутқа созылуы мүмкін.</translation>
 <translation id="8888459276890791557">Бұл бүйірлік панельді жылдам ашу үшін бекітіп қойсаңыз болады.</translation>
 <translation id="8889294078294184559">Шолуды жалғастыра отырып, сайттар Chrome-мен тексеріп, шынайы адам екеніңізді алдыңғы кірген сайтпен растай алады</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> топ түсін өзгертті.</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> мына файлдар мен қалталарды өңдей алады.</translation>
 <translation id="8890170499370378450">Мобильдік интернет ақысы алынуы мүмкін.</translation>
 <translation id="8890516388109605451">Дереккөздер</translation>
@@ -11236,7 +11229,6 @@
 <translation id="8991520179165052608">Сайт микрофонды пайдалана алады</translation>
 <translation id="8991694323904646277">Камера жоқ</translation>
 <translation id="8991766915726096402">Жергілікті деректерді қалпына келтіру</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> мин бұрын}=1{<ph name="TIME_COUNT" /> сағ бұрын}other{<ph name="TIME_COUNT" /> күн бұрын}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Жадтың пайдаланылуы – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> құпия сөзін ұмытып қалсаңыз, жергілікті деректерді қалпына келтіре бересіз. Google аккаунтына кіруіңіз немесе аккаунтты қалпына келтіру функциясын пайдалануыңыз керек.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> сертификатының хешін көшіру</translation>
@@ -11638,7 +11630,6 @@
 <translation id="973558314812359997">Курсор көлемі</translation>
 <translation id="973788791897303708">Бұл қойындылар тобында орын жоқ</translation>
 <translation id="97381968209917373">"<ph name="CERT_NAME" />" сертификатын жою</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> қойындыны өзгертті.</translation>
 <translation id="975893173032473675">Аударма тілі</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> деп теріліп, <ph name="CORRECTED_WORD" /> деп түзетілген сөз үшін автоматты түзетуден бас тарту диалогтік терезесі көрсетілді.  Оны қолдану үшін жоғары бағыттауыш пернені, ал елемеу үшін Escape пернесін басыңыз.</translation>
 <translation id="976572010712028687">Ата-ана екеніңізді растаңыз</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
index 91ead19..65106981 100644
--- a/chrome/app/resources/generated_resources_km.xtb
+++ b/chrome/app/resources/generated_resources_km.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">បញ្ចូល​ឈ្មោះ​កម្រងព័ត៌មាន</translation>
 <translation id="2765100602267695013">សូមទាក់ទងទៅក្រុមហ៊ុនផ្ដល់សេវាទូរសព្ទចល័តរបស់អ្នក</translation>
 <translation id="2765217105034171413">តូច</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> បានដក​ផ្ទាំងចេញ</translation>
 <translation id="2765820627968019645">ភ្លឺ</translation>
 <translation id="276582196519778359">បញ្ចូលកូដ PIN របស់អ្នកសម្រាប់ការគ្រប់គ្រងដោយមាតាបិតា</translation>
 <translation id="2766006623206032690">បិទភ្ជាប់ និងទៅ</translation>
@@ -4138,7 +4137,6 @@
 <translation id="3872991219937722530">បង្កើនទំហំផ្ទុកថាស បើមិនដូច្នោះទេ ឧបករណ៍នឹងមិនមានការឆ្លើយតបទេ។</translation>
 <translation id="3873315167136380065">ដើម្បីបើក​ការកំណត់​នេះ <ph name="BEGIN_LINK" />សូមកំណត់​សមកាលកម្ម​ឡើងវិញ<ph name="END_LINK" /> ដើម្បីលុប​ឃ្លាសម្ងាត់​សមកាលកម្ម​របស់អ្នក</translation>
 <translation id="3873423927483480833">បង្ហាញកូដ PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> បានបញ្ចូល​ផ្ទាំង</translation>
 <translation id="3873915545594852654">ARC++ មាន​បញ្ហា។</translation>
 <translation id="3874164307099183178">បើក Google ជំនួយការ</translation>
 <translation id="3875511946736639169">បើក​រូបភាព</translation>
@@ -4268,7 +4266,6 @@
 <translation id="3959969108528118741">ម្ចាស់</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">សកម្មភាព​ច្រើន​ទៀត​សម្រាប់ <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> បាន​ចាកចេញ​ពី​ក្រុម</translation>
 <translation id="3963753386716096475">ប្រើ​ទូរសព្ទ ថេប្លេត ឬ​សោសុវត្ថិភាព​ផ្សេង</translation>
 <translation id="3964480518399667971">បិទ​បណ្ដាញ​ចល័ត</translation>
 <translation id="3965965397408324205">ចាក​ចេញពី <ph name="PROFILE_NAME" /></translation>
@@ -5391,7 +5388,6 @@
 <translation id="4789348252524569426">មិនអាចដំឡើងឯកសារនៃការនិយាយបានទេ។ ឧបករណ៍​របស់អ្នក​ត្រូវការធ្វើបច្ចុប្បន្នភាព។ សូម​ចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នក​ឡើងវិញ រួច​ព្យាយាម​ម្ដងទៀត។</translation>
 <translation id="4789550509729954245">បង្ហាញការជូនដំណឹង នៅពេលឧបករណ៍កំពុងចែករំលែកនៅជិត</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">មិនមានការណែនាំទេ។ សូម​សាកល្បង​សួរសំណួរ​របស់អ្នក​ផ្ទាល់ ឬក៏ប្រាប់ឱ្យធ្វើអ្វីៗ ដូចជា “សង្ខេប​ទំព័រនេះ”។</translation>
 <translation id="4791793693640849493">រក្សាទុកធាតុនៅក្នុងគណនី</translation>
 <translation id="4792290259143007505">បើក​ការបង្កើនល្បឿន TrackPoint</translation>
 <translation id="4792711294155034829">រាយការណ៍បញ្ហា...</translation>
@@ -9019,7 +9015,6 @@
 <translation id="7421293530411019405">ចាកចេញពីក្រុមផ្ទាំងឬ?</translation>
 <translation id="7421925624202799674">មើលប្រភពទំព័រ</translation>
 <translation id="7422192691352527311">ចំណូលចិត្ត......</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> បានប្ដូរ​ឈ្មោះក្រុម</translation>
 <translation id="7423425410216218516">លទ្ធភាពមើលឃើញ​ត្រូវបានបើក​រយៈពេល <ph name="MINUTES" /> នាទី</translation>
 <translation id="7423513079490750513">លុប <ph name="INPUT_METHOD_NAME" /> ចេញ</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ត្រូវការ​ការអនុញ្ញាត ដើម្បី​ដំណើរការ</translation>
@@ -9510,7 +9505,6 @@
 <translation id="7772032839648071052">អះអាងឃ្លាសម្ងាត់</translation>
 <translation id="7772127298218883077">អំពី <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">ចន្លោះផ្ទុកវេន</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> បានចូលរួម​ក្រុម</translation>
 <translation id="7774365994322694683">បក្សី</translation>
 <translation id="7774581652827321413">ទទួលបាន​ការសង្ខេបទំព័រ ការស្វែងរក​ដែលពាក់ព័ន្ធ និង​ព័ត៌មាន​ដែលមាន​ប្រយោជន៍​ផ្សេងទៀត​អំពីទំព័រនេះ</translation>
 <translation id="7774792847912242537">សំណើច្រើនពេក។</translation>
@@ -11107,7 +11101,6 @@
 <translation id="8888253246822647887">កម្មវិធី​របស់អ្នក​នឹងបើក នៅពេល​ការដំឡើងកំណែ​បញ្ចប់។ ការដំឡើងកំណែ​អាចចំណាយពេល​ពីរ ឬបីនាទី។</translation>
 <translation id="8888459276890791557">អ្នក​អាចខ្ទាស់​ផ្ទាំង​ចំហៀងនេះ ដើម្បី​ងាយស្រួល​ចូលប្រើ</translation>
 <translation id="8889294078294184559">នៅ​ពេល​អ្នក​បន្តរុករក គេហទំព័រ​អាច​ពិនិត្យបញ្ជាក់ជាមួយ Chrome និង​ផ្ទៀងផ្ទាត់​ជាមួយគេហទំព័រ​​មុន​​ដែល​អ្នក​បាន​ចូលមើល​ថា អ្នក​ទំនង​ជា​មនុស្ស​ពិតប្រាកដ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> បានប្ដូរ​ពណ៌ក្រុម</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> អាចកែថត និងឯកសារ​ខាងក្រោម</translation>
 <translation id="8890170499370378450">អាចមានការ​គិតថ្លៃ​លើ​ទិន្នន័យទូរសព្ទចល័ត</translation>
 <translation id="8890516388109605451">ប្រភព</translation>
@@ -11258,7 +11251,6 @@
 <translation id="8991520179165052608">ទំព័រ​អាចប្រើ​មីក្រូហ្វូន​របស់អ្នកបាន</translation>
 <translation id="8991694323904646277">មិនមាន​កាមេរ៉ា</translation>
 <translation id="8991766915726096402">ការស្ដារ​ទិន្នន័យ​មូលដ្ឋាន​ឡើងវិញ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> នាទីមុន}=1{<ph name="TIME_COUNT" /> ម៉ោងមុន}other{<ph name="TIME_COUNT" /> ថ្ងៃមុន}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - ការប្រើប្រាស់​អង្គចងចាំ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ប្រសិនបើ​អ្នក​ភ្លេច​ពាក្យសម្ងាត់ <ph name="DEVICE_TYPE" /> របស់អ្នក អ្នកនៅតែអាច​ស្ដារ​ទិន្នន័យ​មូលដ្ឋាន​របស់អ្នក​បានដដែល។ អ្នកនឹងត្រូវ​ចូលគណនី Google របស់អ្នក ឬ​ប្រើប្រាស់​ការស្ដារគណនី។</translation>
 <translation id="8993198843374358393">ចម្លងកូដតំណាងវិញ្ញាបនបត្រសម្រាប់ <ph name="CERT_NAME" /></translation>
@@ -11660,7 +11652,6 @@
 <translation id="973558314812359997">ទំហំ​កណ្ដុរ</translation>
 <translation id="973788791897303708">ក្រុមផ្ទាំងនេះ​ពេញហើយ</translation>
 <translation id="97381968209917373">លុប​វិញ្ញាបនបត្រ <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> បានប្ដូរ​ផ្ទាំង</translation>
 <translation id="975893173032473675">ភាសា​ដែលត្រូវ​បកប្រែ​ទៅជា</translation>
 <translation id="976499800099896273">ប្រអប់ "ត្រឡប់ការកែដោយស្វ័យ​ប្រវត្តិវិញ" ត្រូវបានបង្ហាញសម្រាប់ <ph name="TYPED_WORD" /> ដែលបានកែ​ទៅ <ph name="CORRECTED_WORD" />។  ចុចព្រួញឡើងលើ ដើម្បីចូលប្រើ, ចុច "escape" ដើម្បីមិនអើពើ។</translation>
 <translation id="976572010712028687">ផ្ទៀងផ្ទាត់​ថាអ្នកគឺជាមាតាបិតា</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index f4bc765..cc9a28b 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2569,7 +2569,6 @@
 <translation id="2764920001292228569">ಪ್ರೊಫೈಲ್ ಹೆಸರನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="2765100602267695013">ನಿಮ್ಮ ಮೊಬೈಲ್ ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ</translation>
 <translation id="2765217105034171413">ಸಣ್ಣ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ಟ್ಯಾಬ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation>
 <translation id="2765820627968019645">ಲೈಟ್</translation>
 <translation id="276582196519778359">ಪೋಷಕ ನಿಯಂತ್ರಣಗಳಿಗಾಗಿ ನಿಮ್ಮ ಪಿನ್ ಅನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="2766006623206032690">ಅಂ&amp;ಟಿಸಿ ಮತ್ತು ಹೋಗಿ</translation>
@@ -4132,7 +4131,6 @@
 <translation id="3872991219937722530">ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶ ಮುಕ್ತಗೊಳಿಸಿ ಇಲ್ಲದಿದ್ದರೆ ಸಾಧನವು ಪ್ರತಿಕ್ರಿಯೆ ನೀಡದಂತಾಗುತ್ತದೆ.</translation>
 <translation id="3873315167136380065">ಇದನ್ನು ಆನ್ ಮಾಡಲು, ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">ಪಿನ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ಅವರು ಟ್ಯಾಬ್ ಅನ್ನು ಸೇರಿಸಿದ್ದಾರೆ</translation>
 <translation id="3873915545594852654">ARC++ ನಲ್ಲಿ ಸಮಸ್ಯೆ ಸಂಭವಿಸಿದೆ.</translation>
 <translation id="3874164307099183178">Google Assistant ಆನ್ ಮಾಡಿ</translation>
 <translation id="3875511946736639169">ಚಿತ್ರಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
@@ -4262,7 +4260,6 @@
 <translation id="3959969108528118741">ಮಾಲೀಕರು</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> ಗಾಗಿ ಇನ್ನಷ್ಟು ಕ್ರಿಯೆಗಳು</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ಅವರು ಗುಂಪನ್ನು ತೊರೆದಿದ್ದಾರೆ</translation>
 <translation id="3963753386716096475">ಬೇರೆ ಫೋನ್, ಟ್ಯಾಬ್ಲೆಟ್ ಅಥವಾ ಭದ್ರತಾ ಕೀ ಅನ್ನು ಬಳಸಿ</translation>
 <translation id="3964480518399667971">ಸೆಲ್ಯುಲರ್ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> ಪ್ರೊಫೈಲ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
@@ -5385,7 +5382,6 @@
 <translation id="4789348252524569426">ಧ್ವನಿ ಫೈಲ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಬೇಕಾಗಿದೆ. ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4789550509729954245">ಸಾಧನಗಳು ಸಮೀಪದಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳುತ್ತಿರುವಾಗ ಅಧಿಸೂಚನೆಯನ್ನು ತೋರಿಸಿ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">ಯಾವುದೇ ಸಲಹೆಗಳು ಲಭ್ಯವಿಲ್ಲ. "ಈ ಪುಟದ ಸಾರಾಂಶ" ಅಥವಾ ನಿಮ್ಮ ಸ್ವಂತ ಪ್ರಶ್ನೆಯಂತಹ ವಿಷಯಗಳನ್ನು ಕೇಳಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4791793693640849493">ಖಾತೆಯಲ್ಲಿ ಐಟಂಗಳನ್ನು ಸೇವ್‌ ಮಾಡಿ</translation>
 <translation id="4792290259143007505">TrackPoint ವೇಗವರ್ಧಕ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4792711294155034829">&amp;ಸಮಸ್ಯೆಯನ್ನು ವರದಿಮಾಡಿ...</translation>
@@ -9018,7 +9014,6 @@
 <translation id="7421293530411019405">ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ತೊರೆಯಬೇಕೆ?</translation>
 <translation id="7421925624202799674">ಫ್ರೇಮ್ ಮೂಲವನ್ನು &amp;ವೀಕ್ಷಿಸಿ</translation>
 <translation id="7422192691352527311">ಪ್ರಾಶಸ್ತ್ಯಗಳು...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ಗುಂಪಿನ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಿದೆ</translation>
 <translation id="7423425410216218516">ಗೋಚರತೆ <ph name="MINUTES" /> ನಿಮಿಷಗಳವರೆಗೆ ಆನ್ ಇರುತ್ತದೆ</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ಅನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="7423807071740419372">ರನ್ ಆಗಲು <ph name="APP_NAME" /> ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
@@ -9508,7 +9503,6 @@
 <translation id="7772032839648071052">ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> ಬಗ್ಗೆ</translation>
 <translation id="7773726648746946405">ಸೆಶನ್ ಸಂಗ್ರಹಣೆ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ಅವರು ಗುಂಪಿಗೆ ಸೇರಿಕೊಂಡಿದ್ದಾರೆ</translation>
 <translation id="7774365994322694683">ಪಕ್ಷಿ</translation>
 <translation id="7774581652827321413">ಪುಟದ ಸಾರಾಂಶ, ಸಂಬಂಧಿತ ಹುಡುಕಾಟಗಳು ಮತ್ತು ಈ ಪುಟದ ಕುರಿತು ಇತರ ಉಪಯುಕ್ತ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಿರಿ</translation>
 <translation id="7774792847912242537">ಅತೀ ಹೆಚ್ಚು ವಿನಂತಿಗಳು.</translation>
@@ -11102,7 +11096,6 @@
 <translation id="8888253246822647887">ಅಪ್‌ಗ್ರೇಡ್‌ ಮಾಡುವುದು ಪೂರ್ಣಗೊಂಡಾಗ ನಿಮ್ಮ ಆ್ಯಪ್‌ ತೆರೆದುಕೊಳ್ಳುತ್ತದೆ. ಅಪ್‌ಗ್ರೇಡ್‌ಗಳನ್ನು ಮಾಡುವುದಕ್ಕೆ ಕೆಲವು ನಿಮಿಷಗಳು ಬೇಕಾಗಬಹುದು.</translation>
 <translation id="8888459276890791557">ಸುಲಭವಾಗಿ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ನೀವು ಈ ಸೈಡ್ ಪ್ಯಾನೆಲ್ ಅನ್ನು ಪಿನ್ ಮಾಡಬಹುದು</translation>
 <translation id="8889294078294184559">ನೀವು ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಿದಾಗ, ನೀವು ನಿಜವಾದ ವ್ಯಕ್ತಿಯೇ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಲು, ಸೈಟ್‌ಗಳು Chrome ನ ಸಹಾಯ ಪಡೆಯಬಹುದು ಹಾಗೂ ನೀವು ಈ ಹಿಂದೆ ಭೇಟಿ ನೀಡಿದ ಸೈಟ್‌ನೊಂದಿಗೆ ದೃಢೀಕರಿಸಿಕೊಳ್ಳಬಹುದು</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ಗುಂಪಿನ ಬಣ್ಣವನ್ನು ಬದಲಾಯಿಸಿದೆ</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" />, ಕೆಳಗಿನ ಫೈಲ್‌ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಬಹುದು</translation>
 <translation id="8890170499370378450">ಮೊಬೈಲ್ ಡೇಟಾ ಶುಲ್ಕಗಳನ್ನು ತೆರಬೇಕಾಗಬಹುದು</translation>
 <translation id="8890516388109605451">ಮೂಲಗಳು</translation>
@@ -11253,7 +11246,6 @@
 <translation id="8991520179165052608">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು ಸೈಟ್‌ ಬಳಸಿಕೊಳ್ಳಬಹುದು</translation>
 <translation id="8991694323904646277">ಯಾವುದೇ ಕ್ಯಾಮರಾ ಕನೆಕ್ಟ್ ಆಗಿಲ್ಲ</translation>
 <translation id="8991766915726096402">ಸ್ಥಳೀಯ ಡೇಟಾ ಮರಳಿ ಪಡೆಯುವಿಕೆ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />ನಿಮಿಷದ ಹಿಂದೆ}=1{<ph name="TIME_COUNT" />ಗಂಟೆಗಳ ಹಿಂದೆ}one{<ph name="TIME_COUNT" />ದಿನಗಳ ಹಿಂದೆ}other{<ph name="TIME_COUNT" />ದಿನಗಳ ಹಿಂದೆ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - ಮೆಮೊರಿ ಬಳಕೆ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಮರೆತರೆ, ನಿಮ್ಮ ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ನೀವು ಇಗಲೂ ಅದನ್ನು ಮರುಸ್ಥಾಪಿಸಬಹುದು. ನಿಮ್ಮ Google ಖಾತೆಗೆ ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ಖಾತೆ ಮರುಪ್ರಾಪ್ತಿಯನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> ಗಾಗಿ ಪ್ರಮಾಣಪತ್ರ ಹ್ಯಾಶ್ ಅನ್ನು ಕಾಪಿ ಮಾಡಿ</translation>
@@ -11656,7 +11648,6 @@
 <translation id="973558314812359997">ಮೌಸ್ ಕರ್ಸರ್ ಗಾತ್ರ</translation>
 <translation id="973788791897303708">ಈ ಟ್ಯಾಬ್ ಗುಂಪು ಭರ್ತಿಯಾಗಿದೆ</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸಿ</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ಅವರು ಟ್ಯಾಬ್ ಅನ್ನು ಬದಲಾಯಿಸಿದ್ದಾರೆ</translation>
 <translation id="975893173032473675">ಈ ಭಾಷೆಯಿಂದ ಈ ಭಾಷೆಗೆ ಅನುವಾದಿಸಬೇಕು</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> ಅನ್ನು <ph name="CORRECTED_WORD" /> ಎಂಬುದಾಗಿ ಸರಿಪಡಿಸಲಾದ ಆಟೋಕರೆಕ್ಟ್ ಅನ್ನು ರದ್ದುಪಡಿಸುವ ಡೈಲಾಗ್ ಅನ್ನು ತೋರಿಸಲಾಗಿದೆ.  ಪ್ರವೇಶಿಸಲು ಅಪ್ ಆ್ಯರೋ ಒತ್ತಿ, ನಿರ್ಲಕ್ಷಿಸಲು ಎಸ್ಕೇಪ್ ಒತ್ತಿ.</translation>
 <translation id="976572010712028687">ನೀವು ಪೋಷಕರು ಎಂಬುದನ್ನು ದೃಢೀಕರಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 7738234b..94541e0 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -2578,7 +2578,6 @@
 <translation id="2764920001292228569">프로필 이름을 입력하세요.</translation>
 <translation id="2765100602267695013">이동통신사에 문의해 주세요.</translation>
 <translation id="2765217105034171413">작게</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />님이 탭을 삭제했습니다.</translation>
 <translation id="2765820627968019645">밝게</translation>
 <translation id="276582196519778359">자녀 보호 기능 PIN을 입력하세요</translation>
 <translation id="2766006623206032690">붙여넣어 바로가기(&amp;S)</translation>
@@ -4142,7 +4141,6 @@
 <translation id="3872991219937722530">디스크 저장 공간을 확보하지 않으면 기기가 응답하지 않을 것입니다.</translation>
 <translation id="3873315167136380065">사용하려면 <ph name="BEGIN_LINK" />동기화를 재설정<ph name="END_LINK" />하여 동기화 암호를 삭제하세요.</translation>
 <translation id="3873423927483480833">PIN 표시</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />님이 탭을 추가했습니다.</translation>
 <translation id="3873915545594852654">ARC++에 문제가 발생했습니다.</translation>
 <translation id="3874164307099183178">Google 어시스턴트 사용 설정</translation>
 <translation id="3875511946736639169">이미지 표시</translation>
@@ -4272,7 +4270,6 @@
 <translation id="3959969108528118741">소유자</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />의 작업 더보기</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" />님이 그룹을 나갔습니다.</translation>
 <translation id="3963753386716096475">다른 휴대전화, 태블릿 또는 보안 키 사용</translation>
 <translation id="3964480518399667971">셀룰러 네트워크 끄기</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> 나가기</translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">음성 파일을 설치할 수 없습니다. 기기를 업데이트해야 합니다. 기기를 재시작한 후 다시 시도해 보세요.</translation>
 <translation id="4789550509729954245">근처의 기기가 공유 중일 때 알림 표시</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">추천사항이 없습니다. '이 페이지 요약해 줘'와 같은 질문을 입력하거나 다른 질문을 입력해 보세요.</translation>
 <translation id="4791793693640849493">계정에 항목 저장</translation>
 <translation id="4792290259143007505">TrackPoint 가속 사용</translation>
 <translation id="4792711294155034829">문제 신고(&amp;R)...</translation>
@@ -9024,7 +9020,6 @@
 <translation id="7421293530411019405">탭 그룹에서 나가시겠습니까?</translation>
 <translation id="7421925624202799674">페이지 소스 보기(&amp;V)</translation>
 <translation id="7422192691352527311">환경설정...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />님이 그룹 이름을 변경했습니다.</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" />분 동안 공개됨</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> 삭제</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" />에 실행 권한 필요</translation>
@@ -9514,7 +9509,6 @@
 <translation id="7772032839648071052">암호 확인</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> 정보</translation>
 <translation id="7773726648746946405">세션 저장소</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />님이 그룹에 참여했습니다.</translation>
 <translation id="7774365994322694683">새</translation>
 <translation id="7774581652827321413">이 페이지에 관한 페이지 요약, 관련 검색어, 기타 유용한 정보를 받습니다.</translation>
 <translation id="7774792847912242537">요청 횟수가 너무 많습니다.</translation>
@@ -11112,7 +11106,6 @@
 <translation id="8888253246822647887">업그레이드가 종료되면 앱이 열립니다. 업그레이드하는 데 몇 분 정도 걸릴 수 있습니다.</translation>
 <translation id="8888459276890791557">측면 패널을 고정하여 쉽게 액세스할 수 있습니다.</translation>
 <translation id="8889294078294184559">브라우징을 계속하면 사이트에서 Chrome을 통해 이를 확인하고 이전에 방문한 적이 있는 이전 사이트로 내가 실제 사람인지 확인할 수 있습니다.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />님이 그룹 색상을 변경했습니다.</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" />에서 다음 파일과 폴더를 수정할 수 있습니다.</translation>
 <translation id="8890170499370378450">모바일 데이터 요금이 발생할 수 있음</translation>
 <translation id="8890516388109605451">소스</translation>
@@ -11263,7 +11256,6 @@
 <translation id="8991520179165052608">사이트에서 마이크를 사용할 수 있습니다.</translation>
 <translation id="8991694323904646277">카메라 없음</translation>
 <translation id="8991766915726096402">로컬 데이터 복구</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />분 전}=1{<ph name="TIME_COUNT" />시간 전}other{<ph name="TIME_COUNT" />일 전}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - 메모리 사용량 - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> 비밀번호를 잊어버린 경우에도 로컬 데이터를 복원할 수 있습니다. Google 계정에 로그인하거나 계정 복구를 사용해야 합니다.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />의 인증서 해시 복사</translation>
@@ -11665,7 +11657,6 @@
 <translation id="973558314812359997">마우스 커서 크기</translation>
 <translation id="973788791897303708">탭 그룹이 가득 참</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> 인증서 삭제</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />님이 탭을 변경했습니다.</translation>
 <translation id="975893173032473675">다음 언어로 번역</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" />에서 <ph name="CORRECTED_WORD" />(으)로 수정된 것과 관련하여 자동 수정 실행취소 대화상자가 표시되었습니다.  액세스하려면 위쪽 화살표를, 무시하려면 Esc를 누르세요.</translation>
 <translation id="976572010712028687">부모임을 확인</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
index e573004..3dca018e 100644
--- a/chrome/app/resources/generated_resources_ky.xtb
+++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Профилдин аталышын киргизиңиз</translation>
 <translation id="2765100602267695013">Мобилдик операторго кайрылыңыз</translation>
 <translation id="2765217105034171413">Кичине</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> өтмөктү өчүрдү</translation>
 <translation id="2765820627968019645">Жарык</translation>
 <translation id="276582196519778359">Ата-эненин көзөмөлү үчүн PIN кодду териңиз</translation>
 <translation id="2766006623206032690">Ча&amp;птап туруп өтүү</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Дисктен орун бошотпосоңуз, түзмөк жооп бербей калат.</translation>
 <translation id="3873315167136380065">Муну күйгүзүү үчүн <ph name="BEGIN_LINK" />шайкештирүү параметрлерин баштапкы абалга келтирип<ph name="END_LINK" />, купуя сөз айкашын алып салыңыз</translation>
 <translation id="3873423927483480833">PIN-коддорду көрсөтүү</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> өтмөк кошту</translation>
 <translation id="3873915545594852654">Төмөнкүнү иштетүүдө ката кетти: ARC++.</translation>
 <translation id="3874164307099183178">Google Жардамчыны күйгүзүү</translation>
 <translation id="3875511946736639169">Сүрөттөрдү иштетүү</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Ээси</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> боюнча башка аракеттер</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> топтон чыкты</translation>
 <translation id="3963753386716096475">Башка телефонду, планшетти же коопсуздук ачкычын колдонуу</translation>
 <translation id="3964480518399667971">Мобилдик тармакты өчүрүү</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> профилинен чыгуу</translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Кеп файлдары орнотулбай жатат. Түзмөгүңүздү жаңыртуу талап кылынат. Түзмөктү өчүрүп күйгүзүп, кайталап көрүңүз.</translation>
 <translation id="4789550509729954245">Жакын жердеги түзмөктөр файл бөлүшүп жатканда билдирме көрсөтүлсүн</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Жеткиликтүү сунуштар жок. Мисалы, "Бул беттин корутундусун түз" деп айтып же каалаган суроону берип көрүңүз.</translation>
 <translation id="4791793693640849493">Аккаунттагы нерселерди сактоо</translation>
 <translation id="4792290259143007505">TrackPoint ылдамдаткычын иштетүү</translation>
 <translation id="4792711294155034829">Маселе жөнүндө &amp;кабар берүү…</translation>
@@ -9022,7 +9018,6 @@
 <translation id="7421293530411019405">Өтмөктөр тобунан чыгасызбы?</translation>
 <translation id="7421925624202799674">Барак булагын карап &amp;көрүү</translation>
 <translation id="7422192691352527311">Жеке параметрлер…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> топтун аталышын өзгөрттү</translation>
 <translation id="7423425410216218516">Түзмөк <ph name="MINUTES" /> мүнөткө чейин көрүнөт</translation>
 <translation id="7423513079490750513">Өчүрүү: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> колдонмосун иштетүү үчүн уруксат талап кылынат</translation>
@@ -9513,7 +9508,6 @@
 <translation id="7772032839648071052">Купуя сөз айкашын ырастаңыз</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> тууралуу</translation>
 <translation id="7773726648746946405">Сеанс сактагычы</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> топко кошулду</translation>
 <translation id="7774365994322694683">Куш</translation>
 <translation id="7774581652827321413">Беттин корутундусун, тиешелүү издөөлөрдү жана бул бет жөнүндө башка пайдалуу маалыматты алыңыз</translation>
 <translation id="7774792847912242537">Сурамдар өтө эле көп.</translation>
@@ -11109,7 +11103,6 @@
 <translation id="8888253246822647887">Колдонмоңуз жаңыртуу аягына чыккандан кийин ачылат. Ал бир нече мүнөткө созулушу мүмкүн.</translation>
 <translation id="8888459276890791557">Оңой кирүү үчүн капталдагы тилкени кадап койсоңуз болот</translation>
 <translation id="8889294078294184559">Андан кийин башка сайттарга өтсөңүз, алар Chrome аркылуу бот эмес экениңизди текшере алышат</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> топтун түсүн өзгөрттү</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> төмөнкү файлдар менен папкаларды түзөтө алат</translation>
 <translation id="8890170499370378450">Мобилдик трафик сарпталышы мүмкүн</translation>
 <translation id="8890516388109605451">Булактар</translation>
@@ -11260,7 +11253,6 @@
 <translation id="8991520179165052608">Сайт микрофонуңузду колдоно алат</translation>
 <translation id="8991694323904646277">Камера жок</translation>
 <translation id="8991766915726096402">Түзмөктөгү маалыматты калыбына келтирүү</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> мүн. мурун}=1{<ph name="TIME_COUNT" /> саат мурун}other{<ph name="TIME_COUNT" /> күн мурун}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> <ph name="MEMORY_VALUE" /> эстутумду колдонуп жатат</translation>
 <translation id="8993059306046735527">Эгер <ph name="DEVICE_TYPE" /> түзмөгүндөгү сырсөзүңүздү унутуп койсоңуз, андагы маалыматты дагы деле калыбына келтире аласыз. Google аккаунтуңузга кирип же аккаунтту калыбына келтиришиңиз керек болот.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> тастыктамасынын хешин көчүрүү</translation>
@@ -11662,7 +11654,6 @@
 <translation id="973558314812359997">Курсордун өлчөмү</translation>
 <translation id="973788791897303708">Бул өтмөктөр тобу толуп калды</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> тастыктамасын өчүрүү</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> өтмөктү өзгөрттү</translation>
 <translation id="975893173032473675">Которула турган тил</translation>
 <translation id="976499800099896273"><ph name="CORRECTED_WORD" /> деп оңдолгон <ph name="TYPED_WORD" /> сөзү үчүн автоматтык түрдө оңдоону кайтаруу диалогу көрсөтүлдү.  Көрүү үчүн өйдө жебени, этибарга албоо үчүн escape баскычын басыңыз.</translation>
 <translation id="976572010712028687">Ата-эне экениңизди ырастаңыз</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb
index 2d25c83..c314232 100644
--- a/chrome/app/resources/generated_resources_lo.xtb
+++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">ໃສ່ຊື່ໂປຣໄຟລ໌</translation>
 <translation id="2765100602267695013">ກະລຸນາຕິດຕໍ່ຜູ້ໃຫ້ບໍລິການມືຖືຂອງທ່ານ</translation>
 <translation id="2765217105034171413">ນ້ອຍ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ລຶບແຖບອອກແລ້ວ</translation>
 <translation id="2765820627968019645">ໜ້ອຍ</translation>
 <translation id="276582196519778359">ໃສ່ PIN ຂອງທ່ານສຳລັບການຄວບຄຸມຂອງພໍ່ແມ່</translation>
 <translation id="2766006623206032690">ແປະໃສ່ ແລະຄົ້ນຫາ</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">ຂະຫຍາຍພື້ນທີ່ດິສກ໌ ຫຼືບໍ່ດັ່ງນັ້ນ ອຸປະກອນຈະບໍ່ຕອບສະໝອງ</translation>
 <translation id="3873315167136380065">ເພື່ອເປີດການຕັ້ງຄ່ານີ້, ກະລຸນາ <ph name="BEGIN_LINK" />ຣິເຊັດການຊິ້ງຂໍ້ມູນ<ph name="END_LINK" /> ເພື່ອລຶບລະຫັດຜ່ານການຊິ້ງຂໍ້ມູນຂອງທ່ານອອກ</translation>
 <translation id="3873423927483480833">ສະແດງ PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ໄດ້ເພີ່ມແຖບແລ້ວ</translation>
 <translation id="3873915545594852654">ເກີດບັນຫາກັບ ARC++.</translation>
 <translation id="3874164307099183178">ເປີດຜູ້ຊ່ວຍ Google</translation>
 <translation id="3875511946736639169">ເປີດການນຳໃຊ້ຮູບພາບ</translation>
@@ -4269,7 +4267,6 @@
 <translation id="3959969108528118741">ເຈົ້າຂອງ</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">ຄຳສັ່ງເພີ່ມເຕີມສຳລັບ <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ອອກຈາກກຸ່ມແລ້ວ</translation>
 <translation id="3963753386716096475">ໃຊ້ໂທລະສັບ, ແທັບເລັດ ຫຼື ກະແຈຄວາມປອດໄພອື່ນ</translation>
 <translation id="3964480518399667971">ປິດເຄືອຂ່າຍມືຖື</translation>
 <translation id="3965965397408324205">ອອກຈາກ <ph name="PROFILE_NAME" /></translation>
@@ -5392,7 +5389,6 @@
 <translation id="4789348252524569426">ບໍ່ສາມາດຕິດຕັ້ງໄຟລ໌ສຽງເວົ້າໄດ້. ຕ້ອງອັບເດດອຸປະກອນຂອງທ່ານ. ກະລຸນາຣີສະຕາດອຸປະກອນຂອງທ່ານແລ້ວລອງໃໝ່.</translation>
 <translation id="4789550509729954245">ສະແດງການແຈ້ງເຕືອນເມື່ອມີອຸປະກອນກຳລັງແບ່ງປັນຢູ່ໃກ້ຄຽງ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">ບໍ່ມີຄຳແນະນຳ. ລອງຂໍໃຫ້ເຮັດວຽກຕ່າງໆ ເຊັ່ນ: "ສະຫຼຸບໜ້ານີ້" ຫຼື ໃຊ້ຄຳຖາມ ຫຼື ຄຳຂໍຂອງທ່ານເອງ.</translation>
 <translation id="4791793693640849493">ບັນທຶກລາຍການໃນບັນຊີ</translation>
 <translation id="4792290259143007505">ເປີດການນຳໃຊ້ການເລັ່ງຄວາມໄວ TrackPoint</translation>
 <translation id="4792711294155034829">ລາຍ​ງານ​ບັນ​ຫາ...</translation>
@@ -9020,7 +9016,6 @@
 <translation id="7421293530411019405">ອອກຈາກກຸ່ມແຖບບໍ?</translation>
 <translation id="7421925624202799674">ເບິ່ງແຫຼ່ງທີ່ມາຂອງໜ້າ</translation>
 <translation id="7422192691352527311">ຄວາມມັກ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ໄດ້ປ່ຽນຊື່ກຸ່ມແລ້ວ</translation>
 <translation id="7423425410216218516">ການເບິ່ງເຫັນຈະເປີດເປັນເວລາ <ph name="MINUTES" /> ນາທີ</translation>
 <translation id="7423513079490750513">ລຶບ <ph name="INPUT_METHOD_NAME" /> ອອກ</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ຕ້ອງການການອະນຸຍາດເພື່ອເປີດໃຊ້</translation>
@@ -9510,7 +9505,6 @@
 <translation id="7772032839648071052">ຢືນ​ຢັນວະລີຜ່ານ</translation>
 <translation id="7772127298218883077">ກ່ຽວ​ກັບ <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">ການເກັບມ້ຽນຊ່ວງ​ເວລາ​​ເຂົ້າ​ໃຊ້</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ໄດ້ເຂົ້າຮ່ວມກຸ່ມແລ້ວ</translation>
 <translation id="7774365994322694683">ນົກ</translation>
 <translation id="7774581652827321413">ຮັບຂໍ້ມູນສະຫຼຸບກ່ຽວກັບໜ້າເວັບ, ການຊອກຫາທີ່ກ່ຽວຂ້ອງ ແລະ ຂໍ້ມູນອື່ນໆທີ່ເປັນປະໂຫຍດກ່ຽວກັບໜ້ານີ້</translation>
 <translation id="7774792847912242537">ມີການຮ້ອງຂໍຫຼາຍເກີນໄປ.</translation>
@@ -11105,7 +11099,6 @@
 <translation id="8888253246822647887">ແອັບຂອງທ່ານຈະເປີດເມື່ອການອັບເກຣດສຳເລັດແລ້ວ. ການອັບເກຣດໃຊ້ເວລາສອງສາມນາທີ.</translation>
 <translation id="8888459276890791557">ທ່ານສາມາດປັກໝຸດແຜງຄວບຄຸມດ້ານຂ້າງນີ້ເພື່ອເຂົ້າເຖິງແບບງ່າຍໆໄດ້</translation>
 <translation id="8889294078294184559">ໃນຂະນະທີ່ທ່ານທ່ອງເວັບໄປເລື້ອຍໆຢູ່ນັ້ນ, ເວັບໄຊຕ່າງໆສາມາດກວດສອບກັບ Chrome ແລະ ຢັ້ງຢືນກັບເວັບໄຊກ່ອນໜ້າທີ່ທ່ານໄດ້ເຂົ້າເບິ່ງວ່າທ່ານອາດຈະເປັນຄົນທີ່ແທ້ຈິງ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ໄດ້ປ່ຽນສີກຸ່ມແລ້ວ</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> ສາມາດແກ້ໄຂໄຟລ໌ ແລະ ໂຟນເດີຕໍ່ໄປນີ້ໄດ້</translation>
 <translation id="8890170499370378450">ອາດມີການຮຽກເກັບຄ່າອິນເຕີເນັດມືຖື</translation>
 <translation id="8890516388109605451">ແຫລ່ງທີ່ມາ</translation>
@@ -11256,7 +11249,6 @@
 <translation id="8991520179165052608">ເວັບໄຊສາມາດໃຊ້ໄມໂຄຣໂຟນຂອງທ່ານໄດ້</translation>
 <translation id="8991694323904646277">ບໍ່ມີກ້ອງຖ່າຍຮູບ</translation>
 <translation id="8991766915726096402">ການກູ້ຄືນຂໍ້ມູນໃນເຄື່ອງ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />ນທ ກ່ອນ}=1{<ph name="TIME_COUNT" />ຊມ ກ່ອນ}other{<ph name="TIME_COUNT" />ມ ກ່ອນ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - ການໃຊ້ໜ່ວຍຄວາມຈຳ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ຫາກທ່ານລືມລະຫັດຜ່ານ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ, ທ່ານຈະຍັງຄົງສາມາດກູ້ຂໍ້ມູນໃນເຄື່ອງຂອງທ່ານຄືນໄດ້. ທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບຫາບັນຊີ Google ຂອງທ່ານ ຫຼື ໃຊ້ການກູ້ບັນຊີຄືນ.</translation>
 <translation id="8993198843374358393">ສຳເນົາແຮຊໃບຮັບຮອງສຳລັບ <ph name="CERT_NAME" /></translation>
@@ -11658,7 +11650,6 @@
 <translation id="973558314812359997">ຂະໜາດເມົ້າ</translation>
 <translation id="973788791897303708">ກຸ່ມແຖບນີ້ເຕັມແລ້ວ</translation>
 <translation id="97381968209917373">ລຶບໃບຮັບຮອງ <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ປ່ຽນແປງແຖບແລ້ວ</translation>
 <translation id="975893173032473675">ພາສາທີ່ຈະແປເປັນ</translation>
 <translation id="976499800099896273">ກ່ອງໂຕ້ຕອບຍົກເລີກການແກ້ໄຂອັດຕະໂນມັດສະແດງຂຶ້ນສຳລັບ <ph name="TYPED_WORD" /> ທີ່ແກ້ໄຂເປັນ <ph name="CORRECTED_WORD" />.  ກົດລູກສອນຂຶ້ນເພື່ອເຂົ້າເຖິງ, Escape ເພື່ອລະເລີຍ.</translation>
 <translation id="976572010712028687">ຢັ້ງຢືນວ່າທ່ານເປັນຜູ້ປົກຄອງ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index f9dd65b..d847346 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -2579,7 +2579,6 @@
 <translation id="2764920001292228569">Įveskite profilio pavadinimą</translation>
 <translation id="2765100602267695013">Susisiekite su mobiliojo ryšio tiekėju</translation>
 <translation id="2765217105034171413">Mažas</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> pašalino skirtuką</translation>
 <translation id="2765820627968019645">Šviesu</translation>
 <translation id="276582196519778359">Įveskite tėvų kontrolės PIN kodą</translation>
 <translation id="2766006623206032690">Įklij&amp;uoti ir eiti</translation>
@@ -4143,7 +4142,6 @@
 <translation id="3872991219937722530">Atlaisvinkite vietos diske arba įrenginys nebeatsakys.</translation>
 <translation id="3873315167136380065">Norėdami tai įjungti <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation>
 <translation id="3873423927483480833">Rodyti PIN kodus</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> pridėjo skirtuką</translation>
 <translation id="3873915545594852654">Iškilo su ARC++ susijusi problema.</translation>
 <translation id="3874164307099183178">Įjungti „Google“ padėjėją</translation>
 <translation id="3875511946736639169">Įgalinti vaizdus</translation>
@@ -4273,7 +4271,6 @@
 <translation id="3959969108528118741">Savininkas</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Daugiau veiksmų (<ph name="IBAN_DESCRIPTION" />)</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> išėjo iš grupės</translation>
 <translation id="3963753386716096475">Naudoti kitą telefoną, planšetinį kompiuterį arba saugos raktą</translation>
 <translation id="3964480518399667971">Išjungti mobiliojo ryšio tinklą</translation>
 <translation id="3965965397408324205">Išeiti iš „<ph name="PROFILE_NAME" />“</translation>
@@ -5396,7 +5393,6 @@
 <translation id="4789348252524569426">Nepavyko įdiegti kalbos failų. Reikia atnaujinti įrenginį. Paleiskite įrenginį iš naujo ir bandykite dar kartą.</translation>
 <translation id="4789550509729954245">Rodyti pranešimą, kai įrenginiai bendrina netoliese</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Pasiūlymų nėra. Pateikite užklausą „apibendrinti šį puslapį“ arba užduokite savo klausimą.</translation>
 <translation id="4791793693640849493">Elementų išsaugojimas paskyroje</translation>
 <translation id="4792290259143007505">Įgalinti „TrackPoint“ spartinimą</translation>
 <translation id="4792711294155034829">&amp;Pranešti apie problemą...</translation>
@@ -9033,7 +9029,6 @@
 <translation id="7421293530411019405">Išeiti iš skirtukų grupės?</translation>
 <translation id="7421925624202799674">&amp;Žiūrėti puslapio šaltinį</translation>
 <translation id="7422192691352527311">Nuostatos...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> pakeitė grupės pavadinimą</translation>
 <translation id="7423425410216218516">Matomumas įjungtas <ph name="MINUTES" /> min.</translation>
 <translation id="7423513079490750513">Pašalinti <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Norint paleisti programą „<ph name="APP_NAME" />“ reikalingas leidimas</translation>
@@ -9524,7 +9519,6 @@
 <translation id="7772032839648071052">Patvirtinti slaptafrazę</translation>
 <translation id="7772127298218883077">Apie „<ph name="PRODUCT_NAME" />“</translation>
 <translation id="7773726648746946405">Sesijų atmintinė</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> prisijungė prie grupės</translation>
 <translation id="7774365994322694683">Paukštis</translation>
 <translation id="7774581652827321413">Gaukite puslapio suvestinę, susijusias paieškas ir kitos naudingos informacijos apie šį puslapį</translation>
 <translation id="7774792847912242537">Per daug užklausų.</translation>
@@ -11124,7 +11118,6 @@
 <translation id="8888253246822647887">Programa bus atidaryta baigus naujovinti. Naujovinimas gali užtrukti keletą minučių.</translation>
 <translation id="8888459276890791557">Galite prisegti šį šoninį skydelį, kad lengvai pasiektumėte</translation>
 <translation id="8889294078294184559">Jums naršant toliau, svetainės gali tikrinti sistemoje „Chrome“ ir iš ankstesnės svetainės, kurioje lankėtės, patvirtinti, kad tikriausiai esate realus asmuo</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> pakeitė grupės spalvą</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> gali redaguoti toliau nurodytus failus ir aplankus</translation>
 <translation id="8890170499370378450">Gali būti taikomi mobiliojo ryšio duomenų mokesčiai</translation>
 <translation id="8890516388109605451">Šaltiniai</translation>
@@ -11275,7 +11268,6 @@
 <translation id="8991520179165052608">Svetainė gali naudoti jūsų mikrofoną</translation>
 <translation id="8991694323904646277">Nėra fotoaparato</translation>
 <translation id="8991766915726096402">Vietinių duomenų atkūrimas</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Prieš <ph name="TIME_COUNT" /> min.}=1{Prieš <ph name="TIME_COUNT" /> val.}one{Prieš <ph name="TIME_COUNT" /> d.}few{Prieš <ph name="TIME_COUNT" /> d.}many{Prieš <ph name="TIME_COUNT" /> d.}other{Prieš <ph name="TIME_COUNT" /> d.}}</translation>
 <translation id="8992671062738341478">„<ph name="WINDOW_TITLE" />“ – atminties sąnaudos – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jei pamiršite „<ph name="DEVICE_TYPE" />“ slaptažodį, vis tiek galėsite atkurti vietinius duomenis. Turėsite prisijungti prie „Google“ paskyros arba naudoti paskyros atkūrimo funkciją.</translation>
 <translation id="8993198843374358393">Kopijuoti sertifikato maišą, skirtą „<ph name="CERT_NAME" />“</translation>
@@ -11677,7 +11669,6 @@
 <translation id="973558314812359997">Pelės žymeklio dydis</translation>
 <translation id="973788791897303708">Ši skirtukų grupė pilna</translation>
 <translation id="97381968209917373">Ištrinti „<ph name="CERT_NAME" />“ sertifikatą</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> pakeitė skirtuką</translation>
 <translation id="975893173032473675">Kalba, į kurią verčiama</translation>
 <translation id="976499800099896273">Rodomas žodžio „<ph name="TYPED_WORD" />“, ištaisyto į žodį „<ph name="CORRECTED_WORD" />“, automatinio taisymo anuliavimo dialogo langas.  Paspauskite rodyklę aukštyn, kad pasiektumėte, arba „Escape“, jei norite nepaisyti.</translation>
 <translation id="976572010712028687">Patvirtinkite, kad esate vienas iš tėvų</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 5144230..c925788 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Ievadiet profila nosaukumu</translation>
 <translation id="2765100602267695013">Lūdzu, sazinieties ar mobilo sakaru operatoru</translation>
 <translation id="2765217105034171413">Mazs</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> noņēma cilni</translation>
 <translation id="2765820627968019645">Gaišais</translation>
 <translation id="276582196519778359">Ievadiet savu PIN, lai piekļūtu vecāku kontroles iestatījumiem</translation>
 <translation id="2766006623206032690">Ielīmēt un doties</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">Atbrīvojiet diskā vietu; pretējā gadījumā ierīce nereaģēs.</translation>
 <translation id="3873315167136380065">Lai ieslēgtu šo funkciju un noņemtu sinhronizēšanas ieejas frāzi, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation>
 <translation id="3873423927483480833">Rādīt PIN kodus</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> pievienoja cilni</translation>
 <translation id="3873915545594852654">Radās problēma ar ARC++.</translation>
 <translation id="3874164307099183178">Google asistenta ieslēgšana</translation>
 <translation id="3875511946736639169">Iespējot attēlus</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">Īpašnieks</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />: citas darbības</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> pameta grupu.</translation>
 <translation id="3963753386716096475">Izmantot citu tālruni, planšetdatoru vai drošības atslēgu</translation>
 <translation id="3964480518399667971">Mobilā tīkla izslēgšana</translation>
 <translation id="3965965397408324205">Iziet no profila <ph name="PROFILE_NAME" /></translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">Nevar instalēt runas failus. Jums ir jāatjaunina ierīce. Restartējiet ierīci un mēģiniet vēlreiz.</translation>
 <translation id="4789550509729954245">Rādīt paziņojumu, ka ierīcēs tiek veikta kopīgošana tuvumā</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nav pieejams neviens ieteikums. Varat izmēģināt tādas komandas kā “Apkopo šo lapu” vai uzdot savu jautājumu.</translation>
 <translation id="4791793693640849493">Saglabājiet vienumus kontā</translation>
 <translation id="4792290259143007505">Iespējot TrackPoint paātrinājumu</translation>
 <translation id="4792711294155034829">&amp;Ziņot par problēmu...</translation>
@@ -9010,7 +9006,6 @@
 <translation id="7421293530411019405">Vai pamest ciļņu grupu?</translation>
 <translation id="7421925624202799674">Skatīt lapas a&amp;votu</translation>
 <translation id="7422192691352527311">Preferences...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> mainīja grupas nosaukumu</translation>
 <translation id="7423425410216218516">Redzamība ir ieslēgta uz <ph name="MINUTES" /> minūtēm.</translation>
 <translation id="7423513079490750513">Noņemt valodu <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Lai varētu palaist lietotni <ph name="APP_NAME" />, ir nepieciešama atļauja</translation>
@@ -9501,7 +9496,6 @@
 <translation id="7772032839648071052">Apstipriniet ieejas frāzi</translation>
 <translation id="7772127298218883077">Par <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sesijas saglabāšana</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> pievienojās grupai</translation>
 <translation id="7774365994322694683">Putns</translation>
 <translation id="7774581652827321413">Saņemiet lapas kopsavilkumu, saistītos meklēšanas vaicājumus un citu noderīgu informāciju par šo lapu.</translation>
 <translation id="7774792847912242537">Pārāk daudz pieprasījumu.</translation>
@@ -11099,7 +11093,6 @@
 <translation id="8888253246822647887">Lietotne tiks atvērta, kad jaunināšana būs pabeigta. Jaunināšana var ilgt vairākas minūtes.</translation>
 <translation id="8888459276890791557">Varat piespraust šo sānu paneli, lai ērti tam piekļūtu.</translation>
 <translation id="8889294078294184559">Kad turpināsiet pārlūkošanu, vietnes var pieprasīt šo informāciju pārlūkam Chrome un saņemt apstiprinājumu no iepriekš apmeklētās vietnes, ka, visticamāk, esat īsts cilvēks.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> mainīja grupas krāsu</translation>
 <translation id="8889651696183044030">Vietne <ph name="ORIGIN" /> var rediģēt tālāk norādītos failus un mapes.</translation>
 <translation id="8890170499370378450">Var rasties izmaksas par mobilo datu pārraidi</translation>
 <translation id="8890516388109605451">Avoti</translation>
@@ -11250,7 +11243,6 @@
 <translation id="8991520179165052608">Vietne var izmantot jūsu mikrofonu.</translation>
 <translation id="8991694323904646277">Nav kameras</translation>
 <translation id="8991766915726096402">Lokālo datu atgūšana</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Pirms <ph name="TIME_COUNT" /> min}=1{Pirms <ph name="TIME_COUNT" /> h}zero{Pirms <ph name="TIME_COUNT" /> d.}one{Pirms <ph name="TIME_COUNT" /> d.}other{Pirms <ph name="TIME_COUNT" /> d.}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> — atmiņas lietojums: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ja aizmirsīsiet paroli, ar ko jāatbloķē <ph name="DEVICE_TYPE" />, joprojām varēsiet atjaunot ierīces datus. Jums būs jāpierakstās savā Google kontā vai jāizmanto konta atkopšana.</translation>
 <translation id="8993198843374358393">Kopēt sertifikāta <ph name="CERT_NAME" /> jaucējkodu</translation>
@@ -11652,7 +11644,6 @@
 <translation id="973558314812359997">Peles kursora lielums</translation>
 <translation id="973788791897303708">Šī ciļņu grupa ir pilna</translation>
 <translation id="97381968209917373">Vai dzēst sertifikātu “<ph name="CERT_NAME" />”?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> mainīja cilni</translation>
 <translation id="975893173032473675">Valoda, kurā jātulko saturs</translation>
 <translation id="976499800099896273">Tiek rādīts automātiskās pareizrakstības pārbaudes atsaukšanas dialoglodziņš par vārdu <ph name="TYPED_WORD" />, kas tika labots uz <ph name="CORRECTED_WORD" />.  Lai piekļūtu, nospiediet augšupvērsto bultiņu. Lai ignorētu, nospiediet taustiņu Esc.</translation>
 <translation id="976572010712028687">Apstipriniet, ka esat viens no vecākiem</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb
index 8d7dc83..8064ff99 100644
--- a/chrome/app/resources/generated_resources_mk.xtb
+++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Внесете име на профил</translation>
 <translation id="2765100602267695013">Контактирајте со мобилниот оператор</translation>
 <translation id="2765217105034171413">Мало</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> отстрани картичка</translation>
 <translation id="2765820627968019645">Светол</translation>
 <translation id="276582196519778359">Внесете го вашиот PIN за родителски контроли</translation>
 <translation id="2766006623206032690">З&amp;алепи и оди</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Ослободете простор на дискот или уредот веќе нема да реагира.</translation>
 <translation id="3873315167136380065">За да го вклучите ова, <ph name="BEGIN_LINK" />ресетирајте ја синхронизацијата<ph name="END_LINK" /> и отстранете ја лозинката за синхронизација</translation>
 <translation id="3873423927483480833">Прикажете ги PIN-кодовите</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> додаде картичка</translation>
 <translation id="3873915545594852654">Настана проблем со ARC++.</translation>
 <translation id="3874164307099183178">Вклучување на „Помошникот на Google“</translation>
 <translation id="3875511946736639169">Овозможи слики</translation>
@@ -4271,7 +4269,6 @@
 <translation id="3959969108528118741">Сопственик</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Повеќе дејства за <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ја напушти групата</translation>
 <translation id="3963753386716096475">Користете друг телефон, таблет или безбедносен клуч</translation>
 <translation id="3964480518399667971">Исклучување мобилна мрежа</translation>
 <translation id="3965965397408324205">Излези од <ph name="PROFILE_NAME" /></translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">Не може да се инсталираат датотеки за говор. Треба да го ажурирате уредот. Рестартирајте го уредот и обидете се повторно.</translation>
 <translation id="4789550509729954245">Прикажувај известувања кога уредите споделуваат во близина</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Нема достапни предлози. Обидете се да побарате работи како „резимирај ја страницава“ или поставете сопствено прашање.</translation>
 <translation id="4791793693640849493">Зачувувајте ставки во сметката</translation>
 <translation id="4792290259143007505">Овозможи забрзување на TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Пријави проблем...</translation>
@@ -9025,7 +9021,6 @@
 <translation id="7421293530411019405">Да се напушти групата картички?</translation>
 <translation id="7421925624202799674">&amp;Прикажи извор на страница</translation>
 <translation id="7422192691352527311">Претпочитани вредности…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> го промени името на групата</translation>
 <translation id="7423425410216218516">Видливоста е вклучена во траење од <ph name="MINUTES" /> минути</translation>
 <translation id="7423513079490750513">Отстранете го лицето <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> бара дозвола за да се изврши</translation>
@@ -9516,7 +9511,6 @@
 <translation id="7772032839648071052">Потврди лозинка</translation>
 <translation id="7772127298218883077">За <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Складирање сесија</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> се придружи во групата</translation>
 <translation id="7774365994322694683">Птица</translation>
 <translation id="7774581652827321413">Добијте резиме на страница, слични пребарувања и други корисни информации за страницава</translation>
 <translation id="7774792847912242537">Премногу барања.</translation>
@@ -9779,7 +9773,7 @@
 <translation id="7953236668995583915">Вчитајте ја страницава повторно за да се применат ажурираните поставки на сајтов</translation>
 <translation id="7953669802889559161">Методи за внесување</translation>
 <translation id="7953955868932471628">Управувај со кратенките</translation>
-<translation id="7955105108888461311">Побарај лично</translation>
+<translation id="7955105108888461311">Прашај лично</translation>
 <translation id="7955177647836564772">Ако е вклучена Smart Lock, а вашиот телефон е отклучен, тогаш нема потреба да внесувате лозинка или PIN</translation>
 <translation id="7956373551960864128">Вашите зачувани печатачи</translation>
 <translation id="7956918070009672177">Нема гласови на <ph name="LANGUAGE" /> на уредот. Поврзете се на интернет, па обидете се повторно.</translation>
@@ -11116,7 +11110,6 @@
 <translation id="8888253246822647887">Апликацијата ќе се отвори кога ќе заврши надградбата. Надградбите може да траат неколку минути.</translation>
 <translation id="8888459276890791557">За лесен пристап, може да ја закачите страничнава табла</translation>
 <translation id="8889294078294184559">Додека прелистувате, сајтовите може да проверат со Chrome и да потврдат со некој претходен сајт што сте го отвориле дека најверојатно сте вистинска личност</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ја промени бојата на групата</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> може да ги изменува следниве датотеки и папки</translation>
 <translation id="8890170499370378450">Може да произлезат трошоци за мобилен интернет</translation>
 <translation id="8890516388109605451">Извори</translation>
@@ -11267,7 +11260,6 @@
 <translation id="8991520179165052608">Сајтот може да го користи микрофонот</translation>
 <translation id="8991694323904646277">Нема камера</translation>
 <translation id="8991766915726096402">Враќање на локалните податоци</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Пред <ph name="TIME_COUNT" /> мин.}=1{Пред <ph name="TIME_COUNT" /> ч.}one{Пред <ph name="TIME_COUNT" /> д.}other{Пред <ph name="TIME_COUNT" /> д.}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - потрошувачка на меморија: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ако ја заборавите лозинката за <ph name="DEVICE_TYPE" />, сепак ќе може да ги вратите локалните податоци. Ќе треба да се најавите на сметката на Google или да користите враќање сметка.</translation>
 <translation id="8993198843374358393">Копирај го хашот на сертификатот за <ph name="CERT_NAME" /></translation>
@@ -11669,7 +11661,6 @@
 <translation id="973558314812359997">Големина на глувчето</translation>
 <translation id="973788791897303708">Оваа група картички е полна</translation>
 <translation id="97381968209917373">Избриши го сертификатот „<ph name="CERT_NAME" />“</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> промени картичка</translation>
 <translation id="975893173032473675">Јазик на кој треба да се преведе</translation>
 <translation id="976499800099896273">Прикажан е дијалогот за враќање на автокорекцијата за <ph name="TYPED_WORD" /> коригиран во <ph name="CORRECTED_WORD" />.  Притиснете ја стрелката за нагоре за да пристапите или копчето Escape за да игнорирате.</translation>
 <translation id="976572010712028687">Потврдете дека сте родител</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index 040caa9..60d85d3 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -461,6 +461,7 @@
 <translation id="1306606229401759371">ക്രമീകരണങ്ങൾ മാറ്റുക</translation>
 <translation id="1307165550267142340">നിങ്ങളുടെ പിൻ സൃഷ്‌ടിച്ചു</translation>
 <translation id="1307431692088049276">വീണ്ടും ചോദിക്കരുത്</translation>
+<translation id="130744661532298792">നിങ്ങളുടെ Google Account-ൽ പാസ്‌വേഡുകൾ എല്ലായ്‌പ്പോഴും ഉപയോഗിക്കാനാകുമെന്ന് ഉറപ്പാക്കാൻ, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="1307559529304613120">ക്ഷമിക്കണം!  ഈ ഉപകരണത്തിനായി ദീർഘകാല API ആക്‌സസ് ടോക്കൺ സംഭരിക്കുന്നതിൽ സിസ്റ്റം പരാജയപ്പെട്ടു.</translation>
 <translation id="1308548450293664112">ഞാൻ സൃഷ്‌ടിച്ചതാണ് ഈ ഫയൽ, റേഡിയോ ബട്ടൺ ഗ്രൂപ്പ്, 3-ൽ 1</translation>
 <translation id="131112695174432497">പരസ്യം വ്യക്തിപരമാക്കുന്നതിനെ ബാധിക്കുന്ന ഡാറ്റ ഇല്ലാതാക്കി</translation>
@@ -2560,7 +2561,6 @@
 <translation id="2764920001292228569">പ്രൊഫൈൽ പേര് നൽകുക</translation>
 <translation id="2765100602267695013">നിങ്ങളുടെ മൊബൈൽ ദാതാവിനെ ബന്ധപ്പെടുക</translation>
 <translation id="2765217105034171413">ചെറുത്</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />, ടാബ് നീക്കം ചെയ്തു</translation>
 <translation id="2765820627968019645">ലൈറ്റ്</translation>
 <translation id="276582196519778359">രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾക്കായി നിങ്ങളുടെ പിൻ നൽകുക</translation>
 <translation id="2766006623206032690">ഒട്ടി&amp;ക്കൂ കൂടാതെ പോകൂ</translation>
@@ -2823,6 +2823,7 @@
 <translation id="2953210795988451570">സുരക്ഷാ അപ്‌ഡേറ്റുകൾ അവസാനിച്ചു. പുതിയൊരു Chromebook-ലേക്ക് അപ്‌ഗ്രേഡ് ചെയ്യൂ.</translation>
 <translation id="2953218713108551165"><ph name="SITE" /> എന്നതിന് അറിയിപ്പുകൾ അനുവദനീയമല്ല. നിങ്ങൾ അടുത്ത തവണ സന്ദർശിക്കുമ്പോൾ ഇത് വീണ്ടും ചോദിക്കും.</translation>
 <translation id="2956070239128776395">വിഭാഗം ഗ്രൂപ്പിനുള്ളിലാണ്: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">ഈ വിപുലീകരണം ഉപയോഗിക്കുന്നതിന് ഡെവലപ്പർ മോഡ് ഓണാക്കുക, ഇത് Chrome വെബ് സ്റ്റോറിന് അവലോകനം ചെയ്യാൻ കഴിയില്ല.</translation>
 <translation id="2958721676848865875">പായ്‌ക്ക് വിപുലീകരണ മുന്നറിയിപ്പ്</translation>
 <translation id="2959127025785722291">എന്തോ കുഴപ്പമുണ്ടായി. സ്‌കാനിംഗ് പൂർത്തിയാക്കാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="2959474507964749987">ഈ എൻക്രിപ്റ്റ് ചെയ്‌ത ഫയൽ ഒരു വൈറസോ മാൽവെയറോ ആയിരിക്കാം.<ph name="LINE_BREAK" />ഇത് സുരക്ഷിതമാണോ എന്ന് പരിശോധിക്കാൻ, നിങ്ങൾക്ക് ഫയലും പാസ്‌വേഡും Google സുരക്ഷിത ബ്രൗസിംഗിലേക്ക് അയയ്‌ക്കാം. സ്‌കാൻ ചെയ്യാൻ സാധാരണഗതിയിൽ ഏതാനും സെക്കൻഡുകൾ മാത്രമേ എടുക്കൂ.<ph name="LINE_BREAK" />സ്‌കാൻ ചെയ്യാൻ ഫയലിന്റെ പാസ്‌വേഡ് ചേർക്കുക.</translation>
@@ -4124,7 +4125,6 @@
 <translation id="3872991219937722530">ഡിസ്‌ക്കിൽ ഇടം സൃഷ്‌ടിച്ചില്ലെങ്കിൽ ഉപകരണം പ്രതികരിക്കില്ല.</translation>
 <translation id="3873315167136380065">ഇത് ഓണാക്കാൻ, നിങ്ങളുടെ സമന്വയിപ്പിച്ച പാസ്‌ഫ്രെയ്‌സ് നീക്കം ചെയ്യാൻ <ph name="BEGIN_LINK" />സമന്വയം പുനഃസജ്ജമാക്കുക<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">പിന്നുകൾ കാണിക്കുക</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />, ടാബ് ചേർത്തു</translation>
 <translation id="3873915545594852654">ARC++ എന്നതിൽ ഒരു പ്രശ്‌നമുണ്ടായി.</translation>
 <translation id="3874164307099183178">Google Assistant ഓണാക്കുക</translation>
 <translation id="3875511946736639169">ചിത്രങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുക</translation>
@@ -4253,7 +4253,6 @@
 <translation id="3959969108528118741">ഉടമ</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> എന്നതിനുള്ള കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ഗ്രൂപ്പ് വിട്ടു</translation>
 <translation id="3963753386716096475">മറ്റൊരു ഫോണോ ടാബ്‌ലെറ്റോ സുരക്ഷാ കീയോ ഉപയോഗിക്കുക</translation>
 <translation id="3964480518399667971">സെല്ലുലാർ നെറ്റ്‌വർക്ക് ഓഫാക്കുക</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> എന്നതിൽ നിന്ന് പുറത്ത് കടക്കുക</translation>
@@ -4322,6 +4321,7 @@
 <translation id="4001540981461989979">ചലിക്കുമ്പോൾ മൗസ് കഴ്‌സർ ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="4002347779798688515">മൊബൈൽ നെറ്റ്‌വർക്ക് ദാതാവ് ലോക്ക് ചെയ്‌തിരിക്കുകയാണെങ്കിൽ, ഡൗൺലോഡ് ചെയ്‌ത പ്രൊഫൈൽ ഉപയോഗപ്രദമായേക്കില്ല. പിന്തുണയ്ക്ക് നിങ്ങളുടെ ദാതാവുമായി ബന്ധപ്പെടുക.</translation>
 <translation id="4002440992267487163">സജ്ജീകരണം പിൻ ചെയ്യുക</translation>
+<translation id="4003617970184602156">നിങ്ങളുടെ Google Account-ലെ പാസ്‌വേഡുകൾ ഉപയോഗിക്കാനും സംരക്ഷിക്കാനും, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="4005817994523282006">സമയ മേഖല തിരിച്ചറിയൽ രീതി</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{ഇത് നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് ഗ്രൂപ്പ് ശാശ്വതമായി ഇല്ലാതാക്കും.}other{ഇത് നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് ഗ്രൂപ്പുകൾ ശാശ്വതമായി ഇല്ലാതാക്കും.}}</translation>
 <translation id="4010036441048359843">'ഹൈലൈറ്റ് ചെയ്യുക' ഓണാക്കുക</translation>
@@ -5376,7 +5376,6 @@
 <translation id="4789348252524569426">സംഭാഷണ ഫയലുകൾ ഇൻസ്റ്റാൾ ചെയ്യാനാകുന്നില്ല. നിങ്ങളുടെ ഉപകരണം അപ്‌ഡേറ്റ് ചെയ്യേണ്ടതുണ്ട്. നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="4789550509729954245">ഉപകരണങ്ങൾ സമീപത്ത് പങ്കിടുമ്പോൾ അറിയിപ്പ് കാണിക്കുക</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">നിർദ്ദേശങ്ങളൊന്നും ലഭ്യമല്ല. “ഈ പേജ് സംഗ്രഹിക്കുക” എന്നത് പോലുള്ള കാര്യങ്ങൾ ആവശ്യപ്പെടാനോ നിങ്ങളുടേതായ ചോദ്യം ചോദിക്കാനോ ശ്രമിക്കുക.</translation>
 <translation id="4791793693640849493">ഇനങ്ങൾ അക്കൗണ്ടിൽ സംരക്ഷിക്കുക</translation>
 <translation id="4792290259143007505">TrackPoint ആക്സിലറേഷൻ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="4792711294155034829">&amp;ഒരു പ്രശ്നം റിപ്പോര്‍ട്ടുചെയ്യുക...</translation>
@@ -6955,6 +6954,7 @@
 <translation id="5932224571077948991">അനാവശ്യമോ തെറ്റിദ്ധരിപ്പിക്കുന്നതോ ആയ പരസ്യങ്ങള്‍ കാണിക്കുന്ന സൈറ്റ്</translation>
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> എന്നതിൽ നിന്നുള്ള USB ഉപകരണം</translation>
 <translation id="5932441198730183141">ഈ Google Meet ഹാർഡ്‌വെയർ ഉപകരണം എൻറോൾ ചെയ്യാൻ ആവശ്യമായ ലൈസൻസുകൾ നിങ്ങൾക്ക് ഇല്ല. കൂടുതൽ വാങ്ങാൻ വിൽപ്പന വിഭാഗത്തെ ബന്ധപ്പെടുക. പിശക് കാരണമാണ് ഈ സന്ദേശം കാണുന്നതെന്ന് നിങ്ങൾ കരുതുന്നുവെങ്കിൽ പിന്തുണയുമായി ബന്ധപ്പെടുക.</translation>
+<translation id="593271375210025655">ഈ വിപുലീകരണം ഉപയോഗിക്കുന്നതിന് ഡെവലപ്പർ മോഡ് ഓണാക്കുക, എന്നാൽ നിങ്ങൾക്ക് വിപുലീകരണത്തിൽ വിശ്വാസമുണ്ടെങ്കിൽ മാത്രമെ അങ്ങനെ ചെയ്യാവൂ. അതിൽ പരീക്ഷണാത്മക ഫീച്ചറുകൾ അടങ്ങിയിരിക്കാം, കൂടാതെ Chrome വെബ് സ്റ്റോർ അത് അവലോകനം ചെയ്‌തിട്ടില്ലായിരിക്കാം.</translation>
 <translation id="5932881020239635062">സീരിയൽ</translation>
 <translation id="5933376509899483611">സമയമേഖല</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു</translation>
@@ -6982,6 +6982,7 @@
 <translation id="5948476936444935795">ഇമ്പോർട്ട് ചെയ്യൽ റദ്ദാക്കുക</translation>
 <translation id="5948536763493709626">ഒരു കീബോർഡോ മൗസോ കണക്റ്റ് ചെയ്യുക അല്ലെങ്കിൽ നിങ്ങളുടെ ടച്ച്സ്ക്രീൻ ഉപയോഗിച്ച് സജ്ജീകരണം തുടരുക. നിങ്ങൾ Bluetooth ഉപകരണങ്ങളാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങളുടെ ഉപകരണങ്ങൾ ജോടിയാക്കാൻ തയ്യാറാണെന്ന് ഉറപ്പാക്കുക.</translation>
 <translation id="5949544233750246342">ഫയലിനെ വിശകലനം ചെയ്യാനായില്ല</translation>
+<translation id="5949795028157144515">ഡെവലപ്പർ മോഡ് ഓഫാണ്. ചില വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കി.</translation>
 <translation id="594993197557058302">1-4 മോഡിഫയർ കീകളും (ctrl, alt, shift, തിരയൽ, അല്ലെങ്കിൽ ലോഞ്ചർ) മറ്റൊരു കീയും അമർത്തുക. ഒരൊറ്റ കീയും നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.</translation>
 <translation id="5950762317146173294">ഈ ഫയൽ ഒരു വൈറസോ മാൽവെയറോ ആകാം</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> ഉപകരണത്തിലുള്ള ഫോണ്ടുകൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നു</translation>
@@ -9006,7 +9007,6 @@
 <translation id="7421293530411019405">ടാബ് ഗ്രൂപ്പിൽ നിന്ന് പുറത്ത് കടക്കണോ?</translation>
 <translation id="7421925624202799674">&amp;പേജ് ഉറവിടം കാണുക</translation>
 <translation id="7422192691352527311">മുൻഗണനകൾ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />, ഗ്രൂപ്പിന്റെ പേര് മാറ്റി</translation>
 <translation id="7423425410216218516">ദൃശ്യപരത <ph name="MINUTES" /> മിനിറ്റ് നേരത്തേക്ക് ഓണാകും</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> നീക്കം ചെയ്യുക</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" />-ന് പ്രവർത്തിക്കാൻ നിങ്ങളുടെ അനുമതി ആവശ്യമുണ്ട്</translation>
@@ -9496,7 +9496,6 @@
 <translation id="7772032839648071052">പാസ്ഫ്രേസ് സ്ഥിരീകരിക്കുക</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> നെ കുറിച്ച്</translation>
 <translation id="7773726648746946405">സെഷന്‍ സംഭരണം</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ഗ്രൂപ്പിൽ ചേർന്നു</translation>
 <translation id="7774365994322694683">കിളി</translation>
 <translation id="7774581652827321413">പേജ് സംഗ്രഹം, അനുബന്ധ തിരയലുകൾ, ഈ പേജുമായി ബന്ധപ്പെട്ട മറ്റ് ഉപയോഗപ്രദമായ വിവരങ്ങൾ എന്നിവ നേടുക</translation>
 <translation id="7774792847912242537">നിരവധി അഭ്യർത്ഥനകൾ.</translation>
@@ -11092,7 +11091,6 @@
 <translation id="8888253246822647887">അപ്‌ഗ്രേഡ് ചെയ്യൽ പൂർത്തിയാകുമ്പോൾ ആപ്പ് തുറക്കും. അപ്‌ഗ്രേഡ് ചെയ്യുന്നതിന് കുറച്ചുസമയമെടുത്തേക്കാം.</translation>
 <translation id="8888459276890791557">എളുപ്പത്തിൽ ആക്‌സസ് ചെയ്യാൻ നിങ്ങൾക്ക് ഈ സൈഡ് പാനൽ പിൻ ചെയ്യാം</translation>
 <translation id="8889294078294184559">ബ്രൗസ് ചെയ്യുന്നത് തുടരുന്തോറും, സൈറ്റുകൾക്ക് Chrome ഉപയോഗിച്ച് പരിശോധിക്കാനും നിങ്ങൾ ഒരു യഥാർത്ഥ വ്യക്തിയായിരിക്കാൻ സാധ്യതയുണ്ടെന്ന് നിങ്ങൾ മുമ്പ് സന്ദർശിച്ച ഒരു സൈറ്റുമായി ബന്ധപ്പെട്ട് പരിശോധിച്ചുറപ്പിക്കാനും കഴിയും</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />, ഗ്രൂപ്പിന്റെ നിറം മാറ്റി</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" />എന്നതിന് ഇനിപ്പറയുന്ന ഫയലുകളും ഫോൾഡറുകളും എഡിറ്റ് ചെയ്യാനാവും</translation>
 <translation id="8890170499370378450">മൊബൈൽ ഡാറ്റാ നിരക്കുകൾ ഈടാക്കിയേക്കാം</translation>
 <translation id="8890516388109605451">ഉറവിടങ്ങള്‍</translation>
@@ -11243,7 +11241,6 @@
 <translation id="8991520179165052608">സൈറ്റിന് നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കാനാകും</translation>
 <translation id="8991694323904646277">ക്യാമറയില്ല</translation>
 <translation id="8991766915726096402">ലോക്കൽ ഡാറ്റ വീണ്ടെടുക്കൽ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />m മുമ്പ്}=1{<ph name="TIME_COUNT" />h മുമ്പ്}other{<ph name="TIME_COUNT" />d മുമ്പ്}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - മെമ്മറി ഉപയോഗം - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">നിങ്ങൾ <ph name="DEVICE_TYPE" /> പാസ്‌വേഡ് മറന്നാലും നിങ്ങളുടെ ലോക്കൽ ഡാറ്റ പുനഃസ്ഥാപിക്കാനാകും. നിങ്ങൾ Google അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യുകയോ അക്കൗണ്ട് വീണ്ടെടുക്കൽ ഉപയോഗിക്കുകയോ ചെയ്യണം.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> എന്നതിന്റെ സർട്ടിഫിക്കറ്റ് ഹാഷ് പകർത്തുക</translation>
@@ -11645,7 +11642,6 @@
 <translation id="973558314812359997">മൗസ് വലുപ്പം</translation>
 <translation id="973788791897303708">ടാബ് ഗ്രൂപ്പ് നിറഞ്ഞിരിക്കുന്നു</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> എന്ന സർട്ടിഫിക്കറ്റ് ഇല്ലാതാക്കുക</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />, ടാബ് മാറ്റി</translation>
 <translation id="975893173032473675">ഇനിപ്പറയുന്ന ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യേണ്ട ഭാഷ</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> മാറ്റി <ph name="CORRECTED_WORD" /> ആക്കിയ സ്വയമേവയുള്ള തിരുത്തൽ പഴയപടിയാക്കുന്നതിനുള്ള ഡയലോഗ് കാണിക്കുന്നു.  ആക്‌സ‌സ് ചെയ്യാൻ മുകളിലേക്കുള്ള അമ്പടയാളം അമർത്തുക, അവഗണിക്കാൻ 'Escape' അമർത്തുക.</translation>
 <translation id="976572010712028687">നിങ്ങൾ ഒരു രക്ഷിതാവാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
index 24ff6c2a..be2a06b 100644
--- a/chrome/app/resources/generated_resources_mn.xtb
+++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -2572,7 +2572,6 @@
 <translation id="2764920001292228569">Профайлын нэр оруулна уу</translation>
 <translation id="2765100602267695013">Мобайл үйлчилгээ үзүүлэгчтэйгээ холбогдоно уу</translation>
 <translation id="2765217105034171413">Жижиг</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> таб хассан</translation>
 <translation id="2765820627968019645">Цайвар</translation>
 <translation id="276582196519778359">Эцэг эхийн хяналтын ПИН-ээ оруулна уу</translation>
 <translation id="2766006623206032690">Хуулан буулгасны дараагаар үргэлжлүүлэх</translation>
@@ -4136,7 +4135,6 @@
 <translation id="3872991219937722530">Дискний багтаамжийг нэмэгдүүлнэ үү. Ингээгүй тохиолдолд төхөөрөмж хариу үзүүлэхээ болино.</translation>
 <translation id="3873315167136380065">Үүнийг асаахын тулд <ph name="BEGIN_LINK" />синкийг шинэчилж<ph name="END_LINK" /> синкийн нэвтрэх үгийг устгана уу</translation>
 <translation id="3873423927483480833">ПИН харуулах</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> таб нэмсэн</translation>
 <translation id="3873915545594852654">ARC++-д асуудал гарлаа.</translation>
 <translation id="3874164307099183178">Google Туслахыг асаах</translation>
 <translation id="3875511946736639169">Зургуудыг идэвхжүүлэх</translation>
@@ -4265,7 +4263,6 @@
 <translation id="3959969108528118741">Өмчлөгч</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />-н бусад үйлдэл</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> бүлгээс гарсан</translation>
 <translation id="3963753386716096475">Өөр утас, таблет эсвэл аюулгүй байдлын түлхүүр ашиглах</translation>
 <translation id="3964480518399667971">Үүрэн холбооны сүлжээг унтраах</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />-с гарах</translation>
@@ -5388,7 +5385,6 @@
 <translation id="4789348252524569426">Ярианы файлуудыг суулгах боломжгүй. Та төхөөрөмжөө шинэчлэх шаардлагатай. Төхөөрөмжөө дахин эхлүүлээд, дахин оролдоно уу.</translation>
 <translation id="4789550509729954245">Төхөөрөмжүүд ойролцоо хуваалцаж байгаа үед мэдэгдэл харуулах</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ямар ч зөвлөмж боломжгүй. “Энэ хуудсыг хураангуйлах” зэрэг зүйлсийг эсвэл өөрийн асуултыг асууж үзнэ үү.</translation>
 <translation id="4791793693640849493">Бүртгэлд зүйлсийг хадгалах</translation>
 <translation id="4792290259143007505">TrackPoint хурдасгуурыг идэвхжүүлэх</translation>
 <translation id="4792711294155034829">&amp;Асуудлыг тайлагнах...</translation>
@@ -9017,7 +9013,6 @@
 <translation id="7421293530411019405">Табын бүлгийг орхих уу?</translation>
 <translation id="7421925624202799674">&amp; Хуудасны эх сурвалжийг харах</translation>
 <translation id="7422192691352527311">Тусдаа тохиргоо...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> бүлгийн нэрийг өөрчилсөн</translation>
 <translation id="7423425410216218516">Харагдац <ph name="MINUTES" /> минутын турш асаалттай байна</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" />-г хасах</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" />-г ажиллуулахын тулд зөвшөөрөл хэрэгтэй</translation>
@@ -9508,7 +9503,6 @@
 <translation id="7772032839648071052">Нэвтрэх үгүүдийг баталгаажуул</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" />-ийн тухай</translation>
 <translation id="7773726648746946405">Ажиллах талбарын хадгалалтын сан</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> бүлэгт нэгдсэн</translation>
 <translation id="7774365994322694683">Шувуу</translation>
 <translation id="7774581652827321413">Хуудасны хураангуй, холбоотой хайлт болон энэ хуудасны талаар бусад хэрэгтэй мэдээллийг авна уу</translation>
 <translation id="7774792847912242537">Хэт олон хүсэлт байна.</translation>
@@ -11100,7 +11094,6 @@
 <translation id="8888253246822647887">Таны апп шинэчлэлт дуусах үед нээгдэнэ. Шинэчлэлтэд хэсэг хугацаа шаардлагатай.</translation>
 <translation id="8888459276890791557">Та энэ хажуугийн самбарыг хялбар хандахад зориулж бэхлэх боломжтой</translation>
 <translation id="8889294078294184559">Таныг үргэлжлүүлэн үзэж байхад сайтууд Chrome-с шалгаж, таныг жинхэнэ хүн эсэхийг таны өмнө нь зочилсон сайтаас баталгаажуулах боломжтой</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> бүлгийн өнгийг өөрчилсөн</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> дараах файл болон фолдерыг засах боломжтой</translation>
 <translation id="8890170499370378450">Мобайл дата төлбөр гарч болзошгүй</translation>
 <translation id="8890516388109605451">Эх сурвалж</translation>
@@ -11251,7 +11244,6 @@
 <translation id="8991520179165052608">Сайт таны микрофоныг ашиглах боломжтой</translation>
 <translation id="8991694323904646277">Камер алга</translation>
 <translation id="8991766915726096402">Дотоод өгөгдлийг сэргээх</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> минутын өмнө}=1{<ph name="TIME_COUNT" /> цагийн өмнө}other{<ph name="TIME_COUNT" /> хоногийн өмнө}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Санах ойн ашиглалт - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Хэрэв та <ph name="DEVICE_TYPE" />-н нууц үгээ мартвал дотоод өгөгдлөө сэргээх боломжтой хэвээр байна. Та Google Бүртгэлдээ нэвтрэх эсвэл бүртгэл сэргээх онцлогийг ашиглах шаардлагатай.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />-н гэрчилгээний хэшийг хуулна уу</translation>
@@ -11653,7 +11645,6 @@
 <translation id="973558314812359997">Хулганын хэмжээ</translation>
 <translation id="973788791897303708">Энэ табын бүлэг дүүрсэн байна</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> сертификатыг устгах</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> таб өөрчилсөн</translation>
 <translation id="975893173032473675">Орчуулах хэл</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> үгийг <ph name="CORRECTED_WORD" /> болгон автоматаар засахыг болих харилцах цонхыг харуулсан.  Хандахын тулд дээш сумыг, үл хэрэгсэхийн тулд escape-г дарна уу.</translation>
 <translation id="976572010712028687">Эцэг эх гэдгээ баталгаажуулна уу</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index c50f7ca0d..a960af0 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">प्रोफाइलचे नाव एंटर करा</translation>
 <translation id="2765100602267695013">कृपया तुमच्या मोबाइल पुरवठादाराशी संपर्क साधा</translation>
 <translation id="2765217105034171413">लहान</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> यांनी हा टॅब काढून टाकला आहे</translation>
 <translation id="2765820627968019645">फिकट</translation>
 <translation id="276582196519778359">पालक नियंत्रणासाठी तुमचा पिन एंटर करा</translation>
 <translation id="2766006623206032690">पे&amp;स्ट करा आणि जा</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">डिस्क स्थान मोकळे करा अन्यथा डिव्हाइस अप्रतिसादात्मक बनेल.</translation>
 <translation id="3873315167136380065">हे सुरू करण्यासाठी, तुमची सिंक पासफ्रेझ काढून टाकण्यासाठी <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">पिन दाखवा</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> यांनी टॅब जोडला आहे</translation>
 <translation id="3873915545594852654">ARC++ ला समस्या आली.</translation>
 <translation id="3874164307099183178">Google Assistant सुरू करा</translation>
 <translation id="3875511946736639169">इमेज सुरू करा</translation>
@@ -4269,7 +4267,6 @@
 <translation id="3959969108528118741">मालक</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> साठी आणखी कृती</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> यांनी गट सोडला आहे</translation>
 <translation id="3963753386716096475">दुसरा फोन, टॅबलेट किंवा सिक्युरिटी की वापरा</translation>
 <translation id="3964480518399667971">मोबाइल नेटवर्क बंद करा</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> मधून बाहेर या</translation>
@@ -5390,7 +5387,6 @@
 <translation id="4789348252524569426">स्पीच फाइल इंस्टॉल करू शकत नाही. तुमचे डिव्हाइस अपडेट करणे आवश्यक आहे. तुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा.</translation>
 <translation id="4789550509729954245">डिव्हाइस जवळपास शेअर करत असतील, तेव्हा सूचना दाखवा</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">कोणत्याही सूचना उपलब्ध नाहीत. “या पेजचा सारांश द्या” यांसारख्या गोष्टी किंवा तुमचा स्वतःचा प्रश्न विचारून पहा.</translation>
 <translation id="4791793693640849493">आयटम खात्यामध्ये सेव्ह करा</translation>
 <translation id="4792290259143007505">TrackPoint अ‍ॅक्सिलरेशन सुरू करा</translation>
 <translation id="4792711294155034829">&amp;समस्या नोंदवणे...</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">टॅब गटामधून बाहेर पडायचे आहे का?</translation>
 <translation id="7421925624202799674">पेज स्रोत &amp;पहा</translation>
 <translation id="7422192691352527311">प्राधान्ये...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> यांनी गटाचे नाव बदलले आहे</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> मिनिटांसाठी दृश्यमानता सुरू आहे</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> काढून टाका</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ला रन होण्यासाठी परवानगीची आवश्यकता आहे</translation>
@@ -9514,7 +9509,6 @@
 <translation id="7772032839648071052">सांकेतिक पासफ्रेझ निश्चित करा</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> बद्दल</translation>
 <translation id="7773726648746946405">सेशन स्टोरेज</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> गटामध्ये सामील झाले आहेत</translation>
 <translation id="7774365994322694683">पक्षी</translation>
 <translation id="7774581652827321413">पेजचा सारांश, संबंधित शोध आणि या पेजविषयी इतर उपयुक्त माहिती मिळवा</translation>
 <translation id="7774792847912242537">खूप जास्त विनंत्या.</translation>
@@ -11110,7 +11104,6 @@
 <translation id="8888253246822647887">अपग्रेड पूर्ण झाल्यावर तुमचे अ‍ॅप उघडेल. अपग्रेड करण्यास काही मिनिटे लागू शकतात.</translation>
 <translation id="8888459276890791557">सुलभ अ‍ॅक्सेससाठी तुम्ही हे साइड पॅनल पिन करू शकता</translation>
 <translation id="8889294078294184559">तुम्ही ब्राउझ करणे पुढे सुरू ठेवता, तसे साइट Chrome सह तपासू शकतात आणि तुम्ही खरी व्यक्ती असल्याची भेट दिलेल्या मागील साइटवरून पडताळणी करू शकतात</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> यांनी गटाचा रंग बदलला आहे</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> खालील फाइल आणि फोल्डर संपादित करू शकते</translation>
 <translation id="8890170499370378450">मोबाइल डेटा शुल्क लागू शकते</translation>
 <translation id="8890516388109605451">स्रोत</translation>
@@ -11261,7 +11254,6 @@
 <translation id="8991520179165052608">साइट तुमचा मायक्रोफोन वापरू शकते</translation>
 <translation id="8991694323904646277">कोणताही कॅमेरा नाही</translation>
 <translation id="8991766915726096402">स्थानिक डेटा रिकव्हरी</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />m ago}=1{<ph name="TIME_COUNT" />ता पूर्वी}other{<ph name="TIME_COUNT" /> दि पूर्वी}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - मेमरी वापर - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">तुम्ही तुमच्या <ph name="DEVICE_TYPE" /> चा पासवर्ड विसरल्यास, तुम्ही तरीही तुमचा स्थानिक डेटा रिस्टोअर करू शकता. तुम्ही तुमच्या Google खाते मध्ये साइन इन करणे किंवा खाते रिकव्हरी वापरणे आवश्यक आहे.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> साठी सर्टिफिकेट हॅश कॉपी करा</translation>
@@ -11663,7 +11655,6 @@
 <translation id="973558314812359997">माउसचा आकार</translation>
 <translation id="973788791897303708">हा टॅब गट पूर्ण भरला आहे</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> सर्टिफिकेट हटवा</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> यांनी टॅब बदलला आहे</translation>
 <translation id="975893173032473675">भाषांतर करण्याची भाषा</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> ला दुरुस्त करून <ph name="CORRECTED_WORD" /> केले, ज्यासाठी ऑटोकरेक्ट पहिल्यासारखे करा डायलॉग दाखवला गेला.  अ‍ॅक्सेस करण्यासाठी अप अ‍ॅरो प्रेस करा, दुर्लक्ष करण्यासाठी escape प्रेस करा.</translation>
 <translation id="976572010712028687">तुम्ही पालक असल्याची पडताळणी करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index ee03edf08..c3360d5 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Masukkan nama profil</translation>
 <translation id="2765100602267695013">Sila hubungi penyedia mudah alih anda</translation>
 <translation id="2765217105034171413">Kecil</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> mengalih keluar tab</translation>
 <translation id="2765820627968019645">Sedikit</translation>
 <translation id="276582196519778359">Masukkan PIN kawalan ibu bapa anda</translation>
 <translation id="2766006623206032690">Ta&amp;mpal dan pergi</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Kosongkan ruang cakera, jika tidak peranti akan menjadi tidak responsif.</translation>
 <translation id="3873315167136380065">Untuk menghidupkan ciri ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /> untuk mengalih keluar ungkapan laluan penyegerakan anda</translation>
 <translation id="3873423927483480833">Tunjukkan PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> menambahkan tab</translation>
 <translation id="3873915545594852654">Masalah berkaitan ARC++ telah berlaku.</translation>
 <translation id="3874164307099183178">Hidupkan Google Assistant</translation>
 <translation id="3875511946736639169">Dayakan imej</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Pemilik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Lagi tindakan untuk <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> meninggalkan kumpulan</translation>
 <translation id="3963753386716096475">Gunakan telefon, tablet atau kunci keselamatan lain</translation>
 <translation id="3964480518399667971">Matikan Rangkaian selular</translation>
 <translation id="3965965397408324205">Keluar daripada <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Tidak boleh memasang fail pertuturan. Peranti anda perlu dikemas kini. Mulakan semula peranti anda dan cuba lagi.</translation>
 <translation id="4789550509729954245">Tunjukkan pemberitahuan apabila peranti sedang dikongsi berdekatan</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Tiada cadangan tersedia. Cuba minta perkara seperti “ringkaskan halaman ini” atau pertanyaan anda sendiri.</translation>
 <translation id="4791793693640849493">Simpan item dalam akaun</translation>
 <translation id="4792290259143007505">Dayakan pemecutan TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Laporkan Isu...</translation>
@@ -9023,7 +9019,6 @@
 <translation id="7421293530411019405">Tinggalkan kumpulan tab?</translation>
 <translation id="7421925624202799674">&amp;Lihat Sumber Halaman</translation>
 <translation id="7422192691352527311">Keutamaan...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> menukar nama kumpulan</translation>
 <translation id="7423425410216218516">Keterlihatan dihidupkan selama <ph name="MINUTES" /> minit</translation>
 <translation id="7423513079490750513">Alih keluar <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> memerlukan kebenaran untuk dijalankan</translation>
@@ -9514,7 +9509,6 @@
 <translation id="7772032839648071052">Sahkan frasa laluan</translation>
 <translation id="7772127298218883077">Mengenai <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Storan sesi</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> menyertai kumpulan</translation>
 <translation id="7774365994322694683">Burung</translation>
 <translation id="7774581652827321413">Dapatkan ringkasan halaman, carian berkaitan dan maklumat berguna lain tentang halaman ini</translation>
 <translation id="7774792847912242537">Terlalu banyak permintaan.</translation>
@@ -11112,7 +11106,6 @@
 <translation id="8888253246822647887">Apl anda akan dibuka apabila peningkatan selesai. Peningkatan boleh mengambil masa beberapa minit.</translation>
 <translation id="8888459276890791557">Anda boleh menyematkan panel sisi ini untuk akses mudah</translation>
 <translation id="8889294078294184559">Sementara anda terus menyemak imbas, laman boleh menyemak dengan Chrome dan membuat pengesahan dengan laman yang telah anda lawati sebelum ini bahawa anda berkemungkinan merupakan orang yang sebenar</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> menukar warna kumpulan</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> boleh mengedit fail dan folder berikut</translation>
 <translation id="8890170499370378450">Mungkin dikenakan caj data mudah alih</translation>
 <translation id="8890516388109605451">Sumber</translation>
@@ -11263,7 +11256,6 @@
 <translation id="8991520179165052608">Tapak boleh menggunakan mikrofon anda</translation>
 <translation id="8991694323904646277">Tiada kamera</translation>
 <translation id="8991766915726096402">Pemulihan Data Setempat</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />m yang lalu}=1{<ph name="TIME_COUNT" />j yang lalu}other{<ph name="TIME_COUNT" />h yang lalu}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Penggunaan memori - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jika anda terlupa kata laluan <ph name="DEVICE_TYPE" />, anda masih boleh memulihkan data setempat anda. Anda perlu log masuk ke Google Account anda atau menggunakan pemulihan akaun.</translation>
 <translation id="8993198843374358393">Salin cincangan sijil untuk <ph name="CERT_NAME" /></translation>
@@ -11665,7 +11657,6 @@
 <translation id="973558314812359997">Saiz tetikus</translation>
 <translation id="973788791897303708">Kumpulan tab ini penuh</translation>
 <translation id="97381968209917373">Padamkan sijil <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> menukar tab</translation>
 <translation id="975893173032473675">Bahasa Sasaran Terjemahan</translation>
 <translation id="976499800099896273">Dialog buat asal autopembetulan ditunjukkan untuk <ph name="TYPED_WORD" /> dibetulkan kepada <ph name="CORRECTED_WORD" />.  Tekan anak panah ke atas untuk mengakses atau kekunci Escape untuk mengabaikan perkataan ini.</translation>
 <translation id="976572010712028687">Sahkan bahawa anda seorang ibu/bapa</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb
index ec9e57e..f3065b0 100644
--- a/chrome/app/resources/generated_resources_my.xtb
+++ b/chrome/app/resources/generated_resources_my.xtb
@@ -2574,7 +2574,6 @@
 <translation id="2764920001292228569">ပရိုဖိုင်အမည်ထည့်ပါ</translation>
 <translation id="2765100602267695013">သင်၏ မိုဘိုင်း ဝန်ဆောင်မှုပေးသူနှင့် ဆက်သွယ်ပါ</translation>
 <translation id="2765217105034171413">သေး</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> က တဘ်ကို ဖယ်ရှားလိုက်သည်</translation>
 <translation id="2765820627968019645">အလင်း</translation>
 <translation id="276582196519778359">မိဘအထိန်းအချုပ်များအတွက် သင့်ပင်နံပါတ်ကို ထည့်ပါ</translation>
 <translation id="2766006623206032690">ကူးထည့်၍ သွား</translation>
@@ -4139,7 +4138,6 @@
 <translation id="3872991219937722530">သိုလှောင်ခန်းနေရာလွတ်ပြုလုပ်ပါ။ သို့မဟုတ်ပါက စက်ပစ္စည်း၏တုံ့ပြန်မှုနှေးကွေးလာပါလိမ့်မည်။</translation>
 <translation id="3873315167136380065">၎င်းကိုဖွင့်ရန်အတွက် <ph name="BEGIN_LINK" />စင့်ခ်လုပ်ခြင်းကို ပြင်ဆင်သတ်မှတ်<ph name="END_LINK" /> ပြီး သင်၏ စင့်ခ်စကားဝှက်စာကို ဖယ်ရှားပါ</translation>
 <translation id="3873423927483480833">ပင်နံပါတ်များ ပြရန်</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> က တဘ်ထည့်လိုက်သည်</translation>
 <translation id="3873915545594852654">ARC++ နှင့်ပက်သတ်၍ ပြဿနာရှိနေသည်။</translation>
 <translation id="3874164307099183178">Google Assistant ဖွင့်ရန်</translation>
 <translation id="3875511946736639169">ပုံများ ပြပါ</translation>
@@ -4268,7 +4266,6 @@
 <translation id="3959969108528118741">ပိုင်ရှင်</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> အတွက် နောက်ထပ်လုပ်ဆောင်ချက်များ</translation>
-<translation id="3962607437409665666">အဖွဲ့မှ <ph name="MEMBER_FIRST_NAME" /> ထွက်သွားသည်</translation>
 <translation id="3963753386716096475">အခြားဖုန်း၊ တက်ဘလက် (သို့) လုံခြုံရေးကီး သုံးရန်</translation>
 <translation id="3964480518399667971">ဆယ်လူလာကွန်ရက် ပိတ်ရန်</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> မှ ထွက်ရန်</translation>
@@ -5391,7 +5388,6 @@
 <translation id="4789348252524569426">စကားပြောဖိုင်များ ထည့်သွင်း၍မရပါ။ သင့်စက်ကို အပ်ဒိတ်လုပ်ရမည်။ သင့်စက်ကို ပြန်စပြီး ထပ်စမ်းကြည့်ပါ။</translation>
 <translation id="4789550509729954245">အနီးတွင် မျှဝေနေသောစက်များရှိပါက အကြောင်းကြားချက်ပြပါ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">အကြံပြုချက်များ မရှိပါ။ “ဤစာမျက်နှာကို အကျဉ်းချုပ်ပါ” ကဲ့သို့သော အရာများ (သို့) သင့်ကိုယ်ပိုင်မေးခွန်း မေးကြည့်ပါ။</translation>
 <translation id="4791793693640849493">အကောင့်တွင် ဖိုင်များသိမ်းခြင်း</translation>
 <translation id="4792290259143007505">TrackPoint အရှိန်မြှင့်တင်မှု ဖွင့်ရန်</translation>
 <translation id="4792711294155034829">ပြဿနာ တစ်ခုကို အစီရင်ခံရန်...</translation>
@@ -9018,7 +9014,6 @@
 <translation id="7421293530411019405">တဘ်အုပ်စုမှ ထွက်မလား။</translation>
 <translation id="7421925624202799674">&amp;စာမျက်နှာ အရင်းမြစ်အား ကြည့်ရန်</translation>
 <translation id="7422192691352527311">ဦးစားပေးမှုများ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> က အုပ်စုအမည်ကို ပြောင်းလိုက်သည်</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> မိနစ် မြင်နိုင်သည်</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ဖယ်ရှားရန်</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ကိုဖွင့်ရန် ခွင့်ပြုချက် လိုအပ်သည်</translation>
@@ -9509,7 +9504,6 @@
 <translation id="7772032839648071052">စကားစုဝှက်ကို အတည်ပြုရန်</translation>
 <translation id="7772127298218883077">အကြောင်း <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">အပိုင်းသိုလှောင်မှု</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> က အဖွဲ့တွင် ပါဝင်လိုက်သည်</translation>
 <translation id="7774365994322694683">ငှက်</translation>
 <translation id="7774581652827321413">စာမျက်နှာအကျဉ်းချုပ်၊ သက်ဆိုင်ရာ ရှာဖွေမှုများနှင့် ဤစာမျက်နှာအကြောင်း အခြားအသုံးဝင်သော အချက်အလက်များကို ရယူရန်</translation>
 <translation id="7774792847912242537">တောင်းဆိုမှုများ များလွန်းနေသည်။</translation>
@@ -11105,7 +11099,6 @@
 <translation id="8888253246822647887">အဆင့်မြှင့်တင်ပြီးသည့်အခါ သင့်အက်ပ် ပွင့်လာမည်။ အဆင့်မြှင့်တင်မှုများသည် မိနစ် အနည်းငယ် ကြာနိုင်ပါသည်။</translation>
 <translation id="8888459276890791557">ဤဘေးအကန့်ကို အလွယ်သုံးနိုင်ရန်အတွက် ပင်ထိုးနိုင်သည်</translation>
 <translation id="8889294078294184559">ဘရောက်စ်လုပ်နေသည်နှင့်အမျှ သင်လူအစစ်ဖြစ်ကြောင်းကို ဝဘ်ဆိုက်များက Chrome နှင့် စစ်ဆေးကာ သင်ယခင် ဝင်ကြည့်ထားသည့်ဝဘ်ဆိုက်ဖြင့် အတည်ပြုနိုင်သည်</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> က အုပ်စုအရောင်ကို ပြောင်းထားသည်</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> က အောက်ပါဖိုင်နှင့် ဖိုင်တွဲများကို တည်းဖြတ်နိုင်သည်</translation>
 <translation id="8890170499370378450">မိုဘိုင်းဒေတာ အသုံးပြုခ ကျသင့်နိုင်သည်</translation>
 <translation id="8890516388109605451">အရင်းအမြစ်များ</translation>
@@ -11256,7 +11249,6 @@
 <translation id="8991520179165052608">ဝဘ်ဆိုက်က သင့်မိုက်ခရိုဖုန်းကို အသုံးပြုနိုင်သည်</translation>
 <translation id="8991694323904646277">ကင်မရာ မရှိပါ</translation>
 <translation id="8991766915726096402">စက်တွင်းဒေတာ ပြန်လည်ရယူရန်</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{ပြီးခဲ့သော <ph name="TIME_COUNT" /> မိနစ်}=1{ပြီးခဲ့သော <ph name="TIME_COUNT" /> နာရီ}other{ပြီးခဲ့သော <ph name="TIME_COUNT" /> ရက်}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - မှတ်ဉာဏ်အသုံးပြုမှု - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> စကားဝှက် မေ့သွားသော်လည်း သင့်စက်တွင်းဒေတာကို ပြန်ယူနိုင်သေးသည်။ သင့် Google Account ကို လက်မှတ်ထိုးဝင်ရမည် (သို့) အကောင့်ပြန်ရယူခြင်းကို သုံးရမည်။</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> အတွက် အသိအမှတ်ပြုလက်မှတ် ဟက်ရှ်ကုဒ်ကို မိတ္တူကူးရန်</translation>
@@ -11658,7 +11650,6 @@
 <translation id="973558314812359997">မောက်စ်အရွယ်အစား</translation>
 <translation id="973788791897303708">ဤတဘ်အုပ်စု ပြည့်နေသည်</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> အသိအမှတ်ပြုလက်မှတ်ကို ဖျက်ရန်</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> က တဘ်ကို ပြောင်းလိုက်သည်</translation>
 <translation id="975893173032473675">ပြန်ဆိုရမည့် ဘာသာစကား</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> အတွက် <ph name="CORRECTED_WORD" /> အဖြစ် အလိုအလျောက်အမှားပြင်ဆင်ခြင်းကို ပြန်ပြင်ပြီးကြောင်း ဒိုင်ယာလော့ခ်ကို ပြထားသည်။  ဝင်ကြည့်ရန် အပေါ်ညွှန်မြားနှိပ်ပါ၊ လျစ်လျူရှုရန် escape နှိပ်ပါ။</translation>
 <translation id="976572010712028687">သင်သည် မိဘတစ်ဦးဖြစ်ကြောင်း အတည်ပြုပါ</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
index f572124..41d504c 100644
--- a/chrome/app/resources/generated_resources_ne.xtb
+++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2560,7 +2560,6 @@
 <translation id="2764920001292228569">प्रोफाइलको नाम हाल्नुहोस्</translation>
 <translation id="2765100602267695013">कृपया आफ्नो मोबाइल प्रदायकलाई सम्पर्क गर्नुहोस्</translation>
 <translation id="2765217105034171413">सानो</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ले एउटा ट्याब हटाउनुभयो</translation>
 <translation id="2765820627968019645">उज्यालो</translation>
 <translation id="276582196519778359">अभिभावकीय नियन्त्रणहरूका लागि आफूले सेट गरेको PIN हाल्नुहोस्</translation>
 <translation id="2766006623206032690">टाँ&amp;स्नुहोस् र जानुहोस्</translation>
@@ -4123,7 +4122,6 @@
 <translation id="3872991219937722530">डिस्कको ठाउँ खाली गर्नुहोस् नत्र यन्त्रले प्रतिक्रिया दिन छाड्नेछ।</translation>
 <translation id="3873315167136380065">यसलाई सक्रिय गर्ने प्रयोजनका लागि आफ्नो सिंकसम्बन्धी पासफ्रेज हटाउन <ph name="BEGIN_LINK" />सिंक गर्ने सेवा रिसेट गर्नुहोस्<ph name="END_LINK" />।</translation>
 <translation id="3873423927483480833">PIN हरू देखाउनुहोस्</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ले एउटा ट्याब थप्नुभयो</translation>
 <translation id="3873915545594852654">ARC++ सम्बन्धी कुनै समस्या भयो।</translation>
 <translation id="3874164307099183178">Google सहायक अन गर्नुहोस्</translation>
 <translation id="3875511946736639169">फोटोहरू अन गर्नुहोस्</translation>
@@ -4252,7 +4250,6 @@
 <translation id="3959969108528118741">मालिक</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> का सम्बन्धमा गर्न सकिने थप कारबाहीहरू</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> समूहबाट बाहिरिनुभयो</translation>
 <translation id="3963753386716096475">कुनै अर्को फोन, ट्याब्लेट वा सुरक्षा साँचो प्रयोग गर्नुहोस्</translation>
 <translation id="3964480518399667971">सेलुलर नेटवर्क अफ गर्नुहोस्</translation>
 <translation id="3965965397408324205">बाहिरिन निस्कनुहोस् <ph name="PROFILE_NAME" /></translation>
@@ -5375,7 +5372,6 @@
 <translation id="4789348252524569426">वाक् पहिचानसम्बन्धी फाइलहरू इन्स्टल गर्न सकिएन। तपाईंको डिभाइस अपडेट गर्नु पर्ने हुन्छ। आफ्नो डिभाइस रिस्टार्ट गर्नुहोस् र फेरि प्रयास गर्नुहोस्।</translation>
 <translation id="4789550509729954245">नजिकैका डिभाइसहरूले सेयर गरिरहेका बेला सूचना देखाउनुहोस्</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">कुनै पनि सुझाव उपलब्ध छैन। “यो पेजको सारांश बनाउनुहोस्” जस्तो प्रश्न वा आफ्नै प्रश्न सोधी हेर्नुहोस्।</translation>
 <translation id="4791793693640849493">यी कुराहरू खातामा सेभ गर्नुहोस्</translation>
 <translation id="4792290259143007505">TrackPoint एक्सिलेरेसन अन गर्नुहोस्</translation>
 <translation id="4792711294155034829">एउटा मामिला रिपोर्ट गर्नुहोस्...</translation>
@@ -9003,7 +8999,6 @@
 <translation id="7421293530411019405">यो ट्याब समूह छाड्ने हो?</translation>
 <translation id="7421925624202799674">पृष्ठ स्रोत &amp;हेर्नुहोस्</translation>
 <translation id="7422192691352527311">प्राथमिकताहरू...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ले समूहको नाम परिवर्तन गर्नुभयो</translation>
 <translation id="7423425410216218516">पहुँचसम्बन्धी सेटिङ <ph name="MINUTES" /> मिनेटसम्म अन हुन्छ</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> हटाउनुहोस्</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> चलाउन अनुमति दिनु पर्ने हुन्छ</translation>
@@ -9494,7 +9489,6 @@
 <translation id="7772032839648071052">पासफ्रेज पक्का</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> बारेमा</translation>
 <translation id="7773726648746946405">सत्र भण्डारण</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> यो समूहमा सामेल हुनुभयो</translation>
 <translation id="7774365994322694683">चरो</translation>
 <translation id="7774581652827321413">यो पेजको सारांश, सम्बन्धित खोज र यसका बारेमा अन्य उपयोगी जानकारी प्राप्त गर्नुहोस्</translation>
 <translation id="7774792847912242537">अत्यन्त धेरै पटक अनुरोध गरियो।</translation>
@@ -11090,7 +11084,6 @@
 <translation id="8888253246822647887">स्तरवृद्धि सम्पन्न भएपछि तपाईंको एप खुल्ने छ। स्तरवृद्धि गर्न केही बेर लाग्न सक्छ।</translation>
 <translation id="8888459276890791557">तपाईं यो साइड प्यानल पिन गरी सजिलै एक्सेस गर्न सक्नुहुन्छ</translation>
 <translation id="8889294078294184559">तपाईंले ब्राउज गरिरहँदा साइटहरूले तपाईंले यसअघि खोलेको साइटका मद्दतले तपाईं वास्तविक व्यक्ति हो कि होइन भन्ने कुरा पुष्टि गर्न Chrome को सहायता लिन सक्छन्</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ले समूहको रङ परिवर्तन गर्नुभयो</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> ले निम्न फाइल र फोल्डरहरू सम्पादन गर्न सक्छ</translation>
 <translation id="8890170499370378450">मोबाइल डेटा प्रयोग गर्दा शुल्क लाग्न सक्छ</translation>
 <translation id="8890516388109605451">स्रोतहरू</translation>
@@ -11241,7 +11234,6 @@
 <translation id="8991520179165052608">साइटले तपाईंको माइक्रोफोन प्रयोग गर्न सक्छ</translation>
 <translation id="8991694323904646277">क्यामेरा कनेक्ट गरिएको छैन</translation>
 <translation id="8991766915726096402">लोकल डेटा रिकभर गर्ने सुविधा</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> मिनेटअघि}=1{<ph name="TIME_COUNT" /> घण्टाअघि}other{<ph name="TIME_COUNT" /> दिनअघि}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - मेमोरीको प्रयोग - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">तपाईंले आफ्नो <ph name="DEVICE_TYPE" /> को पासवर्ड बिर्सनुभयो भने पनि तपाईं आफ्नो लोकल डेटा रिस्टोर गर्न सक्नुहुन्छ। तपाईंले आफ्नो Google खातामा साइन इन गर्नु पर्ने हुन्छ वा खाता रिकभर गर्ने सुविधा प्रयोग गर्नु पर्ने हुन्छ।</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> को सर्टिफिकेट ह्यास कपी गर्नुहोस्</translation>
@@ -11643,7 +11635,6 @@
 <translation id="973558314812359997">माउसको आकार</translation>
 <translation id="973788791897303708">यो ट्याब समूह भरिएको छ</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> नामक प्रमाणपत्र मेटाउनुहोस्</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ले एउटा ट्याब परिवर्तन गर्नुभयो</translation>
 <translation id="975893173032473675">अनुवाद गरिनु पर्ने भाषा</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> सच्याएर <ph name="CORRECTED_WORD" /> बनाइयो र 'अटोकरेक्ट अन्डू गर्नुहोस्' नामक डायलग देखाइयो।  सच्याइएको शब्द हेर्न अप एरो थिच्नुहोस्, बेवास्ता गर्न escape थिच्नुहोस्।</translation>
 <translation id="976572010712028687">आफू अभिभावक भएको कुरा पुष्टि गर्नुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index b378334..4614252 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Geef een profielnaam op</translation>
 <translation id="2765100602267695013">Neem contact op met je mobiele provider</translation>
 <translation id="2765217105034171413">Klein</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> heeft een tabblad verwijderd</translation>
 <translation id="2765820627968019645">Licht</translation>
 <translation id="276582196519778359">Voer je pincode voor ouderlijk toezicht in</translation>
 <translation id="2766006623206032690">Pla&amp;kken en gaan</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">Maak schijfruimte vrij om te voorkomen dat het apparaat niet meer reageert.</translation>
 <translation id="3873315167136380065">Als je dit wilt aanzetten, <ph name="BEGIN_LINK" />reset je de synchronisatie<ph name="END_LINK" /> om de wachtwoordzin voor synchronisatie te verwijderen</translation>
 <translation id="3873423927483480833">Pincodes bekijken</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> heeft een tabblad toegevoegd</translation>
 <translation id="3873915545594852654">Er is een probleem opgetreden met ARC++.</translation>
 <translation id="3874164307099183178">De Google Assistent aanzetten</translation>
 <translation id="3875511946736639169">Afbeeldingen aanzetten</translation>
@@ -4255,7 +4253,6 @@
 <translation id="3959969108528118741">Eigenaar</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Meer acties voor <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> heeft de groep verlaten</translation>
 <translation id="3963753386716096475">Een andere telefoon, tablet of beveiligingssleutel gebruiken</translation>
 <translation id="3964480518399667971">Mobiel netwerk uitzetten</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> sluiten</translation>
@@ -5377,7 +5374,6 @@
 <translation id="4789348252524569426">Kan spraakbestanden niet installeren. Je apparaat moet worden geüpdatet. Start het apparaat opnieuw op en probeer het nogmaals.</translation>
 <translation id="4789550509729954245">Melding laten zien als apparaten in de buurt delen</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Geen suggesties beschikbaar. Vraag bijvoorbeeld 'vat deze pagina samen' of stel je eigen vraag.</translation>
 <translation id="4791793693640849493">Items opslaan in account</translation>
 <translation id="4792290259143007505">TrackPoint-versnelling aanzetten</translation>
 <translation id="4792711294155034829">&amp;Een probleem melden...</translation>
@@ -9002,7 +8998,6 @@
 <translation id="7421293530411019405">Tabbladgroep verlaten?</translation>
 <translation id="7421925624202799674">Paginabron &amp;weergeven</translation>
 <translation id="7422192691352527311">Voorkeuren...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> heeft de groepsnaam veranderd</translation>
 <translation id="7423425410216218516">Zichtbaarheid staat <ph name="MINUTES" /> minuten aan</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> verwijderen</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> heeft rechten nodig om te worden uitgevoerd</translation>
@@ -9492,7 +9487,6 @@
 <translation id="7772032839648071052">Bevestig de wachtwoordzin</translation>
 <translation id="7772127298218883077">Over <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sessie-opslag</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> is lid geworden van de groep</translation>
 <translation id="7774365994322694683">Vogel</translation>
 <translation id="7774581652827321413">Krijg een paginaoverzicht, gerelateerde zoekopdrachten en andere nuttige informatie over deze pagina</translation>
 <translation id="7774792847912242537">Te veel verzoeken.</translation>
@@ -11089,7 +11083,6 @@
 <translation id="8888253246822647887">Je app wordt geopend wanneer de upgrade is voltooid. Upgrades kunnen enkele minuten duren.</translation>
 <translation id="8888459276890791557">Je kunt dit zijvenster vastzetten voor snelle toegang</translation>
 <translation id="8889294078294184559">Terwijl je browst, kunnen sites via Chrome checken en met een eerder bezochte site verifiëren dat je waarschijnlijk een echte persoon bent</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> heeft de groepskleur gewijzigd</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> kan de volgende bestanden en mappen bewerken</translation>
 <translation id="8890170499370378450">Er kunnen kosten voor mobiele data in rekening worden gebracht</translation>
 <translation id="8890516388109605451">Bronnen</translation>
@@ -11240,7 +11233,6 @@
 <translation id="8991520179165052608">Site kan je microfoon gebruiken</translation>
 <translation id="8991694323904646277">Geen camera</translation>
 <translation id="8991766915726096402">Herstel van lokale gegevens</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min geleden}=1{<ph name="TIME_COUNT" /> u geleden}other{<ph name="TIME_COUNT" /> d geleden}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Geheugengebruik - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Als je je <ph name="DEVICE_TYPE" />-wachtwoord bent vergeten, kun je je lokale gegevens nog steeds herstellen. Log hiervoor in op je Google-account of gebruik accountherstel.</translation>
 <translation id="8993198843374358393">Certificaathash kopiëren voor <ph name="CERT_NAME" /></translation>
@@ -11642,7 +11634,6 @@
 <translation id="973558314812359997">Muisgrootte</translation>
 <translation id="973788791897303708">Deze tabbladgroep is vol</translation>
 <translation id="97381968209917373">Certificaat <ph name="CERT_NAME" /> verwijderen</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> heeft een tabblad gewijzigd</translation>
 <translation id="975893173032473675">Taal om naartoe te vertalen</translation>
 <translation id="976499800099896273">Dialoogvenster voor autocorrectie ongedaan maken wordt getoond voor <ph name="TYPED_WORD" /> dat is gecorrigeerd als <ph name="CORRECTED_WORD" />.  Druk op de pijl-omhoog om te openen of op Escape om te negeren.</translation>
 <translation id="976572010712028687">Verifiëren dat je een ouder bent</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 8e717dd..4df3ee90 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -2570,7 +2570,6 @@
 <translation id="2764920001292228569">Skriv inn et profilnavn</translation>
 <translation id="2765100602267695013">Kontakt mobiloperatøren din</translation>
 <translation id="2765217105034171413">Liten</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> fjernet en fane</translation>
 <translation id="2765820627968019645">Lys</translation>
 <translation id="276582196519778359">Skriv inn PIN-koden din for foreldrekontroll</translation>
 <translation id="2766006623206032690">&amp;Lim inn og gå til</translation>
@@ -4134,7 +4133,6 @@
 <translation id="3872991219937722530">Frigjør lagringsplass for å unngå at enheten slutter å reagere.</translation>
 <translation id="3873315167136380065">For å slå dette på, <ph name="BEGIN_LINK" />tilbakestill synkroniseringen<ph name="END_LINK" /> for å fjerne passordfrasen din for synkronisering</translation>
 <translation id="3873423927483480833">Vis PIN-koder</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> la til en fane</translation>
 <translation id="3873915545594852654">Det oppsto et problem med ARC++.</translation>
 <translation id="3874164307099183178">Slå på Google-assistenten</translation>
 <translation id="3875511946736639169">Slå på bilder</translation>
@@ -4262,7 +4260,6 @@
 <translation id="3959969108528118741">Eier</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Flere handlinger for <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> forlot gruppen</translation>
 <translation id="3963753386716096475">Bruk en annen telefon, et annet nettbrett eller en annen sikkerhetsnøkkel</translation>
 <translation id="3964480518399667971">Slå av mobildata</translation>
 <translation id="3965965397408324205">Gå ut av <ph name="PROFILE_NAME" /></translation>
@@ -5385,7 +5382,6 @@
 <translation id="4789348252524569426">Kan ikke installere talefiler. Enheten må oppdateres. Start enheten på nytt, og prøv igjen.</translation>
 <translation id="4789550509729954245">Vis et varsel når enheter deler i nærheten</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ingen forslag er tilgjengelige. Prøv å spørre om ting som «oppsummer denne siden» eller stille spørsmål selv.</translation>
 <translation id="4791793693640849493">Lagre elementer i kontoen</translation>
 <translation id="4792290259143007505">Slå på TrackPoint-akselerasjon</translation>
 <translation id="4792711294155034829">&amp;Rapporter et problem</translation>
@@ -9012,7 +9008,6 @@
 <translation id="7421293530411019405">Vil du forlate fanegruppen?</translation>
 <translation id="7421925624202799674">&amp;Vis sidekilde</translation>
 <translation id="7422192691352527311">Innstillinger</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> endret gruppenavnet</translation>
 <translation id="7423425410216218516">Synlighet er på i <ph name="MINUTES" /> minutter</translation>
 <translation id="7423513079490750513">Fjern <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> trenger tillatelse til å kjøre</translation>
@@ -9503,7 +9498,6 @@
 <translation id="7772032839648071052">Bekreft passord</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Øktlagring</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ble med i gruppen</translation>
 <translation id="7774365994322694683">Fugl</translation>
 <translation id="7774581652827321413">Få et sidesammendrag, relaterte søk og annen nyttig informasjon om denne siden</translation>
 <translation id="7774792847912242537">For mange forespørsler.</translation>
@@ -11100,7 +11094,6 @@
 <translation id="8888253246822647887">Appen åpnes når oppgraderingen er ferdig. Oppgraderinger kan ta noen minutter.</translation>
 <translation id="8888459276890791557">Du kan feste dette sidepanelet for enkel tilgang</translation>
 <translation id="8889294078294184559">Når du fortsetter å surfe, kan nettsteder kontrollere denne informasjonen i Chrome og få bekreftet av nettsteder du har besøkt tidligere, at du sannsynligvis er en ekte person</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> endret gruppefargen</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> kan redigere disse filene og mappene</translation>
 <translation id="8890170499370378450">Mobildatakostnader kan påløpe</translation>
 <translation id="8890516388109605451">Kilder</translation>
@@ -11251,7 +11244,6 @@
 <translation id="8991520179165052608">Nettstedet kan bruke mikrofonen din</translation>
 <translation id="8991694323904646277">Ikke noe kamera</translation>
 <translation id="8991766915726096402">Gjenoppretting av lokale data</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{for <ph name="TIME_COUNT" /> m siden}=1{for <ph name="TIME_COUNT" /> t siden}other{for <ph name="TIME_COUNT" /> d siden}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – minnebruk – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Hvis du glemmer passordet ditt for <ph name="DEVICE_TYPE" />, kan du fremdeles gjenopprette de lokale dataene dine. Du må logge på Google-kontoen din eller bruke kontogjenoppretting.</translation>
 <translation id="8993198843374358393">Kopier sertifikathash for <ph name="CERT_NAME" /></translation>
@@ -11653,7 +11645,6 @@
 <translation id="973558314812359997">Musestørrelse</translation>
 <translation id="973788791897303708">Denne fanegruppen er full</translation>
 <translation id="97381968209917373">Slett sertifikatet <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> endret en fane</translation>
 <translation id="975893173032473675">Språket du vil oversette til</translation>
 <translation id="976499800099896273">Dialogboksen for angring av autokorrektur vises for <ph name="TYPED_WORD" />, som ble korrigert til <ph name="CORRECTED_WORD" />.  Trykk på oppoverpilen for å åpne eller Escape for å ignorere.</translation>
 <translation id="976572010712028687">Bekreft at du er en forelder</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb
index 5cc0c8c..ca8e423 100644
--- a/chrome/app/resources/generated_resources_or.xtb
+++ b/chrome/app/resources/generated_resources_or.xtb
@@ -2561,7 +2561,6 @@
 <translation id="2764920001292228569">ଏକ ପ୍ରୋଫାଇଲ ନାମ ଲେଖନ୍ତୁ</translation>
 <translation id="2765100602267695013">ଆପଣଙ୍କ ମୋବାଇଲ ସେବା ପ୍ରଦାନକାରୀଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ</translation>
 <translation id="2765217105034171413">ଛୋଟ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ଏକ ଟାବକୁ କାଢ଼ି ଦେଇଛନ୍ତି</translation>
 <translation id="2765820627968019645">ଲାଇଟ</translation>
 <translation id="276582196519778359">ବାପାମା ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ପାଇଁ ଆପଣଙ୍କର PIN ଲେଖନ୍ତୁ</translation>
 <translation id="2766006623206032690">ଲେ&amp;ପନ କରନ୍ତୁ ଓ ଯାଆନ୍ତୁ</translation>
@@ -4125,7 +4124,6 @@
 <translation id="3872991219937722530">ଡିସ୍କ ସ୍ଥାନ ଖାଲି କରନ୍ତୁ ଅନ୍ୟଥା ଡିଭାଇସ୍ କୌଣସି ପ୍ରତିକ୍ରିୟା ଦେବ ନାହିଁ।</translation>
 <translation id="3873315167136380065">ଏହା ଚାଲୁ କରିବାକୁ, ଆପଣଙ୍କର ସିଙ୍କ୍ ପାସ୍‍‍ଫ୍ରେଜ୍‍କୁ କାଢ଼ିବା ପାଇଁ <ph name="BEGIN_LINK" />ସିଙ୍କ୍‍କୁ ରିସେଟ୍ କରନ୍ତୁ<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">PIN ଦେଖାନ୍ତୁ</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ଏକ ଟାବ ଯୋଗ କରିଛନ୍ତି</translation>
 <translation id="3873915545594852654">ARC++ ସହିତ ଏକ ସମସ୍ୟା ହୋ‍ଇଛି।</translation>
 <translation id="3874164307099183178">Google Assistant ଚାଲୁ କରନ୍ତୁ</translation>
 <translation id="3875511946736639169">ଇମେଜଗୁଡ଼ିକୁ ସକ୍ଷମ କରନ୍ତୁ</translation>
@@ -4254,7 +4252,6 @@
 <translation id="3959969108528118741">ମାଲିକ</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> ପାଇଁ ଅଧିକ କାର୍ଯ୍ୟ</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ଗୋଷ୍ଠୀରୁ ବାହାରି ଯାଇଛନ୍ତି</translation>
 <translation id="3963753386716096475">ଏକ ଭିନ୍ନ ଫୋନ, ଟାବଲେଟ କିମ୍ବା ସୁରକ୍ଷା କୀ ବ୍ୟବହାର କରନ୍ତୁ</translation>
 <translation id="3964480518399667971">ସେଲ୍ୟୁଲାର୍ ନେଟୱାର୍କ ବନ୍ଦ କରନ୍ତୁ</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />ରୁ ପ୍ରସ୍ଥାନ କରନ୍ତୁ</translation>
@@ -5377,7 +5374,6 @@
 <translation id="4789348252524569426">ସ୍ପିଚ ଫାଇଲଗୁଡ଼ିକୁ ଇନଷ୍ଟଲ କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସକୁ ଅପଡେଟ କରାଯିବ ଆବଶ୍ୟକ। ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।</translation>
 <translation id="4789550509729954245">ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ସେୟାର କରୁଥିବା ବେଳେ ବିଜ୍ଞପ୍ତି ଦେଖାନ୍ତୁ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">କୌଣସି ପରାମର୍ଶ ଉପଲବ୍ଧ ନାହିଁ। “ଏହି ପୃଷ୍ଠାର ସାରାଂଶ ତିଆରି କର” ପରି ବିଷୟଗୁଡ଼ିକ କିମ୍ବା ଆପଣଙ୍କ ନିଜର ପ୍ରଶ୍ନ ପଚାରି ଦେଖନ୍ତୁ।</translation>
 <translation id="4791793693640849493">ଆକାଉଣ୍ଟରେ ଆଇଟମଗୁଡ଼ିକୁ ସେଭ କରନ୍ତୁ</translation>
 <translation id="4792290259143007505">TrackPoint ଆକ୍ସଲରେସନକୁ ସକ୍ଷମ କରନ୍ତୁ</translation>
 <translation id="4792711294155034829">ଏକ ସମସ୍ୟା ରିପୋର୍ଟ କରନ୍ତୁ...</translation>
@@ -9004,7 +9000,6 @@
 <translation id="7421293530411019405">ଟାବ ଗ୍ରୁପରୁ ବାହାରି ଯିବେ?</translation>
 <translation id="7421925624202799674">&amp;ପୃଷ୍ଠା ଉତ୍ସ ଦେଖନ୍ତୁ</translation>
 <translation id="7422192691352527311">ପସନ୍ଦ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ଗୋଷ୍ଠୀର ନାମକୁ ପରିବର୍ତ୍ତନ କରିଛନ୍ତି</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> ମିନିଟ୍ ପାଇଁ ଭିଜିବିଲିଟୀ ଚାଲୁ ଅଛି</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> କାଢ଼ି ଦିଅନ୍ତୁ</translation>
 <translation id="7423807071740419372">ଚାଲିବା ପାଇଁ <ph name="APP_NAME" /> ଅନୁମତି ଆବଶ୍ୟକ କରେ</translation>
@@ -9495,7 +9490,6 @@
 <translation id="7772032839648071052">ପାସ୍‍‍ଫ୍ରେଜ୍ ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> ବିଷୟରେ</translation>
 <translation id="7773726648746946405">ଅବଧି ଷ୍ଟୋରେଜ୍</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ଗୋଷ୍ଠୀରେ ଯୋଗ ଦେଇଛନ୍ତି</translation>
 <translation id="7774365994322694683">Bird</translation>
 <translation id="7774581652827321413">ଏକ ପୃଷ୍ଠା ସାରାଂଶ, ସମ୍ବନ୍ଧିତ ସର୍ଚ୍ଚ ଏବଂ ଏହି ପୃଷ୍ଠା ବିଷୟରେ ଅନ୍ୟ ଉପଯୋଗୀ ସୂଚନା ପାଆନ୍ତୁ</translation>
 <translation id="7774792847912242537">ଅନେକଗୁଡ଼ିଏ ଅନୁରୋଧ।</translation>
@@ -11090,7 +11084,6 @@
 <translation id="8888253246822647887">ଅପ୍‌ଗ୍ରେଡ୍ ସମାପ୍ତ ହୋଇସାରିବା ପରେ ଆପଣଙ୍କର ଆପ୍ ଖୋଲିବ। ଅପ୍‌ଗ୍ରେଡ୍ ପାଇଁ କିଛି ମିନିଟ୍ ସମୟ ଲାଗିପାରେ।</translation>
 <translation id="8888459276890791557">ସହଜ ଆକ୍ସେସ ପାଇଁ ଆପଣ ଏହି ସାଇଡ ପେନେଲକୁ ପିନ କରିପାରିବେ</translation>
 <translation id="8889294078294184559">ଆପଣ ଯେତେବେଳେ ବ୍ରାଉଜ କରିବା ଜାରି ରଖନ୍ତି, ସେତେବେଳେ ଆପଣ ଜଣେ ପ୍ରକୃତ ବ୍ୟକ୍ତି ବୋଲି ଏହି ସାଇଟଗୁଡ଼ିକ Chrome ଏବଂ ଆପଣ ପୂର୍ବରୁ ଭିଜିଟ କରିଥିବା ଏକ ସାଇଟ ସହ ଯାଞ୍ଚ କରିପାରିବ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ଗୋଷ୍ଠୀର ରଙ୍ଗକୁ ପରିବର୍ତ୍ତନ କରିଛନ୍ତି</translation>
 <translation id="8889651696183044030">ନିମ୍ନୋକ୍ତ ଫାଇଲ୍ ଏବଂ ଫୋଲ୍ଡର୍‍ଗୁଡ଼ିକୁ <ph name="ORIGIN" /> ଏଡିଟ୍ କରିପାରିବ</translation>
 <translation id="8890170499370378450">ମୋବାଇଲ ଡାଟା ଚାର୍ଜ ଲାଗୁ ହୋଇପାରେ</translation>
 <translation id="8890516388109605451">ସାଧନ</translation>
@@ -11241,7 +11234,6 @@
 <translation id="8991520179165052608">ଆପଣଙ୍କର ମାଇକ୍ରୋଫୋନ୍‌କୁ ସାଇଟ୍ ବ୍ୟବହାର କରିପାରେ</translation>
 <translation id="8991694323904646277">କୌଣସି କେମେରା ନାହିଁ</translation>
 <translation id="8991766915726096402">ସ୍ଥାନୀୟ ଡାଟା ରିକଭରି</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> ମିନିଟ ପୂର୍ବେ}=1{<ph name="TIME_COUNT" /> ଘଣ୍ଟା ପୂର୍ବେ}other{<ph name="TIME_COUNT" /> ଦିନ ପୂର୍ବେ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - ମେମୋରୀ ବ୍ୟବହାର - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ଯଦି ଆପଣ ଆପଣଙ୍କ <ph name="DEVICE_TYPE" /> ପାସୱାର୍ଡ ଭୁଲି ଯାଆନ୍ତି, ତେବେ ଆପଣ ଏବେ ବି ଆପଣଙ୍କ ସ୍ଥାନୀୟ ଡାଟାକୁ ରିଷ୍ଟୋର କରିପାରିବେ। ଆପଣଙ୍କୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସାଇନ ଇନ କରିବାକୁ ହେବ କିମ୍ବା ଆକାଉଣ୍ଟ ରିକଭରି ବ୍ୟବହାର କରିବାକୁ ହେବ।</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> ପାଇଁ ସାର୍ଟିଫିକେଟ ହାସକୁ କପି କରନ୍ତୁ</translation>
@@ -11643,7 +11635,6 @@
 <translation id="973558314812359997">ମାଉସର ଆକାର</translation>
 <translation id="973788791897303708">ଏହି ଟାବ ଗ୍ରୁପ ପୂର୍ଣ୍ଣ ଅଛି</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> ସାର୍ଟିଫିକେଟକୁ ଡିଲିଟ କରିବେ?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ଏକ ଟାବକୁ ପରିବର୍ତ୍ତନ କରିଛନ୍ତି</translation>
 <translation id="975893173032473675">ଏହି ଭାଷାରେ ଅନୁବାଦ କରାଯିବ</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" />କୁ ସଂଶୋଧନ କରି <ph name="CORRECTED_WORD" /> କରିବା ପାଇଁ 'ସ୍ୱତଃସଂଶୋଧନକୁ ପୂର୍ବବତ୍ କରନ୍ତୁ' ଡାଏଲଗ୍ ଦେଖାଯାଇଛି।  ଆକ୍ସେସ୍ କରିବାକୁ ଅପ୍ ତୀର କୀ, ଅଣଦେଖା କରିବାକୁ Escape କୀ ଦବାନ୍ତୁ।</translation>
 <translation id="976572010712028687">ଆପଣ ଜଣେ ବାପା କିମ୍ବା ମା' ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb
index 3634d8a5..7299ce9 100644
--- a/chrome/app/resources/generated_resources_pa.xtb
+++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -462,6 +462,7 @@
 <translation id="1306606229401759371">ਸੈਟਿੰਗਾਂ ਬਦਲੋ</translation>
 <translation id="1307165550267142340">ਤੁਹਾਡਾ ਪਿੰਨ ਬਣਾਇਆ ਗਿਆ</translation>
 <translation id="1307431692088049276">ਮੈਨੂੰ ਦੁਬਾਰਾ ਨਾ ਪੁੱਛਣਾ</translation>
+<translation id="130744661532298792">ਇਹ ਪੱਕਾ ਕਰਨ ਲਈ ਕਿ ਤੁਸੀਂ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਪਾਸਵਰਡਾਂ ਨੂੰ ਕਦੇ ਵੀ ਵਰਤ ਸਕੋ, ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="1307559529304613120">ਓਹ ਹੋ!  ਸਿਸਟਮ ਇਸ ਡੀਵਾਈਸ ਲਈ ਇੱਕ ਲੰਮੀ-ਮਿਆਦ ਦੀ API ਪਹੁੰਚ ਟੋਕਨ ਸਟੋਰ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।</translation>
 <translation id="1308548450293664112">ਮੈਂ ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਬਣਾਇਆ, ਰੇਡੀਓ ਬਟਨ ਗਰੁੱਪ, 3 ਵਿੱਚੋਂ 1</translation>
 <translation id="131112695174432497">ਵਿਗਿਆਪਨ ਵਿਅਕਤੀਗਤਕਰਨ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਨ ਵਾਲਾ ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ</translation>
@@ -2577,7 +2578,6 @@
 <translation id="2764920001292228569">ਪ੍ਰੋਫਾਈਲ ਨਾਮ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="2765100602267695013">ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਮੋਬਾਈਲ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ</translation>
 <translation id="2765217105034171413">ਛੋਟਾ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਇੱਕ ਟੈਬ ਹਟਾ ਦਿੱਤੀ</translation>
 <translation id="2765820627968019645">ਹਲਕਾ</translation>
 <translation id="276582196519778359">ਮਾਪਿਆਂ ਦੇ ਕੰਟਰੋਲਾਂ ਲਈ ਆਪਣਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ</translation>
 <translation id="2766006623206032690">ਪੇ&amp;ਸਟ ਕਰੋ ਅਤੇ ਜਾਓ</translation>
@@ -2841,6 +2841,7 @@
 <translation id="2953210795988451570">ਸੁਰੱਖਿਆ ਅੱਪਡੇਟ ਸਮਾਪਤ ਹੋ ਗਏ ਹਨ। ਨਵੀਂ Chromebook 'ਤੇ ਅੱਪਗ੍ਰੇਡ ਕਰੋ।</translation>
 <translation id="2953218713108551165"><ph name="SITE" /> ਲਈ ਸੂਚਨਾਵਾਂ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ। ਤੁਹਾਡੀ ਅਗਲੀ ਫੇਰੀ 'ਤੇ ਤੁਹਾਡੇ ਤੋਂ ਦੁਬਾਰਾ ਪੁੱਛਿਆ ਜਾਵੇਗਾ।</translation>
 <translation id="2956070239128776395">ਸੈਕਸ਼ਨ ਨੂੰ ਗਰੁੱਪ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਵਿਕਾਸਕਾਰ ਮੋਡ ਨੂੰ ਚਾਲੂ ਕਰੋ, ਜਿਸਦੀ Chrome ਵੈੱਬ ਸਟੋਰ ਵੱਲੋਂ ਸਮੀਖਿਆ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।</translation>
 <translation id="2958721676848865875">ਪੈਕ ਐਕਸਟੈਂਸ਼ਨ ਚਿਤਾਵਨੀ</translation>
 <translation id="2959127025785722291">ਕੋਈ ਗੜਬੜ ਹੋਈ। ਸਕੈਨ ਦਾ ਕੰਮ ਪੂਰਾ ਨਹੀਂ ਹੋ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="2959474507964749987">ਇਹ ਇਨਕ੍ਰਿਪਟਡ ਫ਼ਾਈਲ ਵਾਇਰਸ ਜਾਂ ਮਾਲਵੇਅਰ ਹੋ ਸਕਦੀ ਹੈ।<ph name="LINE_BREAK" />ਇਹ ਦੇਖਣ ਲਈ ਕਿ ਕੀ ਇਹ ਅਸੁਰੱਖਿਅਤ ਹੈ ਜਾਂ ਨਹੀਂ, ਤੁਸੀਂ ਫ਼ਾਈਲ ਅਤੇ ਪਾਸਵਰਡ ਨੂੰ Google ਸੁਰੱਖਿਅਤ ਬ੍ਰਾਊਜ਼ਿੰਗ 'ਤੇ ਭੇਜ ਸਕਦੇ ਹੋ। ਸਕੈਨ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਕੁਝ ਸਕਿੰਟਾਂ ਦਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ।<ph name="LINE_BREAK" />ਸਕੈਨ ਕਰਨ ਲਈ, ਫ਼ਾਈਲ ਦਾ ਪਾਸਵਰਡ ਸ਼ਾਮਲ ਕਰੋ।</translation>
@@ -4142,7 +4143,6 @@
 <translation id="3872991219937722530">ਡਿਸਕ ਜਗ੍ਹਾ ਨੂੰ ਖਾਲੀ ਕਰੋ ਨਹੀਂ ਤਾਂ ਡੀਵਾਈਸ ਪ੍ਰਤੀਕਿਰਿਆਹੀਣ ਬਣ ਜਾਵੇਗੀ।</translation>
 <translation id="3873315167136380065">ਇਸਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ, ਆਪਣਾ ਸਿੰਕ ਪਾਸਫਰੇਜ਼ ਹਟਾਉਣ ਵਾਸਤੇ <ph name="BEGIN_LINK" />ਸਿੰਕ ਰੀਸੈੱਟ ਕਰੋ<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">ਪਿੰਨਾਂ ਦਿਖਾਓ</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਇੱਕ ਟੈਬ ਸ਼ਾਮਲ ਕੀਤੀ</translation>
 <translation id="3873915545594852654">ARC++ ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਆਈ।</translation>
 <translation id="3874164307099183178">Google Assistant ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="3875511946736639169">ਚਿੱਤਰਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
@@ -4272,7 +4272,6 @@
 <translation id="3959969108528118741">ਮਾਲਕ</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> ਲਈ ਹੋਰ ਕਾਰਵਾਈਆਂ</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਗਰੁੱਪ ਛੱਡ ਦਿੱਤਾ</translation>
 <translation id="3963753386716096475">ਕੋਈ ਵੱਖਰਾ ਫ਼ੋਨ, ਟੈਬਲੈੱਟ ਜਾਂ ਸੁਰੱਖਿਆ ਕੁੰਜੀ ਵਰਤੋ</translation>
 <translation id="3964480518399667971">ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਨੂੰ ਬੰਦ ਕਰੋ</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> ਤੋਂ ਬਾਹਰ ਜਾਓ</translation>
@@ -4341,6 +4340,7 @@
 <translation id="4001540981461989979">ਕਰਸਰ ਦੇ ਇੱਧਰ-ਉੱਧਰ ਹੋਣ 'ਤੇ ਉਸਨੂੰ ਉਜਾਗਰ ਕਰੋ</translation>
 <translation id="4002347779798688515">ਜੇ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਪ੍ਰਦਾਨਕ ਲਾਕ ਹੈ, ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਡਾਊਨਲੋਡ ਕੀਤਾ ਪ੍ਰੋਫਾਈਲ ਵਰਤੋਂਯੋਗ ਨਾ ਹੋਵੇ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਪ੍ਰਦਾਨਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।</translation>
 <translation id="4002440992267487163">ਪਿੰਨ ਸੈੱਟਅੱਪ</translation>
+<translation id="4003617970184602156">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਪਾਸਵਰਡਾਂ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="4005817994523282006">ਸਮਾਂ-ਖੇਤਰ ਦੀ ਪਛਾਣ ਵਿਧੀ</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{ਇਸ ਨਾਲ ਗਰੁੱਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੋਂ ਪੱਕੇ ਤੌਰ 'ਤੇ ਮਿਟ ਜਾਵੇਗਾ।}one{ਇਸ ਨਾਲ ਗਰੁੱਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੋਂ ਪੱਕੇ ਤੌਰ 'ਤੇ ਮਿਟ ਜਾਵੇਗਾ।}other{ਇਸ ਨਾਲ ਗਰੁੱਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੋਂ ਪੱਕੇ ਤੌਰ 'ਤੇ ਮਿਟ ਜਾਣਗੇ।}}</translation>
 <translation id="4010036441048359843">'ਉਜਾਗਰ ਕਰੋ' ਨੂੰ ਚਾਲੂ ਕਰੋ</translation>
@@ -5395,7 +5395,6 @@
 <translation id="4789348252524569426">ਬੋਲੀ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
 <translation id="4789550509729954245">ਡੀਵਾਈਸਾਂ ਦੇ ਨਜ਼ਦੀਕੀ ਸਾਂਝਾਕਰਨ ਕਰਨ 'ਤੇ ਸੂਚਨਾ ਦਿਖਾਓ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">ਕੋਈ ਸੁਝਾਅ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। “ਇਸ ਪੰਨੇ ਦਾ ਸਾਰਾਂਸ਼ ਦਿਓ” ਵਰਗੀ ਕੋਈ ਚੀਜ਼ ਕਰਨ ਲਈ ਕਹੋ ਜਾਂ ਆਪਣਾ ਕੋਈ ਹੋਰ ਸਵਾਲ ਪੁੱਛੋ।</translation>
 <translation id="4791793693640849493">ਆਈਟਮਾਂ ਨੂੰ ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ</translation>
 <translation id="4792290259143007505">TrackPoint ਐਕਸੈੱਲਰੇਸ਼ਨ ਚਾਲੂ ਕਰੋ</translation>
 <translation id="4792711294155034829">&amp;ਇੱਕ ਸਮੱਸਿਆ ਦੀ ਰਿਪੋਰਟ ਕਰੋ...</translation>
@@ -6973,6 +6972,7 @@
 <translation id="5932224571077948991">ਸਾਈਟ ਦਖਲਅੰਦਾਜ਼ੀ ਜਾਂ ਗੁਮਰਾਹ ਕਰਨ ਵਾਲੇ ਵਿਗਿਆਪਨ ਦਿਖਾਉਂਦੀ ਹੈ</translation>
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> ਦਾ USB ਡੀਵਾਈਸ</translation>
 <translation id="5932441198730183141">ਤੁਹਾਡੇ ਕੋਲ ਇਸ Google Meet ਹਾਰਡਵੇਅਰ ਡੀਵਾਈਸ ਨੂੰ ਦਰਜ ਕਰਨ ਲਈ ਲੋੜੀਂਦੇ ਉਪਲਬਧ ਲਾਇਸੰਸ ਨਹੀਂ ਹਨ। ਕਿਰਪਾ ਕਰਕੇ ਹੋਰ ਲਾਇਸੰਸ ਖਰੀਦਣ ਲਈ ਵਿਕਰੀ ਵਿਭਾਗ ਨੂੰ ਸੰਪਰਕ ਕਰੋ। ਜੇ ਤੁਹਾਨੂੰ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਇਹ ਸੁਨੇਹਾ ਕਿਸੇ ਗੜਬੜ ਕਰਕੇ ਦਿਸ ਰਿਹਾ ਹੈ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਸਹਾਇਤਾ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।</translation>
+<translation id="593271375210025655">ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਵਿਕਾਸਕਾਰ ਮੋਡ ਨੂੰ ਚਾਲੂ ਕਰੋ, ਪਰ ਸਿਰਫ਼ ਐਕਸਟੈਂਸ਼ਨ 'ਤੇ ਭਰੋਸਾ ਹੋਣ 'ਤੇ ਹੀ ਚਾਲੂ ਕਰੋ। ਇਸ ਵਿੱਚ ਪ੍ਰਯੋਗਮਈ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਇਸਦੀ Chrome ਵੈੱਬ ਸਟੋਰ ਵੱਲੋਂ ਸਮੀਖਿਆ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।</translation>
 <translation id="5932881020239635062">ਲੜੀ</translation>
 <translation id="5933376509899483611">ਸਮਾਂਜ਼ੋਨ</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> ਵੱਲੋਂ ਤੁਹਾਡਾ ਕੈਮਰਾ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ</translation>
@@ -7000,6 +7000,7 @@
 <translation id="5948476936444935795">ਆਯਾਤ ਰੱਦ ਕਰੋ</translation>
 <translation id="5948536763493709626">ਕੋਈ ਕੀ-ਬੋਰਡ ਜਾਂ ਮਾਊਸ ਕਨੈਕਟ ਕਰੋ ਜਾਂ ਆਪਣੀ ਟੱਚਸਕ੍ਰੀਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੈੱਟਅੱਪ ਕਰਨਾ ਜਾਰੀ ਰੱਖੋ। ਜੇ ਤੁਸੀਂ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਜੋੜਾਬੱਧ ਕਰਨ ਲਈ ਤਿਆਰ ਹਨ।</translation>
 <translation id="5949544233750246342">ਫ਼ਾਈਲ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੇ ਅਸਮਰੱਥ</translation>
+<translation id="5949795028157144515">ਵਿਕਾਸਕਾਰ ਮੋਡ ਬੰਦ ਹੈ। ਕੁਝ ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਬੰਦ ਕੀਤਾ ਗਿਆ।</translation>
 <translation id="594993197557058302">1-4 ਸੋਧਕ ਕੁੰਜੀਆਂ (ctrl, alt, shift, search ਜਾਂ launcher) ਅਤੇ 1 ਹੋਰ ਕੁੰਜੀ ਨੂੰ ਦਬਾਓ। ਤੁਸੀਂ ਇਕਹਿਰੀ ਕੁੰਜੀ ਨੂੰ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ।</translation>
 <translation id="5950762317146173294">ਇਹ ਫ਼ਾਈਲ ਵਾਇਰਸ ਜਾਂ ਮਾਲਵੇਅਰ ਹੋ ਸਕਦੀ ਹੈ</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> ਫ਼ੌਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ</translation>
@@ -9026,7 +9027,6 @@
 <translation id="7421293530411019405">ਕੀ ਟੈਬ ਗਰੁੱਪ ਨੂੰ ਛੱਡਣਾ ਹੈ?</translation>
 <translation id="7421925624202799674">&amp;ਸਫ਼ਾ ਸ੍ਰੋਤ ਦੇਖੋ</translation>
 <translation id="7422192691352527311">ਤਰਜੀਹਾਂ...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਗਰੁੱਪ ਦਾ ਨਾਮ ਬਦਲ ਦਿੱਤਾ</translation>
 <translation id="7423425410216218516">ਦਿਖਣਯੋਗਤਾ <ph name="MINUTES" /> ਮਿੰਟ ਲਈ ਚਾਲੂ ਹੈ</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ਨੂੰ ਹਟਾਓ</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ਨੂੰ ਚਲਾਉਣ ਲਈ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ</translation>
@@ -9517,7 +9517,6 @@
 <translation id="7772032839648071052">ਪਾਸਫਰੇਜ਼ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> ਬਾਰੇ</translation>
 <translation id="7773726648746946405">ਸੈਸ਼ਨ ਸਟੋਰੇਜ</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> ਗਰੁੱਪ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਏ</translation>
 <translation id="7774365994322694683">ਪੰਛੀ</translation>
 <translation id="7774581652827321413">ਇਸ ਪੰਨੇ ਬਾਰੇ ਪੰਨੇ ਦਾ ਸਾਰਾਂਸ਼, ਸੰਬੰਧਿਤ ਖੋਜਾਂ ਅਤੇ ਹੋਰ ਲਾਹੇਵੰਦ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ</translation>
 <translation id="7774792847912242537">ਬਹੁਤ ਜ਼ਿਆਦਾ ਬੇਨਤੀਆਂ।</translation>
@@ -11113,7 +11112,6 @@
 <translation id="8888253246822647887">ਤੁਹਾਡੀ ਐਪ ਅੱਪਗ੍ਰੇਡ ਦੇ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਖੁੱਲ੍ਹੇਗੀ। ਅੱਪਗ੍ਰੇਡ ਹੋਣ ਵਿੱਚ ਕੁਝ ਮਿੰਟ ਲੱਗ ਸਕਦੇ ਹਨ।</translation>
 <translation id="8888459276890791557">ਆਸਾਨ ਪਹੁੰਚ ਲਈ ਤੁਸੀਂ ਇਸ ਸਾਈਡ ਪੈਨਲ ਨੂੰ ਪਿੰਨ ਕਰ ਸਕਦੇ ਹੋ</translation>
 <translation id="8889294078294184559">ਤੁਸੀਂ ਜਿਵੇਂ ਬ੍ਰਾਊਜ਼ਿੰਗ ਕਰਨਾ ਜਾਰੀ ਰੱਖਦੇ ਹੋ, ਸਾਈਟਾਂ ਇਸ ਬਾਰੇ Chrome ਨਾਲ ਜਾਂਚ ਕਰ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਦੇਖੀਆਂ ਗਈਆਂ ਪਿਛਲੀਆਂ ਸਾਈਟਾਂ ਨਾਲ ਇਸ ਗੱਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦੀਆਂ ਹਨ ਕਿ ਤੁਸੀਂ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਅਸਲ ਵਿਅਕਤੀ ਹੋ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਗਰੁੱਪ ਦਾ ਰੰਗ ਬਦਲ ਦਿੱਤਾ</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> ਸਾਈਟ ਅੱਗੇ ਦਿੱਤੀਆਂ ਫ਼ਾਈਲਾਂ ਅਤੇ ਫੋਲਡਰਾਂ ਦਾ ਸੰਪਾਦਨ ਕਰ ਸਕਦੀ ਹੈ</translation>
 <translation id="8890170499370378450">ਸ਼ਾਇਦ ਮੋਬਾਈਲ ਡਾਟੇ ਸੰਬੰਧੀ ਖਰਚਾ ਦੇਣਾ ਪਵੇ</translation>
 <translation id="8890516388109605451">ਸਰੋਤ</translation>
@@ -11264,7 +11262,6 @@
 <translation id="8991520179165052608">ਸਾਈਟ ਤੁਹਾਡੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀ ਹੈ</translation>
 <translation id="8991694323904646277">ਕੋਈ ਕੈਮਰਾ ਨਹੀਂ</translation>
 <translation id="8991766915726096402">ਸਥਾਨਕ ਡਾਟਾ ਰਿਕਵਰੀ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />ਮਿੰਟ ਪਹਿਲਾਂ}=1{<ph name="TIME_COUNT" />ਘੰਟਾ ਪਹਿਲਾਂ}other{<ph name="TIME_COUNT" />ਦਿਨ ਪਹਿਲਾਂ}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - ਮੈਮੋਰੀ ਵਰਤੋਂ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ਜੇ ਤੁਸੀਂ ਆਪਣਾ <ph name="DEVICE_TYPE" /> ਦਾ ਪਾਸਵਰਡ ਭੁੱਲ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਹਾਲੇ ਵੀ ਆਪਣੇ ਸਥਾਨਕ ਡਾਟਾ ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਹਾਨੂੰ ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ-ਇਨ ਕਰਨ ਜਾਂ ਖਾਤਾ ਰਿਕਵਰੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> ਦੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹੈਸ਼ ਨੂੰ ਕਾਪੀ ਕਰੋ</translation>
@@ -11666,7 +11663,6 @@
 <translation id="973558314812359997">ਮਾਊਸ ਦਾ ਆਕਾਰ</translation>
 <translation id="973788791897303708">ਇਹ ਟੈਬ ਗਰੁੱਪ ਭਰ ਗਿਆ ਹੈ</translation>
 <translation id="97381968209917373">ਪ੍ਰਮਾਣ-ਪੱਤਰ <ph name="CERT_NAME" /> ਮਿਟਾਓ</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ਨੇ ਟੈਬ ਨੂੰ ਬਦਲ ਦਿੱਤਾ</translation>
 <translation id="975893173032473675">ਉਹ ਭਾਸ਼ਾ ਜਿਸ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰਨਾ ਹੈ</translation>
 <translation id="976499800099896273">ਸਵੈ-ਸੁਧਾਰ ਅਣਕੀਤਾ ਵਿੰਡੋ ਨੂੰ <ph name="TYPED_WORD" /> ਨੂੰ ਸਹੀ ਕਰਕੇ <ph name="CORRECTED_WORD" /> ਕਰਨ ਲਈ ਦਿਖਾਇਆ ਗਿਆ ਹੈ।  ਪਹੁੰਚ ਕਰਨ ਲਈ ਉੱਪਰ ਤੀਰ ਕੁੰਜੀ, ਅਣਡਿੱਠ ਕਰਨ ਲਈ escape ਦਬਾਓ।</translation>
 <translation id="976572010712028687">ਆਪਣੇ ਮਾਂ-ਪਿਓ ਹੋਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 55c36591..edaf7025 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2551,7 +2551,6 @@
 <translation id="2764920001292228569">Wpisz nazwę profilu</translation>
 <translation id="2765100602267695013">Skontaktuj się z operatorem komórkowym</translation>
 <translation id="2765217105034171413">Mały</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> usunął(-ęła) kartę</translation>
 <translation id="2765820627968019645">Jasny</translation>
 <translation id="276582196519778359">Wpisz kod PIN kontroli rodzicielskiej</translation>
 <translation id="2766006623206032690">Wk&amp;lej i otwórz</translation>
@@ -4111,7 +4110,6 @@
 <translation id="3872991219937722530">Zwolnij miejsce na dysku, ponieważ w przeciwnym razie urządzenie przestanie odpowiadać.</translation>
 <translation id="3873315167136380065">Aby włączyć tę funkcję, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /> w celu usunięcia hasła wielowyrazowego do synchronizacji</translation>
 <translation id="3873423927483480833">Pokaż kody PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> dodał(a) kartę</translation>
 <translation id="3873915545594852654">Wystąpił problem z ARC++.</translation>
 <translation id="3874164307099183178">Włącz Asystenta Google</translation>
 <translation id="3875511946736639169">Włącz obrazy</translation>
@@ -4241,7 +4239,6 @@
 <translation id="3959969108528118741">Właściciel</translation>
 <translation id="3960566196862329469">Konfiguracja ONC</translation>
 <translation id="3961005895395968120">Więcej działań dotyczących: <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> opuścił(a) grupę</translation>
 <translation id="3963753386716096475">Użyj innego telefonu, tabletu lub klucza bezpieczeństwa</translation>
 <translation id="3964480518399667971">Wyłącz sieć komórkową</translation>
 <translation id="3965965397408324205">Zamknij: <ph name="PROFILE_NAME" /></translation>
@@ -5364,7 +5361,6 @@
 <translation id="4789348252524569426">Nie udało się zainstalować plików z mową. Urządzenie wymaga aktualizacji. Uruchom je ponownie i spróbuj jeszcze raz.</translation>
 <translation id="4789550509729954245">Pokazuj powiadomienie, gdy urządzenia udostępniają coś w pobliżu</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Brak dostępnych sugestii. Poproś o coś, na przykład: „podsumuj tę stronę”, albo zadaj pytanie.</translation>
 <translation id="4791793693640849493">Zapisuj elementy na koncie</translation>
 <translation id="4792290259143007505">Włącz przyspieszenie TrackPointa</translation>
 <translation id="4792711294155034829">&amp;Zgłaszanie problemu...</translation>
@@ -8993,7 +8989,6 @@
 <translation id="7421293530411019405">Opuścić grupę kart?</translation>
 <translation id="7421925624202799674">&amp;Wyświetl źródło strony</translation>
 <translation id="7422192691352527311">Ustawienia...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> zmienił(a) nazwę grupy</translation>
 <translation id="7423425410216218516">Widoczność jest włączona na <ph name="MINUTES" /> min</translation>
 <translation id="7423513079490750513">Usuń: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> wymaga pozwolenia na uruchomienie</translation>
@@ -9483,7 +9478,6 @@
 <translation id="7772032839648071052">Potwierdź hasło wielowyrazowe</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> – informacje</translation>
 <translation id="7773726648746946405">Przechowywanie sesji</translation>
-<translation id="7773887159761725143">Do grupy dołączył użytkownik <ph name="MEMBER_FIRST_NAME" /></translation>
 <translation id="7774365994322694683">Ptak</translation>
 <translation id="7774581652827321413">Zobacz podsumowanie strony, podobne wyszukiwania i inne przydatne informacje na jej temat</translation>
 <translation id="7774792847912242537">Zbyt wiele żądań.</translation>
@@ -11080,7 +11074,6 @@
 <translation id="8888253246822647887">Aplikacja otworzy się po zakończeniu uaktualnienia. Może to potrwać kilka minut.</translation>
 <translation id="8888459276890791557">Możesz przypiąć ten panel boczny, aby mieć do niego łatwy dostęp</translation>
 <translation id="8889294078294184559">Witryny, które przeglądasz, mogą sprawdzać te informacje w Chrome i uzyskiwać potwierdzenie z wcześniej odwiedzonej witryny, że prawdopodobnie jesteś prawdziwą osobą.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> zmienił(a) kolor grupy</translation>
 <translation id="8889651696183044030">Strona <ph name="ORIGIN" /> może edytować te pliki i foldery</translation>
 <translation id="8890170499370378450">Mogą się z tym wiązać opłaty</translation>
 <translation id="8890516388109605451">Źródła</translation>
@@ -11231,7 +11224,6 @@
 <translation id="8991520179165052608">Strona może używać mikrofonu</translation>
 <translation id="8991694323904646277">Brak aparatu</translation>
 <translation id="8991766915726096402">Odzyskiwanie danych lokalnych</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min temu}=1{<ph name="TIME_COUNT" /> godz. temu}few{<ph name="TIME_COUNT" /> d temu}many{<ph name="TIME_COUNT" /> d temu}other{<ph name="TIME_COUNT" /> d temu}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – wykorzystanie pamięci – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Jeśli zapomnisz hasło do urządzenia <ph name="DEVICE_TYPE" />, nadal możesz przywrócić dane lokalne. Musisz zalogować się na swoje konto Google lub skorzystać z funkcji odzyskiwania konta.</translation>
 <translation id="8993198843374358393">Skopiuj hasz certyfikatu <ph name="CERT_NAME" /></translation>
@@ -11630,7 +11622,6 @@
 <translation id="973558314812359997">Rozmiar myszy</translation>
 <translation id="973788791897303708">Ta grupa kart jest pełna</translation>
 <translation id="97381968209917373">Usuń certyfikat <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> zmienił(a) kartę</translation>
 <translation id="975893173032473675">Język docelowy tłumaczenia</translation>
 <translation id="976499800099896273">Wyświetlane jest okno cofania autokorekty dla słowa <ph name="TYPED_WORD" /> poprawionego na <ph name="CORRECTED_WORD" />.  Naciśnij strzałkę w górę, by przejść do tego okna, albo Escape, by je zignorować.</translation>
 <translation id="976572010712028687">Pozwól nam zweryfikować, czy jesteś rodzicem</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 7951905d..d9293cf 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Insira um nome de perfil</translation>
 <translation id="2765100602267695013">Entre em contato com sua operadora de rede móvel</translation>
 <translation id="2765217105034171413">Pequeno</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> removeu uma guia</translation>
 <translation id="2765820627968019645">Claro</translation>
 <translation id="276582196519778359">Digite o PIN do controle da família</translation>
 <translation id="2766006623206032690">Co&amp;lar e ir</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Libere espaço em disco, ou o dispositivo deixará de responder.</translation>
 <translation id="3873315167136380065">Para ativar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> e remova sua senha longa de sincronização</translation>
 <translation id="3873423927483480833">Mostrar PINs</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> adicionou uma guia</translation>
 <translation id="3873915545594852654">Ocorreu um problema com o ARC++.</translation>
 <translation id="3874164307099183178">Ativar o Google Assistente</translation>
 <translation id="3875511946736639169">Ativar imagens</translation>
@@ -4271,7 +4269,6 @@
 <translation id="3959969108528118741">Proprietário</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Mais ações para o <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> saiu do grupo</translation>
 <translation id="3963753386716096475">Usar um smartphone, tablet ou chave de segurança diferente</translation>
 <translation id="3964480518399667971">Desativar a rede celular</translation>
 <translation id="3965965397408324205">Sair de <ph name="PROFILE_NAME" /></translation>
@@ -5394,7 +5391,6 @@
 <translation id="4789348252524569426">Não foi possível instalar arquivos de fala. Seu dispositivo precisa ser atualizado. Reinicie o dispositivo e tente novamente.</translation>
 <translation id="4789550509729954245">Mostrar notificação quando dispositivos estiverem compartilhando itens por perto</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nenhuma sugestão disponível. Tente pedir algo como "resuma esta página" ou faça sua própria pergunta.</translation>
 <translation id="4791793693640849493">Salvar itens na conta</translation>
 <translation id="4792290259143007505">Ativar aceleração do TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Informar um problema...</translation>
@@ -9027,7 +9023,6 @@
 <translation id="7421293530411019405">Sair do grupo de guias?</translation>
 <translation id="7421925624202799674">&amp;Exibir código fonte da página</translation>
 <translation id="7422192691352527311">Preferências...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> mudou o nome do grupo</translation>
 <translation id="7423425410216218516">A visibilidade está ativada por <ph name="MINUTES" /> minutos</translation>
 <translation id="7423513079490750513">Remover <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">O app <ph name="APP_NAME" /> precisa de permissão para ser executado</translation>
@@ -9518,7 +9513,6 @@
 <translation id="7772032839648071052">Confirmar senha</translation>
 <translation id="7772127298218883077">Sobre o <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Armazenamento da sessão</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> entrou no grupo</translation>
 <translation id="7774365994322694683">Pássaro</translation>
 <translation id="7774581652827321413">Receba um resumo da página, pesquisas relacionadas e outras informações úteis</translation>
 <translation id="7774792847912242537">Excesso de solicitações.</translation>
@@ -11116,7 +11110,6 @@
 <translation id="8888253246822647887">O app será aberto após a conclusão do upgrade. Os upgrades podem levar alguns minutos.</translation>
 <translation id="8888459276890791557">Fixe este painel lateral para facilitar o acesso</translation>
 <translation id="8889294078294184559">Conforme você navega, eles podem verificar com o navegador e o site visitado anteriormente que você é uma pessoa real</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> mudou a cor do grupo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> pode editar os arquivos e as pastas a seguir</translation>
 <translation id="8890170499370378450">Sujeito a cobrança para dados móveis</translation>
 <translation id="8890516388109605451">Fontes</translation>
@@ -11267,7 +11260,6 @@
 <translation id="8991520179165052608">O site pode usar seu microfone</translation>
 <translation id="8991694323904646277">Sem câmera</translation>
 <translation id="8991766915726096402">Recuperação de dados locais</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Há <ph name="TIME_COUNT" />min}=1{Há <ph name="TIME_COUNT" />h}one{Há <ph name="TIME_COUNT" /> d}other{Há <ph name="TIME_COUNT" /> d}}</translation>
 <translation id="8992671062738341478">Uso da memória em <ph name="WINDOW_TITLE" />: <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Se você esquecer a senha do <ph name="DEVICE_TYPE" />, ainda poderá restaurar seus dados locais. Faça login na sua Conta do Google ou use a recuperação de conta.</translation>
 <translation id="8993198843374358393">Copiar hash do certificado para <ph name="CERT_NAME" /></translation>
@@ -11669,7 +11661,6 @@
 <translation id="973558314812359997">Tamanho do mouse</translation>
 <translation id="973788791897303708">Este grupo de guias está cheio</translation>
 <translation id="97381968209917373">Excluir o certificado <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> mudou uma guia</translation>
 <translation id="975893173032473675">Traduzir para</translation>
 <translation id="976499800099896273">Caixa de diálogo exibida para desfazer a correção automática de <ph name="TYPED_WORD" /> para <ph name="CORRECTED_WORD" />.  Pressione a seta para cima para acessar ou "Esc" para ignorar.</translation>
 <translation id="976572010712028687">Confirme que você é o familiar responsável</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 056863c..5abfebd3 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">Introduza um nome de perfil</translation>
 <translation id="2765100602267695013">Contacte o seu fornecedor de serviços móveis</translation>
 <translation id="2765217105034171413">Pequeno</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> removeu um separador</translation>
 <translation id="2765820627968019645">Claro</translation>
 <translation id="276582196519778359">Introduza o PIN para os controlos parentais</translation>
 <translation id="2766006623206032690">Co&amp;lar e ir</translation>
@@ -4128,7 +4127,6 @@
 <translation id="3872991219937722530">Liberte espaço em disco ou o dispositivo deixará de responder.</translation>
 <translation id="3873315167136380065">Para ativar isto, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /> para remover a frase de acesso de sincronização.</translation>
 <translation id="3873423927483480833">Mostrar PINs</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> adicionou um separador</translation>
 <translation id="3873915545594852654">Ocorreu um problema com o ARC++.</translation>
 <translation id="3874164307099183178">Ativar Assistente Google</translation>
 <translation id="3875511946736639169">Ativar imagens</translation>
@@ -4258,7 +4256,6 @@
 <translation id="3959969108528118741">Proprietário</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Mais ações para <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> saiu do grupo</translation>
 <translation id="3963753386716096475">Usar um telemóvel, um tablet ou uma chave de segurança diferente</translation>
 <translation id="3964480518399667971">Desativar rede móvel</translation>
 <translation id="3965965397408324205">Sair de <ph name="PROFILE_NAME" /></translation>
@@ -5381,7 +5378,6 @@
 <translation id="4789348252524569426">Não é possível instalar os ficheiros de voz. É preciso atualizar o dispositivo. Reinicie o dispositivo e tente novamente.</translation>
 <translation id="4789550509729954245">Mostrar notificação quando os dispositivos estiverem a partilhar nas proximidades</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Não existem sugestões disponíveis. Experimente fazer pedidos como "resumir esta página" ou a sua própria pergunta.</translation>
 <translation id="4791793693640849493">Guarde itens na conta</translation>
 <translation id="4792290259143007505">Ativar aceleração do TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Comunicar um problema...</translation>
@@ -9012,7 +9008,6 @@
 <translation id="7421293530411019405">Sair do grupo de separadores?</translation>
 <translation id="7421925624202799674">&amp;Ver Origem da Página</translation>
 <translation id="7422192691352527311">Preferências...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> alterou o nome do grupo</translation>
 <translation id="7423425410216218516">A visibilidade está ativada durante <ph name="MINUTES" /> minutos.</translation>
 <translation id="7423513079490750513">Remover <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">A app <ph name="APP_NAME" /> necessita de autorização para ser executada</translation>
@@ -9503,7 +9498,6 @@
 <translation id="7772032839648071052">Confirmar frase de acesso</translation>
 <translation id="7772127298218883077">Acerca do <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Armazenamento da sessão</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> aderiu ao grupo</translation>
 <translation id="7774365994322694683">Pássaro</translation>
 <translation id="7774581652827321413">Veja um resumo da página, pesquisas relacionadas e outras informações úteis acerca desta página</translation>
 <translation id="7774792847912242537">Demasiados pedidos.</translation>
@@ -11100,7 +11094,6 @@
 <translation id="8888253246822647887">A aplicação será aberta quando a atualização estiver concluída. As atualizações podem demorar alguns minutos.</translation>
 <translation id="8888459276890791557">Pode fixar este painel lateral para um acesso fácil</translation>
 <translation id="8889294078294184559">À medida que navega, os sites podem verificar com o Chrome e validar com um site anterior que tenha visitado que provavelmente é uma pessoa real</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> alterou a cor do grupo</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> pode editar os seguintes ficheiros e pastas</translation>
 <translation id="8890170499370378450">Pode incorrer em custos de dados móveis</translation>
 <translation id="8890516388109605451">Fontes</translation>
@@ -11251,7 +11244,6 @@
 <translation id="8991520179165052608">O site pode utilizar o microfone.</translation>
 <translation id="8991694323904646277">Nenhuma câmara</translation>
 <translation id="8991766915726096402">Recuperação de dados locais</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Há <ph name="TIME_COUNT" /> min}=1{Há <ph name="TIME_COUNT" /> h}other{Há <ph name="TIME_COUNT" /> dias}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Utilização de memória – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Caso se esqueça da sua palavra-passe do <ph name="DEVICE_TYPE" />, ainda pode restaurar os seus dados locais. Vai ter de iniciar sessão na sua Conta Google ou usar a recuperação de conta.</translation>
 <translation id="8993198843374358393">Copiar hash do certificado <ph name="CERT_NAME" /></translation>
@@ -11653,7 +11645,6 @@
 <translation id="973558314812359997">Tamanho do rato</translation>
 <translation id="973788791897303708">Este grupo de separadores está cheio</translation>
 <translation id="97381968209917373">Eliminar certificado <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> alterou um separador</translation>
 <translation id="975893173032473675">Idioma de destino da tradução</translation>
 <translation id="976499800099896273">A caixa de diálogo de anulação da correção automática é apresentada para a palavra <ph name="TYPED_WORD" /> corrigida para <ph name="CORRECTED_WORD" />.  Prima a seta para cima para aceder, Esc para ignorar.</translation>
 <translation id="976572010712028687">Valide que é um dos pais</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index d159c43..0fa9f762 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -2564,7 +2564,6 @@
 <translation id="2764920001292228569">Introdu un nume de profil</translation>
 <translation id="2765100602267695013">Contactează furnizorul de servicii mobile</translation>
 <translation id="2765217105034171413">Mic</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> a eliminat o filă</translation>
 <translation id="2765820627968019645">Luminos</translation>
 <translation id="276582196519778359">Introdu codul PIN pentru control parental</translation>
 <translation id="2766006623206032690">In&amp;serează și accesează</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">Eliberează spațiu pe hard disk sau dispozitivul nu va mai răspunde la comenzi.</translation>
 <translation id="3873315167136380065">Ca să activezi această opțiune, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /> pentru a elimina expresia de acces pentru sincronizare</translation>
 <translation id="3873423927483480833">Afișează codurile PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> a adăugat o filă</translation>
 <translation id="3873915545594852654">A apărut o eroare la ARC++.</translation>
 <translation id="3874164307099183178">Activează Asistentul Google</translation>
 <translation id="3875511946736639169">Activează imaginile</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">Proprietar</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Mai multe acțiuni pentru <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> a părăsit grupul</translation>
 <translation id="3963753386716096475">Folosește alt telefon, altă tabletă sau altă cheie de securitate</translation>
 <translation id="3964480518399667971">Dezactivează rețeaua mobilă</translation>
 <translation id="3965965397408324205">Ieși din <ph name="PROFILE_NAME" /></translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">Nu se pot instala fișierele pentru recunoaștere vocală. Dispozitivul trebuie actualizat. Repornește dispozitivul și încearcă din nou.</translation>
 <translation id="4789550509729954245">Afișează notificarea când există dispozitive în apropiere care trimit fișiere</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nicio sugestie disponibilă. Încearcă să faci solicitări precum „rezumă această pagină” sau să adresezi o întrebare.</translation>
 <translation id="4791793693640849493">Salvează elemente în cont</translation>
 <translation id="4792290259143007505">Activează accelerarea TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Raportează o problemă...</translation>
@@ -9010,7 +9006,6 @@
 <translation id="7421293530411019405">Ieși din grupul de file?</translation>
 <translation id="7421925624202799674">&amp;Afișează sursa paginii</translation>
 <translation id="7422192691352527311">Preferințe...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> a schimbat numele grupului</translation>
 <translation id="7423425410216218516">Vizibilitatea este activată pentru <ph name="MINUTES" /> minute</translation>
 <translation id="7423513079490750513">Elimină <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> are nevoie de permisiune pentru a rula</translation>
@@ -9501,7 +9496,6 @@
 <translation id="7772032839648071052">Confirmă expresia de acces</translation>
 <translation id="7772127298218883077">Despre <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Stocare sesiune</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> s-a alăturat grupului</translation>
 <translation id="7774365994322694683">Pasăre</translation>
 <translation id="7774581652827321413">Obține un rezumat al paginii, căutări similare și alte informații utile despre această pagină</translation>
 <translation id="7774792847912242537">Prea multe solicitări.</translation>
@@ -11099,7 +11093,6 @@
 <translation id="8888253246822647887">Aplicația ta se va deschide când se încheie upgrade-ul. Upgrade-urile pot dura câteva minute.</translation>
 <translation id="8888459276890791557">Poți fixa acest panou lateral pentru acces facil</translation>
 <translation id="8889294078294184559">În timp ce navighezi, site-urile pot să solicite informații de la Chrome și să confirme cu ajutorul unui site pe care l-ai accesat anterior că ești o persoană reală</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> a schimbat culoarea grupului</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> poate edita următoarele fișiere și dosare</translation>
 <translation id="8890170499370378450">Se pot aplica taxe pentru date mobile</translation>
 <translation id="8890516388109605451">Surse</translation>
@@ -11250,7 +11243,6 @@
 <translation id="8991520179165052608">Site-ul poate folosi microfonul</translation>
 <translation id="8991694323904646277">Nicio cameră foto</translation>
 <translation id="8991766915726096402">Recuperarea datelor locale</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Acum <ph name="TIME_COUNT" /> min.}=1{Acum <ph name="TIME_COUNT" /> h}few{Acum <ph name="TIME_COUNT" /> zile}other{Acum <ph name="TIME_COUNT" /> de zile}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Utilizarea memoriei – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Dacă uiți parola <ph name="DEVICE_TYPE" />, poți restabili datele locale. Va trebui să te conectezi la Contul Google sau să folosești recuperarea contului.</translation>
 <translation id="8993198843374358393">Copiază valoarea hash a certificatului pentru <ph name="CERT_NAME" /></translation>
@@ -11652,7 +11644,6 @@
 <translation id="973558314812359997">Dimensiunea mouse-ului</translation>
 <translation id="973788791897303708">Acest grup de file este plin</translation>
 <translation id="97381968209917373">Șterge certificatul <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> a modificat o filă</translation>
 <translation id="975893173032473675">Limba în care se traduce</translation>
 <translation id="976499800099896273">Caseta de anulare a corectării automate se afișează pentru <ph name="TYPED_WORD" />, corectat <ph name="CORRECTED_WORD" />.  Apasă săgeata în sus ca să accesezi cuvântul corectat sau Escape ca să-l ignori.</translation>
 <translation id="976572010712028687">Confirmă că ești părinte</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 2ab89f2..cc1af03 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Введите название профиля.</translation>
 <translation id="2765100602267695013">Обратитесь к оператору мобильной связи.</translation>
 <translation id="2765217105034171413">Мелкий</translation>
-<translation id="2765349783094807040">Пользователь <ph name="MEMBER_FIRST_NAME" /> удалил вкладку.</translation>
 <translation id="2765820627968019645">Светлая</translation>
 <translation id="276582196519778359">Введите PIN-код для доступа к родительскому контролю</translation>
 <translation id="2766006623206032690">Вс&amp;тавить из буфера и перейти</translation>
@@ -4129,7 +4128,6 @@
 <translation id="3872991219937722530">Если вы не освободите пространство, устройство перестанет отвечать.</translation>
 <translation id="3873315167136380065">Чтобы включить эту настройку, <ph name="BEGIN_LINK" />сбросьте настройки синхронизации<ph name="END_LINK" /> и удалите кодовую фразу.</translation>
 <translation id="3873423927483480833">Показать PIN-коды</translation>
-<translation id="3873893412864594794">Пользователь <ph name="MEMBER_FIRST_NAME" /> добавил вкладку.</translation>
 <translation id="3873915545594852654">Не удалось запустить ARC++.</translation>
 <translation id="3874164307099183178">Включить Google Ассистента</translation>
 <translation id="3875511946736639169">Показывать изображения</translation>
@@ -4259,7 +4257,6 @@
 <translation id="3959969108528118741">Владелец</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Другие действия со счетом под названием<ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Пользователь <ph name="MEMBER_FIRST_NAME" /> покинул группу.</translation>
 <translation id="3963753386716096475">Использовать другой телефон, планшет или ключ доступа</translation>
 <translation id="3964480518399667971">Отключить мобильную сеть</translation>
 <translation id="3965965397408324205">Выйти из профиля пользователя <ph name="PROFILE_NAME" /></translation>
@@ -5382,7 +5379,6 @@
 <translation id="4789348252524569426">Невозможно установить файлы для распознавания речи. Обновите операционную систему и перезапустите устройство, затем повторите попытку.</translation>
 <translation id="4789550509729954245">Показывать уведомления, когда устройства обмениваются данными</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Подсказок нет. Вы можете задать свой вопрос или, например, попросить составить краткий пересказ страницы.</translation>
 <translation id="4791793693640849493">Сохраните объекты в аккаунте</translation>
 <translation id="4792290259143007505">Включить ускорение TrackPoint</translation>
 <translation id="4792711294155034829">Сообщить о &amp;проблеме...</translation>
@@ -9017,7 +9013,6 @@
 <translation id="7421293530411019405">Выйти из группы вкладок?</translation>
 <translation id="7421925624202799674">Просмотр кода страницы</translation>
 <translation id="7422192691352527311">Настройки...</translation>
-<translation id="7422516375032300779">Пользователь <ph name="MEMBER_FIRST_NAME" /> изменил название группы.</translation>
 <translation id="7423425410216218516">Доступ открыт на <ph name="MINUTES" /> мин.</translation>
 <translation id="7423513079490750513">Удалить "<ph name="INPUT_METHOD_NAME" />"</translation>
 <translation id="7423807071740419372">Необходимо разрешение для запуска <ph name="APP_NAME" /></translation>
@@ -9507,7 +9502,6 @@
 <translation id="7772032839648071052">Подтвердите кодовую фразу</translation>
 <translation id="7772127298218883077">О <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Хранение сеансов</translation>
-<translation id="7773887159761725143">Пользователь <ph name="MEMBER_FIRST_NAME" /> получил доступ к группе.</translation>
 <translation id="7774365994322694683">Птица</translation>
 <translation id="7774581652827321413">Посмотрите обзор страницы, связанные поисковые запросы и полезные сведения о ней</translation>
 <translation id="7774792847912242537">Слишком много запросов.</translation>
@@ -11107,7 +11101,6 @@
 <translation id="8888253246822647887">Приложение откроется, когда завершится обновление. Это может занять несколько минут.</translation>
 <translation id="8888459276890791557">Вы можете закрепить эту боковую панель.</translation>
 <translation id="8889294078294184559">Затем другие сайты также могут запрашивать эти данные у браузера.</translation>
-<translation id="88895904696396879">Пользователь <ph name="MEMBER_FIRST_NAME" /> изменил цвет группы.</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> может изменять указанные ниже файлы и папки.</translation>
 <translation id="8890170499370378450">За использование мобильного Интернета может взиматься плата</translation>
 <translation id="8890516388109605451">Источники</translation>
@@ -11258,7 +11251,6 @@
 <translation id="8991520179165052608">Сайт может использовать микрофон</translation>
 <translation id="8991694323904646277">Камера недоступна</translation>
 <translation id="8991766915726096402">Восстановление локальных данных</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> минут назад}=1{<ph name="TIME_COUNT" /> час назад}one{<ph name="TIME_COUNT" /> день назад}few{<ph name="TIME_COUNT" /> дня назад}many{<ph name="TIME_COUNT" /> дней назад}other{<ph name="TIME_COUNT" /> дня назад}}</translation>
 <translation id="8992671062738341478">Вкладка "<ph name="WINDOW_TITLE" />" использует <ph name="MEMORY_VALUE" /> памяти</translation>
 <translation id="8993059306046735527">Даже если вы забыли пароль для устройства <ph name="DEVICE_TYPE" />, локальные данные можно восстановить. Для этого потребуется войти в аккаунт Google или восстановить доступ к нему.</translation>
 <translation id="8993198843374358393">Скопировать хеш сертификата <ph name="CERT_NAME" /></translation>
@@ -11660,7 +11652,6 @@
 <translation id="973558314812359997">Размер курсора</translation>
 <translation id="973788791897303708">Эта группа вкладок заполнена</translation>
 <translation id="97381968209917373">Удалить сертификат <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">Пользователь <ph name="MEMBER_FIRST_NAME" /> изменил вкладку.</translation>
 <translation id="975893173032473675">На какой язык переводить</translation>
 <translation id="976499800099896273">Показана кнопка, позволяющая отменить автозамену слова "<ph name="TYPED_WORD" />" на слово "<ph name="CORRECTED_WORD" />".  Чтобы выделить кнопку, нажмите на стрелку вверх. Чтобы пропустить, нажмите клавишу Escape.</translation>
 <translation id="976572010712028687">Подтвердите, что вы являетесь родителем</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb
index e1656aa..ba1f26b 100644
--- a/chrome/app/resources/generated_resources_si.xtb
+++ b/chrome/app/resources/generated_resources_si.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">පැතිකඩ නමක් ඇතුළු කරන්න</translation>
 <translation id="2765100602267695013">කරුණාකර ඔබගේ ජංගම සැපයුම්කරු අමතන්න</translation>
 <translation id="2765217105034171413">කුඩා</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> පටිත්ත ඉවත් කරන ලදි</translation>
 <translation id="2765820627968019645">සැහැල්ලු</translation>
 <translation id="276582196519778359">මාපිය පාලන සඳහා ඔබේ PIN ඇතුළු කරන්න</translation>
 <translation id="2766006623206032690">අල&amp;වා යන්න</translation>
@@ -4128,7 +4127,6 @@
 <translation id="3872991219937722530">තැටි ඉඩ හිස් කරන්න නැතහොත් ඔබේ උපාංගය ප්‍රතිචාර නොදක්වන බවට පත් විය හැකිය.</translation>
 <translation id="3873315167136380065">මෙය ක්‍රියාත්මක කිරීමට, ඔබගේ සමමුහුර්ත මුර-වැකිකඩ ඉවත් කිරීමට <ph name="BEGIN_LINK" />සමමුහුර්තය යළි පිහිටුවන්න<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">රහස් අංක පෙන්වන්න</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> පටිත්තක් එක් කරන ලදි</translation>
 <translation id="3873915545594852654">ARC++ සමඟ ගැටලුවක් ඇති විය.</translation>
 <translation id="3874164307099183178">Google සහකරු සක්‍රීය කරන්න</translation>
 <translation id="3875511946736639169">රූප සබල කරන්න</translation>
@@ -4258,7 +4256,6 @@
 <translation id="3959969108528118741">හිමිකරු</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> සඳහා තවත් ක්‍රියා</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> සමූහය හැර යන ලදි</translation>
 <translation id="3963753386716096475">වෙනත් දුරකථනයක්, ටැබ්ලටයක් හෝ ආරක්ෂිත යතුරක් භාවිත කරන්න</translation>
 <translation id="3964480518399667971">සෙලියුලර් ජාලය අක්‍රිය කරන්න</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> වෙතින් පිට වන්න</translation>
@@ -5381,7 +5378,6 @@
 <translation id="4789348252524569426">කථන ගොනු ස්ථාපනය කළ නොහැක. ඔබේ උපාංගය යාවත්කාලීන කිරීමට අවශ්‍යයි. ඔබේ උපාංගය යළි අරඹා නැවත උත්සාහ කරන්න.</translation>
 <translation id="4789550509729954245">උපාංග අවට බෙදා ගන්නා විට දැනුම්දීම පෙන්වන්න</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">යෝජනා ලබාගත නොහැක. “මෙම පිටුව සාරාංශ කරන්න” හෝ ඔබේම ප්‍රශ්නය වැනි දේවල් ඇසීමට උත්සාහ කරන්න.</translation>
 <translation id="4791793693640849493">ගිණුමේ අයිතම සුරකින්න</translation>
 <translation id="4792290259143007505">TrackPoint ත්වරණය සබල කරන්න</translation>
 <translation id="4792711294155034829">ගැටළුවක් වාර්තා කරන්න...</translation>
@@ -9010,7 +9006,6 @@
 <translation id="7421293530411019405">පටිති සමූහය හැර යන්න ද?</translation>
 <translation id="7421925624202799674">පිටු මූලාශ්‍රය &amp;බලන්න</translation>
 <translation id="7422192691352527311">වරණයන්...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> සමූහයේ නම වෙනස් කරන ලදි</translation>
 <translation id="7423425410216218516">මිනිත්තු <ph name="MINUTES" />ක් සඳහා දෘශ්‍යතාව ක්‍රියාත්මකයි</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ඉවත් කරන්න</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> හට ධාවන කිරීමට අවසරය අවශ්‍යයි</translation>
@@ -9501,7 +9496,6 @@
 <translation id="7772032839648071052">රහස්පදය ස්ථිර කරන්න</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> පිළිබඳ</translation>
 <translation id="7773726648746946405">සැසි ගබඩාව</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> සමූහයට එක් විය</translation>
 <translation id="7774365994322694683">කුරුල්ලා</translation>
 <translation id="7774581652827321413">පිටු සාරාංශයක්, අදාළ සෙවීම්, සහ මෙම පිටුව පිළිබඳ වෙනත් ප්‍රයෝජනවත් තතු ලබා ගන්න</translation>
 <translation id="7774792847912242537">ඉල්ලීම් ඉතා වැඩිය.</translation>
@@ -11097,7 +11091,6 @@
 <translation id="8888253246822647887">යාවත්කාලීනය අවසන් කළ විට ඔබේ යෙදුම විවෘත වෙයි. උත්ශ්‍රේණි කිරීම්වලට විනාඩි කිහිපයක් ගත විය හැක.</translation>
 <translation id="8888459276890791557">ඔබට පහසු ප්‍රවේශය සඳහා මෙම පැති පුවරුව ඇමිණිය හැක</translation>
 <translation id="8889294078294184559">ඔබ දිගටම බ්‍රවුස් කරන විට, අඩවිවලට Chrome සමග පරීක්ෂා කර ඔබ සැබෑ පුද්ගලයෙක් බව ඔබ කලින් පිවිසි අඩවියකින් සත්‍යාපනය කළ හැක</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> සමූහයේ වර්ණය වෙනස් කරන ලදි</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> හට පහත ගොනු සහ ෆෝල්ඩර සංස්කරණ කළ හැක</translation>
 <translation id="8890170499370378450">ජංගම දත්ත ගාස්තු ඇති විය හැකිය</translation>
 <translation id="8890516388109605451">මූලාශ්‍ර</translation>
@@ -11248,7 +11241,6 @@
 <translation id="8991520179165052608">අඩවියට ඔබේ මයික්‍රෆෝනය භාවිත කළ හැකිය</translation>
 <translation id="8991694323904646277">කැමරාව නැත</translation>
 <translation id="8991766915726096402">ස්ථානික දත්ත ප්‍රතිසාධනය</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{මිනි <ph name="TIME_COUNT" />කට පෙර}=1{පැය <ph name="TIME_COUNT" />කට පෙර}one{දින <ph name="TIME_COUNT" />කට පෙර}other{දින <ph name="TIME_COUNT" />කට පෙර}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - මතකය භාවිතය - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">ඔබට ඔබේ <ph name="DEVICE_TYPE" /> මුරපදය අමතක වුවහොත්, ඔබට තවමත් ඔබේ ස්ථානික දත්ත ප්‍රතිසාධන කළ හැක. ඔබට ඔබේ Google ගිණුමට පුරනය වීමට හෝ ගිණුම් ප්‍රතිසාධනය භාවිත කිරීමට අවශ්‍ය වෙයි.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> සඳහා සහතික හැෂ් පිටපත් කරන්න</translation>
@@ -11650,7 +11642,6 @@
 <translation id="973558314812359997">මූසික තරම</translation>
 <translation id="973788791897303708">මෙම පටිති සමූහය පිරී ඇත</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> සහතිකය මකන්න</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> පටිත්තක් වෙනස් කරන ලදි</translation>
 <translation id="975893173032473675">පරිවර්තන කළ යුතු භාෂාව</translation>
 <translation id="976499800099896273"><ph name="CORRECTED_WORD" /> ලෙස නිවැරදි කළ <ph name="TYPED_WORD" /> සඳහා ස්වයං නිවැරදි කිරීම් සංවාදය පෙන්වා ඇත.  ප්‍රවේශ වීමට ඉහළට ඊතලය ඔබන්න, නොසලකා හැරීමට escape ඔබන්න.</translation>
 <translation id="976572010712028687">ඔබ මාපියෙකු බව සත්‍යාපනය කරන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 9c75816..d66fcb6 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Zadajte názov profilu</translation>
 <translation id="2765100602267695013">Kontaktujte poskytovateľa mobilných služieb</translation>
 <translation id="2765217105034171413">Malé</translation>
-<translation id="2765349783094807040">Používateľ <ph name="MEMBER_FIRST_NAME" /> odstránil kartu</translation>
 <translation id="2765820627968019645">Svetlý</translation>
 <translation id="276582196519778359">Rodičovskú kontrolu otvoríte zadaním kódu PIN</translation>
 <translation id="2766006623206032690">Prilepiť a &amp;otvoriť</translation>
@@ -4129,7 +4128,6 @@
 <translation id="3872991219937722530">Uvoľnite miesto na disku, inak vaše zariadenie prestane reagovať.</translation>
 <translation id="3873315167136380065">Zapnite toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /> a odstráňte tak prístupovú frázu synchronizácie</translation>
 <translation id="3873423927483480833">Zobraziť kódy PIN</translation>
-<translation id="3873893412864594794">Používateľ <ph name="MEMBER_FIRST_NAME" /> pridal kartu</translation>
 <translation id="3873915545594852654">Vyskytol sa problém s ARC++.</translation>
 <translation id="3874164307099183178">Zapnúť Asistenta Google</translation>
 <translation id="3875511946736639169">Povoliť obrázky</translation>
@@ -4259,7 +4257,6 @@
 <translation id="3959969108528118741">Vlastník</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Ďalšie akcie pre IBAN <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Používateľ <ph name="MEMBER_FIRST_NAME" /> opustil skupinu</translation>
 <translation id="3963753386716096475">Použiť iný telefón, tablet alebo bezpečnostný kľúč</translation>
 <translation id="3964480518399667971">Vypnúť mobilnú sieť</translation>
 <translation id="3965965397408324205">Ukončiť profil <ph name="PROFILE_NAME" /></translation>
@@ -5382,7 +5379,6 @@
 <translation id="4789348252524569426">Rečové súbory sa nedajú nainštalovať. Zariadenie je potrebné aktualizovať. Reštartujte zariadenie a skúste to znova.</translation>
 <translation id="4789550509729954245">Zobrazovať upozornenie pri zdieľaní zariadení nablízku</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">K dispozícii nie sú žiadne návrhy. Skúste napríklad požiadať „zhrň túto stránku“ alebo položte vlastnú otázku.</translation>
 <translation id="4791793693640849493">Uložte si položky v účte</translation>
 <translation id="4792290259143007505">Povoliť akceleráciu zariadenia TrackPoint</translation>
 <translation id="4792711294155034829">Nahlásiť p&amp;roblém…</translation>
@@ -9014,7 +9010,6 @@
 <translation id="7421293530411019405">Chcete opustiť skupinu kariet?</translation>
 <translation id="7421925624202799674">&amp;Zobraziť zdrojový kód stránky</translation>
 <translation id="7422192691352527311">Predvoľby...</translation>
-<translation id="7422516375032300779">Používateľ <ph name="MEMBER_FIRST_NAME" /> zmenil názov skupiny</translation>
 <translation id="7423425410216218516">Viditeľnosť je zapnutá na <ph name="MINUTES" /> min.</translation>
 <translation id="7423513079490750513">Odstrániť <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> potrebuje na spustenie povolenie</translation>
@@ -9504,7 +9499,6 @@
 <translation id="7772032839648071052">Potvrďte prístupovú frázu</translation>
 <translation id="7772127298218883077">Informácie o aplikácii <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Ukladací priestor relácie</translation>
-<translation id="7773887159761725143">Používateľ <ph name="MEMBER_FIRST_NAME" /> sa pripojil ku skupine</translation>
 <translation id="7774365994322694683">Vták</translation>
 <translation id="7774581652827321413">Získajte súhrn stránky, súvisiace vyhľadávania a ďalšie užitočné informácie o tejto stránke</translation>
 <translation id="7774792847912242537">Príliš mnoho žiadostí.</translation>
@@ -11103,7 +11097,6 @@
 <translation id="8888253246822647887">Aplikácia sa spustí po dokončení inovácie. Inovácia môže trvať niekoľko minút.</translation>
 <translation id="8888459276890791557">Tento bočný panel si môžete pripnúť, aby ste k nemu mali ľahký prístup</translation>
 <translation id="8889294078294184559">Pri ďalšom prehliadaní môžu weby pomocou Chromu overiť informácie z predchádzajúceho navštíveného webu, že ste zrejme skutočná osoba</translation>
-<translation id="88895904696396879">Používateľ <ph name="MEMBER_FIRST_NAME" /> zmenil farbu skupiny</translation>
 <translation id="8889651696183044030">Web <ph name="ORIGIN" /> môže upravovať nasledujúce súbory a priečinky</translation>
 <translation id="8890170499370378450">Môžu sa vám účtovať poplatky za mobilné dáta</translation>
 <translation id="8890516388109605451">Zdroje</translation>
@@ -11254,7 +11247,6 @@
 <translation id="8991520179165052608">Web môže používať váš mikrofón</translation>
 <translation id="8991694323904646277">Žiadna kamera</translation>
 <translation id="8991766915726096402">Obnoviť miestne údaje</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Pred <ph name="TIME_COUNT" /> min}=1{Pred <ph name="TIME_COUNT" /> h}few{Pred <ph name="TIME_COUNT" /> d.}many{Pred <ph name="TIME_COUNT" /> d.}other{Pred <ph name="TIME_COUNT" /> d.}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Využitie pamäte – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ak zabudnete heslo zariadenia <ph name="DEVICE_TYPE" />, svoje miestne údaje môžete stále obnoviť. Budete sa musieť prihlásiť do účtu Google alebo použiť obnovenie účtu.</translation>
 <translation id="8993198843374358393">Skopírovať haš certifikátu <ph name="CERT_NAME" /></translation>
@@ -11656,7 +11648,6 @@
 <translation id="973558314812359997">Veľkosť myši</translation>
 <translation id="973788791897303708">Táto skupina kariet je plná</translation>
 <translation id="97381968209917373">Chcete odstrániť certifikát <ph name="CERT_NAME" />?</translation>
-<translation id="973825986436797073">Používateľ <ph name="MEMBER_FIRST_NAME" /> zmenil kartu</translation>
 <translation id="975893173032473675">Jazyk, do ktorého chcete prekladať</translation>
 <translation id="976499800099896273">Pri slove <ph name="TYPED_WORD" />, ktoré bolo opravené na <ph name="CORRECTED_WORD" />, je zobrazené dialógové okno na zrušenie automatickej opravy.  Stlačením šípky nahor okno aktivujete, stlačením klávesa Escape ho ignorujete.</translation>
 <translation id="976572010712028687">Overte, že ste rodič</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index cc5094f..9dac91b 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -2579,7 +2579,6 @@
 <translation id="2764920001292228569">Vnesite ime profila</translation>
 <translation id="2765100602267695013">Obrnite se na ponudnika mobilnih storitev.</translation>
 <translation id="2765217105034171413">Majhna</translation>
-<translation id="2765349783094807040">Oseba <ph name="MEMBER_FIRST_NAME" /> je odstranila zavihek</translation>
 <translation id="2765820627968019645">Svetlo</translation>
 <translation id="276582196519778359">Vnesite kodo PIN za starševski nadzor</translation>
 <translation id="2766006623206032690">Pr&amp;ilepi in nadaljuj</translation>
@@ -4143,7 +4142,6 @@
 <translation id="3872991219937722530">Sprostite prostor na disku, sicer bo postala naprava neodzivna.</translation>
 <translation id="3873315167136380065">Če želite to vklopiti, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" />, da odstranite geslo za sinhronizacijo</translation>
 <translation id="3873423927483480833">Prikaz kod PIN</translation>
-<translation id="3873893412864594794">Oseba <ph name="MEMBER_FIRST_NAME" /> je dodala zavihek</translation>
 <translation id="3873915545594852654">Prišlo je do težave s tehnologijo ARC++.</translation>
 <translation id="3874164307099183178">Vklop Pomočnika Google</translation>
 <translation id="3875511946736639169">Omogočanje slik</translation>
@@ -4273,7 +4271,6 @@
 <translation id="3959969108528118741">Lastnik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Več dejanj za <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">Oseba <ph name="MEMBER_FIRST_NAME" /> je zapustila skupino</translation>
 <translation id="3963753386716096475">Uporabi drug telefon, tablični računalnik ali varnostni ključ</translation>
 <translation id="3964480518399667971">Izklop mobilnega omrežja</translation>
 <translation id="3965965397408324205">Zapri <ph name="PROFILE_NAME" /></translation>
@@ -5396,7 +5393,6 @@
 <translation id="4789348252524569426">Datotek za govor ni mogoče namestiti. Napravo je treba posodobiti. Znova zaženite napravo in poskusite znova.</translation>
 <translation id="4789550509729954245">Prikaz obvestila, ko naprave delijo v bližini</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Ni predlogov. Poskusite vprašati »povzemite to stran« ali postavite svoje vprašanje.</translation>
 <translation id="4791793693640849493">Shranjevanje elementov v računu</translation>
 <translation id="4792290259143007505">Omogočanje pospeševanja sledilne palčke</translation>
 <translation id="4792711294155034829">&amp;Prijavite težavo ...</translation>
@@ -9034,7 +9030,6 @@
 <translation id="7421293530411019405">Želite zapustiti skupino zavihkov?</translation>
 <translation id="7421925624202799674">&amp;Prikaz izvorne kode strani</translation>
 <translation id="7422192691352527311">Nastavitve ...</translation>
-<translation id="7422516375032300779">Oseba <ph name="MEMBER_FIRST_NAME" /> je spremenila ime skupine</translation>
 <translation id="7423425410216218516">Vidnost bo vklopljena <ph name="MINUTES" /> min</translation>
 <translation id="7423513079490750513">Odstranitev tega: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Aplikacija <ph name="APP_NAME" /> zahteva dovoljenje za izvajanje</translation>
@@ -9525,7 +9520,6 @@
 <translation id="7772032839648071052">Potrdi geslo</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> – vizitka</translation>
 <translation id="7773726648746946405">Shramba seje</translation>
-<translation id="7773887159761725143">Uporabnik <ph name="MEMBER_FIRST_NAME" /> se je pridružil skupini</translation>
 <translation id="7774365994322694683">Ptica</translation>
 <translation id="7774581652827321413">Prejmite povzetek strani, sorodna iskanja in druge koristne informacije o tej strani</translation>
 <translation id="7774792847912242537">Preveč zahtev.</translation>
@@ -11125,7 +11119,6 @@
 <translation id="8888253246822647887">Aplikacija se bo odprla, ko bo nadgradnja dokončana. Nadgradnje lahko trajajo nekaj minut.</translation>
 <translation id="8888459276890791557">To stransko podokno lahko pripnete za preprost dostop</translation>
 <translation id="8889294078294184559">Med brskanjem se lahko spletna mesta obrnejo na Chrome in pri prejšnjem spletnem mestu, ki ste ga obiskali, potrdijo, da ste verjetno resnična oseba.</translation>
-<translation id="88895904696396879">Uporabnik <ph name="MEMBER_FIRST_NAME" /> je spremenil barvo skupine</translation>
 <translation id="8889651696183044030">Spletno mesto <ph name="ORIGIN" /> lahko ureja naslednje datoteke in mape</translation>
 <translation id="8890170499370378450">Morda boste morali plačati stroške prenosa podatkov v mobilnem omrežju.</translation>
 <translation id="8890516388109605451">Viri</translation>
@@ -11276,7 +11269,6 @@
 <translation id="8991520179165052608">Spletno mesto lahko uporablja vaš mikrofon</translation>
 <translation id="8991694323904646277">Kamera ni na voljo</translation>
 <translation id="8991766915726096402">Obnovitev lokalnih podatkov</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Pred <ph name="TIME_COUNT" /> min}=1{Pred <ph name="TIME_COUNT" /> h}one{Pred <ph name="TIME_COUNT" /> d}two{Pred <ph name="TIME_COUNT" /> d}few{Pred <ph name="TIME_COUNT" /> d}other{Pred <ph name="TIME_COUNT" /> d}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Uporaba pomnilnika – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Če pozabite geslo za napravo <ph name="DEVICE_TYPE" />, lahko še vedno obnovite lokalne podatke. Prijaviti se boste morali v račun Google ali uporabiti račun za obnovitev.</translation>
 <translation id="8993198843374358393">Kopiraj zgoščeno vrednost potrdila za <ph name="CERT_NAME" /></translation>
@@ -11678,7 +11670,6 @@
 <translation id="973558314812359997">Velikost kazalca</translation>
 <translation id="973788791897303708">Ta skupina zavihkov je polna</translation>
 <translation id="97381968209917373">Izbriši potrdilo <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">Oseba <ph name="MEMBER_FIRST_NAME" /> je spremenila zavihek</translation>
 <translation id="975893173032473675">Jezik prevoda</translation>
 <translation id="976499800099896273">Pogovorno okno za razveljavitev samodejnega popravka je prikazano za besedo <ph name="TYPED_WORD" />, ki je popravljena v <ph name="CORRECTED_WORD" />.  Pritisnite puščico gor, če želite dostopati, tipko Escape, če želite prezreti.</translation>
 <translation id="976572010712028687">Potrdite, da ste starš</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb
index 0546a9d..eed1036 100644
--- a/chrome/app/resources/generated_resources_sq.xtb
+++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2561,7 +2561,6 @@
 <translation id="2764920001292228569">Fut një emër profili</translation>
 <translation id="2765100602267695013">Kontakto me ofruesin celular</translation>
 <translation id="2765217105034171413">E vogël</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> hoqi një skedë</translation>
 <translation id="2765820627968019645">I ndriçuar</translation>
 <translation id="276582196519778359">Fut kodin PIN për kontrollet prindërore</translation>
 <translation id="2766006623206032690">Ngj&amp;it dhe vazhdo</translation>
@@ -4123,7 +4122,6 @@
 <translation id="3872991219937722530">Liro hapësirë në disk ose pajisja nuk do të reagojë ndaj komandave.</translation>
 <translation id="3873315167136380065">Për ta aktivizuar këtë, <ph name="BEGIN_LINK" />rivendos sinkronizimin<ph name="END_LINK" /> për të hequr frazën e kalimit për sinkronizimin</translation>
 <translation id="3873423927483480833">Shfaq kodet PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> shtoi një skedë</translation>
 <translation id="3873915545594852654">Ndodhi një problem me ARC++.</translation>
 <translation id="3874164307099183178">Aktivizo "Asistentin e Google"</translation>
 <translation id="3875511946736639169">Aktivizo imazhet</translation>
@@ -4253,7 +4251,6 @@
 <translation id="3959969108528118741">Zotëruesi</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Më shumë veprime për <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> u largua nga grupi</translation>
 <translation id="3963753386716096475">Përdor një telefon ose tablet tjetër, ose çelësin e sigurisë</translation>
 <translation id="3964480518399667971">Çaktivizo "Rrjetin celular"</translation>
 <translation id="3965965397408324205">Dil nga <ph name="PROFILE_NAME" /></translation>
@@ -5376,7 +5373,6 @@
 <translation id="4789348252524569426">Skedarët e ligjërimit nuk mund të instalohen. Pajisja jote ka nevojë që të përditësohet. Rinise pajisjen dhe provo përsëri.</translation>
 <translation id="4789550509729954245">Shfaq njoftimet kur pajisjet ndajnë në afërsi</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nuk ka asnjë sugjerim të disponueshëm. Provo të kërkosh gjëra të tilla si "përmblidh këtë faqe" ose bëj pyetjen tënde.</translation>
 <translation id="4791793693640849493">Ruaj artikujt te llogaria</translation>
 <translation id="4792290259143007505">Aktivizo përshpejtimin e TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Raporto një problem...</translation>
@@ -9003,7 +8999,6 @@
 <translation id="7421293530411019405">Dëshiron të largohesh nga grupi i skedave?</translation>
 <translation id="7421925624202799674">&amp;Shiko burimin e faqes</translation>
 <translation id="7422192691352527311">Preferencat...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> e ndryshoi emrin e grupit</translation>
 <translation id="7423425410216218516">Shikueshmëria është aktive për <ph name="MINUTES" /> minuta</translation>
 <translation id="7423513079490750513">Hiq <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ka nevojë për leje për të vazhduar</translation>
@@ -9494,7 +9489,6 @@
 <translation id="7772032839648071052">Konfirmo shprehjen e kalimit</translation>
 <translation id="7772127298218883077">Rreth <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Ruajtja e sesionit</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> u bashkua në grup</translation>
 <translation id="7774365994322694683">Zog</translation>
 <translation id="7774581652827321413">Merr një përmbledhje të faqes, kërkimet përkatëse dhe informacione të tjera të dobishme</translation>
 <translation id="7774792847912242537">Ka shumë kërkesa.</translation>
@@ -11089,7 +11083,6 @@
 <translation id="8888253246822647887">Aplikacioni yt do të hapet kur të përfundojë përmirësimi. Përmirësimi mund të zgjasë disa minuta.</translation>
 <translation id="8888459276890791557">Mund ta gozhdosh këtë panel anësor për qasje me lehtësi</translation>
 <translation id="8889294078294184559">Ndërkohë që ti vazhdon të shfletosh, sajtet mund të kontrollojnë në Chrome dhe të verifikojnë nga një sajt i mëparshëm që ke vizituar që ka gjasa të jesh një person real.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> e ndryshoi ngjyrën e grupit</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> mund t'i modifikojë skedarët dhe dosjet e mëposhtme</translation>
 <translation id="8890170499370378450">Mund të shkaktohen tarifa për të dhënat celulare</translation>
 <translation id="8890516388109605451">Burimet</translation>
@@ -11240,7 +11233,6 @@
 <translation id="8991520179165052608">Sajti mund të përdorë mikrofonin tënd</translation>
 <translation id="8991694323904646277">Nuk ka kamerë</translation>
 <translation id="8991766915726096402">Rikuperimi i të dhënave lokale</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> min. më parë}=1{<ph name="TIME_COUNT" /> orë më parë}other{<ph name="TIME_COUNT" /> ditë më parë}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Përdorimi i memories - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Nëse e harron fjalëkalimin e <ph name="DEVICE_TYPE" />, mund t'i restaurosh përsëri të dhënat e tua lokale. Do të duhet të identifikohesh në "Llogarinë tënde të Google" ose të përdorësh rikuperimin e llogarisë.</translation>
 <translation id="8993198843374358393">Kopjo hash-in e certifikatës për <ph name="CERT_NAME" /></translation>
@@ -11642,7 +11634,6 @@
 <translation id="973558314812359997">Madhësia e kursorit të miut</translation>
 <translation id="973788791897303708">Ky grup skedash është plot</translation>
 <translation id="97381968209917373">Fshi certifikatën "<ph name="CERT_NAME" />"</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ndryshoi një skedë</translation>
 <translation id="975893173032473675">Gjuha në të cilën do të përkthehet</translation>
 <translation id="976499800099896273">Dialogu i zhbërjes së korrigjimit automatik shfaqet për <ph name="TYPED_WORD" /> të korrigjuar në <ph name="CORRECTED_WORD" />.  Shtyp shigjetën lart për t'iu qasur, Escape për ta shpërfillur.</translation>
 <translation id="976572010712028687">Verifiko që je prind</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb
index 140abf6..82b949c 100644
--- a/chrome/app/resources/generated_resources_sr-Latn.xtb
+++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -463,6 +463,7 @@
 <translation id="1306606229401759371">Promeni podešavanja</translation>
 <translation id="1307165550267142340">Napravili ste PIN</translation>
 <translation id="1307431692088049276">Ne pitaj me ponovo</translation>
+<translation id="130744661532298792">Da biste bili sigurni da uvek možete da koristite lozinke na Google nalogu, potvrdite svoj identitet</translation>
 <translation id="1307559529304613120">Ups! Sistem nije uspeo da sačuva oznaku dugoročnog pristupa API-ju za ovaj uređaj.</translation>
 <translation id="1308548450293664112">Napravio/la sam ovaj fajl, grupa dugmadi za izbor, 1. od 3</translation>
 <translation id="131112695174432497">Podaci koji utiču na personalizaciju oglasa se brišu</translation>
@@ -2561,7 +2562,6 @@
 <translation id="2764920001292228569">Unesite naziv profila</translation>
 <translation id="2765100602267695013">Obratite se mobilnom operateru</translation>
 <translation id="2765217105034171413">Mala</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> je uklonio/la karticu</translation>
 <translation id="2765820627968019645">Svetla</translation>
 <translation id="276582196519778359">Unesite PIN za roditeljski nadzor</translation>
 <translation id="2766006623206032690">Na&amp;lepi i idi</translation>
@@ -2824,6 +2824,7 @@
 <translation id="2953210795988451570">Bezbednosna ažuriranja su završena. Nabavite nov Chromebook.</translation>
 <translation id="2953218713108551165">Obaveštenja nisu dozvoljena za <ph name="SITE" />. Prikazaće vam se upit pri sledećoj poseti.</translation>
 <translation id="2956070239128776395">Odeljak ugnežden u grupu: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">Uključite režim programera da biste koristili ovaj dodatak koji Chrome veb-prodavnica ne može da pregleda.</translation>
 <translation id="2958721676848865875">Upozorenje o pakovanju dodatka</translation>
 <translation id="2959127025785722291">Došlo je do greške. Skeniranje nije dovršeno. Probajte ponovo.</translation>
 <translation id="2959474507964749987">Ovaj šifrovani fajl je možda virus ili malver.<ph name="LINE_BREAK" />Da biste proverili da li je nebezbedan, možete da pošaljete fajl i lozinku u Google bezbedno pregledanje. Skeniranje obično traje nekoliko sekundi.<ph name="LINE_BREAK" />Da biste skenirali, dodajte lozinku za fajl.</translation>
@@ -4125,7 +4126,6 @@
 <translation id="3872991219937722530">Oslobodite prostor na disku ili će uređaj prestati da se odaziva.</translation>
 <translation id="3873315167136380065">Da biste uključili ovo, <ph name="BEGIN_LINK" />resetujte sinhronizaciju<ph name="END_LINK" /> da biste uklonili pristupnu frazu za sinhronizaciju</translation>
 <translation id="3873423927483480833">Prikazuje PIN-ove</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> je dodao/la karticu</translation>
 <translation id="3873915545594852654">Došlo je do problema koji se odnosi na ARC++.</translation>
 <translation id="3874164307099183178">Uključite Google pomoćnik</translation>
 <translation id="3875511946736639169">Omogući slike</translation>
@@ -4255,7 +4255,6 @@
 <translation id="3959969108528118741">Vlasnik</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Još radnji za <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> je izašao/la iz grupe</translation>
 <translation id="3963753386716096475">Koristite drugi telefon, tablet ili bezbednosni ključ</translation>
 <translation id="3964480518399667971">Isključi mobilnu mrežu</translation>
 <translation id="3965965397408324205">Zatvori <ph name="PROFILE_NAME" /></translation>
@@ -4324,6 +4323,7 @@
 <translation id="4001540981461989979">Istakni kursor miša pri kretanju</translation>
 <translation id="4002347779798688515">Preuzeti profil možda neće biti upotrebljiv ako je mobilni operater zaključan. Zatražite podršku od njega.</translation>
 <translation id="4002440992267487163">Podešavanje PIN-a</translation>
+<translation id="4003617970184602156">Da biste koristili i čuvali lozinke na Google nalogu, potvrdite svoj identitet</translation>
 <translation id="4005817994523282006">Metod otkrivanja vremenske zone</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{Ovim ćete trajno izbrisati grupu sa uređaja.}one{Ovim ćete trajno izbrisati grupe sa uređaja.}few{Ovim ćete trajno izbrisati grupe sa uređaja.}other{Ovim ćete trajno izbrisati grupe sa uređaja.}}</translation>
 <translation id="4010036441048359843">Uključi isticanje</translation>
@@ -5378,7 +5378,6 @@
 <translation id="4789348252524569426">Instaliranje fajlova za govor nije uspelo. Uređaj treba da se ažurira. Restartujte uređaj i probajte ponovo.</translation>
 <translation id="4789550509729954245">Prikazuj obaveštenje kada uređaji dele sadržaj u blizini</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Nema dostupnih predloga. Pitajte stvari kao što su „rezimiraj ovu stranicu“ ili sami osmislite pitanje.</translation>
 <translation id="4791793693640849493">Sačuvajte stavke na nalogu</translation>
 <translation id="4792290259143007505">Omogući ubrzanje TrackPoint-a</translation>
 <translation id="4792711294155034829">&amp;Prijavi problem...</translation>
@@ -6956,6 +6955,7 @@
 <translation id="5932224571077948991">Sajt prikazuje oglase koji ometaju aktivnosti ili obmanjujuće oglase</translation>
 <translation id="59324397759951282">USB proizvođača <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932441198730183141">Nemate dovoljno dostupnih licenci za registrovanje ovog Google Meet hardverskog uređaja. Obratite se sektoru prodaje da biste kupili još licenci. Ako smatrate da se ova poruka prikazuje greškom, obratite se podršci.</translation>
+<translation id="593271375210025655">Uključite režim programera da biste koristili ovaj dodatak, ali samo ako imate poverenja u njega. Može da sadrži eksperimentalne funkcije i Chrome veb-prodavnica nije pregledala.</translation>
 <translation id="5932881020239635062">Serijski broj</translation>
 <translation id="5933376509899483611">Vremenska zona</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> koristi kameru i mikrofon</translation>
@@ -6983,6 +6983,7 @@
 <translation id="5948476936444935795">Otkaži uvoz</translation>
 <translation id="5948536763493709626">Povežite tastaturu ili miš ili nastavite podešavanje pomoću dodirnog ekrana. Ako koristite Bluetooth uređaje, uverite se da su uređaji spremni za uparivanje.</translation>
 <translation id="5949544233750246342">Raščlanjivanje datoteke nije uspelo</translation>
+<translation id="5949795028157144515">Režim programera je isključen. Neki dodaci su onemogućeni.</translation>
 <translation id="594993197557058302">Pritisnite 1–4 modifikujućih tastera (ctrl, alt, shift, taster za pretragu ili Pokretač) i još 1 taster. Možete da izaberete i samo jedan taster.</translation>
 <translation id="5950762317146173294">Ovaj fajl je možda virus ili malver</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> želi da koristi lokalne fontove</translation>
@@ -9011,7 +9012,6 @@
 <translation id="7421293530411019405">Želite da napustite grupu kartica?</translation>
 <translation id="7421925624202799674">&amp;Prikaži izvor stranice</translation>
 <translation id="7422192691352527311">Podešavanja...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> je promenio/la naziv grupe</translation>
 <translation id="7423425410216218516">Vidljivost je uključena <ph name="MINUTES" /> minut/a</translation>
 <translation id="7423513079490750513">Uklonite metod unosa <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Za pokretanje aplikacije <ph name="APP_NAME" /> je potrebna dozvola</translation>
@@ -9502,7 +9502,6 @@
 <translation id="7772032839648071052">Potvrdi pristupnu frazu</translation>
 <translation id="7772127298218883077">O <ph name="PRODUCT_NAME" /> pregledaču</translation>
 <translation id="7773726648746946405">Memorijski prostor sesije</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> je ušao/la u grupu</translation>
 <translation id="7774365994322694683">Ptica</translation>
 <translation id="7774581652827321413">Dobijte rezime stranice, srodne pretrage i druge korisne informacije o ovoj stranici</translation>
 <translation id="7774792847912242537">Previše je zahteva.</translation>
@@ -11101,7 +11100,6 @@
 <translation id="8888253246822647887">Aplikacija će se otvoriti kada se nadogradnja završi. Nadogradnje mogu da traju par minuta.</translation>
 <translation id="8888459276890791557">Možete da zakačite ovu bočnu tablu da biste joj lako pristupali</translation>
 <translation id="8889294078294184559">Dok nastavljate sa pregledanjem, sajtovi mogu da proveravaju u Chrome-u i da od prethodnog sajta koji ste posetili dobiju potvrdu da ste verovatno stvarna osoba</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> je promenio/la boju grupe</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> može da menja datoteke i direktorijume u nastavku</translation>
 <translation id="8890170499370378450">Možda će doći do troškova za prenos podataka preko mobilnog operatera</translation>
 <translation id="8890516388109605451">Izvori</translation>
@@ -11252,7 +11250,6 @@
 <translation id="8991520179165052608">Sajt može da koristi mikrofon</translation>
 <translation id="8991694323904646277">Nema kamere</translation>
 <translation id="8991766915726096402">Oporavak lokalnih podataka</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Pre <ph name="TIME_COUNT" /> m}=1{Pre <ph name="TIME_COUNT" /> s}one{Pre <ph name="TIME_COUNT" /> d}few{Pre <ph name="TIME_COUNT" /> d}other{Pre <ph name="TIME_COUNT" /> d}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Potrošnja memorije – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ako zaboravite lozinku za <ph name="DEVICE_TYPE" />, i dalje možete da vratite lokalne podatke. Morate da se prijavite na Google nalog ili da upotrebite vraćanje pristupa nalogu.</translation>
 <translation id="8993198843374358393">Kopirajte heš sertifikata za <ph name="CERT_NAME" /></translation>
@@ -11654,7 +11651,6 @@
 <translation id="973558314812359997">Veličina miša</translation>
 <translation id="973788791897303708">Ova grupa kartica je puna</translation>
 <translation id="97381968209917373">Izbrišite sertifikat <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> je promenio/la karticu</translation>
 <translation id="975893173032473675">Jezik na koji želite da prevodite</translation>
 <translation id="976499800099896273">Prikazuje se dijalog za opozivanje automatskog ispravljanja reči <ph name="TYPED_WORD" /> u <ph name="CORRECTED_WORD" />.  Pritisnite strelicu nagore da biste pristupili toj reči ili Escape da biste je ignorisali.</translation>
 <translation id="976572010712028687">Potvrdite da ste roditelj</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 280d8ea..6e248d62 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -463,6 +463,7 @@
 <translation id="1306606229401759371">Промени подешавања</translation>
 <translation id="1307165550267142340">Направили сте PIN</translation>
 <translation id="1307431692088049276">Не питај ме поново</translation>
+<translation id="130744661532298792">Да бисте били сигурни да увек можете да користите лозинке на Google налогу, потврдите свој идентитет</translation>
 <translation id="1307559529304613120">Упс! Систем није успео да сачува ознаку дугорочног приступа API-ју за овај уређај.</translation>
 <translation id="1308548450293664112">Направио/ла сам овај фајл, група дугмади за избор, 1. од 3</translation>
 <translation id="131112695174432497">Подаци који утичу на персонализацију огласа се бришу</translation>
@@ -2561,7 +2562,6 @@
 <translation id="2764920001292228569">Унесите назив профила</translation>
 <translation id="2765100602267695013">Обратите се мобилном оператеру</translation>
 <translation id="2765217105034171413">Мала</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> је уклонио/ла картицу</translation>
 <translation id="2765820627968019645">Светла</translation>
 <translation id="276582196519778359">Унесите PIN за родитељски надзор</translation>
 <translation id="2766006623206032690">На&amp;лепи и иди</translation>
@@ -2824,6 +2824,7 @@
 <translation id="2953210795988451570">Безбедносна ажурирања су завршена. Набавите нов Chromebook.</translation>
 <translation id="2953218713108551165">Обавештења нису дозвољена за <ph name="SITE" />. Приказаће вам се упит при следећој посети.</translation>
 <translation id="2956070239128776395">Одељак угнежден у групу: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">Укључите режим програмера да бисте користили овај додатак који Chrome веб-продавница не може да прегледа.</translation>
 <translation id="2958721676848865875">Упозорење о паковању додатка</translation>
 <translation id="2959127025785722291">Дошло је до грешке. Скенирање није довршено. Пробајте поново.</translation>
 <translation id="2959474507964749987">Овај шифровани фајл је можда вирус или малвер.<ph name="LINE_BREAK" />Да бисте проверили да ли је небезбедан, можете да пошаљете фајл и лозинку у Google безбедно прегледање. Скенирање обично траје неколико секунди.<ph name="LINE_BREAK" />Да бисте скенирали, додајте лозинку за фајл.</translation>
@@ -4125,7 +4126,6 @@
 <translation id="3872991219937722530">Ослободите простор на диску или ће уређај престати да се одазива.</translation>
 <translation id="3873315167136380065">Да бисте укључили ово, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /> да бисте уклонили приступну фразу за синхронизацију</translation>
 <translation id="3873423927483480833">Приказује PIN-ове</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> је додао/ла картицу</translation>
 <translation id="3873915545594852654">Дошло је до проблема који се односи на ARC++.</translation>
 <translation id="3874164307099183178">Укључите Google помоћник</translation>
 <translation id="3875511946736639169">Омогући слике</translation>
@@ -4255,7 +4255,6 @@
 <translation id="3959969108528118741">Власник</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Још радњи за <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> је изашао/ла из групе</translation>
 <translation id="3963753386716096475">Користите други телефон, таблет или безбедносни кључ</translation>
 <translation id="3964480518399667971">Искључи мобилну мрежу</translation>
 <translation id="3965965397408324205">Затвори <ph name="PROFILE_NAME" /></translation>
@@ -4324,6 +4323,7 @@
 <translation id="4001540981461989979">Истакни курсор миша при кретању</translation>
 <translation id="4002347779798688515">Преузети профил можда неће бити употребљив ако је мобилни оператер закључан. Затражите подршку од њега.</translation>
 <translation id="4002440992267487163">Подешавање PIN-а</translation>
+<translation id="4003617970184602156">Да бисте користили и чували лозинке на Google налогу, потврдите свој идентитет</translation>
 <translation id="4005817994523282006">Метод откривања временске зоне</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{Овим ћете трајно избрисати групу са уређаја.}one{Овим ћете трајно избрисати групе са уређаја.}few{Овим ћете трајно избрисати групе са уређаја.}other{Овим ћете трајно избрисати групе са уређаја.}}</translation>
 <translation id="4010036441048359843">Укључи истицање</translation>
@@ -5378,7 +5378,6 @@
 <translation id="4789348252524569426">Инсталирање фајлова за говор није успело. Уређај треба да се ажурира. Рестартујте уређај и пробајте поново.</translation>
 <translation id="4789550509729954245">Приказуј обавештење када уређаји деле садржај у близини</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Нема доступних предлога. Питајте ствари као што су „резимирај ову страницу“ или сами осмислите питање.</translation>
 <translation id="4791793693640849493">Сачувајте ставке на налогу</translation>
 <translation id="4792290259143007505">Омогући убрзање TrackPoint-а</translation>
 <translation id="4792711294155034829">&amp;Пријави проблем...</translation>
@@ -6956,6 +6955,7 @@
 <translation id="5932224571077948991">Сајт приказује огласе који ометају активности или обмањујуће огласе</translation>
 <translation id="59324397759951282">USB произвођача <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932441198730183141">Немате довољно доступних лиценци за регистровање овог Google Meet хардверског уређаја. Обратите се сектору продаје да бисте купили још лиценци. Ако сматрате да се ова порука приказује грешком, обратите се подршци.</translation>
+<translation id="593271375210025655">Укључите режим програмера да бисте користили овај додатак, али само ако имате поверења у њега. Може да садржи експерименталне функције и Chrome веб-продавница није прегледала.</translation>
 <translation id="5932881020239635062">Серијски број</translation>
 <translation id="5933376509899483611">Временска зона</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> користи камеру и микрофон</translation>
@@ -6983,6 +6983,7 @@
 <translation id="5948476936444935795">Откажи увоз</translation>
 <translation id="5948536763493709626">Повежите тастатуру или миш или наставите подешавање помоћу додирног екрана. Ако користите Bluetooth уређаје, уверите се да су уређаји спремни за упаривање.</translation>
 <translation id="5949544233750246342">Рашчлањивање датотеке није успело</translation>
+<translation id="5949795028157144515">Режим програмера је искључен. Неки додаци су онемогућени.</translation>
 <translation id="594993197557058302">Притисните 1–4 модификујућих тастера (ctrl, alt, shift, тастер за претрагу или Покретач) и још 1 тастер. Можете да изаберете и само један тастер.</translation>
 <translation id="5950762317146173294">Овај фајл је можда вирус или малвер</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> жели да користи локалне фонтове</translation>
@@ -9011,7 +9012,6 @@
 <translation id="7421293530411019405">Желите да напустите групу картица?</translation>
 <translation id="7421925624202799674">&amp;Прикажи извор странице</translation>
 <translation id="7422192691352527311">Подешавања...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> је променио/ла назив групе</translation>
 <translation id="7423425410216218516">Видљивост је укључена <ph name="MINUTES" /> минут/а</translation>
 <translation id="7423513079490750513">Уклоните метод уноса <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">За покретање апликације <ph name="APP_NAME" /> је потребна дозвола</translation>
@@ -9502,7 +9502,6 @@
 <translation id="7772032839648071052">Потврди приступну фразу</translation>
 <translation id="7772127298218883077">О <ph name="PRODUCT_NAME" /> прегледачу</translation>
 <translation id="7773726648746946405">Меморијски простор сесије</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> је ушао/ла у групу</translation>
 <translation id="7774365994322694683">Птица</translation>
 <translation id="7774581652827321413">Добијте резиме странице, сродне претраге и друге корисне информације о овој страници</translation>
 <translation id="7774792847912242537">Превише је захтева.</translation>
@@ -11101,7 +11100,6 @@
 <translation id="8888253246822647887">Апликација ће се отворити када се надоградња заврши. Надоградње могу да трају пар минута.</translation>
 <translation id="8888459276890791557">Можете да закачите ову бочну таблу да бисте јој лако приступали</translation>
 <translation id="8889294078294184559">Док настављате са прегледањем, сајтови могу да проверавају у Chrome-у и да од претходног сајта који сте посетили добију потврду да сте вероватно стварна особа</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> је променио/ла боју групе</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> може да мења датотеке и директоријуме у наставку</translation>
 <translation id="8890170499370378450">Можда ће доћи до трошкова за пренос података преко мобилног оператера</translation>
 <translation id="8890516388109605451">Извори</translation>
@@ -11252,7 +11250,6 @@
 <translation id="8991520179165052608">Сајт може да користи микрофон</translation>
 <translation id="8991694323904646277">Нема камере</translation>
 <translation id="8991766915726096402">Опоравак локалних података</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Пре <ph name="TIME_COUNT" /> м}=1{Пре <ph name="TIME_COUNT" /> с}one{Пре <ph name="TIME_COUNT" /> д}few{Пре <ph name="TIME_COUNT" /> д}other{Пре <ph name="TIME_COUNT" /> д}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Потрошња меморије – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ако заборавите лозинку за <ph name="DEVICE_TYPE" />, и даље можете да вратите локалне податке. Морате да се пријавите на Google налог или да употребите враћање приступа налогу.</translation>
 <translation id="8993198843374358393">Копирајте хеш сертификата за <ph name="CERT_NAME" /></translation>
@@ -11654,7 +11651,6 @@
 <translation id="973558314812359997">Величина миша</translation>
 <translation id="973788791897303708">Ова група картица је пуна</translation>
 <translation id="97381968209917373">Избришите сертификат <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> је променио/ла картицу</translation>
 <translation id="975893173032473675">Језик на који желите да преводите</translation>
 <translation id="976499800099896273">Приказује се дијалог за опозивање аутоматског исправљања речи <ph name="TYPED_WORD" /> у <ph name="CORRECTED_WORD" />.  Притисните стрелицу нагоре да бисте приступили тој речи или Escape да бисте је игнорисали.</translation>
 <translation id="976572010712028687">Потврдите да сте родитељ</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 39bc011d..46e3989 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -461,6 +461,7 @@
 <translation id="1306606229401759371">Ändra inställningar</translation>
 <translation id="1307165550267142340">Pinkoden har skapats</translation>
 <translation id="1307431692088049276">Fråga mig inte igen</translation>
+<translation id="130744661532298792">Verifiera din identitet för att se till att du alltid kan använda lösenorden i Google-kontot</translation>
 <translation id="1307559529304613120">Hoppsan! Det gick inte att lagra någon långsiktig API-åtkomsttoken för den här enheten.</translation>
 <translation id="1308548450293664112">Jag har skapat den här filen, alternativknappsgrupp, 1 av 3</translation>
 <translation id="131112695174432497">Data som påverkar annonsanpassning raderas</translation>
@@ -2576,7 +2577,6 @@
 <translation id="2764920001292228569">Ange ett profilnamn</translation>
 <translation id="2765100602267695013">Kontakta mobilleverantören</translation>
 <translation id="2765217105034171413">Liten</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> tog bort en flik</translation>
 <translation id="2765820627968019645">Ljust</translation>
 <translation id="276582196519778359">Ange pinkoden för föräldrakontroller</translation>
 <translation id="2766006623206032690">Kl&amp;istra in och öppna</translation>
@@ -2839,6 +2839,7 @@
 <translation id="2953210795988451570">Säkerhetsuppdateringar har upphört. Uppgradera till en ny Chromebook.</translation>
 <translation id="2953218713108551165">Aviseringar är inte tillåtna för <ph name="SITE" />. Du blir tillfrågad igen nästa gång du besöker webbplatsen.</translation>
 <translation id="2956070239128776395">Ett avsnitt har kapslats in i en grupp: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">Aktivera utvecklarläget för att använda det här tillägget, som inte kan granskas av Chrome Web Store.</translation>
 <translation id="2958721676848865875">Varning vid paketering av tillägg</translation>
 <translation id="2959127025785722291">Något gick fel. Det gick inte att slutföra genomsökningen. Försök igen.</translation>
 <translation id="2959474507964749987">Den här krypterade filen kan innehålla ett virus eller skadlig kod.<ph name="LINE_BREAK" />Du kan kontrollera om den är säker genom att skicka filen och lösenordet till Google Säker webbsökning. Genomsökningen tar vanligtvis några sekunder.<ph name="LINE_BREAK" />Lägg till filens lösenord för att genomsöka den.</translation>
@@ -4140,7 +4141,6 @@
 <translation id="3872991219937722530">Frigör diskutrymme för att enheten ska fortsätta svara.</translation>
 <translation id="3873315167136380065"><ph name="BEGIN_LINK" />Återställ synkroniseringen<ph name="END_LINK" /> så att lösenfrasen för synkronisering tas bort om du vill aktivera detta</translation>
 <translation id="3873423927483480833">Visa pinkoder</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> lade till en flik</translation>
 <translation id="3873915545594852654">Ett problem med ARC++ uppstod.</translation>
 <translation id="3874164307099183178">Aktivera Google Assistent</translation>
 <translation id="3875511946736639169">Aktivera bilder</translation>
@@ -4270,7 +4270,6 @@
 <translation id="3959969108528118741">Ägare</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Fler åtgärder för <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> lämnade gruppen</translation>
 <translation id="3963753386716096475">Använd en annan telefon, surfplatta eller säkerhetsnyckel</translation>
 <translation id="3964480518399667971">Inaktivera mobilnätverk</translation>
 <translation id="3965965397408324205">Stäng <ph name="PROFILE_NAME" /></translation>
@@ -4339,6 +4338,7 @@
 <translation id="4001540981461989979">Framhäv muspekaren när den rör sig</translation>
 <translation id="4002347779798688515">Den nedladdade profilen kan kanske inte användas om mobiloperatören är låst. Kontakta operatören för support.</translation>
 <translation id="4002440992267487163">Konfigurera pinkod</translation>
+<translation id="4003617970184602156">Verifiera din identitet om du vill använda och spara lösenord i Google-kontot</translation>
 <translation id="4005817994523282006">Metod för tidszonsidentifiering</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{Detta raderar gruppen permanent från enheten.}other{Detta raderar grupperna permanent från enheten.}}</translation>
 <translation id="4010036441048359843">Aktivera markering</translation>
@@ -5393,7 +5393,6 @@
 <translation id="4789348252524569426">Det gick inte att installera ljudfiler. Enheten måste uppdateras. Starta om enheten och försök igen.</translation>
 <translation id="4789550509729954245">Visa en avisering när enheter i närheten delar filer</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Det finns inga tillgängliga förslag. Testa att be om sådant som ”sammanfatta den här sidan” eller ställ en egen fråga.</translation>
 <translation id="4791793693640849493">Spara objekt i kontot</translation>
 <translation id="4792290259143007505">Aktivera TrackPoint-acceleration</translation>
 <translation id="4792711294155034829">&amp;Rapportera ett problem...</translation>
@@ -6972,6 +6971,7 @@
 <translation id="5932224571077948991">Påträngande eller vilseledande annonser visas på webbplatsen</translation>
 <translation id="59324397759951282">USB-enhet från <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932441198730183141">Du har inte tillräckligt många licenser tillgängliga för att registrera den här hårdvaruenheten för Google Meet. Kontakta säljavdelningen om du vill köpa fler. Om du anser att detta meddelande visas på felaktig grund kontaktar du supporten.</translation>
+<translation id="593271375210025655">Aktivera utvecklarläget för att använda det här tillägget, men bara om du litar på det. Det kan innehålla experimentella funktioner och har inte granskats av Chrome Web Store.</translation>
 <translation id="5932881020239635062">Serienummer</translation>
 <translation id="5933376509899483611">Tidszon</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> använder kameran och mikrofonen</translation>
@@ -6999,6 +6999,7 @@
 <translation id="5948476936444935795">Avbryt import</translation>
 <translation id="5948536763493709626">Anslut ett tangentbord eller en mus eller fortsätt att konfigurera med pekskärmen. Om du använder Bluetooth-enheter kontrollerar du att de är klara att koppla.</translation>
 <translation id="5949544233750246342">Det gick inte att analysera filen</translation>
+<translation id="5949795028157144515">Utvecklarläget är inaktiverat. Vissa tillägg har inaktiverats.</translation>
 <translation id="594993197557058302">Tryck på en till fyra specialtangenter (Ctrl, Alt, Skift, Sök eller appstartartangenten) och en till tangent. Du kan även välja en enda tangent.</translation>
 <translation id="5950762317146173294">Den här filen kan innehålla ett virus eller skadlig kod</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> vill använda lokala teckensnitt</translation>
@@ -9023,7 +9024,6 @@
 <translation id="7421293530411019405">Vill du lämna flikgruppen?</translation>
 <translation id="7421925624202799674">Visa &amp;sidkälla</translation>
 <translation id="7422192691352527311">Inställningar...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> ändrade gruppnamnet</translation>
 <translation id="7423425410216218516">Synlighet är aktiverat i <ph name="MINUTES" /> minuter</translation>
 <translation id="7423513079490750513">Ta bort <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">Behörighet krävs för att köra <ph name="APP_NAME" /></translation>
@@ -9514,7 +9514,6 @@
 <translation id="7772032839648071052">Bekräfta lösenfras</translation>
 <translation id="7772127298218883077">Om <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Sessionslagring</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> gick med i gruppen</translation>
 <translation id="7774365994322694683">Fågel</translation>
 <translation id="7774581652827321413">Få en sammanfattning av sidan, relaterade sökningar och annan användbar information om den här sidan</translation>
 <translation id="7774792847912242537">För många begäranden.</translation>
@@ -11111,7 +11110,6 @@
 <translation id="8888253246822647887">Appen öppnas när uppgraderingen är klar. Uppgraderingen kan ta några minuter.</translation>
 <translation id="8888459276890791557">Du kan fästa den här sidopanelen så att du kommer åt den enkelt</translation>
 <translation id="8889294078294184559">När du fortsätter surfa kan webbplatser kontrollera informationen med Chrome och verifiera med den föregående webbplatsen du besökte att du troligen är en riktig person.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> ändrade gruppfärgen</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> har redigeringsbehörighet till följande filer och mappar</translation>
 <translation id="8890170499370378450">Avgifter för mobildata kan tillkomma</translation>
 <translation id="8890516388109605451">Källor</translation>
@@ -11262,7 +11260,6 @@
 <translation id="8991520179165052608">Webbplatsen har åtkomst till din mikrofon</translation>
 <translation id="8991694323904646277">Ingen kamera</translation>
 <translation id="8991766915726096402">Återställning av lokal data</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> m sedan}=1{<ph name="TIME_COUNT" /> h sedan}other{<ph name="TIME_COUNT" /> d sedan}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Minnesanvändning – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Om du glömmer lösenordet för din <ph name="DEVICE_TYPE" /> kan du fortfarande återställa lokal data. Du måste logga in på ditt Google-konto eller använda kontoåterställning.</translation>
 <translation id="8993198843374358393">Kopiera certifikathashvärdet för <ph name="CERT_NAME" /></translation>
@@ -11664,7 +11661,6 @@
 <translation id="973558314812359997">Muspekarens storlek</translation>
 <translation id="973788791897303708">Den här flikgruppen är full</translation>
 <translation id="97381968209917373">Ta bort certifikatet <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ändrade en flik</translation>
 <translation id="975893173032473675">Språk att översätta till</translation>
 <translation id="976499800099896273">Dialogrutan för att ångra en autokorrigering visas för <ph name="TYPED_WORD" />, som rättades till <ph name="CORRECTED_WORD" />.  Tryck på uppåtpilen för att komma åt ordet och på Esc för att ignorera.</translation>
 <translation id="976572010712028687">Verifiera att du är förälder</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index b55d636..d8f94c8 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -2573,7 +2573,6 @@
 <translation id="2764920001292228569">Weka jina la wasifu</translation>
 <translation id="2765100602267695013">Tafadhali wasiliana na mtoa huduma wa kifaa chako cha mkononi</translation>
 <translation id="2765217105034171413">Ndogo</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ameondoa kichupo</translation>
 <translation id="2765820627968019645">Mwangaza</translation>
 <translation id="276582196519778359">Weka PIN yako ya vidhibiti vya wazazi</translation>
 <translation id="2766006623206032690">&amp;Bandika na uende</translation>
@@ -4137,7 +4136,6 @@
 <translation id="3872991219937722530">Futa maudhui katika hifadhi ya diski la sivyo kifaa chako kitaacha kufanya kazi.</translation>
 <translation id="3873315167136380065">Ili kuwasha kipengele hiki, <ph name="BEGIN_LINK" />weka upya kipengele cha usawazishaji<ph name="END_LINK" /> ili kuondoa kauli yako ya siri ya usawazishaji</translation>
 <translation id="3873423927483480833">Onyesha PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ameweka kichupo</translation>
 <translation id="3873915545594852654">Hitilafu imetokea kwenye ARC++.</translation>
 <translation id="3874164307099183178">Washa programu ya Mratibu wa Google</translation>
 <translation id="3875511946736639169">Washa kipengele cha kuonyesha picha</translation>
@@ -4267,7 +4265,6 @@
 <translation id="3959969108528118741">Mmiliki</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Vitendo zaidi vya <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ameondoka kwenye kikundi</translation>
 <translation id="3963753386716096475">Tumia simu, kishikwambi au ufunguo tofauti wa usalama</translation>
 <translation id="3964480518399667971">Zima Mtandao wa Simu</translation>
 <translation id="3965965397408324205">Funga <ph name="PROFILE_NAME" /></translation>
@@ -5388,7 +5385,6 @@
 <translation id="4789348252524569426">Imeshindwa kusakinisha faili za matamshi. Unahitaji kusasisha kifaa chako. Zima kisha uwashe kifaa chako na ujaribu tena.</translation>
 <translation id="4789550509729954245">Onyesha arifa vifaa vinaposhiriki na vingine vilivyo karibu</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Hakuna mapendekezo yanayopatikana. Jaribu kuuliza mambo kama vile "andaa muhtasari wa ukurasa huu" au uulize swali lako mwenyewe.</translation>
 <translation id="4791793693640849493">Hifadhi vipengee kwenye akaunti</translation>
 <translation id="4792290259143007505">Washa kipengele cha kuongeza kasi ya TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Ripoti Tatizo...</translation>
@@ -9018,7 +9014,6 @@
 <translation id="7421293530411019405">Ungependa kuondoka kwenye kikundi cha vichupo?</translation>
 <translation id="7421925624202799674">&amp;Tazama Asili ya Ukurasa</translation>
 <translation id="7422192691352527311">Mapendeleo...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> amebadilisha jina la kikundi</translation>
 <translation id="7423425410216218516">Uonekanaji umewashwa kwa dakika <ph name="MINUTES" /></translation>
 <translation id="7423513079490750513">Ondoa <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> inahitaji ruhusa ili isakinishwe</translation>
@@ -9509,7 +9504,6 @@
 <translation id="7772032839648071052">Thibitisha kaulisiri</translation>
 <translation id="7772127298218883077">Kuhusu <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Hifadhi ya kipindi</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> amejiunga kwenye kikundi</translation>
 <translation id="7774365994322694683">Ndege</translation>
 <translation id="7774581652827321413">Pata muhtasari wa ukurasa, utafutaji unaohusiana na maelezo mengine muhimu kuhusu ukurasa huu</translation>
 <translation id="7774792847912242537">Maombi mengi mno.</translation>
@@ -11107,7 +11101,6 @@
 <translation id="8888253246822647887">Programu yako itafunguka baada ya kukamilisha kuweka toleo jipya. Matoleo mapya yanaweza kuchukua dakika kadhaa kuwekwa.</translation>
 <translation id="8888459276890791557">Unaweza kubandika kidirisha hiki cha pembeni ili ukifikie kwa urahisi</translation>
 <translation id="8889294078294184559">Kadiri unavyoendelea kuvinjari, tovuti zinaweza kukagua kwenye Chrome na kuthibitisha kupitia tovuti uliyotembelea awali kwamba unaweza kuwa mtu halisi</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> amebadilisha rangi ya kikundi</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> inaweza kubadilisha faili na folda zifuatazo</translation>
 <translation id="8890170499370378450">Huenda ukatozwa gharama za data ya mtandao wa simu</translation>
 <translation id="8890516388109605451">Vyanzo</translation>
@@ -11258,7 +11251,6 @@
 <translation id="8991520179165052608">Tovuti inaweza kutumia maikrofoni yako</translation>
 <translation id="8991694323904646277">Hakuna kamera</translation>
 <translation id="8991766915726096402">Urejeshaji wa Data kwenye Kifaa</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Dak <ph name="TIME_COUNT" /> zilizopita}=1{Saa <ph name="TIME_COUNT" /> zilizopita}other{Siku <ph name="TIME_COUNT" /> zilizopita}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Matumizi ya hifadhi - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Ukisahau nenosiri lako la <ph name="DEVICE_TYPE" />, bado unaweza kurejesha data yako iliyo kwenye kifaa. Utahitaji kuingia kwenye Akaunti yako ya Google au utumie mbinu za kurejesha uwezo wa kufikia akaunti.</translation>
 <translation id="8993198843374358393">Nakili kiwakilishi kifupi cha cheti cha <ph name="CERT_NAME" /></translation>
@@ -11660,7 +11652,6 @@
 <translation id="973558314812359997">Ukubwa wa kipanya</translation>
 <translation id="973788791897303708">Kikundi hiki cha vichupo kimejaa</translation>
 <translation id="97381968209917373">Futa cheti cha <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> amebadilisha kichupo</translation>
 <translation id="975893173032473675">Lugha ya Kutafsiria</translation>
 <translation id="976499800099896273">Kidirisha cha kutendua usahihishaji kiotomatiki kimeonyeshwa kwa ajili ya neno <ph name="TYPED_WORD" /> lililosahihishwa likawa <ph name="CORRECTED_WORD" />.  Bonyeza kishale cha juu ili ufungue kidirisha na kitufe cha "escape" ili upuuze.</translation>
 <translation id="976572010712028687">Kuthibitisha kuwa wewe ni mzazi</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 813bec8..6ad8446 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">சுயவிவரப் பெயரை டைப் செய்யவும்</translation>
 <translation id="2765100602267695013">உங்கள் மொபைல் வழங்குநரைத் தொடர்புகொள்ளவும்</translation>
 <translation id="2765217105034171413">சிறிய</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> பக்கத்தை அகற்றியுள்ளார்</translation>
 <translation id="2765820627968019645">லைட்</translation>
 <translation id="276582196519778359">பெற்றோர் கட்டுப்பாடுகளுக்குச் செல்ல உங்கள் பின்னை வழங்குங்கள்</translation>
 <translation id="2766006623206032690">ஒட்&amp;டி விட்டு செல்</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">சாதனத்தில் காலி இடத்தை உருவாக்கவும் அல்லது உங்கள் சாதனம் இயங்காது.</translation>
 <translation id="3873315167136380065">இதை இயக்குவதற்கு, <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைத்து<ph name="END_LINK" /> உங்கள் ஒத்திசைவுக் கடவுச்சொற்றொடரை அகற்றவும்.</translation>
 <translation id="3873423927483480833">பின்களைக் காட்டும்</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> பக்கத்தைச் சேர்த்துள்ளார்</translation>
 <translation id="3873915545594852654">ARC++ல் ஒரு சிக்கல் ஏற்பட்டது.</translation>
 <translation id="3874164307099183178">Google Assistantடை இயக்கு</translation>
 <translation id="3875511946736639169">படங்களை இயக்கும்</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">உரிமையாளர்</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" />க்கான கூடுதல் செயல்கள்</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> குழுவில் இருந்து வெளியேறிவிட்டார்</translation>
 <translation id="3963753386716096475">வேறொரு மொபைல், டேப்லெட் அல்லது பாதுகாப்பு விசையைப் பயன்படுத்து</translation>
 <translation id="3964480518399667971">செல்லுலார் நெட்வொர்க்கை முடக்கு</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" />ஐ மூடு</translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">பேச்சு அறிதல் ஃபைல்களை நிறுவ முடியவில்லை. உங்கள் சாதனத்தைப் புதுப்பிக்க வேண்டும். சாதனத்தை மீண்டும் தொடங்கி மறுபடியும் முயலவும்.</translation>
 <translation id="4789550509729954245">அருகிலுள்ள சாதனங்கள் பகிரும்போது அறிவிப்பைக் காட்டும்</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">பரிந்துரைகள் எதுவும் இல்லை. “இந்தப் பக்கத்தைச் சுருக்கு” போன்ற கேள்விகளைக் கேளுங்கள் அல்லது நீங்களே கேள்வியை உருவாக்குங்கள்.</translation>
 <translation id="4791793693640849493">தகவல்களைக் கணக்கில் சேமித்தல்</translation>
 <translation id="4792290259143007505">TrackPoint ஆக்ஸிலரேஷனை இயக்கு</translation>
 <translation id="4792711294155034829">&amp;சிக்கலைப் புகார் செய்க...</translation>
@@ -9024,7 +9020,6 @@
 <translation id="7421293530411019405">பக்கக் குழுவில் இருந்து வெளியேற வேண்டுமா?</translation>
 <translation id="7421925624202799674">&amp;பக்கத்தின் ஆதாரத்தைக் காண்க</translation>
 <translation id="7422192691352527311">விருப்பத்தேர்வுகள்...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> குழுவின் பெயரை மாற்றியுள்ளார்</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> நிமிடங்களுக்குச் சாதனம் காட்டப்படும்</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ஐ அகற்றும்</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ஆப்ஸை இயக்க அனுமதி தேவை</translation>
@@ -9515,7 +9510,6 @@
 <translation id="7772032839648071052">கடவுச்சொற்றொடரை உறுதி செய்க</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> ஐப் பற்றி</translation>
 <translation id="7773726648746946405">அமர்வு சேமிப்பகம்</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> குழுவில் சேர்ந்துள்ளார்</translation>
 <translation id="7774365994322694683">பறவை</translation>
 <translation id="7774581652827321413">பக்கம் குறித்த சுருக்க விவரம், தொடர்புடைய தேடல்கள், இந்தப் பக்கம் பற்றிய பிற பயனுள்ள தகவல்கள் ஆகியவற்றைப் பெறுங்கள்</translation>
 <translation id="7774792847912242537">அளவுக்கு அதிகமான கோரிக்கைகள்.</translation>
@@ -11112,7 +11106,6 @@
 <translation id="8888253246822647887">மேம்படுத்தப்பட்டதும் உங்கள் ஆப்ஸ் திறக்கும். மேம்படுத்துவதற்குச் சில நிமிடங்கள் ஆகலாம்.</translation>
 <translation id="8888459276890791557">எளிதாக அணுக இந்தப் பக்கவாட்டு பேனலைப் பின் செய்யலாம்</translation>
 <translation id="8889294078294184559">நீங்கள் தேடத் தேட, தளங்கள் Chromeமைத் தொடர்புகொண்டு நீங்கள் பார்வையிட்ட முந்தைய தளத்தைப் பயன்படுத்தி நீங்கள் ஒரு நபர்தானா என்பதைச் சரிபார்க்கலாம்</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> குழுவின் வண்ணத்தை மாற்றியுள்ளார்</translation>
 <translation id="8889651696183044030">பின்வரும் கோப்புகளையும் ஃபோல்டர்களையும் <ph name="ORIGIN" /> தளத்தால் திருத்த முடியும்</translation>
 <translation id="8890170499370378450">மொபைல் டேட்டா கட்டணங்கள் விதிக்கப்படலாம்</translation>
 <translation id="8890516388109605451">மூலங்கள்</translation>
@@ -11263,7 +11256,6 @@
 <translation id="8991520179165052608">தளத்தால் உங்கள் மைக்ரோஃபோனைப் பயன்படுத்த முடியும்</translation>
 <translation id="8991694323904646277">கேமரா இல்லை</translation>
 <translation id="8991766915726096402">சாதனத்தில் உள்ள தரவை மீட்டெடுத்தல்</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />நி முன்பு}=1{<ph name="TIME_COUNT" />ம.நே முன்பு}other{<ph name="TIME_COUNT" />நா முன்பு}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - நினைவக உபயோகம் - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> சாதனத்தின் கடவுச்சொல்லை நீங்கள் மறந்துவிட்டாலும்கூட சாதனத்தில் உள்ள தரவை நீங்கள் மீட்டெடுக்க முடியும். நீங்கள் Google கணக்கில் உள்நுழைய வேண்டும் அல்லது கணக்கு மீட்டெடுப்பு அம்சத்தைப் பயன்படுத்த வேண்டும்.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />க்கான சான்றிதழ் ஹேஷை நகலெடுக்கும்</translation>
@@ -11665,7 +11657,6 @@
 <translation id="973558314812359997">மவுஸ் அளவு</translation>
 <translation id="973788791897303708">இந்தப் பக்கக் குழு நிரம்பிவிட்டது</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> சான்றிதழை நீக்கு</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> பக்கத்தை மாற்றியுள்ளார்</translation>
 <translation id="975893173032473675">இதற்கு மொழிபெயர்க்கவும்:</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> என டைப் செய்யப்பட்ட சொல் <ph name="CORRECTED_WORD" /> எனத் தானாகத் திருத்தப்பட்டதைச் செயல்தவிர்க்கும் உரையாடல்.  ஏற்றுக்கொள்ள மேல்நோக்கிய அம்புக்குறியையும் நிராகரிக்க எஸ்கேப் விசையையும் அழுத்துங்கள்.</translation>
 <translation id="976572010712028687">நீங்கள் பெற்றோர் என்பதை உறுதிப்படுத்துங்கள்</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 4cae5d15..2b2e327c 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -302,7 +302,7 @@
 <translation id="11978075283960463">యాప్‌లో డేటా స్టోర్ చేయబడింది: <ph name="APP_SIZE" /></translation>
 <translation id="1198066799963193307">చూపు సమస్య ఉన్న వారికి సహాయపడే స్పీచ్ టూల్స్</translation>
 <translation id="1198412233443148072"><ph name="MEMBER_FIRST_NAME" />, “<ph name="WEBSITE_TITLE" />” ట్యాబ్‌ను తీసివేశారు</translation>
-<translation id="119944043368869598">అన్ని క్లియర్ చేయండి</translation>
+<translation id="119944043368869598">అన్నీ క్లియర్ చేయండి</translation>
 <translation id="1199814941632954229">ఈ సర్టిఫికెట్ ప్రొఫైల్‌లకు సర్టిఫికెట్‌లు అందించబడుతాయి</translation>
 <translation id="120069043972472860">చూడదగినది కాదు</translation>
 <translation id="1201402288615127009">తర్వాత</translation>
@@ -461,6 +461,7 @@
 <translation id="1306606229401759371">సెట్టింగ్‌లను మార్చు</translation>
 <translation id="1307165550267142340">మీ పిన్ క్రియేట్ చేయబడింది</translation>
 <translation id="1307431692088049276">నన్ను మళ్లీ అడగవద్దు</translation>
+<translation id="130744661532298792">మీరు మీ Google ఖాతాలోని పాస్‌వర్డ్‌లను ఎల్లప్పుడూ ఉపయోగించగలరని నిర్ధారించుకోవడానికి, ఇది మీరేనని వెరిఫై చేయండి</translation>
 <translation id="1307559529304613120">అయ్యో!  సిస్టమ్ ఈ పరికరం కోసం దీర్ఘకాల API యాక్సెస్‌ టోకెన్‌ను స్టోరేజ్‌ చేయడంలో విఫలమైంది.</translation>
 <translation id="1308548450293664112">నేను ఈ ఫైల్‌ను క్రియేట్ చేశాను, రేడియో బటన్ గ్రూప్, 3లో 1వది</translation>
 <translation id="131112695174432497">యాడ్ వ్యక్తిగతీకరణను ప్రభావితం చేసే డేటా తొలగించబడుతుంది</translation>
@@ -2574,7 +2575,6 @@
 <translation id="2764920001292228569">ఒక ప్రొఫైల్ పేరును ఎంటర్ చేయండి</translation>
 <translation id="2765100602267695013">దయచేసి మీ మొబైల్ ప్రొవైడర్‌ను సంప్రదించండి</translation>
 <translation id="2765217105034171413">చిన్నది</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> ఈ ట్యాబ్‌ను తీసివేసారు</translation>
 <translation id="2765820627968019645">లేత రంగు</translation>
 <translation id="276582196519778359">తల్లిదండ్రుల కంట్రోల్స్ కోసం మీ PINను ఎంటర్ చేయండి</translation>
 <translation id="2766006623206032690">పే&amp;స్ట్ చేసి ముందుకు వెళ్ళండి</translation>
@@ -2837,6 +2837,7 @@
 <translation id="2953210795988451570">సెక్యూరిటీ అప్‌డేట్‌లు ముగిశాయి. కొత్త Chromebookకు అప్‌గ్రేడ్ చేయండి.</translation>
 <translation id="2953218713108551165"><ph name="SITE" /> కోసం నోటిఫికేషన్‌లకు అనుమతి లేదు. మీరు తదుపరి సారి సందర్శించినప్పుడు సిస్టమ్ మిమ్మల్ని మళ్లీ అడుగుతుంది.</translation>
 <translation id="2956070239128776395">విభాగం గ్రూప్‌లో ఉంది: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">ఈ ఎక్స్‌టెన్షన్‌ను ఉపయోగించడానికి డెవలపర్ మోడ్‌ను ఆన్ చేయండి, ఇది Chrome వెబ్ స్టోర్ ద్వారా రివ్యూ చేయబడదు.</translation>
 <translation id="2958721676848865875">ప్యాక్ ఎక్స్‌టెన్షన్‌ హెచ్చరిక</translation>
 <translation id="2959127025785722291">ఏదో తప్పు జరిగింది. స్కానింగ్ పూర్తి కాలేకపోయింది. దయచేసి మళ్లీ ట్రై చేయండి.</translation>
 <translation id="2959474507964749987">ఈ ఎన్‌క్రిప్ట్ చేసిన ఫైల్‌లో వైరస్ లేదా మాల్‌వేర్ ఉండవచ్చు.<ph name="LINE_BREAK" />ఇది సురక్షితమా కాదా అని చెక్ చేయడానికి, మీరు ఆ ఫైల్‌ను, దాని పాస్‌వర్డ్‌ను 'Google సురక్షిత బ్రౌజింగ్'కు పంపవచ్చు. స్కానింగ్ ప్రాసెస్‌కు సాధారణంగా కొన్ని సెకన్ల సమయం పడుతుంది.<ph name="LINE_BREAK" />స్కాన్ చేయడానికి, ఫైల్ పాస్‌వర్డ్‌ను జోడించండి.</translation>
@@ -3432,7 +3433,7 @@
 <translation id="3406290648907941085">వర్చువల్ రియాలిటీ పరికరాలను, అలాగే డేటాను ఉపయోగించడానికి అనుమతించబడింది</translation>
 <translation id="3406396172897554194">భాష లేదా ఇన్‌పుట్ పేరు ఆధారంగా సెర్చ్ చేయండి</translation>
 <translation id="3406605057700382950"> &amp;బుక్‌మార్క్‌ల బార్‌ను చూపు</translation>
-<translation id="3407392651057365886">మరిన్ని పేజీలు ప్రీ - లోడ్ చేయబడ్డాయి. ఇతర సైట్‌లు ద్వారా రిక్వెస్ట్ చేసినప్పుడు పేజీలు Google సర్వర్‌ల ద్వారా ప్రీ - లోడ్ చేయబడవచ్చు.</translation>
+<translation id="3407392651057365886">మరికొన్ని పేజీలు ప్రీ - లోడ్ అవుతాయి. ఇతర సైట్‌లు రిక్వెస్ట్ చేసినప్పుడు, ఆ పేజీలు Google సర్వర్‌ల ద్వారా ప్రీ - లోడ్ కావచ్చు.</translation>
 <translation id="3407967630066378878">వేలిముద్రను సెటప్ చేయడానికి, ఈ <ph name="DEVICE_TYPE" />‌కు ఎడమ వైపున ఉన్న వేలిముద్ర సెన్సార్‌ను మీ చిన్నారి వేలితో తాకించండి. మీ చిన్నారి వేలిముద్ర డేటా సురక్షితంగా స్టోర్ చేయబడుతుంది, ఎప్పటికీ ఈ <ph name="DEVICE_TYPE" />‌లోనే ఉంటుంది.</translation>
 <translation id="3408555740610481810">కెమెరా &amp; మైక్రోఫోన్ వినియోగంలో ఉన్నాయి</translation>
 <translation id="3409513286451883969">ఎంపిక చేసిన టెక్స్ట్‌కు <ph name="LANGUAGE" /> భాషలో &amp;అనువాదం పొందండి</translation>
@@ -4138,7 +4139,6 @@
 <translation id="3872991219937722530">డిస్క్ స్థలాన్ని ఖాళీ చేయండి, లేదంటే పరికరం ఇక స్పందించదు.</translation>
 <translation id="3873315167136380065">దీన్ని ఆన్ చేయడానికి, మీ సింక్‌ రహస్య పదబంధాన్ని తీసివేయడానికి <ph name="BEGIN_LINK" />సింక్‌ను రీసెట్ చేయండి<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">పిన్‌లను చూపుతుంది</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> ట్యాబ్‌ను జోడించారు</translation>
 <translation id="3873915545594852654">ARC++కి సంబంధించి ఒక సమస్య ఏర్పడింది.</translation>
 <translation id="3874164307099183178">Google Assistantను ఆన్ చేయండి</translation>
 <translation id="3875511946736639169">ఇమేజ్‌లను ఎనేబుల్ చేయండి</translation>
@@ -4268,7 +4268,6 @@
 <translation id="3959969108528118741">ఓనర్</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> కోసం మరిన్ని చర్యలు</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> గ్రూప్ నుండి నిష్క్రమించారు</translation>
 <translation id="3963753386716096475">వేరే ఫోన్, టాబ్లెట్ లేదా సెక్యూరిటీ కీని ఉపయోగించండి</translation>
 <translation id="3964480518399667971">సెల్యూలార్ నెట్‌వర్క్‌ను ఆఫ్ చేయడం</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> నుండి నిష్క్రమించండి</translation>
@@ -4337,6 +4336,7 @@
 <translation id="4001540981461989979">కదులుతున్నప్పుడు మౌస్ కర్సర్‌ను హైలైట్ చేయండి</translation>
 <translation id="4002347779798688515">మొబైల్ నెట్‌వర్క్ ప్రొవైడర్ లాక్ చేయబడితే డౌన్‌లోడ్ చేయబడిన ప్రొఫైల్ ఉపయోగించబడకపోవచ్చు. సపోర్ట్ కోసం మీ ప్రొవైడర్‌ను సంప్రదించండి.</translation>
 <translation id="4002440992267487163">పిన్ సెటప్</translation>
+<translation id="4003617970184602156">మీ Google ఖాతాలో పాస్‌వర్డ్‌లను ఉపయోగించడానికి, దానిలో డేటాను సేవ్ చేయడానికి, ఇది మీరేనని వెరిఫై చేయండి</translation>
 <translation id="4005817994523282006">సమయ మండలి గుర్తింపు పద్ధతి</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{దీని వలన మీ పరికరం నుండి గ్రూప్ శాశ్వతంగా తొలగించబడుతుంది.}other{దీని వలన మీ పరికరం నుండి గ్రూప్‌లు శాశ్వతంగా తొలగించబడతాయి.}}</translation>
 <translation id="4010036441048359843">హైలైట్ చేయండి ఆప్షన్‌ను ఆన్ చేయండి</translation>
@@ -5391,7 +5391,6 @@
 <translation id="4789348252524569426">స్పీచ్ ఫైల్స్‌ను ఇన్‌స్టాల్ చేయడం సాధ్యం కాదు. మీ పరికరాన్ని అప్‌డేట్ చేయాలి. మీ పరికరాన్ని రీస్టార్ట్ చేసి, ఆపై మళ్లీ ట్రై చేయండి.</translation>
 <translation id="4789550509729954245">పరికరాలు సమీపంలోని షేర్ చేస్తున్నప్పుడు నోటిఫికేషన్‌ను చూడండి</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">సూచనలు ఏవీ అందుబాటులో లేవు. "ఈ పేజీ సారాంశాన్ని అందించండి" అని లేదా మీ స్వంతంగా ఏదైనా ప్రశ్న అడగడానికి ట్రై చేయండి.</translation>
 <translation id="4791793693640849493">ఖాతాలో ఐటెమ్‌లను సేవ్ చేయండి</translation>
 <translation id="4792290259143007505">ట్రాక్‌పాయింట్ యాక్సిలరేషన్‌ను ఎనేబుల్ చేయండి</translation>
 <translation id="4792711294155034829">&amp;ఒక సమస్యను రిపోర్ట్ చేయండి...</translation>
@@ -6969,6 +6968,7 @@
 <translation id="5932224571077948991">సైట్ అనుచితమైన లేదా తప్పుదారి పట్టించే ప్రకటనలను చూపుతుంది</translation>
 <translation id="59324397759951282"><ph name="MANUFACTURER_NAME" /> యొక్క USB పరికరం</translation>
 <translation id="5932441198730183141">ఈ Google Meet హార్డ్‌వేర్ పరికరాన్ని ఎన్‌రోల్ చేయడానికి మీకు తగిన లైసెన్స్‌లు లేవు. మరిన్ని కొనుగోలు చేయడానికి దయచేసి సేల్స్‌ను సంప్రదించండి. మీకు ఈ మెసేజ్ పొరపాటున వచ్చిందని మీరు విశ్వసిస్తే, దయచేసి సపోర్ట్ విభాగాన్ని సంప్రదించండి.</translation>
+<translation id="593271375210025655">ఈ ఎక్స్‌టెన్షన్‌ను ఉపయోగించడానికి డెవలపర్ మోడ్‌ను ఆన్ చేయండి, కానీ మీరు ఎక్స్‌టెన్షన్‌ను విశ్వసిస్తే మాత్రమే. దీనిలో Chrome వెబ్ స్టోర్ ద్వారా రివ్యూ చేయబడని ప్రయోగాత్మక లక్షణాలు ఉండవచ్చు.</translation>
 <translation id="5932881020239635062">క్రమసంఖ్య</translation>
 <translation id="5933376509899483611">సమయ మండలి</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> మీ కెమెరా, మైక్రోఫోన్‌ను ఉపయోగిస్తోంది</translation>
@@ -6996,6 +6996,7 @@
 <translation id="5948476936444935795">దిగుమతిని రద్దు చేయండి</translation>
 <translation id="5948536763493709626">కీబోర్డ్ లేదా మౌస్‌ని కనెక్ట్ చేయండి లేదా మీ టచ్‌స్క్రీన్‌ను ఉపయోగించి సెటప్‌ను కొనసాగించండి. మీరు బ్లూటూత్ పరికరాలను ఉపయోగిస్తుంటే, అవి పెయిర్ చేయడానికి సిద్ధంగా ఉన్నాయని నిర్ధారించుకోండి.</translation>
 <translation id="5949544233750246342">ఫైల్‌ని అన్వయించడం సాధ్యపడలేదు</translation>
+<translation id="5949795028157144515">డెవలపర్ మోడ్ ఆఫ్ చేయబడింది. కొన్ని ఎక్స్‌టెన్షన్‌లు డిజేబుల్ చేయబడ్డాయి.</translation>
 <translation id="594993197557058302">1-4 మోడిఫయర్ కీలను (ctrl, alt, shift, search, లేదా లాంచర్), ఇంకా మరో 1 కీని నొక్కండి. మీరు ఒకే కీని కూడా ఎంచుకోవచ్చు.</translation>
 <translation id="5950762317146173294">ఈ ఫైల్ వైరస్ లేదా మాల్‌వేర్ కావచ్చు</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> స్థానిక ఫాంట్‌లను ఉపయోగించాలనుకుంటుంది</translation>
@@ -9020,7 +9021,6 @@
 <translation id="7421293530411019405">ట్యాబ్ గ్రూప్ నుండి నిష్క్రమించాలా?</translation>
 <translation id="7421925624202799674">పేజీ మూలాన్ని &amp;వీక్షించండి</translation>
 <translation id="7422192691352527311">ప్రాధాన్యతలు...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> గ్రూప్ పేరు మార్చారు</translation>
 <translation id="7423425410216218516">విజిబిలిటీ <ph name="MINUTES" /> నిమిషాల వరకు ఆన్‌లో ఉంటుంది</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" />ను తీసివేస్తుంది</translation>
 <translation id="7423807071740419372">రన్ కావడానికి <ph name="APP_NAME" />కు అనుమతి అవసరం</translation>
@@ -9061,7 +9061,7 @@
 <translation id="7455730275746867420">అదనపు కంటైనర్‌లను మేనేజ్ చేయండి</translation>
 <translation id="7455988709578031708">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation>
 <translation id="7456142309650173560">డెవలపర్</translation>
-<translation id="7456774706094330779">పొడిగించిన ప్రీ - లోడింగ్</translation>
+<translation id="7456774706094330779">ఎక్స్‌టెండెడ్ ప్రీ - లోడింగ్</translation>
 <translation id="7456847797759667638">లొకేషన్‌ను తెరవండి...</translation>
 <translation id="7457027286267861992">తగినంత డిస్క్ స్పేస్ లేదు. దయచేసి మరింత డిస్క్ స్పేస్‌ను ఖాళీ చేసి, మళ్లీ ట్రై చేయండి. ఎర్రర్ కోడ్ <ph name="ERROR" />.</translation>
 <translation id="7457831169406914076">{COUNT,plural, =1{లింక్}other{# లింక్‌లు}}</translation>
@@ -9511,7 +9511,6 @@
 <translation id="7772032839648071052">రహస్య పదబంధాన్ని నిర్ధారించండి</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> గురించి</translation>
 <translation id="7773726648746946405">సెషన్ స్టోరేజ్‌</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> గ్రూప్‌లో చేరారు</translation>
 <translation id="7774365994322694683">పక్షి</translation>
 <translation id="7774581652827321413">ఈ పేజీ వివరాల గురించిన పేజీ సారాంశం, సంబంధిత సెర్చ్‌లు, అలాగే ఇతర ఉపయోగకరమైన సమాచారాన్ని పొందండి</translation>
 <translation id="7774792847912242537">చాలా ఎక్కువ రిక్వెస్ట్‌లు.</translation>
@@ -11104,7 +11103,6 @@
 <translation id="8888253246822647887">అప్‌గ్రేడ్ చేయడం పూర్తయినప్పుడు మీ యాప్ తెరవబడుతుంది. అప్‌గ్రేడ్‌లు పూర్తవడానికి కొద్ది నిమిషాలు పట్టవచ్చు.</translation>
 <translation id="8888459276890791557">సులభంగా యాక్సెస్ చేయడం కోసం మీరు ఈ సైడ్ ప్యానెల్‌ను పిన్ చేయవచ్చు</translation>
 <translation id="8889294078294184559">మీరు బ్రౌజింగ్ చేస్తూ ఉన్న సమయంలో, మీరు నిజమైన వ్యక్తేనా కాదా అని తెలుసుకోవడానికి, సైట్‌లు Chromeతో చెక్ చేసుకోవచ్చు, అలాగే మీరు ఇంతకు ముందు ఏ సైట్‌కు అయితే వెళ్లారో, ఆ సైట్‌తో కూడా వెరిఫై చేసుకోవచ్చు</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> గ్రూప్ రంగును మార్చారు</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> కింది ఫైళ్లు, ఫోల్డర్‌లను సవరించగలదు</translation>
 <translation id="8890170499370378450">మొబైల్ డేటా ఛార్జీ‌లు విధించబడవచ్చు</translation>
 <translation id="8890516388109605451">సోర్స్‌లు</translation>
@@ -11255,7 +11253,6 @@
 <translation id="8991520179165052608">సైట్ మీ మైక్రోఫోన్‌ను ఉపయోగించవచ్చు</translation>
 <translation id="8991694323904646277">కెమెరా లేదు</translation>
 <translation id="8991766915726096402">స్థానిక డేటా రికవరీ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" />ని క్రితం}=1{<ph name="TIME_COUNT" />గం క్రితం}other{<ph name="TIME_COUNT" />రో క్రితం}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - మెమరీ వినియోగం - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">మీరు మీ <ph name="DEVICE_TYPE" /> పాస్‌వర్డ్‌ను మర్చిపోయినా, మీ లోకల్ డేటాను రీస్టోర్ చేయవచ్చు. మీరు మీ Google ఖాతాకు సైన్ ఇన్ చేయాల్సి ఉంటుంది లేదా ఖాతా రికవరీని ఉపయోగించాల్సి ఉంటుంది.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" />‌కు సంబంధించిన సర్టిఫికెట్ హ్యాష్‌ను కాపీ చేయండి</translation>
@@ -11657,7 +11654,6 @@
 <translation id="973558314812359997">మౌస్ సైజ్</translation>
 <translation id="973788791897303708">ఈ ట్యాబ్ గ్రూప్ నిండింది</translation>
 <translation id="97381968209917373">"<ph name="CERT_NAME" />" సర్టిఫికెట్‌ను తొలగించండి</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> ట్యాబ్‌ను మార్చారు</translation>
 <translation id="975893173032473675">అనువదించాల్సిన భాష</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" />ను <ph name="CORRECTED_WORD" />కు మార్చేలా వచ్చిన ఆటోమేటిక్ కరెక్షన్‌ను రద్దు చేసే డైలాగ్ చూపబడుతోంది.  యాక్సెస్ చేయడానికి పై వైపు బాణాన్ని, అలాగే విస్మరించడానికి ఎస్కేప్‌ను నొక్కండి.</translation>
 <translation id="976572010712028687">మీరే పేరెంట్ అనే విషయాన్ని వెరిఫై చేయండి</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index d3954123..59646b5 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -461,6 +461,7 @@
 <translation id="1306606229401759371">เปลี่ยนการตั้งค่า</translation>
 <translation id="1307165550267142340">สร้าง PIN แล้ว</translation>
 <translation id="1307431692088049276">อย่าถามฉันอีก</translation>
+<translation id="130744661532298792">โปรดยืนยันว่าเป็นคุณเพื่อให้ใช้รหัสผ่านในบัญชี Google ได้เสมอ</translation>
 <translation id="1307559529304613120">อ๊ะ!  ระบบล้มเหลวในการจัดเก็บโทเค็นเพื่อการเข้าถึง API ในระยะยาวสำหรับอุปกรณ์นี้</translation>
 <translation id="1308548450293664112">กลุ่มปุ่มตัวเลือก "ฉันสร้างไฟล์นี้" 1 จาก 3</translation>
 <translation id="131112695174432497">ระบบจะลบข้อมูลที่มีผลต่อการปรับโฆษณาตามโปรไฟล์ของผู้ใช้</translation>
@@ -2563,7 +2564,6 @@
 <translation id="2764920001292228569">ป้อนชื่อโปรไฟล์</translation>
 <translation id="2765100602267695013">โปรดติดต่อผู้ให้บริการอุปกรณ์เคลื่อนที่</translation>
 <translation id="2765217105034171413">ขนาดเล็ก</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> นำแท็บออกแล้ว</translation>
 <translation id="2765820627968019645">สว่าง</translation>
 <translation id="276582196519778359">ป้อน PIN สำหรับการควบคุมโดยผู้ปกครอง</translation>
 <translation id="2766006623206032690">&amp;วางแล้วไป</translation>
@@ -2826,6 +2826,7 @@
 <translation id="2953210795988451570">การอัปเดตความปลอดภัยสิ้นสุดแล้ว เปลี่ยนไปใช้ Chromebook รุ่นใหม่</translation>
 <translation id="2953218713108551165">ไม่อนุญาตให้ <ph name="SITE" /> ส่งการแจ้งเตือน ระบบจะถามคุณอีกครั้งเมื่อเข้าชมครั้งถัดไป</translation>
 <translation id="2956070239128776395">ส่วนที่ฝังอยู่ในกลุ่ม: <ph name="ERROR_LINE" /></translation>
+<translation id="2957124229512318478">เปิดโหมดนักพัฒนาซอฟต์แวร์เพื่อใช้ส่วนขยายนี้ ซึ่ง Chrome เว็บสโตร์ไม่สามารถตรวจสอบได้</translation>
 <translation id="2958721676848865875">คำเตือนเกี่ยวกับการรวมแพ็กเกจส่วนขยาย</translation>
 <translation id="2959127025785722291">เกิดข้อผิดพลาด สแกนไม่สำเร็จ โปรดลองอีกครั้ง</translation>
 <translation id="2959474507964749987">ไฟล์ที่เข้ารหัสนี้อาจเป็นไวรัสหรือมัลแวร์<ph name="LINE_BREAK" />คุณส่งไฟล์และรหัสผ่านไปให้ Google Safe Browsing ตรวจสอบได้ว่าไฟล์ปลอดภัยหรือไม่ โดยปกติแล้ว การสแกนจะใช้เวลา 2-3 วินาที<ph name="LINE_BREAK" />โปรดใส่รหัสผ่านของไฟล์เพื่อสแกน</translation>
@@ -4125,7 +4126,6 @@
 <translation id="3872991219937722530">เพิ่มพื้นที่ว่างในดิสก์ มิเช่นนั้นอุปกรณ์จะไม่ตอบสนองต่อการทำงาน</translation>
 <translation id="3873315167136380065">หากต้องการเปิดการตั้งค่า ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" />เพื่อนำรหัสผ่านการซิงค์ออก</translation>
 <translation id="3873423927483480833">แสดง PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> เพิ่มแท็บแล้ว</translation>
 <translation id="3873915545594852654">เกิดปัญหาเกี่ยวกับ ARC++</translation>
 <translation id="3874164307099183178">เปิด Google Assistant</translation>
 <translation id="3875511946736639169">เปิดใช้รูปภาพ</translation>
@@ -4255,7 +4255,6 @@
 <translation id="3959969108528118741">เจ้าของ</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">การดำเนินการเพิ่มเติมสำหรับ <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> ออกจากกลุ่มแล้ว</translation>
 <translation id="3963753386716096475">ใช้โทรศัพท์ แท็บเล็ต หรือคีย์ความปลอดภัยอื่น</translation>
 <translation id="3964480518399667971">ปิดเครือข่ายมือถือ</translation>
 <translation id="3965965397408324205">ออกจาก <ph name="PROFILE_NAME" /></translation>
@@ -4324,6 +4323,7 @@
 <translation id="4001540981461989979">ไฮไลต์เคอร์เซอร์เมาส์เมื่อเคลื่อนไหว</translation>
 <translation id="4002347779798688515">โปรไฟล์ที่ดาวน์โหลดอาจใช้ไม่ได้หากผู้ให้บริการเครือข่ายมือถือล็อกอยู่ โปรดติดต่อผู้ให้บริการเพื่อขอรับการสนับสนุน</translation>
 <translation id="4002440992267487163">ตั้งค่า PIN</translation>
+<translation id="4003617970184602156">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกรหัสผ่านในบัญชี Google</translation>
 <translation id="4005817994523282006">วิธีการตรวจหาเขตเวลา</translation>
 <translation id="4007064749990466867">{GROUP_COUNT,plural, =1{การดำเนินการนี้จะลบกลุ่มออกจากอุปกรณ์ของคุณอย่างถาวร}other{การดำเนินการนี้จะลบกลุ่มออกจากอุปกรณ์ของคุณอย่างถาวร}}</translation>
 <translation id="4010036441048359843">เปิดไฮไลต์</translation>
@@ -5378,7 +5378,6 @@
 <translation id="4789348252524569426">ติดตั้งไฟล์คำพูดไม่ได้ คุณต้องอัปเดตอุปกรณ์ รีสตาร์ทอุปกรณ์และลองอีกครั้ง</translation>
 <translation id="4789550509729954245">แสดงการแจ้งเตือนเมื่อมีอุปกรณ์กำลังแชร์อยู่ใกล้เคียง</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">ไม่มีคำแนะนำ ลองขอให้ทำงานอย่างเช่น "สรุปหน้านี้" หรือใช้คำถามหรือคำขอของคุณเอง</translation>
 <translation id="4791793693640849493">บันทึกรายการในบัญชี</translation>
 <translation id="4792290259143007505">เปิดใช้การเร่งความเร็วของ TrackPoint</translation>
 <translation id="4792711294155034829">&amp;รายงานปัญหา...</translation>
@@ -6953,6 +6952,7 @@
 <translation id="5932224571077948991">เว็บไซต์แสดงโฆษณาที่แทรกหรือทำให้เข้าใจผิด</translation>
 <translation id="59324397759951282">อุปกรณ์ USB จาก <ph name="MANUFACTURER_NAME" /></translation>
 <translation id="5932441198730183141">คุณมีใบอนุญาตที่ใช้ได้ไม่เพียงพอสำหรับการลงทะเบียนอุปกรณ์ฮาร์ดแวร์ของ Google Meet เครื่องนี้ โปรดติดต่อฝ่ายขายเพื่อซื้อใบอนุญาตเพิ่ม หากเชื่อว่าคุณเห็นข้อความนี้เนื่องจากข้อผิดพลาด โปรดติดต่อฝ่ายสนับสนุน</translation>
+<translation id="593271375210025655">เปิดโหมดนักพัฒนาซอฟต์แวร์เพื่อใช้ส่วนขยายนี้ แต่ต้องเป็นกรณีที่คุณไว้ใจส่วนขยายดังกล่าวได้เท่านั้น ส่วนขยายอาจมีฟีเจอร์ทดลองและไม่ได้รับการตรวจสอบโดย Chrome เว็บสโตร์</translation>
 <translation id="5932881020239635062">ซีเรียล</translation>
 <translation id="5933376509899483611">เขตเวลา</translation>
 <translation id="5933522550144185133"><ph name="APP_NAME" /> กำลังใช้กล้องถ่ายรูปและไมโครโฟนของคุณ</translation>
@@ -6980,6 +6980,7 @@
 <translation id="5948476936444935795">ยกเลิกการนำเข้า</translation>
 <translation id="5948536763493709626">เชื่อมต่อแป้นพิมพ์หรือเมาส์ หรือตั้งค่าต่อโดยใช้หน้าจอสัมผัส หากกำลังใช้อุปกรณ์บลูทูธ ให้ตรวจสอบว่าอุปกรณ์พร้อมที่จะจับคู่</translation>
 <translation id="5949544233750246342">ไม่สามารถแยกวิเคราะห์ไฟล์</translation>
+<translation id="5949795028157144515">โหมดนักพัฒนาซอฟต์แวร์ปิดอยู่ ส่วนขยายบางรายการจึงถูกปิดใช้</translation>
 <translation id="594993197557058302">กดแป้นกดร่วม 1-4 คีย์ (Ctrl, Alt, Shift, ค้นหา หรือ Launcher) และอีก 1 คีย์ หรือเลือกคีย์เดียวก็ได้</translation>
 <translation id="5950762317146173294">ไฟล์นี้อาจเป็นไวรัสหรือมัลแวร์</translation>
 <translation id="5951303645598168883"><ph name="ORIGIN" /> ต้องการใช้แบบอักษรในเครื่อง</translation>
@@ -9003,7 +9004,6 @@
 <translation id="7421293530411019405">ออกจากกลุ่มแท็บใช่ไหม</translation>
 <translation id="7421925624202799674">&amp;ดูแหล่งที่มาของหน้า</translation>
 <translation id="7422192691352527311">ค่ากำหนด...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> เปลี่ยนชื่อกลุ่มแล้ว</translation>
 <translation id="7423425410216218516">ระดับการเข้าถึงจะเปิดเป็นเวลา <ph name="MINUTES" /> นาที</translation>
 <translation id="7423513079490750513">นำ <ph name="INPUT_METHOD_NAME" /> ออก</translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ต้องได้รับสิทธิ์เพื่อทำงาน</translation>
@@ -9493,7 +9493,6 @@
 <translation id="7772032839648071052">ยืนยันข้อความรหัสผ่าน</translation>
 <translation id="7772127298218883077">เกี่ยวกับ <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">พื้นที่จัดเก็บเซสชัน</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> เข้าร่วมกลุ่มแล้ว</translation>
 <translation id="7774365994322694683">นก</translation>
 <translation id="7774581652827321413">รับข้อมูลสรุปเกี่ยวกับหน้าเว็บ การค้นหาที่เกี่ยวข้อง และข้อมูลอื่นๆ ที่เป็นประโยชน์เกี่ยวกับหน้านี้</translation>
 <translation id="7774792847912242537">มีคำขอมากเกินไป</translation>
@@ -11090,7 +11089,6 @@
 <translation id="8888253246822647887">แอปจะเปิดเมื่อการอัปเกรดเสร็จสมบูรณ์ ซึ่งอาจใช้เวลาสักครู่</translation>
 <translation id="8888459276890791557">คุณสามารถปักหมุดแผงด้านข้างนี้เพื่อให้เข้าถึงได้ง่าย</translation>
 <translation id="8889294078294184559">ขณะท่องเว็บ เว็บไซต์ต่างๆ สามารถตรวจสอบกับ Chrome และยืนยันด้วยเว็บไซต์ที่เข้าชมก่อนหน้าได้ว่าคุณเป็นคนจริงๆ</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> เปลี่ยนสีกลุ่มแล้ว</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> แก้ไขไฟล์และโฟลเดอร์ต่อไปนี้ได้</translation>
 <translation id="8890170499370378450">อาจมีค่าบริการอินเทอร์เน็ตมือถือ</translation>
 <translation id="8890516388109605451">แหล่งที่มา</translation>
@@ -11241,7 +11239,6 @@
 <translation id="8991520179165052608">เว็บไซต์ใช้ไมโครโฟนของคุณได้</translation>
 <translation id="8991694323904646277">ไม่มีกล้อง</translation>
 <translation id="8991766915726096402">การกู้คืนข้อมูลในเครื่อง</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> นาทีที่ผ่านมา}=1{<ph name="TIME_COUNT" /> ชม. ที่ผ่านมา}other{<ph name="TIME_COUNT" /> วันที่ผ่านมา}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - การใช้งานหน่วยความจำ - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">หากลืมรหัสผ่าน <ph name="DEVICE_TYPE" /> คุณจะยังคงกู้คืนข้อมูลในเครื่องได้ โดยจะต้องลงชื่อเข้าใช้บัญชี Google หรือใช้การกู้คืนบัญชี</translation>
 <translation id="8993198843374358393">คัดลอกแฮชใบรับรองสำหรับ <ph name="CERT_NAME" /></translation>
@@ -11643,7 +11640,6 @@
 <translation id="973558314812359997">ขนาดเคอร์เซอร์เมาส์</translation>
 <translation id="973788791897303708">กลุ่มแท็บนี้เต็มแล้ว</translation>
 <translation id="97381968209917373">ลบใบรับรอง <ph name="CERT_NAME" /> ใช่ไหม</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> เปลี่ยนแท็บแล้ว</translation>
 <translation id="975893173032473675">ภาษาปลายทาง</translation>
 <translation id="976499800099896273">กล่องโต้ตอบการเลิกทำการแก้ไขอัตโนมัติแสดงอยู่สำหรับ <ph name="TYPED_WORD" /> ที่แก้ไขเป็น <ph name="CORRECTED_WORD" />  กดลูกศรขึ้นเพื่อไปยังกล่องโต้ตอบ หรือกด ESC เพื่อเพิกเฉย</translation>
 <translation id="976572010712028687">ยืนยันว่าคุณเป็นผู้ปกครอง</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index bb485e28..00b1e39 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2561,7 +2561,6 @@
 <translation id="2764920001292228569">Profil adı girin</translation>
 <translation id="2765100602267695013">Lütfen mobil sağlayıcınızla iletişime geçin</translation>
 <translation id="2765217105034171413">Küçük</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> bir sekmeyi kaldırdı</translation>
 <translation id="2765820627968019645">Açık</translation>
 <translation id="276582196519778359">Ebeveyn denetimleri için PIN'inizi girin</translation>
 <translation id="2766006623206032690">Ya&amp;pıştır ve git</translation>
@@ -4123,7 +4122,6 @@
 <translation id="3872991219937722530">Disk alanını boşaltmazsanız cihazınız tepkisiz hale gelecek.</translation>
 <translation id="3873315167136380065">Bu özelliği açmak için <ph name="BEGIN_LINK" />senkronizasyonu sıfırlayarak<ph name="END_LINK" /> senkronizasyon parolanızı kaldırın</translation>
 <translation id="3873423927483480833">PIN numaralarını göster</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> bir sekme ekledi</translation>
 <translation id="3873915545594852654">ARC++ ile ilgili bir sorun oluştu.</translation>
 <translation id="3874164307099183178">Google Asistan'ı aç</translation>
 <translation id="3875511946736639169">Resimleri etkinleştir</translation>
@@ -4253,7 +4251,6 @@
 <translation id="3959969108528118741">Sahip</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> ile ilgili diğer işlemler</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> gruptan ayrıldı</translation>
 <translation id="3963753386716096475">Farklı bir telefon, tablet veya güvenlik anahtarı kullanın</translation>
 <translation id="3964480518399667971">Hücresel ağı kapat</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> profilinden çık</translation>
@@ -5376,7 +5373,6 @@
 <translation id="4789348252524569426">Konuşma dosyaları yüklenemiyor. Cihazınızın güncellenmesi gerekiyor. Cihazınızı yeniden başlatıp işlemi tekrar deneyin.</translation>
 <translation id="4789550509729954245">Yakındaki cihazlar paylaşımda bulunurken bildirim göster</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Öneri yok. "Bu sayfayı özetle" gibi bir istekte bulunun veya kendi sorunuzu sorun.</translation>
 <translation id="4791793693640849493">Öğeleri hesaba kaydedin</translation>
 <translation id="4792290259143007505">TrackPoint hızlandırmasını etkinleştir</translation>
 <translation id="4792711294155034829">&amp;Sorun Bildirin...</translation>
@@ -9006,7 +9002,6 @@
 <translation id="7421293530411019405">Sekme grubundan ayrılmak istiyor musunuz?</translation>
 <translation id="7421925624202799674">Sayfa Kaynağını &amp;Görüntüle</translation>
 <translation id="7422192691352527311">Tercihler...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />, grup adını değiştirdi</translation>
 <translation id="7423425410216218516"><ph name="MINUTES" /> dakikalık görünürlük</translation>
 <translation id="7423513079490750513">Kaldır: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> uygulamasının çalışması için izin gerekiyor</translation>
@@ -9496,7 +9491,6 @@
 <translation id="7772032839648071052">Parolayı onayla</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> hakkında</translation>
 <translation id="7773726648746946405">Oturum depolama</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> gruba katıldı</translation>
 <translation id="7774365994322694683">Kuş</translation>
 <translation id="7774581652827321413">Sayfa özetini, ilgili aramaları ve bu sayfa hakkındaki diğer faydalı bilgileri alın</translation>
 <translation id="7774792847912242537">Çok fazla istek var.</translation>
@@ -11093,7 +11087,6 @@
 <translation id="8888253246822647887">Uygulamanız, yeni sürüme geçme işlemi tamamlandığında açılır. Yeni sürüme geçme işlemi birkaç dakika sürebilir.</translation>
 <translation id="8888459276890791557">Daha kolay erişmek için bu yan paneli sabitleyebilirsiniz</translation>
 <translation id="8889294078294184559">Siz sitelere göz atarken siteler de Chrome'dan kontrol ederek ziyaret ettiğiniz önceki bir siteden büyük olasılıkla gerçek bir kişi olduğunuzu doğrular</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />, grup rengini değiştirdi</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> sitesi şu dosya ve klasörleri düzenleyebilir:</translation>
 <translation id="8890170499370378450">Mobil veri ücretleri alınabilir</translation>
 <translation id="8890516388109605451">Kaynaklar</translation>
@@ -11244,7 +11237,6 @@
 <translation id="8991520179165052608">Site, mikrofonunuzu kullanabilir</translation>
 <translation id="8991694323904646277">Kamera yok</translation>
 <translation id="8991766915726096402">Yerel verileri kurtar</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> dk. önce}=1{<ph name="TIME_COUNT" /> sa. önce}other{<ph name="TIME_COUNT" /> gün önce}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Bellek kullanımı - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> şifrenizi unutsanız bile, yerel verilerinizi geri yükleyebilirsiniz. Google Hesabınızda oturum açmanız veya hesap kurtarma özelliğini kullanmanız gerekir.</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> sertifika karmasını kopyala</translation>
@@ -11646,7 +11638,6 @@
 <translation id="973558314812359997">Fare boyutu</translation>
 <translation id="973788791897303708">Bu sekme grubu dolu</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> sertifikası silinsin mi?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> bir sekmeyi değiştirdi</translation>
 <translation id="975893173032473675">Çeviri hedef dili</translation>
 <translation id="976499800099896273">Otomatik düzeltme geri alma iletişim kutusu, <ph name="TYPED_WORD" /> ifadesinin <ph name="CORRECTED_WORD" /> olarak düzeltildiğini gösteriyor.  Erişmek için yukarı ok tuşuna, yok saymak için escape tuşuna basın.</translation>
 <translation id="976572010712028687">Ebeveyn olduğunuzu doğrulayın</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 88e879f..28c1111 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -2579,7 +2579,6 @@
 <translation id="2764920001292228569">Введіть назву профілю</translation>
 <translation id="2765100602267695013">Зв’яжіться з оператором мобільного зв’язку</translation>
 <translation id="2765217105034171413">Малий</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> вилучає вкладку</translation>
 <translation id="2765820627968019645">Світла</translation>
 <translation id="276582196519778359">Щоб керувати налаштуваннями батьківського контролю, введіть PIN-код</translation>
 <translation id="2766006623206032690">Вста&amp;вити та перейти</translation>
@@ -4143,7 +4142,6 @@
 <translation id="3872991219937722530">Звільніть місце на диску. Інакше пристрій перестане відповідати.</translation>
 <translation id="3873315167136380065">Щоб увімкнути цю функцію, видаліть парольну фразу синхронізації, <ph name="BEGIN_LINK" />скинувши синхронізацію<ph name="END_LINK" />.</translation>
 <translation id="3873423927483480833">Показати PIN-коди</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> додає вкладку</translation>
 <translation id="3873915545594852654">Виникла проблема з ARC++.</translation>
 <translation id="3874164307099183178">Увімкнути Google Асистента</translation>
 <translation id="3875511946736639169">Увімкнути зображення</translation>
@@ -4273,7 +4271,6 @@
 <translation id="3959969108528118741">Власник</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Інші дії для номера "<ph name="IBAN_DESCRIPTION" />"</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> залишає групу</translation>
 <translation id="3963753386716096475">Вибрати інший телефон, планшет або ключ безпеки</translation>
 <translation id="3964480518399667971">Вимкнути мобільну мережу</translation>
 <translation id="3965965397408324205">Вийти з профілю <ph name="PROFILE_NAME" /></translation>
@@ -5396,7 +5393,6 @@
 <translation id="4789348252524569426">Не вдається встановити файли для розпізнавання мовлення. Потрібно оновити пристрій. Перезапустіть пристрій і повторіть спробу.</translation>
 <translation id="4789550509729954245">Показувати сповіщення, коли пристрої поблизу обмінюються даними</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Пропозицій немає. Спробуйте запит на кшталт "підсумуй вміст цієї сторінки" або поставте власне запитання.</translation>
 <translation id="4791793693640849493">Збережіть об’єкти в обліковому записі</translation>
 <translation id="4792290259143007505">Увімкнути прискорення TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Повідомити про проблему...</translation>
@@ -9027,7 +9023,6 @@
 <translation id="7421293530411019405">Вийти з групи вкладок?</translation>
 <translation id="7421925624202799674">&amp;Переглянути джерело сторінки</translation>
 <translation id="7422192691352527311">Налаштування...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> змінює назву групи</translation>
 <translation id="7423425410216218516">Пристрій буде видимим упродовж <ph name="MINUTES" /> хв</translation>
 <translation id="7423513079490750513">Вилучити метод введення "<ph name="INPUT_METHOD_NAME" />"</translation>
 <translation id="7423807071740419372">Щоб запустити додаток <ph name="APP_NAME" />, потрібен дозвіл</translation>
@@ -9517,7 +9512,6 @@
 <translation id="7772032839648071052">Підтвердити парольну фразу</translation>
 <translation id="7772127298218883077">Про <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Пам’ять сеансу</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> приєднується до групи</translation>
 <translation id="7774365994322694683">Птах</translation>
 <translation id="7774581652827321413">Отримайте короткий виклад сторінки, пов’язані пошукові запити й іншу корисну інформацію про цю сторінку</translation>
 <translation id="7774792847912242537">Забагато запитів.</translation>
@@ -11117,7 +11111,6 @@
 <translation id="8888253246822647887">Додаток відкриється, коли завершиться оновлення. Воно може тривати кілька хвилин.</translation>
 <translation id="8888459276890791557">Ви можете закріпити цю бічну панель для швидкого доступу</translation>
 <translation id="8889294078294184559">Завдяки цьому інші відвідувані вами сайти зможуть перевіряти в Chrome, що ви, імовірно, реальна людина</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> змінює колір групи</translation>
 <translation id="8889651696183044030">Сайт <ph name="ORIGIN" /> може змінювати вказані нижче файли й папки</translation>
 <translation id="8890170499370378450">Може стягуватися плата за мобільний трафік</translation>
 <translation id="8890516388109605451">Джерела</translation>
@@ -11268,7 +11261,6 @@
 <translation id="8991520179165052608">Сайт може використовувати мікрофон</translation>
 <translation id="8991694323904646277">Немає підключених камер</translation>
 <translation id="8991766915726096402">Відновлення локальних даних</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> хв тому}=1{<ph name="TIME_COUNT" /> год тому}one{<ph name="TIME_COUNT" /> день тому}few{<ph name="TIME_COUNT" /> дні тому}many{<ph name="TIME_COUNT" /> днів тому}other{<ph name="TIME_COUNT" /> дня тому}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – використання пам’яті – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Якщо ви забудете свій пароль для пристрою <ph name="DEVICE_TYPE" />, то все одно зможете відновити локальні дані. Для цього вам потрібно ввійти у свій обліковий запис Google або скористатися спеціальною функцією для його відновлення.</translation>
 <translation id="8993198843374358393">Копіювати хеш сертифіката <ph name="CERT_NAME" /></translation>
@@ -11670,7 +11662,6 @@
 <translation id="973558314812359997">Розмір курсора</translation>
 <translation id="973788791897303708">Ця група вкладок заповнена</translation>
 <translation id="97381968209917373">Видалити сертифікат "<ph name="CERT_NAME" />"?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> змінює вкладку</translation>
 <translation id="975893173032473675">Мова перекладу</translation>
 <translation id="976499800099896273">Вікно відміни автовиправлення: "<ph name="TYPED_WORD" />" виправлено на "<ph name="CORRECTED_WORD" />".  Щоб відкрити вікно відміни, натисніть стрілку вгору; щоб закрити, натисніть клавішу Escape.</translation>
 <translation id="976572010712028687">Підтвердьте батьківський доступ</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
index 84696fa9..16582f75 100644
--- a/chrome/app/resources/generated_resources_ur.xtb
+++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">پروفائل کا نام درج کریں</translation>
 <translation id="2765100602267695013">براہ کرم اپنے موبائل فراہم کنندہ سے رابطہ کریں</translation>
 <translation id="2765217105034171413">چھوٹا</translation>
-<translation id="2765349783094807040">‫<ph name="MEMBER_FIRST_NAME" /> ایک ٹیب کو ہٹا دیا</translation>
 <translation id="2765820627968019645">لائٹ</translation>
 <translation id="276582196519778359">‏پیرنٹل کنٹرولز کے لیے اپنا PIN درج کریں</translation>
 <translation id="2766006623206032690">پی&amp;سٹ کریں اور جائیں</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">ڈسک کی جگہ خالی کریں، ورنہ آلہ جواب دینا بند کر دے گا۔</translation>
 <translation id="3873315167136380065">اسے آن کرنے کے لیے، اپنے پاس فریز کو ہٹانے کے لیے <ph name="BEGIN_LINK" />مطابقت پذیری کو ری سیٹ کریں<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">‏PINs دکھائیں</translation>
-<translation id="3873893412864594794">‫<ph name="MEMBER_FIRST_NAME" /> نے ایک ٹیب شامل کیا</translation>
 <translation id="3873915545594852654">‏++ARC کے ساتھ ایک مسئلہ پیش آگیا۔</translation>
 <translation id="3874164307099183178">‏Google اسسٹنٹ آن کریں</translation>
 <translation id="3875511946736639169">تصاویر کو فعال کریں</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">مالک</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> کے لیے مزید کارروائیاں</translation>
-<translation id="3962607437409665666">‫<ph name="MEMBER_FIRST_NAME" /> نے گروپ چھوڑ دیا</translation>
 <translation id="3963753386716096475">مختلف فون، ٹیبلیٹ یا سیکیورٹی کلید استعمال کریں</translation>
 <translation id="3964480518399667971">سیلولر نیٹ ورک کو آف کریں</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> سے باہر نکلیں</translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">اسپیچ فائلز کو انسٹال نہیں کیا جا سکتا۔ آپ کے آلے کو اپ ڈیٹ کرنے کی ضرورت ہے۔ اپنا آلہ ری سٹارٹ کریں اور دوبارہ کوشش کریں۔</translation>
 <translation id="4789550509729954245">جب قریبی آلات اشتراک کر رہے ہوں تو اطلاع دکھائیں</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">کوئی تجاویز دستیاب نہیں ہیں۔ "اس صفحہ کا خلاصہ کریں" یا اپنا سوال جیسی چیزیں پوچھنے کی کوشش کریں۔</translation>
 <translation id="4791793693640849493">اکاؤنٹ میں آئٹمز محفوظ کریں</translation>
 <translation id="4792290259143007505">‏TrackPoint ایکسیلریشن کو فعال کریں</translation>
 <translation id="4792711294155034829">ایک مسئلے کی &amp;اطلاع دیں…</translation>
@@ -9006,7 +9002,6 @@
 <translation id="7421293530411019405">ٹیب گروپ چھوڑیں؟</translation>
 <translation id="7421925624202799674">صفحہ کا ماخذ &amp;دیکھیں</translation>
 <translation id="7422192691352527311">ترجیحات…</translation>
-<translation id="7422516375032300779">‫<ph name="MEMBER_FIRST_NAME" /> نے گروپ کا نام تبدیل کر دیا</translation>
 <translation id="7423425410216218516">مرئیت <ph name="MINUTES" /> منٹ کیلئے آن ہے</translation>
 <translation id="7423513079490750513"><ph name="INPUT_METHOD_NAME" /> ہٹائیں</translation>
 <translation id="7423807071740419372">چلنے کے لیے <ph name="APP_NAME" /> کو اجازت کی ضرورت ہے</translation>
@@ -9497,7 +9492,6 @@
 <translation id="7772032839648071052">پاس فریز کی توثیق کریں</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> کے بارے میں</translation>
 <translation id="7773726648746946405">سیشن کا اسٹوریج</translation>
-<translation id="7773887159761725143">‫<ph name="MEMBER_FIRST_NAME" /> گروپ میں شامل ہوا</translation>
 <translation id="7774365994322694683">پرندہ</translation>
 <translation id="7774581652827321413">صفحہ کا خلاصہ، متعلقہ تلاشیں اور اس صفحہ کے بارے میں دیگر مفید معلومات حاصل کریں</translation>
 <translation id="7774792847912242537">بہت زیادہ درخواستیں ہیں۔</translation>
@@ -11093,7 +11087,6 @@
 <translation id="8888253246822647887">اپ گریڈ مکمل ہونے کے بعد آپ کی ایپ کھل جائے گی۔ اپ گریڈز میں چند منٹ لگ سکتے ہیں۔</translation>
 <translation id="8888459276890791557">آپ آسان رسائی کے لیے اس سائیڈ پینل کو پن کر سکتے ہیں</translation>
 <translation id="8889294078294184559">‏چونکہ آپ براؤز کرتے رہتے ہیں، اس لیے سائٹس Chrome سے رابطہ کر کے آپ کی ملاحظہ کردہ گزشتہ سائٹ سے یہ تصدیق کر سکتی ہیں کہ آپ ممکنہ طور پر ایک حقیقی شخص ہیں</translation>
-<translation id="88895904696396879">‫<ph name="MEMBER_FIRST_NAME" /> نے گروپ کا رنگ تبدیل کر دیا</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> مندرجہ ذیل فائلز اور فولڈرز میں ترمیم کر سکتا ہے</translation>
 <translation id="8890170499370378450">موبائل ڈیٹا چارجز لگ سکتے ہیں</translation>
 <translation id="8890516388109605451">مآخذ</translation>
@@ -11244,7 +11237,6 @@
 <translation id="8991520179165052608">سائٹ آپ کا مائیکروفون استعمال کر سکتی ہے</translation>
 <translation id="8991694323904646277">کوئی کیمرا نہیں ہے</translation>
 <translation id="8991766915726096402">مقامی ڈیٹا کی بازیابی</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{‫<ph name="TIME_COUNT" /> منٹ قبل}=1{‫<ph name="TIME_COUNT" /> گھنٹہ قبل}other{‫<ph name="TIME_COUNT" /> دن قبل}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - میموری کا استعمال - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">‏اگر آپ اپنے <ph name="DEVICE_TYPE" /> کا پاس ورڈ بھول جاتے ہیں تب بھی آپ اپنا مقامی ڈیٹا بحال کر سکتے ہیں۔ آپ کو اپنے Google اکاؤنٹ میں سائن ان کرنے یا اکاؤنٹ کی بازیابی کا استعمال کرنے کی ضرورت ہوگی۔</translation>
 <translation id="8993198843374358393"><ph name="CERT_NAME" /> کیلئے سرٹیفیکیٹ کا ہیش کاپی کریں</translation>
@@ -11646,7 +11638,6 @@
 <translation id="973558314812359997">ماؤس کا سائز</translation>
 <translation id="973788791897303708">یہ ٹیب گروپ بھرا ہوا ہے</translation>
 <translation id="97381968209917373">سرٹیفکیٹ <ph name="CERT_NAME" /> حذف کریں</translation>
-<translation id="973825986436797073">‫<ph name="MEMBER_FIRST_NAME" /> نے ایک ٹیب کو تبدیل کیا</translation>
 <translation id="975893173032473675">وہ زبان جس میں ترجمہ کرنا ہے</translation>
 <translation id="976499800099896273">خودکار تصحیح کو کالعدم کرنے کا ڈائیلاگ <ph name="TYPED_WORD" /> کے لیے دکھایا گیا ہے جسے درست کر کے <ph name="CORRECTED_WORD" /> کیا گيا ہے۔  رسائی حاصل کرنے کے لیے اوپر تیر کا نشان دبائیں، نظر انداز کرنے کے لئے ایسکیپ دبائیں۔</translation>
 <translation id="976572010712028687">توثیق کریں کہ آپ والدین ہیں</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb
index a7e18fce8..ff5129f 100644
--- a/chrome/app/resources/generated_resources_uz.xtb
+++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -2565,7 +2565,6 @@
 <translation id="2764920001292228569">Profil nomini kiriting</translation>
 <translation id="2765100602267695013">Mobil provayderingizga murojaat qiling</translation>
 <translation id="2765217105034171413">Kichik</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> varaqni olib tashladi</translation>
 <translation id="2765820627968019645">Kunduzgi</translation>
 <translation id="276582196519778359">Ota-ona nazoratini ochish uchun PIN kod kiriting</translation>
 <translation id="2766006623206032690">&amp;Joylash va o‘tish</translation>
@@ -4127,7 +4126,6 @@
 <translation id="3872991219937722530">Diskda joy bo‘shatilmasa qurilma buzilib qolishi mumkin.</translation>
 <translation id="3873315167136380065">Faollashtirish uchun, avval, sinxronizatsiya parolini olib tashlash uchun <ph name="BEGIN_LINK" />sinxronizatsiyani tiklang<ph name="END_LINK" /></translation>
 <translation id="3873423927483480833">PIN kodlar berkitilmasin</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> varaq kiritdi</translation>
 <translation id="3873915545594852654">ARC++ ishga tushmadi.</translation>
 <translation id="3874164307099183178">Google Assistentni yoqish</translation>
 <translation id="3875511946736639169">Rasmlarni yoqish</translation>
@@ -4257,7 +4255,6 @@
 <translation id="3959969108528118741">Egasi</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120"><ph name="IBAN_DESCRIPTION" /> uchun boshqa amallar</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> guruhni tark etdi</translation>
 <translation id="3963753386716096475">Boshqa telefon, planshet yoki elektron kalitdan foydalaning</translation>
 <translation id="3964480518399667971">Mobil tarmoqni faolsizlantirish</translation>
 <translation id="3965965397408324205"><ph name="PROFILE_NAME" /> profilidan chiqish</translation>
@@ -5380,7 +5377,6 @@
 <translation id="4789348252524569426">Nutq fayllari oʻrnatilmadi. Qurilma yangilanishi lozim. Qurilmani qayta ishga tushirib, yana urining.</translation>
 <translation id="4789550509729954245">Yaqin-atrofdagi qurilmalar maʼlumot almashganda bildirishnomalarni koʻrsatilsin</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Takliflar mavjud emas. “Bu sahifani xulosalash” kabi narsalarni soʻrang yoki boshqa savol bering.</translation>
 <translation id="4791793693640849493">Obyektlarni hisobga saqlash</translation>
 <translation id="4792290259143007505">TrackPoint tezlatkichini yoqish</translation>
 <translation id="4792711294155034829">&amp;Muammo haqida xabar qilish...</translation>
@@ -9008,7 +9004,6 @@
 <translation id="7421293530411019405">Varaqlar guruhi tark etilsinmi?</translation>
 <translation id="7421925624202799674">&amp;Sahifa kodini ko‘rish</translation>
 <translation id="7422192691352527311">Sozlamalar...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> guruh nomini oʻzgartirdi</translation>
 <translation id="7423425410216218516">Ochiqlik <ph name="MINUTES" /> daqiqaga yoqildi</translation>
 <translation id="7423513079490750513">Olib tashlash: <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> ishga tushishi uchun ruxsat berish kerak</translation>
@@ -9499,7 +9494,6 @@
 <translation id="7772032839648071052">Kodli iborani tasdiqlang</translation>
 <translation id="7772127298218883077"><ph name="PRODUCT_NAME" /> haqida</translation>
 <translation id="7773726648746946405">Seanslar saqlanishi</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> guruhga qoʻshildi</translation>
 <translation id="7774365994322694683">Qush</translation>
 <translation id="7774581652827321413">Sahifa xulosasi, tegishli qidiruvlar va sahifa haqidagi boshqa foydali maʼlumotlarni oling</translation>
 <translation id="7774792847912242537">Soʻrovlar soni oshib ketdi.</translation>
@@ -11094,7 +11088,6 @@
 <translation id="8888253246822647887">Ilova yangilanishdan keyin ochiladi. Yangilanish bir necha daqiqa vaqt oladi.</translation>
 <translation id="8888459276890791557">Ushbu yon panelni mahkamlashingiz mumkin.</translation>
 <translation id="8889294078294184559">Keyin ochiladigan boshqa saytlar brauzerdan bu axborotni soʻrashi mumkin.</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> guruh rangini oʻzgartirdi</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> quyidagi fayl va jildlarni tahrirlay oladi</translation>
 <translation id="8890170499370378450">Mobil internet sarfi uchun haq olinishi mumkin</translation>
 <translation id="8890516388109605451">Manbalar</translation>
@@ -11245,7 +11238,6 @@
 <translation id="8991520179165052608">Sayt mikrofondan foydalanishi mumkin</translation>
 <translation id="8991694323904646277">Kamera yoʻq</translation>
 <translation id="8991766915726096402">Mahalliy maʼlumotlarni tiklash</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> daq oldin}=1{<ph name="TIME_COUNT" /> st oldin}other{<ph name="TIME_COUNT" /> kun oldin}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Xotira sarfi - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527"><ph name="DEVICE_TYPE" /> parolini unutgan boʻlsangiz ham, qurilmadagi maʼlumotlarni tiklay olasiz. Google hisobingizga kirishingiz yoki hisobni tiklashdan foydalanishingiz kerak</translation>
 <translation id="8993198843374358393">Sertifikat (<ph name="CERT_NAME" />) heshini nusxalash</translation>
@@ -11647,7 +11639,6 @@
 <translation id="973558314812359997">Sichqoncha hajmi</translation>
 <translation id="973788791897303708">Bu varaqlar guruhi toʻlgan</translation>
 <translation id="97381968209917373"><ph name="CERT_NAME" /> sertifikati oʻchirilsinmi?</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> varaqni oʻzgartirdi</translation>
 <translation id="975893173032473675">Tarjima qilinadigan til</translation>
 <translation id="976499800099896273"><ph name="TYPED_WORD" /> soʻzini <ph name="CORRECTED_WORD" /> soʻziga avtomatik tuzatishni bekor qilish oynasi chiqarildi.  Ochish uchun tepaga, inkor qilish uchun escape tugmasini bosing.</translation>
 <translation id="976572010712028687">Ota-ona ekaningizni tasdiqlang</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index f80f2ef4..4e9b5629 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -2576,7 +2576,6 @@
 <translation id="2764920001292228569">Nhập tên hồ sơ</translation>
 <translation id="2765100602267695013">Vui lòng liên hệ với nhà cung cấp dịch vụ di động của bạn</translation>
 <translation id="2765217105034171413">Nhỏ</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" /> đã xoá một thẻ</translation>
 <translation id="2765820627968019645">Sáng</translation>
 <translation id="276582196519778359">Nhập mã PIN để truy cập chế độ kiểm soát của cha mẹ</translation>
 <translation id="2766006623206032690">Dán và tru&amp;y cập</translation>
@@ -3324,7 +3323,7 @@
 <translation id="3320271870899888245">Không thể kết nối với OneDrive. Hãy thử lại.</translation>
 <translation id="3320630259304269485">Tính năng Duyệt web an toàn (bảo vệ trước các trang web nguy hiểm) và chế độ cài đặt bảo mật khác</translation>
 <translation id="3320957378743864387">Không được phép đề xuất hỗ trợ viết</translation>
-<translation id="3321460131042519426">Bật xuống dòng tự động</translation>
+<translation id="3321460131042519426">Bật tính năng xuống dòng tự động</translation>
 <translation id="3321494112580110651">Bạn không thấy máy in của mình?</translation>
 <translation id="3321776060736518525">Từ <ph name="APP_URL" /></translation>
 <translation id="3323521181261657960">Phần thưởng! Bạn có thêm thời gian sử dụng thiết bị</translation>
@@ -4140,7 +4139,6 @@
 <translation id="3872991219937722530">Giải phóng dung lượng đĩa, nếu không thiết bị sẽ không phản hồi.</translation>
 <translation id="3873315167136380065">Để bật tính năng này, hãy <ph name="BEGIN_LINK" />đặt lại tính năng đồng bộ hóa<ph name="END_LINK" /> để xóa cụm mật khẩu đồng bộ hóa của bạn</translation>
 <translation id="3873423927483480833">Hiển thị mã PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" /> đã thêm một thẻ</translation>
 <translation id="3873915545594852654">Đã xảy ra lỗi với ARC++.</translation>
 <translation id="3874164307099183178">Bật Trợ lý Google</translation>
 <translation id="3875511946736639169">Hiển thị hình ảnh</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Chủ sở hữu</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Thêm thao tác khác cho <ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" /> đã rời khỏi nhóm</translation>
 <translation id="3963753386716096475">Sử dụng điện thoại, máy tính bảng hoặc khoá bảo mật khác</translation>
 <translation id="3964480518399667971">Tắt Mạng di động</translation>
 <translation id="3965965397408324205">Thoát khỏi <ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Không cài đặt được tệp lời nói. Bạn cần cập nhật thiết bị. Hãy khởi động lại thiết bị rồi thử lại.</translation>
 <translation id="4789550509729954245">Hiện thông báo khi ở gần các thiết bị đang chia sẻ</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">Không có đề xuất nào. Hãy thử hỏi những câu như "tóm tắt trang này được không" hoặc đặt câu hỏi của riêng bạn.</translation>
 <translation id="4791793693640849493">Lưu các mục trong tài khoản</translation>
 <translation id="4792290259143007505">Bật tính năng tăng tốc TrackPoint</translation>
 <translation id="4792711294155034829">&amp;Báo cáo sự cố...</translation>
@@ -9025,7 +9021,6 @@
 <translation id="7421293530411019405">Rời khỏi nhóm thẻ?</translation>
 <translation id="7421925624202799674">&amp;Xem Nguồn Trang</translation>
 <translation id="7422192691352527311">Lựa chọn ưu tiên...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" /> đã thay đổi tên nhóm</translation>
 <translation id="7423425410216218516">Chế độ hiển thị này sẽ bật trong <ph name="MINUTES" /> phút</translation>
 <translation id="7423513079490750513">Xóa <ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> cần được cấp quyền thì mới hoạt động</translation>
@@ -9516,7 +9511,6 @@
 <translation id="7772032839648071052">Xác nhận cụm mật khẩu</translation>
 <translation id="7772127298218883077">Giới thiệu về <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Bộ nhớ phiên</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" /> đã tham gia nhóm</translation>
 <translation id="7774365994322694683">Chim</translation>
 <translation id="7774581652827321413">Xem nội dung tóm tắt, nội dung tìm kiếm có liên quan và thông tin hữu ích khác về trang này</translation>
 <translation id="7774792847912242537">Quá nhiều yêu cầu.</translation>
@@ -9656,7 +9650,7 @@
 <translation id="7870790288828963061">Không tìm thấy ứng dụng Kiosk nào có phiên bản mới hơn. Không có gì để cập nhật. Vui lòng rút thẻ USB.</translation>
 <translation id="7871109039747854576">Dùng phím <ph name="COMMA" /> và <ph name="PERIOD" /> để chuyển đến danh sách các tùy chọn</translation>
 <translation id="7871277686245037315">tìm kiếm + mũi tên trái</translation>
-<translation id="7871691770940645922">Màn hình chữ nổi Braille ảo</translation>
+<translation id="7871691770940645922">Màn hình chữ nổi ảo</translation>
 <translation id="787268756490971083">Đang tắt</translation>
 <translation id="7872758299142009420">Quá nhiều nhóm con: <ph name="ERROR_LINE" /></translation>
 <translation id="7873386145597434863">Steam dành cho Chromebook</translation>
@@ -11113,7 +11107,6 @@
 <translation id="8888253246822647887">Ứng dụng sẽ mở khi nâng cấp xong. Quá trình nâng cấp có thể mất vài phút.</translation>
 <translation id="8888459276890791557">Bạn có thể ghim bảng điều khiển bên này để dễ dàng truy cập</translation>
 <translation id="8889294078294184559">Khi bạn tiếp tục duyệt web, các trang web có thể kiểm tra qua Chrome và xác minh qua trang web mà bạn truy cập trước đó rằng bạn có thể là người thực</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" /> đã thay đổi màu nhóm</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> có thể chỉnh sửa các tệp và thư mục sau đây</translation>
 <translation id="8890170499370378450">Nhà mạng có thể tính phí dữ liệu di động</translation>
 <translation id="8890516388109605451">Nguồn</translation>
@@ -11264,7 +11257,6 @@
 <translation id="8991520179165052608">Trang web có thể sử dụng micrô của bạn</translation>
 <translation id="8991694323904646277">Không có máy ảnh</translation>
 <translation id="8991766915726096402">Khôi phục dữ liệu cục bộ</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> phút trước}=1{<ph name="TIME_COUNT" /> giờ trước}other{<ph name="TIME_COUNT" /> ngày trước}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> – Mức sử dụng bộ nhớ – <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Nếu quên mật khẩu vào <ph name="DEVICE_TYPE" />, bạn vẫn có thể khôi phục dữ liệu trên thiết bị của mình. Bạn sẽ cần đăng nhập vào Tài khoản Google hoặc sử dụng tính năng khôi phục tài khoản.</translation>
 <translation id="8993198843374358393">Sao chép hàm băm của chứng chỉ <ph name="CERT_NAME" /></translation>
@@ -11666,7 +11658,6 @@
 <translation id="973558314812359997">Kích thước chuột</translation>
 <translation id="973788791897303708">Nhóm thẻ này đã đầy</translation>
 <translation id="97381968209917373">Xoá chứng chỉ <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" /> đã thay đổi một thẻ</translation>
 <translation id="975893173032473675">Ngôn ngữ cần dịch sang</translation>
 <translation id="976499800099896273">Hộp thoại hủy thao tác tự động sửa lỗi hiển thị cho từ <ph name="TYPED_WORD" /> đã được sửa thành từ <ph name="CORRECTED_WORD" />.  Nhấn phím mũi tên lên để truy cập hoặc nhấn phím Escape để bỏ qua.</translation>
 <translation id="976572010712028687">Xác minh bạn là cha/mẹ</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index 20dafb86..0fe91710 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2555,7 +2555,6 @@
 <translation id="2764920001292228569">输入个人资料名称</translation>
 <translation id="2765100602267695013">请联系您的移动服务提供商</translation>
 <translation id="2765217105034171413">小</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />移除了标签页</translation>
 <translation id="2765820627968019645">浅色</translation>
 <translation id="276582196519778359">请输入家长控制功能 PIN 码</translation>
 <translation id="2766006623206032690">粘贴并转到(&amp;S)</translation>
@@ -4117,7 +4116,6 @@
 <translation id="3872991219937722530">请释放磁盘空间,否则设备将无响应。</translation>
 <translation id="3873315167136380065">要启用此功能,请<ph name="BEGIN_LINK" />重置同步功能<ph name="END_LINK" />以移除同步密码</translation>
 <translation id="3873423927483480833">显示 PIN 码</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />添加了标签页</translation>
 <translation id="3873915545594852654">ARC++ 出问题了。</translation>
 <translation id="3874164307099183178">开启 Google 助理</translation>
 <translation id="3875511946736639169">启用图片</translation>
@@ -4246,7 +4244,6 @@
 <translation id="3959969108528118741">所有者</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">可对“<ph name="IBAN_DESCRIPTION" />”执行的更多操作</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" />退出了分组</translation>
 <translation id="3963753386716096475">换个手机、平板电脑或安全密钥</translation>
 <translation id="3964480518399667971">关闭移动网络</translation>
 <translation id="3965965397408324205">退出<ph name="PROFILE_NAME" /></translation>
@@ -5369,7 +5366,6 @@
 <translation id="4789348252524569426">无法安装语音文件。您的设备需要更新。请重启设备,然后重试。</translation>
 <translation id="4789550509729954245">当附近的设备正在分享内容时显示通知</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">没有建议。请尝试询问“总结此页面”之类的问题,或提出您自己的问题。</translation>
 <translation id="4791793693640849493">将内容保存在账号中</translation>
 <translation id="4792290259143007505">启用 TrackPoint 加速</translation>
 <translation id="4792711294155034829">报告问题(&amp;R)...</translation>
@@ -8994,7 +8990,6 @@
 <translation id="7421293530411019405">要退出标签页分组吗?</translation>
 <translation id="7421925624202799674">显示网页源代码(&amp;V)</translation>
 <translation id="7422192691352527311">偏好设置...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />更改了分组名称</translation>
 <translation id="7423425410216218516">此可见状态会持续 <ph name="MINUTES" /> 分钟</translation>
 <translation id="7423513079490750513">移除<ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372"><ph name="APP_NAME" /> 需要获得相应权限才能运行</translation>
@@ -9485,7 +9480,6 @@
 <translation id="7772032839648071052">确认密码</translation>
 <translation id="7772127298218883077">关于<ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">会话存储</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />加入了分组</translation>
 <translation id="7774365994322694683">鸟</translation>
 <translation id="7774581652827321413">获取此网页的摘要、进行相关搜索以及查询关于此网页的其他实用信息</translation>
 <translation id="7774792847912242537">请求次数过多。</translation>
@@ -11082,7 +11076,6 @@
 <translation id="8888253246822647887">待完成升级后,您的应用即会打开。升级过程可能会持续几分钟。</translation>
 <translation id="8888459276890791557">您可以固定此侧边栏以方便访问</translation>
 <translation id="8889294078294184559">随着您继续浏览,所访问的网站可从 Chrome 中获取上一个网站提供的相关信息来验证您可能是真实的用户</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />更改了分组颜色</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> 可修改以下文件和文件夹</translation>
 <translation id="8890170499370378450">可能会产生移动数据费用</translation>
 <translation id="8890516388109605451">来源</translation>
@@ -11233,7 +11226,6 @@
 <translation id="8991520179165052608">该网站可能会使用您的麦克风</translation>
 <translation id="8991694323904646277">没有摄像头</translation>
 <translation id="8991766915726096402">本地数据恢复</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> 分钟前}=1{<ph name="TIME_COUNT" /> 小时前}other{<ph name="TIME_COUNT" /> 天前}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - 内存用量 - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">如果您忘记了 <ph name="DEVICE_TYPE" /> 密码,您仍然可以恢复本地数据。您需要登录自己的 Google 账号或使用账号恢复功能。</translation>
 <translation id="8993198843374358393">复制 <ph name="CERT_NAME" /> 的证书哈希值</translation>
@@ -11635,7 +11627,6 @@
 <translation id="973558314812359997">鼠标光标大小</translation>
 <translation id="973788791897303708">此标签页分组已满</translation>
 <translation id="97381968209917373">删除证书 <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />更改了标签页</translation>
 <translation id="975893173032473675">要翻译成的语言</translation>
 <translation id="976499800099896273">系统会显示用于撤消自动更正的对话框,以便撤销将“<ph name="TYPED_WORD" />”更正为“<ph name="CORRECTED_WORD" />”的操作。若要访问此对话框,请按向上键;若要忽略,请按 Esc 键。</translation>
 <translation id="976572010712028687">验证您是家长</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb
index 3760aa11..8edba67 100644
--- a/chrome/app/resources/generated_resources_zh-HK.xtb
+++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -2575,7 +2575,6 @@
 <translation id="2764920001292228569">請輸入設定檔名稱</translation>
 <translation id="2765100602267695013">請聯絡流動裝置供應商</translation>
 <translation id="2765217105034171413">小</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />已移除分頁</translation>
 <translation id="2765820627968019645">淺色</translation>
 <translation id="276582196519778359">輸入家長監控 PIN</translation>
 <translation id="2766006623206032690">貼上及前往(&amp;S)</translation>
@@ -4135,7 +4134,6 @@
 <translation id="3872991219937722530">請釋出磁碟的儲存空間,否則裝置將無法回應。</translation>
 <translation id="3873315167136380065">如要啟用此功能,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步密碼短語</translation>
 <translation id="3873423927483480833">顯示 PIN</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />已加入分頁</translation>
 <translation id="3873915545594852654">ARC++ 發生問題。</translation>
 <translation id="3874164307099183178">開啟「Google 助理」</translation>
 <translation id="3875511946736639169">顯示圖片</translation>
@@ -4265,7 +4263,6 @@
 <translation id="3959969108528118741">擁有者</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">可以對 <ph name="IBAN_DESCRIPTION" /> 執行嘅其他操作</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" />已離開群組</translation>
 <translation id="3963753386716096475">使用其他手機、平板電腦或安全密鑰</translation>
 <translation id="3964480518399667971">關閉流動網絡</translation>
 <translation id="3965965397408324205">退出「<ph name="PROFILE_NAME" />」</translation>
@@ -5383,7 +5380,6 @@
 <translation id="4789348252524569426">無法安裝語音檔案,裝置需要更新。請重新開機,然後再試一次。</translation>
 <translation id="4789550509729954245">附近裝置分享緊內容嘅時候顯示通知</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">沒有可用建議。你可以說「總結這一頁」,或提出自己的問題。</translation>
 <translation id="4791793693640849493">將項目儲存至帳戶</translation>
 <translation id="4792290259143007505">啟用 TrackPoint 加速功能</translation>
 <translation id="4792711294155034829">報告問題(&amp;R)…</translation>
@@ -9008,7 +9004,6 @@
 <translation id="7421293530411019405">要離開分頁群組嗎?</translation>
 <translation id="7421925624202799674">檢視網頁原始碼(&amp;V)</translation>
 <translation id="7422192691352527311">偏好設定…</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />已更改群組名稱</translation>
 <translation id="7423425410216218516">分享設定在 <ph name="MINUTES" /> 分鐘內開啟</translation>
 <translation id="7423513079490750513">移除<ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">需要權限才能執行 <ph name="APP_NAME" /></translation>
@@ -9498,7 +9493,6 @@
 <translation id="7772032839648071052">確認複雜密碼</translation>
 <translation id="7772127298218883077">關於 <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">工作階段儲存空間</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />已加入群組</translation>
 <translation id="7774365994322694683">鳥</translation>
 <translation id="7774581652827321413">取得與此頁面的摘要、相關搜尋內容和其他實用資料</translation>
 <translation id="7774792847912242537">要求數量過多。</translation>
@@ -11093,7 +11087,6 @@
 <translation id="8888253246822647887">升級完成後,應用程式隨即啟動。升級過程可能需時幾分鐘。</translation>
 <translation id="8888459276890791557">你可固定此側面板以方便存取</translation>
 <translation id="8889294078294184559">您隨後瀏覽的網站可從 Chrome 取得前一個網站提供的資料,確認您應該是真人</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />已更改群組顏色</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> 可編輯以下檔案和資料夾</translation>
 <translation id="8890170499370378450">您可能需要支付流動數據費用</translation>
 <translation id="8890516388109605451">來源</translation>
@@ -11244,7 +11237,6 @@
 <translation id="8991520179165052608">網站可以使用您的麥克風</translation>
 <translation id="8991694323904646277">沒有相機</translation>
 <translation id="8991766915726096402">本機資料復原</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> 分鐘前}=1{<ph name="TIME_COUNT" /> 小時前}other{<ph name="TIME_COUNT" /> 天前}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - 記憶體用量 - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">即使忘記 <ph name="DEVICE_TYPE" /> 密碼,您仍可還原本機資料。您需要登入 Google 帳戶或使用復原帳戶功能。</translation>
 <translation id="8993198843374358393">複製「<ph name="CERT_NAME" />」的憑證雜湊</translation>
@@ -11646,7 +11638,6 @@
 <translation id="973558314812359997">滑鼠大小</translation>
 <translation id="973788791897303708">此分頁群組已滿</translation>
 <translation id="97381968209917373">刪除憑證「<ph name="CERT_NAME" />」</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />已變更分頁</translation>
 <translation id="975893173032473675">翻譯目標語言</translation>
 <translation id="976499800099896273">針對「<ph name="TYPED_WORD" />」更正做「<ph name="CORRECTED_WORD" />」,顯示復原自動更正內容對話框。㩒向上箭咀就可以存取,㩒 Esc 掣就可以忽略。</translation>
 <translation id="976572010712028687">驗證你的家長身分</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 08aeba6..c703cc73a 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -2563,7 +2563,6 @@
 <translation id="2764920001292228569">請輸入設定檔名稱</translation>
 <translation id="2765100602267695013">請與你的行動服務供應商聯絡</translation>
 <translation id="2765217105034171413">小</translation>
-<translation id="2765349783094807040"><ph name="MEMBER_FIRST_NAME" />已移除分頁</translation>
 <translation id="2765820627968019645">淺色</translation>
 <translation id="276582196519778359">輸入 PIN 碼才能使用家長監護功能</translation>
 <translation id="2766006623206032690">貼上及前往(&amp;S)</translation>
@@ -4124,7 +4123,6 @@
 <translation id="3872991219937722530">請釋出磁碟空間,否則裝置會無回應。</translation>
 <translation id="3873315167136380065">如要啟用這項功能,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步處理通關密語</translation>
 <translation id="3873423927483480833">顯示 PIN 碼</translation>
-<translation id="3873893412864594794"><ph name="MEMBER_FIRST_NAME" />已新增分頁</translation>
 <translation id="3873915545594852654">ARC++ 發生問題。</translation>
 <translation id="3874164307099183178">開啟 Google 助理</translation>
 <translation id="3875511946736639169">顯示圖片</translation>
@@ -4253,7 +4251,6 @@
 <translation id="3959969108528118741">擁有者</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">可對<ph name="IBAN_DESCRIPTION" /> 執行的其他動作</translation>
-<translation id="3962607437409665666"><ph name="MEMBER_FIRST_NAME" />已退出群組</translation>
 <translation id="3963753386716096475">使用其他手機、平板電腦或安全金鑰</translation>
 <translation id="3964480518399667971">關閉行動數據網路</translation>
 <translation id="3965965397408324205">離開<ph name="PROFILE_NAME" /></translation>
@@ -5376,7 +5373,6 @@
 <translation id="4789348252524569426">無法安裝語音檔案,必須更新裝置。請重新啟動裝置,然後再試一次。</translation>
 <translation id="4789550509729954245">鄰近裝置分享內容時顯示通知</translation>
 <translation id="4791037424585594169">(UDP)</translation>
-<translation id="4791200512372376561">沒有可用的建議。你可以說「請提供這個頁面的重點摘要」,或是提出自己的問題。</translation>
 <translation id="4791793693640849493">儲存項目至帳戶</translation>
 <translation id="4792290259143007505">啟用 TrackPoint 加速功能</translation>
 <translation id="4792711294155034829">回報問題(&amp;R)...</translation>
@@ -8999,7 +8995,6 @@
 <translation id="7421293530411019405">要退出分頁群組嗎?</translation>
 <translation id="7421925624202799674">檢視網頁原始碼(&amp;V)</translation>
 <translation id="7422192691352527311">偏好設定...</translation>
-<translation id="7422516375032300779"><ph name="MEMBER_FIRST_NAME" />已變更群組名稱</translation>
 <translation id="7423425410216218516">分享設定在 <ph name="MINUTES" /> 分鐘內為開啟狀態</translation>
 <translation id="7423513079490750513">移除<ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">需要權限才能執行「<ph name="APP_NAME" />」</translation>
@@ -9490,7 +9485,6 @@
 <translation id="7772032839648071052">確認通關密語</translation>
 <translation id="7772127298218883077">關於 <ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">工作階段儲存空間</translation>
-<translation id="7773887159761725143"><ph name="MEMBER_FIRST_NAME" />已加入群組</translation>
 <translation id="7774365994322694683">鳥</translation>
 <translation id="7774581652827321413">取得與這個頁面的摘要、相關搜尋內容和其他實用資訊</translation>
 <translation id="7774792847912242537">要求數量過多。</translation>
@@ -11087,7 +11081,6 @@
 <translation id="8888253246822647887">升級完成後,你的應用程式即會啟動。升級作業可能需要幾分鐘才能完成。</translation>
 <translation id="8888459276890791557">你可以固定這個側邊面板,方便之後存取</translation>
 <translation id="8889294078294184559">你隨後瀏覽的網站可從 Chrome 取得前一個網站提供的資訊,確認你應該是真人</translation>
-<translation id="88895904696396879"><ph name="MEMBER_FIRST_NAME" />已變更群組顏色</translation>
 <translation id="8889651696183044030"><ph name="ORIGIN" /> 可以編輯下列檔案與資料夾</translation>
 <translation id="8890170499370378450">可能需要支付行動數據傳輸費用</translation>
 <translation id="8890516388109605451">來源</translation>
@@ -11238,7 +11231,6 @@
 <translation id="8991520179165052608">網站可以使用你的麥克風</translation>
 <translation id="8991694323904646277">找不到相機</translation>
 <translation id="8991766915726096402">本機資料復原</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{<ph name="TIME_COUNT" /> 分鐘前}=1{<ph name="TIME_COUNT" /> 小時前}other{<ph name="TIME_COUNT" /> 天前}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - 記憶體用量 - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">即使忘記 <ph name="DEVICE_TYPE" /> 密碼,還是可以還原本機資料。你必須登入 Google 帳戶或使用帳戶救援功能。</translation>
 <translation id="8993198843374358393">複製「<ph name="CERT_NAME" />」的憑證雜湊</translation>
@@ -11640,7 +11632,6 @@
 <translation id="973558314812359997">游標大小</translation>
 <translation id="973788791897303708">這個分頁群組已額滿</translation>
 <translation id="97381968209917373">刪除憑證「<ph name="CERT_NAME" />」</translation>
-<translation id="973825986436797073"><ph name="MEMBER_FIRST_NAME" />已變更分頁</translation>
 <translation id="975893173032473675">翻譯目標語言</translation>
 <translation id="976499800099896273">系統將「<ph name="TYPED_WORD" />」更正為「<ph name="CORRECTED_WORD" />」後,已顯示復原自動更正內容的對話方塊。按向上鍵即可選取對話方塊,按 Esc 鍵則為忽略。</translation>
 <translation id="976572010712028687">驗證家長身分</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
index 3a14df76..b0bf7e2 100644
--- a/chrome/app/resources/generated_resources_zu.xtb
+++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -2577,7 +2577,6 @@
 <translation id="2764920001292228569">Faka igama lephrofayela</translation>
 <translation id="2765100602267695013">Sicela uxhumane nomhlinzeki weselula yakho</translation>
 <translation id="2765217105034171413">Okuncane</translation>
-<translation id="2765349783094807040">U-<ph name="MEMBER_FIRST_NAME" /> ususe ithebhu</translation>
 <translation id="2765820627968019645">Ukukhanya</translation>
 <translation id="276582196519778359">Faka iphinikhodi yakho ukuze uthole izilawuli zomzali</translation>
 <translation id="2766006623206032690">Namathisela uphinde uhambe</translation>
@@ -4141,7 +4140,6 @@
 <translation id="3872991219937722530">Ukukhulula isikhala sediski noma idivayisi ngeke kuphendule.</translation>
 <translation id="3873315167136380065">Vula lokhu, <ph name="BEGIN_LINK" />setha kabusha ukuvumelanisa<ph name="END_LINK" /> ukuze ususe umshwana wokungena wokuvumelanisa</translation>
 <translation id="3873423927483480833">Bonisa ama-PIN</translation>
-<translation id="3873893412864594794">U-<ph name="MEMBER_FIRST_NAME" /> wengeze ithebhu</translation>
 <translation id="3873915545594852654">Inkinga nge-ARC++ ivelile.</translation>
 <translation id="3874164307099183178">Vula Umsizi we-Google</translation>
 <translation id="3875511946736639169">Nika izithombe amandla</translation>
@@ -4270,7 +4268,6 @@
 <translation id="3959969108528118741">Umnikazi</translation>
 <translation id="3960566196862329469">ONC</translation>
 <translation id="3961005895395968120">Izenzo ezengeziwe ze-<ph name="IBAN_DESCRIPTION" /></translation>
-<translation id="3962607437409665666">U-<ph name="MEMBER_FIRST_NAME" /> ushiye iqembu</translation>
 <translation id="3963753386716096475">Sebenzisa ucingo, ithebulethi noma ukhiye wokuqinisekisa ubunikazi</translation>
 <translation id="3964480518399667971">Vala inethiwekhi yeselula</translation>
 <translation id="3965965397408324205">Phuma ku-<ph name="PROFILE_NAME" /></translation>
@@ -5393,7 +5390,6 @@
 <translation id="4789348252524569426">Ayikwazi ukufaka amafayela enkulumo Idivayisi yakho idinga ukubuyekezwa. Qala kabusha idivayisi yakho uphinde uzame futhi.</translation>
 <translation id="4789550509729954245">Bonisa izaziso lapho amadivayisi abelana eduze</translation>
 <translation id="4791037424585594169">(I-UDP)</translation>
-<translation id="4791200512372376561">Azikho iziphakamiso ezitholakalayo. Zama ukubuza izinto ezifana nokuthi "finyeza leli khasi" noma umbuzo wakho.</translation>
 <translation id="4791793693640849493">Londoloza izinto ku-akhawunti</translation>
 <translation id="4792290259143007505">Nika amandla isisheshisi se-TrackPoint</translation>
 <translation id="4792711294155034829">Bika inkinga...</translation>
@@ -9025,7 +9021,6 @@
 <translation id="7421293530411019405">Shiya iqembu lethebhu?</translation>
 <translation id="7421925624202799674">&amp;Buka umthombo wekhasi</translation>
 <translation id="7422192691352527311">Okuncamelayo...</translation>
-<translation id="7422516375032300779">U-<ph name="MEMBER_FIRST_NAME" /> ushintshe igama leqembu</translation>
 <translation id="7423425410216218516">Ukubonakala kuvulwe imizuzu engu-<ph name="MINUTES" /></translation>
 <translation id="7423513079490750513">Susa i-<ph name="INPUT_METHOD_NAME" /></translation>
 <translation id="7423807071740419372">I-<ph name="APP_NAME" /> idinga imvume yokusebenza</translation>
@@ -9516,7 +9511,6 @@
 <translation id="7772032839648071052">Qinisekisa umushwana wokungena</translation>
 <translation id="7772127298218883077">Mayelana ne-<ph name="PRODUCT_NAME" /></translation>
 <translation id="7773726648746946405">Isitoreji seseshini</translation>
-<translation id="7773887159761725143">U-<ph name="MEMBER_FIRST_NAME" /> ujoyine iqembu</translation>
 <translation id="7774365994322694683">Inyoni</translation>
 <translation id="7774581652827321413">Thola isifinyezo sekhasi, ukusesha okuhambisanayo, nolunye ulwazi oluwusizo mayelana naleli khasi.</translation>
 <translation id="7774792847912242537">Izicelo eziningi kakhulu.</translation>
@@ -11112,7 +11106,6 @@
 <translation id="8888253246822647887">Uhlelo lwakho lokusebenza luzovuleka uma ukuthuthukiswa kuqediwe. Ukuthuthukiswa kungathatha amaminithi ambalwa.</translation>
 <translation id="8888459276890791557">Ungakwazi ukuphina le phaneli eseceleni ukuze ufinyelele kalula</translation>
 <translation id="8889294078294184559">Njengoba uqhubeka nokubhrawuza, amasayithi angahlola ne-Chrome futhi aqinisekise ngesayithi yangaphambilini owake wayivakashela ukuthi kungenzeka ungumuntu wangempela.</translation>
-<translation id="88895904696396879">U-<ph name="MEMBER_FIRST_NAME" /> ushintshe umbala weqembu</translation>
 <translation id="8889651696183044030">I-<ph name="ORIGIN" /> ingahlela amafayela alandelayo namafolda</translation>
 <translation id="8890170499370378450">Ingase ibe nezindleko zedatha yeselula</translation>
 <translation id="8890516388109605451">Imithombo</translation>
@@ -11263,7 +11256,6 @@
 <translation id="8991520179165052608">Isayithi lingasebenzisa imakrofoni yakho</translation>
 <translation id="8991694323904646277">Ayikho ikhamera</translation>
 <translation id="8991766915726096402">Ukubuyisela Idatha Yendawo</translation>
-<translation id="8992268506092808992">{TIME_DIMENSION,plural, =0{Umzuzu ongu-<ph name="TIME_COUNT" />odlule}=1{Ihora elingu-<ph name="TIME_COUNT" /> eledlule}one{Usuku olungu-<ph name="TIME_COUNT" /> oludlule}other{Usuku olungu-<ph name="TIME_COUNT" /> oludlule}}</translation>
 <translation id="8992671062738341478"><ph name="WINDOW_TITLE" /> - Ukusetshenziswa kwenkumbulo: - <ph name="MEMORY_VALUE" /></translation>
 <translation id="8993059306046735527">Uma ukhohlwa iphasiwedi yakho ye-<ph name="DEVICE_TYPE" />, usengakwazi ukubuyisela idatha yakho yasendaweni. Uzodinga ukungena ngemvume ku-akhawunti yakho ye-Google noma usebenzise isitholi se-akhawunti elahlekile.</translation>
 <translation id="8993198843374358393">Kopisha ihash yesitifiketi se-<ph name="CERT_NAME" /></translation>
@@ -11665,7 +11657,6 @@
 <translation id="973558314812359997">Usayizi wemawusi</translation>
 <translation id="973788791897303708">Leli qembu lethebhu ligcwele</translation>
 <translation id="97381968209917373">Susa isitifiketi <ph name="CERT_NAME" /></translation>
-<translation id="973825986436797073">U-<ph name="MEMBER_FIRST_NAME" /> ushintshe ithebhu</translation>
 <translation id="975893173032473675">Ulimi ongahumushela kulo</translation>
 <translation id="976499800099896273">Ibhokisi lokuhlehlisa ukulungisa okuzenzakalelayo liboniswa nge-<ph name="TYPED_WORD" /> elungiswe yaba i-<ph name="CORRECTED_WORD" />.  Cindezela umcibisholo waphezulu ukuze ufinyelele, u-escape ukuze uzibe.</translation>
 <translation id="976572010712028687">Qinisekisa ukuthi ungumzali</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ka.xtb b/chrome/app/resources/google_chrome_strings_ka.xtb
index 5799659..ed43cc6 100644
--- a/chrome/app/resources/google_chrome_strings_ka.xtb
+++ b/chrome/app/resources/google_chrome_strings_ka.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{ეს გაფართოება აღარ არის მხარდაჭერილი. Chrome გირჩევთ, ამოშალოთ ის.}other{ეს გაფართოებები აღარ არის მხარდაჭერილი. Chrome გირჩევთ, ამოშალოთ ისინი.}}</translation>
 <translation id="2018528049276128029">თითოეულ პროფილში ინახება საკუთარი Chrome ინფორმაცია, როგორიცაა სანიშნეები, ისტორია, პაროლები და სხვა</translation>
 <translation id="2018879682492276940">ინსტალაცია ვერ მოხერხდა. ცადეთ ხელახლა.</translation>
+<translation id="2024959665595762054">თქვენს Google ანგარიშში Chrome-ის მონაცემები რომ გამოიყენოთ და შეინახოთ, დაადასტურეთ ვინაობა</translation>
 <translation id="2034233344106846793">Chrome ავტომატურად განაახლებს HTTPS-თან დაუცველ კავშირებს, როცა ეს შესაძლებელი იქნება</translation>
 <translation id="207902854391093810">როცა ცდები ჩართულია, რეკლამის ეფექტურობის გაზომვის მეშვეობით, თქვენ მიერ მონახულებულ საიტებს საშუალება ექნება, Chrome-ისგან მოითხოვონ გარკვეული ინფორმაცია, რომელიც ამა თუ იმ საიტს თავისი რეკლამის ეფექტურობის განსაზღვრაში დაეხმარება. რეკლამის ეფექტურობის გაზომვისას საიტებს შორის თვალის მიდევნების მექანიზმები შეზღუდულია, რაც ნიშნავს, რომ საიტებს შორის მინიმალური ინფორმაცია გადაიცემა.</translation>
 <translation id="2091012649849228750">Google Chrome-ის მომავალი განახლებების მისაღებად დაგჭირდებათ Windows 10 ან უფრო ახალი ვერსია. ეს კომპიუტერი იყენებს Windows 8-ს.</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">დაგვეხმარეთ Google Chrome-ის გაუმჯობესებაში: გამოგზავნეთ მოხსენებები შეცდომების შესახებ <ph name="UMA_LINK" /> Google-ში</translation>
 <translation id="2668094785979141847">დააწკაპუნეთ Google Lens-იდან გასასვლელად</translation>
 <translation id="2681444469812712297">გახსენით <ph name="URL" /> Google Chrome-ის ახალ ჩანართში.</translation>
+<translation id="2687871045452977757">თქვენს Google ანგარიშში (<ph name="ACCOUNT_EMAIL" />) Chrome-ის მონაცემები რომ გამოიყენოთ და შეინახოთ, შეიყვანეთ თქვენი საიდუმლო ფრაზა</translation>
 <translation id="2712141162840347885">აირჩიეთ ის, რისი მოძებნაც გსურთ Google Lens-ით, ან დააჭირეთ Escape-ს Google Lens-იდან გასასვლელად</translation>
 <translation id="2738871930057338499">ინტერნეტთან დაკავშირება ვერ ხერხდება. HTTP 403 — აკრძალულია. შეამოწმეთ პროქსი-სერვერის კონფიგურაცია.</translation>
 <translation id="2742320827292110288">გაფრთხილება: Google Chrome ვერ შეუშლის ხელს გაფართოებებს ვების დათვალიერების ისტორიის შენახვაში. ამ გაფართოების ინკოგნიტო რეჟიმში გამოსართავად მოხსენით მონიშვნა ამ ვარიანტზე.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index 9d354eb6..5a47ac73 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -150,7 +150,7 @@
 <translation id="2799223571221894425">ಮರುಪ್ರಾರಂಭಿಸು</translation>
 <translation id="2825024317344269723">ಅಪಾಯಕಾರಿ ಸೈಟ್. Chrome ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿದೆ.</translation>
 <translation id="2841525013647267359">ಈ ಭಾಷೆಯಿಂದ ಅನುವಾದಿಸಿ</translation>
-<translation id="2846251086934905009">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ. ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation>
+<translation id="2846251086934905009">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ. ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="2853415089995957805">ನೀವು ಭೇಟಿ ನೀಡುವ ಸಾಧ್ಯತೆಯಿರುವ ಪುಟಗಳನ್ನು Chrome ಪ್ರಿಲೋಡ್ ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಭೇಟಿ ಮಾಡಿದಾಗ ಅವು ಹೆಚ್ಚು ವೇಗವಾಗಿ ಲೋಡ್ ಆಗುತ್ತವೆ</translation>
 <translation id="2857540653560290388">Chrome ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="2857972467023607093">ಈ ಖಾತೆಯೊಂದಿಗೆ Chrome ಪ್ರೊಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ</translation>
@@ -165,7 +165,7 @@
 <translation id="2926676257163822632">ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಸುಲಭವಾಗಿ ಊಹಿಸಬಹುದು. Chrome <ph name="BEGIN_LINK" />ನಿಮಗಾಗಿ ಸದೃಢ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು<ph name="END_LINK" /> ಅವಕಾಶ ಮಾಡಿಕೊಡಿ.</translation>
 <translation id="2926952073016206995">ಈ ಸೈಟ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ Chrome ಗೆ ಕ್ಯಾಮರಾ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="2928420929544864228">ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಪೂರ್ಣಗೊಂಡಿದೆ.</translation>
-<translation id="2945997411976714835">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
+<translation id="2945997411976714835">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="2969728957078202736"><ph name="PAGE_TITLE" /> - ನೆಟ್‌ವರ್ಕ್ ಸೈನ್ ಇನ್ - Chrome</translation>
 <translation id="2970681950995291301">Chrome ನಿಂದ ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟದಲ್ಲಿ Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="2994465299455873643">ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ ಸೇವೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಅದು ಹಳೆಯದಾದರೆ <ph name="BROWSER_NAME" /> ಅನ್ನು ರಿಕವರ್‌ ಮಾಡಲು ಸುರಕ್ಷಿತ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ಸೇವೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="BROWSER_NAME" /> ಎನ್‌ಕ್ರಿಪ್ಟ್‌ ಮಾಡಲಾದ ಡೇಟಾಗೆ ಆ್ಯಕ್ಸೆಸ್‌ ಅನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಮತ್ತು <ph name="BROWSER_NAME" /> ಸ್ವತಃ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು.</translation>
@@ -244,7 +244,7 @@
 <translation id="3885770153807205175">ಭಾಷಾ ಪಿಕರ್‌</translation>
 <translation id="3889417619312448367">Google Chrome ಅನ್ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
 <translation id="3892148308691398805">ಪಠ್ಯ ನಕಲಿಸಿ</translation>
-<translation id="3941890832296813527">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.</translation>
+<translation id="3941890832296813527">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.</translation>
 <translation id="3968962723676998462">ನಿಮ್ಮ ಖಾತೆ <ph name="ACCOUNT_EMAIL" /> ನಲ್ಲಿ Chrome ಡೇಟಾವನ್ನು ಸೇವ್ ಮಾಡಲು ಮತ್ತು ಬಳಸಲು ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="3973161977468201858">ನಿಮ್ಮ Google Password Manager ಡೇಟಾವನ್ನು ಅಳಿಸಲು Google Chrome ಬಯಸುತ್ತದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation>
 <translation id="398236277091248993">ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಫೀಚರ್‌ಗಳೊಂದಿಗೆ Chrome ವೇಗವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ</translation>
@@ -372,7 +372,7 @@
 <translation id="5686916850681061684">Google Chrome ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ನೀವು ಕೆಲವು ಸಂಗತಿಗಳ ಕುರಿತು ಗಮನಹರಿಸಬೇಕಿದೆ - ವಿವರಗಳಿಗಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="5690427481109656848">Google LLC</translation>
 <translation id="569897634095159764">ಇಂಟರ್ನೆಟ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ಗೆ ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ.</translation>
-<translation id="5709557627224531708">Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation>
+<translation id="5709557627224531708">Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="5727531838415286053">Chrome ನಿಮ್ಮನ್ನು ರ್‍ಯಾಂಡಮ್ ಆಗಿ ಸಕ್ರಿಯ ಪ್ರಯೋಗದಲ್ಲಿ ಇರಿಸಿದ್ದರೆ, ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ ನಿಮಗೆ ಕಾಣಿಸುವ ಜಾಹೀರಾತುಗಳು ಮತ್ತು ಆಸಕ್ತಿಗಳ ಮೇಲೆ ಕೆಳಗೆ ಅಂದಾಜು ಮಾಡಿರುವಂತೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ. ನಿಮ್ಮ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸಲು, Chrome ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಪ್ರತಿ ತಿಂಗಳು ರೋಲಿಂಗ್ ಆಧಾರದಲ್ಲಿ ಅಳಿಸುತ್ತದೆ. ನೀವು ಆಸಕ್ತಿಗಳನ್ನು ತೆಗೆದುಹಾಕದ ಹೊರತು ಅವು ರಿಫ್ರೆಶ್ ಆಗುತ್ತವೆ.</translation>
 <translation id="5736850870166430177">ಯಾವುದಾದರೂ ಸೈಟ್ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕದಿಯಲು ಪ್ರಯತ್ನಿಸಿದರೆ ಅಥವಾ ನೀವು ಹಾನಿಕಾರಕ ಫೈಲ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದಾಗ, ಪುಟದ ವಿಷಯದ ತುಣುಕುಗಳನ್ನು ಒಳಗೊಂಡ URL ಗಳನ್ನು ಸಹ Chrome, ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation>
 <translation id="5756509061973259733">ಈ ಸಾಧನದಲ್ಲಿ ಈ ಖಾತೆಯೊಂದಿಗಿನ Chrome ಪ್ರೊಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ</translation>
@@ -641,7 +641,7 @@
 <translation id="8753189155654018347">Chrome ನಿಂದ ಈ ಆ್ಯಪ್‌ಗಳ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಿ</translation>
 <translation id="8765470054473112089">ನೀವು ವಿಳಾಸ ಪಟ್ಟಿ ಅಥವಾ ಹುಡುಕಾಟ ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ಟೈಪ್ ಮಾಡಿದಾಗ, ಉತ್ತಮ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು Chrome ನೀವು ಟೈಪ್ ಮಾಡಿದ್ದನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಸರ್ಚ್ ಎಂಜಿನ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ. ಅಜ್ಞಾತ ಮೋಡ್‌ನಲ್ಲಿ ಇದು ಆಫ್ ಆಗಿರುತ್ತದೆ.</translation>
 <translation id="8781673607513845160">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಲು, <ph name="BEGIN_LINK" />ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> Chrome ಆ್ಯಕ್ಸೆಸ್‌ ಅನ್ನು ನೀಡಿ</translation>
-<translation id="878572486461146056">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ: ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರು ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ತಡೆಯುವ ಗುಂಪು ನೀತಿಯನ್ನು ಅನ್ವಯಿಸಿದ್ದಾರೆ: <ph name="INSTALL_ERROR" /></translation>
+<translation id="878572486461146056">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರು ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ತಡೆಯುವ ಗುಂಪು ನೀತಿಯನ್ನು ಅನ್ವಯಿಸಿದ್ದಾರೆ: <ph name="INSTALL_ERROR" /></translation>
 <translation id="8796073561259064743">Chrome ಈ ಡೌನ್‌ಲೋಡ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ ಏಕೆಂದರೆ ಫೈಲ್ <ph name="USER_EMAIL" /> ಅನ್ನು ಒಳಗೊಂಡಂತೆ, ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮತ್ತು ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್ ಖಾತೆಗಳಿಗೆ ಹಾನಿಯುಂಟುಮಾಡಬಹುದು</translation>
 <translation id="8797423385604279835">AI ಸಹಾಯದಿಂದ ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಆಯೋಜಿಸಿ</translation>
 <translation id="8801657293260363985">V8 ಎಂಬುದು Chrome ನ JavaScript ಮತ್ತು WebAssembly ಎಂಜಿನ್ ಆಗಿದ್ದು, ಸೈಟ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 39dfbfc..fff1db5 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{ഈ വിപുലീകരണത്തിന് ഇനി പിന്തുണയില്ല. നിങ്ങൾ അത് നീക്കം ചെയ്യണമെന്ന് Chrome നിർദ്ദേശിക്കുന്നു.}other{ഈ വിപുലീകരണങ്ങൾക്ക് ഇനി പിന്തുണയില്ല. നിങ്ങൾ അവ നീക്കം ചെയ്യണമെന്ന് Chrome നിർദ്ദേശിക്കുന്നു.}}</translation>
 <translation id="2018528049276128029">ഓരോ പ്രൊഫൈലും ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ എന്നിവയും മറ്റും പോലുള്ള അതിന്റെ സ്വന്തം Chrome വിവരങ്ങൾ സൂക്ഷിക്കുന്നു</translation>
 <translation id="2018879682492276940">ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation>
+<translation id="2024959665595762054">നിങ്ങളുടെ Google Account-ലെ Chrome ഡാറ്റ ഉപയോഗിക്കാനും സംരക്ഷിക്കാനും, ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക</translation>
 <translation id="2034233344106846793">സാധ്യമാകുമ്പോൾ, Chrome, HTTPS-യിലേക്ക് സുരക്ഷിതമല്ലാത്ത കണക്ഷനുകൾ സ്വയമേവ അപ്‌ഗ്രേഡ് ചെയ്യുന്നു</translation>
 <translation id="207902854391093810">ട്രയലുകൾ ഓണായിരിക്കുമ്പോൾ, നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളെ അവയുടെ പരസ്യങ്ങളുടെ പ്രകടനം അളക്കാൻ സഹായിക്കുന്ന Chrome-ൽ നിന്നുള്ള വിവരങ്ങൾ അഭ്യർത്ഥിക്കാൻ ആഡ് മെഷർമെന്റ് അനുവദിക്കുന്നു. സൈറ്റുകൾക്കിടയിൽ കഴിയുന്നത്ര കുറച്ച് വിവരങ്ങൾ കൈമാറുന്നതിലൂടെ ആഡ് മെഷർമെന്റ് ക്രോസ്-സൈറ്റ് ട്രാക്കിംഗ് നിയന്ത്രിക്കുന്നു.</translation>
 <translation id="2091012649849228750">ഭാവിയിൽ Google Chrome അപ്‌ഡേറ്റുകൾ ലഭിക്കാൻ, നിങ്ങൾക്ക് Windows 10 അല്ലെങ്കിൽ അതിന് ശേഷമുള്ള പതിപ്പ് ആവശ്യമാണ്. ഈ കമ്പ്യൂട്ടർ Windows 8 ആണ് ഉപയോഗിക്കുന്നത്.</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">Google-ലേക്ക് ക്രാഷ് റിപ്പോർട്ടുകളും <ph name="UMA_LINK" /> എന്നതും അയയ്‌ക്കുന്നതിലൂടെ Google Chrome മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="2668094785979141847">Google Lens-ൽ നിന്ന് പുറത്തുകടക്കാൻ ക്ലിക്ക് ചെയ്യുക</translation>
 <translation id="2681444469812712297">Google Chrome-ൽ പുതിയ ടാബിൽ <ph name="URL" /> തുറക്കുക.</translation>
+<translation id="2687871045452977757">നിങ്ങളുടെ Google Account-ലെ Chrome ഡാറ്റ ഉപയോഗിക്കാനും സംരക്ഷിക്കാനും, നിങ്ങളുടെ പാസ്ഫ്രെയ്‌സ് നൽകുക, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">Google Lens ഉപയോഗിച്ച് തിരയാൻ എന്തെങ്കിലും തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ Google Lens-ൽ നിന്ന് പുറത്ത് കടക്കാൻ 'Escape' അമർത്തുക</translation>
 <translation id="2738871930057338499">ഇന്റർനെറ്റിലേക്ക് കണക്റ്റ് ചെയ്യാനാകുന്നില്ല. HTTP 403 നിരോധിച്ചിരിക്കുന്നു. നിങ്ങളുടെ പ്രോക്‌സി കോൺഫിഗറേഷൻ പരിശോധിക്കുക.</translation>
 <translation id="2742320827292110288">മുന്നറിയിപ്പ്: നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം റെക്കോർഡ് ചെയ്യുന്നതിൽ നിന്ന് വിപുലീകരണങ്ങളെ തടയാൻ Google Chrome-ന് കഴിയില്ല. അദൃശ്യമോഡിൽ ഈ വിപുലീകരണം പ്രവർത്തനരഹിതമാക്കാൻ, ഈ ഓപ്ഷൻ തിരഞ്ഞെടുത്തത് റദ്ദാക്കുക.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pa.xtb b/chrome/app/resources/google_chrome_strings_pa.xtb
index 747cbc1..d965d5b2 100644
--- a/chrome/app/resources/google_chrome_strings_pa.xtb
+++ b/chrome/app/resources/google_chrome_strings_pa.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{ਇਹ ਐਕਸਟੈਂਸ਼ਨ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। Chrome ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾ ਦਿਓ।}one{ਇਹ ਐਕਸਟੈਂਸ਼ਨ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। Chrome ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਹਟਾ ਦਿਓ।}other{ਇਹ ਐਕਸਟੈਂਸ਼ਨਾਂ ਹੁਣ ਸਮਰਥਿਤ ਨਹੀਂ ਹਨ। Chrome ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਨੂੰ ਹਟਾ ਦਿਓ।}}</translation>
 <translation id="2018528049276128029">ਹਰੇਕ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਆਪਣੀ Chrome ਜਾਣਕਾਰੀ ਹੁੰਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਬੁੱਕਮਾਰਕ, ਇਤਿਹਾਸ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ</translation>
 <translation id="2018879682492276940">ਸਥਾਪਨਾ ਅਸਫਲ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation>
+<translation id="2024959665595762054">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chrome ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation>
 <translation id="2034233344106846793">ਸੰਭਵ ਹੋਣ 'ਤੇ, Chrome ਅਸੁਰੱਖਿਅਤ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ HTTPS 'ਤੇ ਅੱਪਗ੍ਰੇਡ ਕਰਦਾ ਹੈ</translation>
 <translation id="207902854391093810">ਪਰਖਾਂ ਚਾਲੂ ਹੋਣ 'ਤੇ, ਵਿਗਿਆਪਨ ਮੁਲਾਂਕਣ ਉਨ੍ਹਾਂ ਸਾਈਟਾਂ ਨੂੰ Chrome ਤੋਂ ਜਾਣਕਾਰੀ ਦੀ ਬੇਨਤੀ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ 'ਤੇ ਤੁਸੀਂ ਜਾਂਦੇ ਹੋ, ਜਿਸ ਨਾਲ ਸਾਈਟ ਨੂੰ ਆਪਣੇ ਵਿਗਿਆਪਨਾਂ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ। ਵਿਗਿਆਪਨ ਮੁਲਾਂਕਣ ਸਾਈਟਾਂ ਵਿਚਕਾਰ ਜਿੰਨੀ ਸੰਭਵ ਹੋ ਸਕੇ ਓਨੀ ਘੱਟ ਜਾਣਕਾਰੀ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰ ਕੇ ਕ੍ਰਾਸ-ਸਾਈਟ ਟਰੈਕਿੰਗ ਨੂੰ ਪ੍ਰਤਿਬੰਧਿਤ ਕਰਦਾ ਹੈ।</translation>
 <translation id="2091012649849228750">Google Chrome ਸੰਬੰਧੀ ਭਵਿੱਖੀ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ Windows 10 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਵਾਲੇ ਵਰਜਨ ਦੀ ਲੋੜ ਪਵੇਗੀ। ਇਸ ਕੰਪਿਊਟਰ 'ਤੇ Windows 8 ਵਰਜਨ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ।</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">Google ਨੂੰ ਵਰਤੋਂ ਅੰਕੜੇ ਅਤੇ ਕ੍ਰੈਸ਼ ਰਿਪੋਰਟਾਂ ਅਤੇ <ph name="UMA_LINK" /> ਭੇਜ ਕੇ Google Chrome ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੋ</translation>
 <translation id="2668094785979141847">Google Lens ਤੋਂ ਬਾਹਰ ਜਾਣ ਲਈ ਕਲਿੱਕ ਕਰੋ</translation>
 <translation id="2681444469812712297">Google Chrome ਵਿੱਚ ਨਵੀਂ ਟੈਬ ਵਿੱਚ <ph name="URL" /> ਖੋਲ੍ਹੋ।</translation>
+<translation id="2687871045452977757">ਆਪਣੇ Google ਖਾਤੇ ਵਿੱਚ Chrome ਡਾਟੇ ਨੂੰ ਵਰਤਣ ਅਤੇ ਰੱਖਿਅਤ ਕਰਨ ਲਈ, ਆਪਣਾ ਪਾਸਫਰੇਜ਼ ਦਾਖਲ ਕਰੋ, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">Google Lens ਨਾਲ ਖੋਜਣ ਲਈ ਕੁਝ ਵੀ ਚੁਣੋ ਜਾਂ Google Lens ਤੋਂ ਬਾਹਰ ਜਾਣ ਕਰਨ Escape ਦਬਾਓ</translation>
 <translation id="2738871930057338499">ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। HTTP 403 ਪਾਬੰਦੀਸ਼ੁਦਾ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੇ ਪ੍ਰੌਕਸੀ ਸੰਰੂਪਣ ਦੀ ਜਾਂਚ ਕਰੋ।</translation>
 <translation id="2742320827292110288">ਚਿਤਾਵਨੀ: Google Chrome ਐਕਸਟੈਂਸ਼ਨਾਂ ਨੂੰ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨ ਤੋਂ ਨਹੀਂ ਰੋਕ ਸਕਦਾ। ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਵਿੱਚ ਇਸ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ, ਇਸ ਵਿਕਲਪ ਨੂੰ ਅਣਚੁਣਿਆ ਕਰੋ।</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
index a7b7160..8bfd098c 100644
--- a/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr-Latn.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{Ovaj dodatak više nije podržan. Chrome preporučuje da ga uklonite.}one{Ovi dodaci više nisu podržani. Chrome preporučuje da ih uklonite.}few{Ovi dodaci više nisu podržani. Chrome preporučuje da ih uklonite.}other{Ovi dodaci više nisu podržani. Chrome preporučuje da ih uklonite.}}</translation>
 <translation id="2018528049276128029">Svaki profil zadržava sopstvene Chrome podatke, poput obeleživača, istorije, lozinki i drugog sadržaja</translation>
 <translation id="2018879682492276940">Instalacija nije uspela. Probajte ponovo.</translation>
+<translation id="2024959665595762054">Da biste koristili i čuvali Chrome podatke na Google nalogu, potvrdite svoj identitet</translation>
 <translation id="2034233344106846793">Chrome automatski nadograđuje nebezbedne veze na HTTPS kada je to moguće</translation>
 <translation id="207902854391093810">Dok probni periodi traju, Merenje oglasa omogućava sajtovima koje posećujete da od Chrome-a zatraže informacije koje sajtu pomažu da meri učinak oglasa. Merenje oglasa ograničava praćenje na više sajtova tako što prenosi što manje informacija između sajtova.</translation>
 <translation id="2091012649849228750">Da biste dobijali buduća Google Chrome ažuriranja, treba vam Windows 10 ili novija verzija. Ovaj računar koristi Windows 8.</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">Pomozite nam da poboljšamo Google Chrome tako što ćete Google-u slati izveštaje o otkazivanju i <ph name="UMA_LINK" /></translation>
 <translation id="2668094785979141847">Kliknite da biste izašli iz Google objektiva</translation>
 <translation id="2681444469812712297">Otvorite <ph name="URL" /> na novoj kartici u Google Chrome-u.</translation>
+<translation id="2687871045452977757">Da biste koristili i čuvali Chrome podatke na Google nalogu, unesite pristupnu frazu, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">Izaberite bilo šta za pretragu pomoću Google objektiva ili pritisnite Escape da biste izašli iz Google objektiva</translation>
 <translation id="2738871930057338499">Povezivanje sa internetom nije uspelo. Zabranjen je pristup (HTTP 403). Proverite konfiguraciju proksija.</translation>
 <translation id="2742320827292110288">Upozorenje: Google Chrome ne može da spreči dodatke da snimaju vašu istoriju pregledanja. Da biste onemogućili ovaj dodatak u režimu bez arhiviranja, poništite izbor ove opcije.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index 30dde441..934a463 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{Овај додатак више није подржан. Chrome препоручује да га уклоните.}one{Ови додаци више нису подржани. Chrome препоручује да их уклоните.}few{Ови додаци више нису подржани. Chrome препоручује да их уклоните.}other{Ови додаци више нису подржани. Chrome препоручује да их уклоните.}}</translation>
 <translation id="2018528049276128029">Сваки профил задржава сопствене Chrome податке, попут обележивача, историје, лозинки и другог садржаја</translation>
 <translation id="2018879682492276940">Инсталација није успела. Пробајте поново.</translation>
+<translation id="2024959665595762054">Да бисте користили и чували Chrome податке на Google налогу, потврдите свој идентитет</translation>
 <translation id="2034233344106846793">Chrome аутоматски надограђује небезбедне везе на HTTPS када је то могуће</translation>
 <translation id="207902854391093810">Док пробни периоди трају, Мерење огласа омогућава сајтовима које посећујете да од Chrome-а затраже информације које сајту помажу да мери учинак огласа. Мерење огласа ограничава праћење на више сајтова тако што преноси што мање информација између сајтова.</translation>
 <translation id="2091012649849228750">Да бисте добијали будућа Google Chrome ажурирања, треба вам Windows 10 или новија верзија. Овај рачунар користи Windows 8.</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">Помозите нам да побољшамо Google Chrome тако што ћете Google-у слати извештаје о отказивању и <ph name="UMA_LINK" /></translation>
 <translation id="2668094785979141847">Кликните да бисте изашли из Google објектива</translation>
 <translation id="2681444469812712297">Отворите <ph name="URL" /> на новој картици у Google Chrome-у.</translation>
+<translation id="2687871045452977757">Да бисте користили и чували Chrome податке на Google налогу, унесите приступну фразу, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">Изаберите било шта за претрагу помоћу Google објектива или притисните Escape да бисте изашли из Google објектива</translation>
 <translation id="2738871930057338499">Повезивање са интернетом није успело. Забрањен је приступ (HTTP 403). Проверите конфигурацију проксија.</translation>
 <translation id="2742320827292110288">Упозорење: Google Chrome не може да спречи додатке да снимају вашу историју прегледања. Да бисте онемогућили овај додатак у режиму без архивирања, поништите избор ове опције.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index b6e9299..2d4500c0 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -81,6 +81,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{Detta tillägg stöds inte längre. Vi rekommenderar att du tar bort det.}other{Dessa tillägg stöds inte längre. Vi rekommenderar att du tar bort dem.}}</translation>
 <translation id="2018528049276128029">I alla profiler sparas egen Chrome-information som bokmärken, historik, lösenord och annat</translation>
 <translation id="2018879682492276940">Installationen misslyckades. Försök igen.</translation>
+<translation id="2024959665595762054">Verifiera din identitet om du vill använda och spara Chrome-data i Google-kontot</translation>
 <translation id="2034233344106846793">Chrome uppgraderar automatiskt osäkra anslutningar till HTTPS när det är möjligt</translation>
 <translation id="207902854391093810">Genom annonsmätning, om provfunktioner är aktiverade, kan webbplatser du besöker begära information från Chrome som hjälper dem att mäta annonsernas resultat. Med annonsmätning begränsas spårningen från webbplats till webbplats genom att så lite information som möjligt överförs mellan webbplatserna.</translation>
 <translation id="2091012649849228750">Du behöver Windows 10 eller senare för att få kommande uppdateringar av Google Chrome. På den här datorn används Windows 8.</translation>
@@ -140,6 +141,7 @@
 <translation id="2665296953892887393">Hjälp oss att göra Google Chrome bättre genom att skicka felrapporter och <ph name="UMA_LINK" /> till Google.</translation>
 <translation id="2668094785979141847">Klicka för att avsluta Google Lens</translation>
 <translation id="2681444469812712297">Öppna <ph name="URL" /> på en ny flik i Google Chrome.</translation>
+<translation id="2687871045452977757">Ange lösenfrasen om du vill använda och spara Chrome-data i ditt Google-konto, <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">Välj vad du vill söka efter med Google Lens eller tryck på Escape för att avsluta Google Lens</translation>
 <translation id="2738871930057338499">Det går inte att ansluta till internet. HTTP 403 Förbjuden. Kontrollera proxykonfigurationen.</translation>
 <translation id="2742320827292110288">Varning! Google Chrome kan inte förhindra att tillägg registrerar din webbhistorik. Om du vill inaktivera det här tillägget i inkognitoläge avmarkerar du detta alternativ.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index 0edc54e8..ca308f3 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -77,6 +77,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{ఈ ఎక్స్‌టెన్షన్ ఇకపై సపోర్ట్ చేయదు. మీరు దాన్ని తీసివేయవలసిందిగా Chrome సిఫార్సు చేస్తోంది.}other{ఈ ఎక్స్‌టెన్షన్‌లు ఇకపై సపోర్ట్ చేయబడవు. మీరు వాటిని తీసివేయవలసిందిగా Chrome సిఫార్సు చేస్తోంది.}}</translation>
 <translation id="2018528049276128029">ప్రతి ప్రొఫైల్‌లో బుక్‌మార్క్‌లు, హిస్టరీ, పాస్‌వర్డ్‌లు లాంటి వంటి దాని సొంత Chrome సమాచారం ఉంటుంది</translation>
 <translation id="2018879682492276940">ఇన్‌స్టాల్ చేయడం విఫలమైంది. దయచేసి మళ్లీ ట్రై చేయండి.</translation>
+<translation id="2024959665595762054">మీ Google ఖాతాలో Chrome డేటాను ఉపయోగించడానికి, దానిలో డేటాను సేవ్ చేయడానికి, ఇది మీరేనని వెరిఫై చేయండి</translation>
 <translation id="2034233344106846793">వీలైనప్పుడు, Chrome ఆటోమేటిక్‌గా సురక్షితం కాని కనెక్షన్‌లను HTTPSకు అప్‌గ్రేడ్ చేస్తుంది</translation>
 <translation id="207902854391093810">ట్రయల్స్ ఆన్‌లో ఉన్నప్పుడు, మీరు సందర్శించే సైట్‌లను Chrome నుండి సమాచారాన్ని రిక్వెస్ట్ చేసేలా 'యాడ్‌ల అంచనా' అనుమతిస్తుంది, ఇది యాడ్‌ల పనితీరును అంచనా వేయడంలో సైట్‌కు సహాయపడుతుంది. 'యాడ్‌ల అంచనా', సైట్‌ల మధ్య వీలయినంత తక్కువ సమాచారాన్ని బదిలీ చేసి, క్రాస్-సైట్ ట్రాకింగ్‌ను తగ్గిస్తుంది.</translation>
 <translation id="2091012649849228750">భవిష్యత్తు Google Chrome అప్‌డేట్‌లను పొందడానికి, మీకు Windows 10 లేదా ఆ తర్వాత వచ్చిన ఏదైనా వెర్షన్ అవసరం అవుతుంది. ఈ కంప్యూటర్ Windows 8ను ఉపయోగిస్తోంది.</translation>
@@ -136,6 +137,7 @@
 <translation id="2665296953892887393">Googleకు క్రాష్ రిపోర్ట్‌లను, <ph name="UMA_LINK" />ను పంపడం ద్వారా Google Chromeను మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="2668094785979141847">Google Lens నుండి నిష్క్రమించడానికి క్లిక్ చేయండి</translation>
 <translation id="2681444469812712297"><ph name="URL" /> ను Google Chromeలో కొత్త ట్యాబ్‌లో తెరవండి.</translation>
+<translation id="2687871045452977757">మీ Google ఖాతాలోని Chrome డేటాను ఉపయోగించడానికి, అందులో డేటాను సేవ్ చేయడానికి, మీ రహస్య పదబంధాన్ని, <ph name="ACCOUNT_EMAIL" /> ఎంటర్ చేయండి</translation>
 <translation id="2712141162840347885">Google Lensతో సెర్చ్ చేయడానికి ఏదైనా ఎంచుకోండి లేదా Google Lens నుండి ఎగ్జిట్ అవ్వడానికి ఎస్కేప్ బటన్‌ను నొక్కండి</translation>
 <translation id="2738871930057338499">ఇంటర్నెట్‌కు కనెక్ట్ చేయడం సాధ్యపడలేదు. HTTP 403 అనుమతి లేదు. దయచేసి మీ ప్రాక్సీ కాన్ఫిగరేషన్‌ను చెక్ చేయండి.</translation>
 <translation id="2742320827292110288">హెచ్చరిక: Google Chrome మీ బ్రౌజింగ్ హిస్టరీని రికార్డ్ చేయకుండా ఎక్స్‌టెన్ష‌న్‌లను నివారించలేదు. ఈ ఎక్స్‌టెన్షన్‌ను అజ్ఞాత మోడ్‌లో డిజేబుల్ చేయడానికి, ఈ ఆప్షన్‌ను రద్దు చేయండి.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 538b08bd..219d155 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -77,6 +77,7 @@
 <translation id="2008942457798486387">{NUM_EXTENSIONS,plural, =1{ระบบไม่รองรับส่วนขยายนี้อีกต่อไป Chrome ขอแนะนำให้คุณนำออก}other{ระบบไม่รองรับส่วนขยายเหล่านี้อีกต่อไป Chrome ขอแนะนําให้คุณนําออก}}</translation>
 <translation id="2018528049276128029">แต่ละโปรไฟล์จะเก็บข้อมูล Chrome ของตัวเอง เช่น บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และอื่นๆ</translation>
 <translation id="2018879682492276940">การติดตั้งไม่สำเร็จ โปรดลองอีกครั้ง</translation>
+<translation id="2024959665595762054">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกข้อมูล Chrome ในบัญชี Google</translation>
 <translation id="2034233344106846793">Chrome จะอัปเกรดการเชื่อมต่อที่ไม่ปลอดภัยเป็น HTTPS โดยอัตโนมัติเมื่อทำได้</translation>
 <translation id="207902854391093810">เมื่อเริ่มการทดสอบ การวัดผลโฆษณาจะให้เว็บไซต์ที่คุณเข้าชมสามารถขอข้อมูลจาก Chrome เพื่อช่วยวัดประสิทธิภาพโฆษณาของเว็บไซต์ดังกล่าวได้ การวัดผลโฆษณาจะจำกัดการติดตามข้ามเว็บไซต์โดยโอนข้อมูลระหว่างเว็บไซต์ให้น้อยที่สุด</translation>
 <translation id="2091012649849228750">คุณจะต้องใช้ Windows 10 ขึ้นไปเพื่อรับการอัปเดต Google Chrome ในอนาคต คอมพิวเตอร์เครื่องนี้ใช้ Windows 8</translation>
@@ -136,6 +137,7 @@
 <translation id="2665296953892887393">ช่วยทำให้ Google Chrome ดียิ่งขึ้นโดยการส่งรายงานข้อขัดข้องและ <ph name="UMA_LINK" /> ไปยัง Google</translation>
 <translation id="2668094785979141847">คลิกเพื่อออกจาก Google Lens</translation>
 <translation id="2681444469812712297">เปิด <ph name="URL" /> ในแท็บใหม่ใน Google Chrome</translation>
+<translation id="2687871045452977757">โปรดป้อนรหัสผ่านเพื่อใช้และบันทึกข้อมูล Chrome ในบัญชี Google <ph name="ACCOUNT_EMAIL" /></translation>
 <translation id="2712141162840347885">เลือกอะไรก็ได้เพื่อค้นหาด้วย Google Lens หรือกด Escape เพื่อออกจาก Google Lens</translation>
 <translation id="2738871930057338499">เชื่อมต่อกับอินเทอร์เน็ตไม่ได้ HTTP 403 Forbidden โปรดตรวจสอบการกำหนดค่าพร็อกซีของคุณ</translation>
 <translation id="2742320827292110288">คำเตือน: Google Chrome ไม่สามารถป้องกันไม่ให้ส่วนขยายบันทึกประวัติการท่องเว็บ หากต้องการปิดใช้ส่วนขยายนี้ในโหมดไม่ระบุตัวตน ให้ยกเลิกการเลือกตัวเลือกนี้</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 52838cd7..2c8b5c4 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3629,17 +3629,9 @@
         // BUILDFLAG(IS_CHROMEOS)
 
 #if BUILDFLAG(IS_ANDROID)
-const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] =
-    {
-        {"Default", "", ""},
-        {"Enabled", switches::kEnableFeatures,
-         "SyncEnableBookmarksInTransportMode,"
-         "ReadingListEnableSyncTransportModeUponSignIn"},
-};
 
 const char kReplaceSyncPromosWithSignInPromosFeatures[] =
     "ReplaceSyncPromosWithSignInPromos,"
-    "ReadingListEnableSyncTransportModeUponSignIn,"
     "SyncEnableContactInfoDataTypeInTransportMode,"
     "SyncEnableContactInfoDataTypeForCustomPassphraseUsers,"
     "SyncEnableWalletMetadataInTransportMode,"
@@ -3649,7 +3641,6 @@
 // The ones above + UnoPhase2FollowUp.
 const char kFastFollowFeatures[] =
     "ReplaceSyncPromosWithSignInPromos,"
-    "ReadingListEnableSyncTransportModeUponSignIn,"
     "SyncEnableContactInfoDataTypeInTransportMode,"
     "SyncEnableContactInfoDataTypeForCustomPassphraseUsers,"
     "SyncEnableWalletMetadataInTransportMode,"
@@ -10574,14 +10565,6 @@
          kSendTabIOSPushNotificationsVariations,
          "SendTabToSelfIOSPushNotifications")},
 
-#if BUILDFLAG(IS_ANDROID)
-    {"bookmarks-and-reading-list-behind-opt-in",
-     flag_descriptions::kAccountBookmarksAndReadingListBehindOptInName,
-     flag_descriptions::kAccountBookmarksAndReadingListBehindOptInDescription,
-     kOsAndroid,
-     MULTI_VALUE_TYPE(kAccountBookmarksAndReadingListBehindOptInChoices)},
-#endif  // BUILDFLAG(IS_ANDROID)
-
 #if BUILDFLAG(IS_CHROMEOS)
     {"desk-profiles", flag_descriptions::kDeskProfilesName,
      flag_descriptions::kDeskProfilesDescription, kOsCrOS,
diff --git a/chrome/browser/ash/file_manager/office_file_tasks.cc b/chrome/browser/ash/file_manager/office_file_tasks.cc
index 0bb9b38..31d59158 100644
--- a/chrome/browser/ash/file_manager/office_file_tasks.cc
+++ b/chrome/browser/ash/file_manager/office_file_tasks.cc
@@ -27,6 +27,7 @@
 #include "chrome/common/extensions/api/file_manager_private.h"
 #include "chrome/common/pref_names.h"
 #include "chromeos/ash/components/file_manager/app_id.h"
+#include "chromeos/constants/chromeos_features.h"
 #include "components/pref_registry/pref_registry_syncable.h"
 #include "components/prefs/pref_service.h"
 #include "components/services/app_service/public/cpp/types_util.h"
@@ -122,6 +123,15 @@
 void RegisterOfficeProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
   registry->RegisterBooleanPref(prefs::kOfficeFilesAlwaysMoveToDrive, false);
   registry->RegisterBooleanPref(prefs::kOfficeFilesAlwaysMoveToOneDrive, false);
+  if (chromeos::features::IsUploadOfficeToCloudSyncEnabled()) {
+    registry->RegisterBooleanPref(
+        prefs::kOfficeFilesAlwaysMoveToDriveSyncable, false,
+        user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF);
+    registry->RegisterBooleanPref(
+        prefs::kOfficeFilesAlwaysMoveToOneDriveSyncable, false,
+        user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF);
+  }
+
   registry->RegisterBooleanPref(prefs::kOfficeMoveConfirmationShownForDrive,
                                 false);
   registry->RegisterBooleanPref(prefs::kOfficeMoveConfirmationShownForOneDrive,
diff --git a/chrome/browser/extensions/api/declarative_content/content_action.cc b/chrome/browser/extensions/api/declarative_content/content_action.cc
index bf180f7..70d31eb 100644
--- a/chrome/browser/extensions/api/declarative_content/content_action.cc
+++ b/chrome/browser/extensions/api/declarative_content/content_action.cc
@@ -29,8 +29,8 @@
 #include "extensions/common/extension.h"
 #include "extensions/common/image_util.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
-#include "extensions/common/script_constants.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/image/image_skia.h"
@@ -326,8 +326,9 @@
   script_.set_match_all_frames(script_data.all_frames);
   script_.set_match_origin_as_fallback(
       script_data.match_about_blank
-          ? MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree
-          : MatchOriginAsFallbackBehavior::kNever);
+          ? mojom::MatchOriginAsFallbackBehavior::
+                kMatchForAboutSchemeAndClimbTree
+          : mojom::MatchOriginAsFallbackBehavior::kNever);
   for (const auto& css_file_name : script_data.css_file_names) {
     GURL url = extension->GetResourceURL(css_file_name);
     ExtensionResource resource = extension->GetResource(css_file_name);
diff --git a/chrome/browser/extensions/api/identity/identity_token_cache.h b/chrome/browser/extensions/api/identity/identity_token_cache.h
index 18861f1..2da51c5 100644
--- a/chrome/browser/extensions/api/identity/identity_token_cache.h
+++ b/chrome/browser/extensions/api/identity/identity_token_cache.h
@@ -84,8 +84,6 @@
 // used at different stages of the `getAuthToken` flow before a token is
 // obtained. The cache automatically handles token expiration. Extensions can
 // manually remove tokens from the cache using `removeCachedAuthToken` API.
-//
-// chrome://identity-internals provides a view of cache's content for debugging.
 class IdentityTokenCache {
  public:
   IdentityTokenCache();
diff --git a/chrome/browser/extensions/api/scripting/scripting_api.cc b/chrome/browser/extensions/api/scripting/scripting_api.cc
index 6a53447..7526c98 100644
--- a/chrome/browser/extensions/api/scripting/scripting_api.cc
+++ b/chrome/browser/extensions/api/scripting/scripting_api.cc
@@ -36,9 +36,9 @@
 #include "extensions/common/mojom/css_origin.mojom-shared.h"
 #include "extensions/common/mojom/execution_world.mojom-shared.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/user_script.h"
 #include "extensions/common/utils/content_script_utils.h"
 #include "extensions/common/utils/extension_types_utils.h"
@@ -693,8 +693,9 @@
           user_gesture() ? blink::mojom::UserActivationOption::kActivate
                          : blink::mojom::UserActivationOption::kDoNotActivate,
           blink::mojom::PromiseResultOption::kAwait)),
-      frame_scope, frame_ids, ScriptExecutor::MATCH_ABOUT_BLANK, run_location,
-      ScriptExecutor::DEFAULT_PROCESS,
+      frame_scope, frame_ids,
+      mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
+      run_location, ScriptExecutor::DEFAULT_PROCESS,
       /* webview_src */ GURL(),
       base::BindOnce(&ScriptingExecuteScriptFunction::OnScriptExecuted, this));
 
@@ -817,7 +818,8 @@
       mojom::CodeInjection::NewCss(mojom::CSSInjection::New(
           std::move(sources), ConvertStyleOriginToCSSOrigin(injection_.origin),
           mojom::CSSInjection::Operation::kAdd)),
-      frame_scope, frame_ids, ScriptExecutor::MATCH_ABOUT_BLANK,
+      frame_scope, frame_ids,
+      mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
       kCSSRunLocation, ScriptExecutor::DEFAULT_PROCESS,
       /* webview_src */ GURL(),
       base::BindOnce(&ScriptingInsertCSSFunction::OnCSSInserted, this));
@@ -894,7 +896,8 @@
       mojom::CodeInjection::NewCss(mojom::CSSInjection::New(
           std::move(sources), ConvertStyleOriginToCSSOrigin(injection.origin),
           mojom::CSSInjection::Operation::kRemove)),
-      frame_scope, frame_ids, ScriptExecutor::MATCH_ABOUT_BLANK,
+      frame_scope, frame_ids,
+      mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
       kCSSRunLocation, ScriptExecutor::DEFAULT_PROCESS,
       /* webview_src */ GURL(),
       base::BindOnce(&ScriptingRemoveCSSFunction::OnCSSRemoved, this));
diff --git a/chrome/browser/extensions/extension_security_exploit_browsertest.cc b/chrome/browser/extensions/extension_security_exploit_browsertest.cc
index bc1caf41..85b72dc0 100644
--- a/chrome/browser/extensions/extension_security_exploit_browsertest.cc
+++ b/chrome/browser/extensions/extension_security_exploit_browsertest.cc
@@ -275,7 +275,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, base::DoNothing());
   }
diff --git a/chrome/browser/extensions/process_map_browsertest.cc b/chrome/browser/extensions/process_map_browsertest.cc
index 14903f7..af1b5fd 100644
--- a/chrome/browser/extensions/process_map_browsertest.cc
+++ b/chrome/browser/extensions/process_map_browsertest.cc
@@ -126,7 +126,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */,
         base::IgnoreArgs<std::vector<ScriptExecutor::FrameResult>>(
diff --git a/chrome/browser/extensions/script_executor_browsertest.cc b/chrome/browser/extensions/script_executor_browsertest.cc
index 0e6b3c2..f966da58 100644
--- a/chrome/browser/extensions/script_executor_browsertest.cc
+++ b/chrome/browser/extensions/script_executor_browsertest.cc
@@ -141,9 +141,9 @@
           blink::mojom::UserActivationOption::kDoNotActivate,
           blink::mojom::PromiseResultOption::kAwait)),
       ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-      ScriptExecutor::DONT_MATCH_ABOUT_BLANK, mojom::RunLocation::kDocumentIdle,
-      ScriptExecutor::DEFAULT_PROCESS, GURL() /* webview_src */,
-      helper.GetCallback());
+      mojom::MatchOriginAsFallbackBehavior::kNever,
+      mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
+      GURL() /* webview_src */, helper.GetCallback());
   helper.Wait();
 
   ASSERT_EQ(1u, helper.results().size());
@@ -191,9 +191,9 @@
           blink::mojom::UserActivationOption::kDoNotActivate,
           blink::mojom::PromiseResultOption::kAwait)),
       ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-      ScriptExecutor::DONT_MATCH_ABOUT_BLANK, mojom::RunLocation::kDocumentIdle,
-      ScriptExecutor::DEFAULT_PROCESS, GURL() /* webview_src */,
-      helper.GetCallback());
+      mojom::MatchOriginAsFallbackBehavior::kNever,
+      mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
+      GURL() /* webview_src */, helper.GetCallback());
   helper.Wait();
   EXPECT_EQ("New Title", base::UTF16ToUTF8(web_contents->GetTitle()));
 
@@ -248,9 +248,9 @@
           blink::mojom::UserActivationOption::kDoNotActivate,
           blink::mojom::PromiseResultOption::kAwait)),
       ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-      ScriptExecutor::DONT_MATCH_ABOUT_BLANK, mojom::RunLocation::kDocumentIdle,
-      ScriptExecutor::DEFAULT_PROCESS, GURL() /* webview_src */,
-      helper.GetCallback());
+      mojom::MatchOriginAsFallbackBehavior::kNever,
+      mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
+      GURL() /* webview_src */, helper.GetCallback());
   helper.Wait();
   EXPECT_EQ("New Title", base::UTF16ToUTF8(web_contents->GetTitle()));
 
@@ -315,7 +315,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
@@ -346,7 +346,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kDoNotWait)),
         ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
@@ -433,7 +433,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {frame1_id, frame2_id},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
@@ -459,7 +459,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::INCLUDE_SUB_FRAMES, {frame1_id, frame2_id},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
@@ -495,7 +495,7 @@
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES,
         {frame1_id, frame2_id, kNonExistentFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
@@ -522,7 +522,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {kNonExistentFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, helper.GetCallback());
     helper.Wait();
diff --git a/chrome/browser/extensions/script_injection_tracker_browsertest.cc b/chrome/browser/extensions/script_injection_tracker_browsertest.cc
index 3b0b418..3185cbc 100644
--- a/chrome/browser/extensions/script_injection_tracker_browsertest.cc
+++ b/chrome/browser/extensions/script_injection_tracker_browsertest.cc
@@ -122,8 +122,9 @@
           blink::mojom::UserActivationOption::kDoNotActivate,
           blink::mojom::PromiseResultOption::kAwait)),
       ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-      ScriptExecutor::DONT_MATCH_ABOUT_BLANK, mojom::RunLocation::kDocumentIdle,
-      ScriptExecutor::DEFAULT_PROCESS, GURL() /* webview_src */,
+      mojom::MatchOriginAsFallbackBehavior::kNever,
+      mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
+      GURL() /* webview_src */,
       base::IgnoreArgs<std::vector<ScriptExecutor::FrameResult>>(
           run_loop.QuitWhenIdleClosure()));
 
diff --git a/chrome/browser/extensions/user_script_world_browsertest.cc b/chrome/browser/extensions/user_script_world_browsertest.cc
index b13cad6..c9ec915 100644
--- a/chrome/browser/extensions/user_script_world_browsertest.cc
+++ b/chrome/browser/extensions/user_script_world_browsertest.cc
@@ -97,7 +97,7 @@
             blink::mojom::UserActivationOption::kDoNotActivate,
             blink::mojom::PromiseResultOption::kAwait)),
         ScriptExecutor::SPECIFIED_FRAMES, {ExtensionApiFrameIdMap::kTopFrameId},
-        ScriptExecutor::DONT_MATCH_ABOUT_BLANK,
+        mojom::MatchOriginAsFallbackBehavior::kNever,
         mojom::RunLocation::kDocumentIdle, ScriptExecutor::DEFAULT_PROCESS,
         GURL() /* webview_src */, base::BindLambdaForTesting(on_complete));
     run_loop.Run();
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
index d0359bfe..6a96e79 100644
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -408,7 +408,6 @@
     &switches::kForceDisableExtendedSyncPromos,
     &sync_sessions::kOptimizeAssociateWindowsAndroid,
     &syncer::kEnableBatchUploadFromSettings,
-    &syncer::kReadingListEnableSyncTransportModeUponSignIn,
     &syncer::kReplaceSyncPromosWithSignInPromos,
     &syncer::kSyncEnableContactInfoDataTypeInTransportMode,
     &syncer::kWebApkBackupAndRestoreBackend,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
index f0f5b58..63915cda 100644
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -463,8 +463,6 @@
     public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek";
     public static final String READALOUD_IPH_MENU_BUTTON_HIGHLIGHT_CCT =
             "ReadAloudIPHMenuButtonHighlightCCT";
-    public static final String READING_LIST_ENABLE_SYNC_TRANSPORT_MODE_UPON_SIGNIN =
-            "ReadingListEnableSyncTransportModeUponSignIn";
     public static final String RECORD_SUPPRESSION_METRICS = "RecordSuppressionMetrics";
     public static final String REDIRECT_EXPLICIT_CTA_INTENTS_TO_EXISTING_ACTIVITY =
             "RedirectExplicitCTAIntentsToExistingActivity";
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
index 0811146c..768b738 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -308,8 +308,7 @@
   }
 
   const bool ssl_errors = net::IsCertStatusError(GetMainFrameCertStatus());
-  autofill::LogManager* log_manager =
-      const_cast<ChromePasswordManagerClient*>(this)->GetCurrentLogManager();
+  autofill::LogManager* log_manager = GetOrCreateLogManager();
   if (log_manager && log_manager->IsLoggingActive()) {
     password_manager::BrowserSavePasswordProgressLogger logger(log_manager);
     logger.LogBoolean(Logger::STRING_SSL_ERRORS_PRESENT, ssl_errors);
@@ -974,8 +973,7 @@
   DCHECK(web_contents());
 
   std::unique_ptr<password_manager::BrowserSavePasswordProgressLogger> logger;
-  autofill::LogManager* log_manager =
-      const_cast<ChromePasswordManagerClient*>(this)->GetCurrentLogManager();
+  autofill::LogManager* log_manager = GetOrCreateLogManager();
   if (log_manager && log_manager->IsLoggingActive()) {
     logger =
         std::make_unique<password_manager::BrowserSavePasswordProgressLogger>(
@@ -1078,6 +1076,11 @@
 }
 
 autofill::LogManager* ChromePasswordManagerClient::GetCurrentLogManager() {
+  return GetOrCreateLogManager();
+}
+
+autofill::LogManager* ChromePasswordManagerClient::GetOrCreateLogManager()
+    const {
   if (!log_manager_ && log_router_ && log_router_->HasReceivers()) {
     ContentPasswordManagerDriverFactory* driver_factory = GetDriverFactory();
     log_manager_ = autofill::LogManager::Create(
@@ -1998,8 +2001,7 @@
     is_enabled = false;
   }
 
-  autofill::LogManager* log_manager =
-      const_cast<ChromePasswordManagerClient*>(this)->GetCurrentLogManager();
+  autofill::LogManager* log_manager = GetOrCreateLogManager();
   if (log_manager && log_manager->IsLoggingActive()) {
     password_manager::BrowserSavePasswordProgressLogger logger(log_manager);
     logger.LogURL(Logger::STRING_SECURITY_ORIGIN, url);
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.h b/chrome/browser/password_manager/chrome_password_manager_client.h
index aa541a8..3c3b4f2 100644
--- a/chrome/browser/password_manager/chrome_password_manager_client.h
+++ b/chrome/browser/password_manager/chrome_password_manager_client.h
@@ -463,6 +463,8 @@
   GetOrCreateKeyboardReplacingSurfaceVisibilityController();
 #endif
 
+  autofill::LogManager* GetOrCreateLogManager() const;
+
   const raw_ptr<Profile> profile_;
 
   password_manager::PasswordManager password_manager_;
@@ -523,7 +525,7 @@
 #endif  // BUILDFLAG(ENABLE_DICE_SUPPORT) || BUILDFLAG(IS_CHROMEOS_LACROS)
 
   const raw_ptr<autofill::LogRouter> log_router_;
-  std::unique_ptr<autofill::RoutingLogManager> log_manager_;
+  mutable std::unique_ptr<autofill::RoutingLogManager> log_manager_;
 
   // Recorder of metrics that is associated with the last committed navigation
   // of the WebContents owning this ChromePasswordManagerClient. May be unset at
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
index b537b61..32d3067 100644
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -36,7 +36,6 @@
       "feedback:resources",
       "gaia_auth_host:resources",
       "history:resources",
-      "identity_internals:resources",
       "inspect:resources",
       "key_value_pair_viewer_shared:resources",
       "lens/overlay:resources",
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb
index 8ade203..74e8020 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb
@@ -810,7 +810,7 @@
 <translation id="611827076493383239">vtd</translation>
 <translation id="6119846243427417423">aktywuj</translation>
 <translation id="6122013438240733403">btn</translation>
-<translation id="6132506484792346370">Pole listy lub pole złożone</translation>
+<translation id="6132506484792346370">Pole listy lub pole kombi</translation>
 <translation id="613344593214611552">Usuń poprzednie zdanie</translation>
 <translation id="6142308968191113180">Nagłówek 4</translation>
 <translation id="6150023170003443621">Żółtozielony</translation>
@@ -834,7 +834,7 @@
 <translation id="6322856989298155004">Dźwięki</translation>
 <translation id="6324551002951139333">Wykryto błąd gramatyczny</translation>
 <translation id="6325241889020214828">skopiuj <ph name="TEXT" />.</translation>
-<translation id="6348657800373377022">Pole złożone</translation>
+<translation id="6348657800373377022">Pole kombi</translation>
 <translation id="6348869651006731065">Przyćmiony szary</translation>
 <translation id="6350358010104919766">{COUNT,plural, =1{punktor}few{# punktory}many{# punktorów}other{# punktora}}</translation>
 <translation id="6357433033180746873">Nie ma komórki z prawej strony</translation>
@@ -876,7 +876,7 @@
 <translation id="6689672606256159458">Ciemny łososiowy</translation>
 <translation id="669617842401078250">Pobieranie wstrzymane: <ph name="FILE_NAME" /></translation>
 <translation id="6696967141280706829">Wstęp</translation>
-<translation id="6697092096875747123">Poprzednie pole złożone</translation>
+<translation id="6697092096875747123">Poprzednie pole kombi</translation>
 <translation id="6702609185760332517">{COUNT,plural, =1{wykrzyknik}few{# wykrzykniki}many{# wykrzykników}other{# wykrzyknika}}</translation>
 <translation id="670717715607710284">Ekran wyłączony</translation>
 <translation id="6714813999819678458">Poprzedni nagłówek poziomu 2</translation>
@@ -911,7 +911,7 @@
 <translation id="6955705049214951590">Mglisty różany</translation>
 <translation id="696356426651109308">Przeskocz na początek</translation>
 <translation id="6994042831499278539">Odniesienie do słownika</translation>
-<translation id="6996566555547746822">Następne pole złożone</translation>
+<translation id="6996566555547746822">Następne pole kombi</translation>
 <translation id="6997224546856374593">Czytając wielkie litery:</translation>
 <translation id="6999752561504308105">Witamy w samouczku czytnika ChromeVox. Aby w dowolnej chwili zamknąć samouczek, przesuń dwoma palcami z prawej do lewej. Aby w dowolnej chwili włączyć lub wyłączyć czytnik ChromeVox, naciśnij i przytrzymaj przez 5 sekund oba przyciski głośności. Gdy zechcesz przejść do następnej lekcji, dotknij dwukrotnie ekranu jednym palcem.</translation>
 <translation id="700202842116345659">Pozycja bibliograficzna</translation>
@@ -961,7 +961,7 @@
 <translation id="7271278495464744706">Włącz szczegółowe opisy</translation>
 <translation id="7273174640290488576">Pusty</translation>
 <translation id="7274770952766771364">Odsyłacz</translation>
-<translation id="7275004401821193978">Nie ma poprzedniego pola wyboru</translation>
+<translation id="7275004401821193978">Nie ma poprzedniego pola kombi</translation>
 <translation id="7285387653379749618">Tabele</translation>
 <translation id="7289186959554153431">Nagłówek 3</translation>
 <translation id="7292195267473691167"><ph name="LOCALE" /> (<ph name="VARIANT" />)</translation>
@@ -1022,7 +1022,7 @@
 <translation id="7696631298608145306">Przejdź do następnego słowa</translation>
 <translation id="7701040980221191251">Brak</translation>
 <translation id="7701196182766842984">autolst</translation>
-<translation id="7714340021005120797">Nie ma następnego pola wyboru</translation>
+<translation id="7714340021005120797">Nie ma następnego pola kombi</translation>
 <translation id="7715455358521357192">Zmrużenie prawego oka</translation>
 <translation id="7724603315864178912">Wytnij</translation>
 <translation id="7731785449856576010">Nie ma widżetu następnego pliku multimedialnego</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
index cec9118..b18b310 100644
--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
@@ -382,7 +382,7 @@
 <translation id="3312997241656799641">Liên kết đã truy cập tiếp theo</translation>
 <translation id="3313245066383501820">Phím bổ trợ ChromeVox</translation>
 <translation id="3317212938060708859">Thanh trượt</translation>
-<translation id="3321460131042519426">Bật xuống dòng tự động</translation>
+<translation id="3321460131042519426">Bật tính năng xuống dòng tự động</translation>
 <translation id="3322936298410871309">Tiêu đề cấp 1 trước</translation>
 <translation id="3323447499041942178">Hộp văn bản</translation>
 <translation id="3324983252691184275">Đỏ thẫm</translation>
@@ -1042,7 +1042,7 @@
 <translation id="7839679365527550018">Từ trước</translation>
 <translation id="7846634333498149051">Bàn phím</translation>
 <translation id="7851816175263618915">Một số dấu câu</translation>
-<translation id="7871691770940645922">Màn hình chữ nổi Braille ảo</translation>
+<translation id="7871691770940645922">Màn hình chữ nổi ảo</translation>
 <translation id="7882421473871500483">Nâu</translation>
 <translation id="78826985582142166">sldr</translation>
 <translation id="7913106023953875143">Không có tiêu đề cấp 2 nào tiếp theo</translation>
diff --git a/chrome/browser/resources/identity_internals/BUILD.gn b/chrome/browser/resources/identity_internals/BUILD.gn
deleted file mode 100644
index 281cedb2..0000000
--- a/chrome/browser/resources/identity_internals/BUILD.gn
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 2022 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//ui/webui/resources/tools/build_webui.gni")
-
-assert(!is_android)
-
-build_webui("build") {
-  grd_prefix = "identity_internals"
-  static_files = [
-    "identity_internals.css",
-    "identity_internals.html",
-  ]
-  web_component_files = [ "token_list_item.ts" ]
-  non_web_component_files = [ "identity_internals.ts" ]
-  html_to_wrapper_template = "native"
-  ts_deps = [ "//ui/webui/resources/js:build_ts" ]
-  ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ]
-  webui_context_type = "trusted"
-}
diff --git a/chrome/browser/resources/identity_internals/identity_internals.css b/chrome/browser/resources/identity_internals/identity_internals.css
deleted file mode 100644
index 39940f2..0000000
--- a/chrome/browser/resources/identity_internals/identity_internals.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/* Copyright 2013 The Chromium Authors
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file. */
-
-.header {
-  color: rgb(74, 142, 230);
-  font-size: 100%;
-  margin-bottom: 0;
-}
-
-#token-list {
-  width: 100%;
-}
diff --git a/chrome/browser/resources/identity_internals/identity_internals.html b/chrome/browser/resources/identity_internals/identity_internals.html
deleted file mode 100644
index d97105e..0000000
--- a/chrome/browser/resources/identity_internals/identity_internals.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html>
-<html dir="ltr" lang="en">
-<head>
-  <meta charset="utf-8">
-  <title>Identity API Token Cache</title>
-  <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
-  <link rel="stylesheet" href="identity_internals.css">
-</head>
-<body>
-  <h2 class="header">Identity API Token Cache</h2>
-  <div id="token-list"></div>
-  <script type="module" src="identity_internals.js"></script>
-</body>
-</html>
diff --git a/chrome/browser/resources/identity_internals/identity_internals.ts b/chrome/browser/resources/identity_internals/identity_internals.ts
deleted file mode 100644
index dee24f6..0000000
--- a/chrome/browser/resources/identity_internals/identity_internals.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2013 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import './token_list_item.js';
-
-import {assert} from 'chrome://resources/js/assert.js';
-import {sendWithPromise} from 'chrome://resources/js/cr.js';
-
-let data: Array<{[key: string]: string | string[]}> = [];
-let list: HTMLElement;
-
-/**
- * Removes a token node related to the specified token ID from both the
- * internals data source as well as the user interface.
- * @param e Contains the id of the token to remove.
- */
-function removeTokenNode(e: CustomEvent<string>) {
-  const accessToken = e.detail;
-  let tokenIndex: number = -1;
-  for (let index = 0; index < data.length; index++) {
-    if (data[index]!['accessToken'] === accessToken) {
-      tokenIndex = index;
-      break;
-    }
-  }
-
-  // Remove from the tokens_ source if token found.
-  if (tokenIndex > -1) {
-    data.splice(tokenIndex, 1);
-  }
-
-  // Remove from the user interface.
-  const tokenNode = list.querySelector<HTMLElement>(`#${accessToken}`);
-  if (tokenNode) {
-    list.removeChild(tokenNode);
-  }
-
-  list.dispatchEvent(
-      new CustomEvent('token-removed-for-test', {detail: accessToken}));
-}
-
-document.addEventListener('DOMContentLoaded', () => {
-  const listEl = document.querySelector<HTMLElement>('#token-list');
-  assert(listEl);
-  list = listEl;
-  sendWithPromise('identityInternalsGetTokens').then(tokens => {
-    data = tokens;
-    data.forEach(tokenInfo => {
-      const item = document.createElement('token-list-item');
-      list.appendChild(item);
-      item.configure(tokenInfo);
-    });
-  });
-
-  list.addEventListener('remove-token', e => removeTokenNode(e));
-});
diff --git a/chrome/browser/resources/identity_internals/token_list_item.html b/chrome/browser/resources/identity_internals/token_list_item.html
deleted file mode 100644
index e5cff466..0000000
--- a/chrome/browser/resources/identity_internals/token_list_item.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<style>
-  tr:nth-child(odd) {
-    background: rgb(239, 243, 255);
-  }
-
-  td.label {
-    font-weight: bold;
-    vertical-align: top;
-    white-space: nowrap;
-  }
-
-  td.token-actions {
-    text-align: center;
-  }
-</style>
-<table>
-  <tbody>
-    <tr>
-      <td class="label">Access Token</td>
-      <td class="value access-token"></td>
-    </tr>
-    <tr>
-      <td class="label">Extension Name</td>
-      <td class="value extension-name"></td>
-    </tr>
-    <tr>
-      <td class="label">Extension Id</td>
-      <td class="value extension-id"></td>
-    </tr>
-    <tr>
-      <td class="label">Account Id</td>
-      <td class="value account-id"></td>
-    </tr>
-    <tr>
-      <td class="label">Token Status</td>
-      <td class="value status"></td>
-    </tr>
-    <tr>
-      <td class="label">Expiration Time</td>
-      <td class="value expiration-time"></td>
-    </tr>
-    <tr>
-      <td class="label">Scopes</td>
-      <td class="value scope-list"></td>
-    </tr>
-  </tbody>
-  <tfoot>
-    <tr>
-      <td class="token-actions" colspan="2">
-        <button class="revoke-button">Revoke</button>
-      </td>
-    </tr>
-  </tfoot>
-</table>
diff --git a/chrome/browser/resources/identity_internals/token_list_item.ts b/chrome/browser/resources/identity_internals/token_list_item.ts
deleted file mode 100644
index 6eb7f73a..0000000
--- a/chrome/browser/resources/identity_internals/token_list_item.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import {assert} from 'chrome://resources/js/assert.js';
-import {sendWithPromise} from 'chrome://resources/js/cr.js';
-import {CustomElement} from 'chrome://resources/js/custom_element.js';
-
-import {getTemplate} from './token_list_item.html.js';
-
-declare global {
-  interface HTMLElementEventMap {
-    'remove-token': CustomEvent<string>;
-  }
-}
-
-function dashToCamelCase(dashId: string): string {
-  const words = dashId.split('-');
-  let output = words[0];
-  assert(output);
-  words.slice(1).forEach(word => {
-    output += word.charAt(0).toUpperCase() + word.slice(1);
-  });
-  return output;
-}
-
-class TokenListItemElement extends CustomElement {
-  static override get template() {
-    return getTemplate();
-  }
-
-  extensionId: string = '';
-
-  configure(data: {[key: string]: string|string[]}) {
-    this.id = data['accessToken'] as string;
-    this.extensionId = data['extensionId'] as string;
-
-    ['access-token', 'extension-name', 'extension-id', 'account-id', 'status',
-     'expiration-time']
-        .forEach(identifier => {
-          const element =
-              this.shadowRoot!.querySelector<HTMLElement>(`.${identifier}`);
-          if (element) {
-            element.textContent = data[dashToCamelCase(identifier)] as string;
-          }
-        });
-
-    const scopeList =
-        this.shadowRoot!.querySelector<HTMLElement>('.scope-list');
-    assert(scopeList);
-    (data['scopes'] as string[]).forEach(scope => {
-      scopeList.appendChild(document.createTextNode(scope));
-      scopeList.appendChild(document.createElement('br'));
-    });
-
-    const revokeButton =
-        this.shadowRoot!.querySelector<HTMLElement>('.revoke-button');
-    assert(revokeButton);
-    revokeButton.addEventListener('click', () => {
-      sendWithPromise('identityInternalsRevokeToken', this.extensionId, this.id)
-          .then(token => {
-            this.dispatchEvent(new CustomEvent(
-                'remove-token',
-                {bubbles: true, composed: true, detail: token}));
-          });
-    });
-  }
-}
-
-declare global {
-  interface HTMLElementTagNameMap {
-    'token-list-item': TokenListItemElement;
-  }
-}
-
-customElements.define('token-list-item', TokenListItemElement);
diff --git a/chrome/browser/resources/privacy_sandbox/BUILD.gn b/chrome/browser/resources/privacy_sandbox/BUILD.gn
index 8b8c8274..264fcd4e 100644
--- a/chrome/browser/resources/privacy_sandbox/BUILD.gn
+++ b/chrome/browser/resources/privacy_sandbox/BUILD.gn
@@ -14,12 +14,9 @@
     "images/chrome_logo.svg",
     "images/fledge_banner.svg",
     "images/fledge_banner_dark.svg",
-    "images/privacy_sandbox_confirmation_banner.svg",
-    "images/privacy_sandbox_confirmation_banner_dark.svg",
     "images/topics_banner.svg",
     "images/topics_banner_dark.svg",
     "privacy_sandbox_combined_dialog.html",
-    "privacy_sandbox_dialog.html",
     "privacy_sandbox_notice_dialog.html",
     "privacy_sandbox_notice_restricted_dialog.html",
     "privacy_sandbox_privacy_policy.html",
@@ -27,7 +24,6 @@
 
   web_component_files = [
     "privacy_sandbox_combined_dialog_app.ts",
-    "privacy_sandbox_dialog_app.ts",
     "privacy_sandbox_dialog_consent_step.ts",
     "privacy_sandbox_dialog_learn_more.ts",
     "privacy_sandbox_dialog_notice_step.ts",
diff --git a/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner.svg b/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner.svg
deleted file mode 100644
index 87320c2..0000000
--- a/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M70 61h17v2.995L75.386 69l4.608-5.99L70 61z" fill="#174EA6"/><path d="M50 82c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z" stroke="#81C995" stroke-width="2" stroke-miterlimit="10"/><path d="M45.2 46.413V33.048c0-.349-.149-.68-.409-.913-.837-.748-.308-2.135.815-2.135h8.788c1.123 0 1.652 1.387.815 2.135-.26.232-.409.564-.409.913v13.365a4 4 0 0 0 .55 2.024l9.116 15.539C66.03 66.642 64.107 70 61.016 70H38.984c-3.091 0-5.014-3.358-3.45-6.024l9.116-15.539a4 4 0 0 0 .55-2.024z" stroke="#4285F4" stroke-width="2" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="m56.388 55.91 5.477 8.927a1.5 1.5 0 0 1-1.278 2.284H39.765a1.5 1.5 0 0 1-1.279-2.284l5.477-8.928h12.425z" fill="#AECBFA"/><path d="M50 44h37v20H50V44z" fill="#1A73E8"/><path d="M54.327 58.934V48.841h4.032c.592 0 1.113.099 1.564.296.451.197.804.484 1.058.86.263.376.394.831.394 1.367s-.127.982-.38 1.34c-.254.357-.574.63-.959.817v.085c.498.169.902.46 1.212.874.31.413.466.911.466 1.494 0 .602-.141 1.128-.423 1.579a2.778 2.778 0 0 1-1.128 1.03 3.526 3.526 0 0 1-1.593.352h-4.243zm4.06-8.683h-2.524v2.678h2.467c.48 0 .855-.113 1.128-.338.273-.226.409-.56.409-1.001 0-.442-.132-.776-.395-1.001-.263-.226-.625-.338-1.085-.338zm-2.524 7.26h2.693c.498 0 .888-.146 1.17-.437.291-.292.437-.682.437-1.17 0-.49-.146-.88-.437-1.17-.291-.292-.7-.438-1.227-.438h-2.636v3.215zm10.591 1.649c-.714 0-1.339-.164-1.874-.493a3.43 3.43 0 0 1-1.227-1.382c-.282-.592-.423-1.273-.423-2.044 0-.79.15-1.48.451-2.072a3.42 3.42 0 0 1 1.24-1.382c.537-.329 1.148-.493 1.834-.493 1.118 0 1.964.315 2.537.944.583.63.874 1.49.874 2.58 0 .273-.014.517-.042.733H64.41c.047.733.264 1.292.649 1.678.385.385.87.578 1.452.578.517 0 .916-.113 1.198-.339.291-.235.503-.526.635-.874l1.325.353a3.137 3.137 0 0 1-1.072 1.593c-.526.413-1.24.62-2.142.62zm.015-6.583c-.508 0-.94.155-1.297.465-.348.31-.578.766-.691 1.367h3.89c-.027-.554-.201-.996-.52-1.325-.32-.338-.78-.507-1.382-.507zm5.434 4.271v-4.004h-1.198V51.52h1.198v-2.03h1.509v2.03h1.692v1.325h-1.692v3.736c0 .696.305 1.043.916 1.043.16 0 .3-.018.423-.056.122-.047.25-.108.38-.183v1.466c-.15.056-.314.103-.493.14-.169.038-.37.057-.606.057-.648 0-1.165-.192-1.55-.578-.386-.394-.579-.935-.579-1.62zm6.95 2.312c-.77 0-1.391-.211-1.861-.634-.47-.423-.705-.992-.705-1.706 0-.498.127-.916.38-1.255.264-.347.607-.61 1.03-.79a3.693 3.693 0 0 1 1.424-.267c.394 0 .76.023 1.1.07.337.047.676.118 1.014.212v-.705c0-.46-.16-.827-.48-1.1-.319-.282-.742-.422-1.268-.422-.423 0-.785.103-1.085.31-.292.197-.494.488-.606.874l-1.34-.31c.15-.696.508-1.227 1.072-1.593.573-.367 1.23-.55 1.973-.55 1.043 0 1.838.249 2.383.747.545.498.817 1.212.817 2.143v4.75h-1.466v-.86h-.084c-.216.282-.517.536-.903.762-.376.216-.84.324-1.395.324zm.338-1.24c.62 0 1.114-.189 1.48-.564a1.91 1.91 0 0 0 .564-1.382 5.745 5.745 0 0 0-1.875-.324c-.488 0-.87.099-1.142.296-.272.197-.408.489-.408.874 0 .32.126.583.38.79.263.206.597.31 1.001.31z" fill="#fff"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner_dark.svg b/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner_dark.svg
deleted file mode 100644
index 3aedbea2..0000000
--- a/chrome/browser/resources/privacy_sandbox/images/privacy_sandbox_confirmation_banner_dark.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M70 61h17v2.995L75.386 69l4.608-5.99L70 61z" fill="#174EA6"/><path d="M50 82c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z" stroke="#1E8E3E" stroke-width="2" stroke-miterlimit="10"/><path d="M45.2 46.413V33.048c0-.349-.149-.68-.409-.913-.837-.748-.308-2.135.815-2.135h8.788c1.123 0 1.652 1.387.815 2.135-.26.232-.409.564-.409.913v13.365a4 4 0 0 0 .55 2.024l9.116 15.539C66.03 66.642 64.107 70 61.016 70H38.984c-3.091 0-5.014-3.358-3.45-6.024l9.116-15.539a4 4 0 0 0 .55-2.024z" stroke="#4285F4" stroke-width="2" stroke-linejoin="round"/><path fill-rule="evenodd" clip-rule="evenodd" d="m56.388 55.91 5.477 8.927a1.5 1.5 0 0 1-1.278 2.284H39.765a1.5 1.5 0 0 1-1.279-2.284l5.477-8.928h12.425z" fill="#174EA6"/><path d="M50 44h37v20H50V44z" fill="#1A73E8"/><path d="M54.327 58.934V48.841h4.032c.592 0 1.113.099 1.564.296.451.197.804.484 1.058.86.263.376.394.831.394 1.367s-.127.982-.38 1.34c-.254.357-.574.63-.959.817v.085c.498.169.902.46 1.212.874.31.413.466.911.466 1.494 0 .602-.141 1.128-.423 1.579a2.778 2.778 0 0 1-1.128 1.03 3.526 3.526 0 0 1-1.593.352h-4.243zm4.06-8.683h-2.524v2.678h2.467c.48 0 .855-.113 1.128-.338.273-.226.409-.56.409-1.001 0-.442-.132-.776-.395-1.001-.263-.226-.625-.338-1.085-.338zm-2.524 7.26h2.693c.498 0 .888-.146 1.17-.437.291-.292.437-.682.437-1.17 0-.49-.146-.88-.437-1.17-.291-.292-.7-.438-1.227-.438h-2.636v3.215zm10.591 1.649c-.714 0-1.339-.164-1.874-.493a3.43 3.43 0 0 1-1.227-1.382c-.282-.592-.423-1.273-.423-2.044 0-.79.15-1.48.451-2.072a3.42 3.42 0 0 1 1.24-1.382c.537-.329 1.148-.493 1.834-.493 1.118 0 1.964.315 2.537.944.583.63.874 1.49.874 2.58 0 .273-.014.517-.042.733H64.41c.047.733.264 1.292.649 1.678.385.385.87.578 1.452.578.517 0 .916-.113 1.198-.339.291-.235.503-.526.635-.874l1.325.353a3.137 3.137 0 0 1-1.072 1.593c-.526.413-1.24.62-2.142.62zm.015-6.583c-.508 0-.94.155-1.297.465-.348.31-.578.766-.691 1.367h3.89c-.027-.554-.201-.996-.52-1.325-.32-.338-.78-.507-1.382-.507zm5.434 4.271v-4.004h-1.198V51.52h1.198v-2.03h1.509v2.03h1.692v1.325h-1.692v3.736c0 .696.305 1.043.916 1.043.16 0 .3-.018.423-.056.122-.047.25-.108.38-.183v1.466c-.15.056-.314.103-.493.14-.169.038-.37.057-.606.057-.648 0-1.165-.192-1.55-.578-.386-.394-.579-.935-.579-1.62zm6.95 2.312c-.77 0-1.391-.211-1.861-.634-.47-.423-.705-.992-.705-1.706 0-.498.127-.916.38-1.255.264-.347.607-.61 1.03-.79a3.693 3.693 0 0 1 1.424-.267c.394 0 .76.023 1.1.07.337.047.676.118 1.014.212v-.705c0-.46-.16-.827-.48-1.1-.319-.282-.742-.422-1.268-.422-.423 0-.785.103-1.085.31-.292.197-.494.488-.606.874l-1.34-.31c.15-.696.508-1.227 1.072-1.593.573-.367 1.23-.55 1.973-.55 1.043 0 1.838.249 2.383.747.545.498.817 1.212.817 2.143v4.75h-1.466v-.86h-.084c-.216.282-.517.536-.903.762-.376.216-.84.324-1.395.324zm.338-1.24c.62 0 1.114-.189 1.48-.564a1.91 1.91 0 0 0 .564-1.382 5.745 5.745 0 0 0-1.875-.324c-.488 0-.87.099-1.142.296-.272.197-.408.489-.408.874 0 .32.126.583.38.79.263.206.597.31 1.001.31z" fill="#fff"/></svg>
\ No newline at end of file
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog.html
deleted file mode 100644
index 2ea4b1e..0000000
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html dir="$i18n{textdirection}" lang="$i18n{language}">
-<head>
-  <meta charset="utf-8">
-  <meta name="color-scheme" content="light dark">
-  <meta name="viewport" content="width=device-width initial-scale=1.0,
-      user-scalable=no">
-  <title>$i18n{privacySandboxTitle}</title>
-  <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
-  <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
-  <style>
-    body {
-      margin: 0;
-      padding: 0;
-    }
-    @media (prefers-color-scheme: dark) {
-      body {
-        background-color: var(--md-background-color);
-      }
-    }
-  </style>
-  <script type="module" src="privacy_sandbox_dialog_app.js"></script>
-</head>
-<body>
-  <privacy-sandbox-dialog-app></privacy-sandbox-dialog-app>
-</body>
-</html>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html
deleted file mode 100644
index 6163be6..0000000
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<style include="cr-shared-style">
-  /* Custom scrollbar for the content area */
-  /* The default scrollbar on Windows doesn't fit with the dialog style. Also
-   * it is wide and causes visual problems when the height of the content is
-   * changed.
-   */
-  :host {
-    --scrollbar-width: 7px;
-    --scrollbar-background: var(--google-grey-200);
-  }
-
-  @media (prefers-color-scheme: dark) {
-    :host {
-      --scrollbar-background: var(--google-grey-700);
-    }
-  }
-
-  #contentArea::-webkit-scrollbar {
-    width: var(--scrollbar-width);
-  }
-
-  #contentArea::-webkit-scrollbar-track {
-    border-radius: var(--scrollbar-width);
-  }
-
-  #contentArea::-webkit-scrollbar-thumb {
-    background: var(--scrollbar-background);
-    border-radius: var(--scrollbar-width);
-  }
-
-  #contentArea.hide-scrollbar::-webkit-scrollbar-thumb {
-    visibility: hidden;
-  }
-
-  .header {
-    padding-bottom: 10px;
-    text-align: center;
-  }
-
-  .header h2 {
-    font-weight: 500;
-    line-height: 22px;
-    margin: 0;
-  }
-
-  .header h3 {
-    font-weight: normal;
-    line-height: 22px;
-    margin: 3px 0;
-  }
-
-  .header img {
-    content: url(images/privacy_sandbox_confirmation_banner.svg);
-    height: 100px;
-    padding-bottom: 16px;
-    padding-top: 16px;
-    width: 100px;
-  }
-
-  @media (prefers-color-scheme: dark) {
-    .header img {
-      content: url(images/privacy_sandbox_confirmation_banner_dark.svg);
-    }
-  }
-
-  .section {
-    line-height: 20px;
-    padding: 8px 0;
-  }
-
-  .section-header {
-    margin-bottom: 4px;
-  }
-
-  #expandSection {
-    border-bottom: var(--cr-separator-line);
-    border-top: var(--cr-separator-line);
-    line-height: 20px;
-    margin-bottom: 8px;
-  }
-
-  #expandSection ul {
-    padding-inline-start: 16px;
-  }
-
-  #expandSection b {
-    color: initial;
-    font-weight: 400;
-  }
-
-  .buttons-container {
-    align-items: center;
-    display: flex;
-    height: 64px;
-    justify-content: end;
-    padding-inline-end:
-        var(--cr-dialog-button-container-padding-horizontal, 16px);
-    width: 100%;
-  }
-
-  cr-button+cr-button {
-    margin-inline-start: 8px;
-  }
-
-  #contentArea {
-    border-color: transparent;
-    border-style: solid;
-    border-width: 1px 0;
-    overflow-y: scroll;
-    padding: 0 var(--cr-section-padding);
-  }
-
-  .wrapper.fit-into-size {
-    height: 100vh;
-  }
-
-  .wrapper.fit-into-size #contentArea {
-    bottom: 64px;
-    position: absolute;
-    top: 0;
-  }
-
-  .wrapper.fit-into-size .buttons-container {
-    bottom: 0;
-    box-sizing: border-box;
-    position: fixed;
-    right: 0;
-  }
-
-  #contentArea.can-scroll {
-    border-bottom-color: var(--scrollable-border-color);
-  }
-
-  cr-collapse {
-    --iron-collapse-transition-duration: 300ms;
-  }
-</style>
-
-<div class$="wrapper [[fitIntoDialogClass_]]" tabindex="-1">
-  <div id="contentArea" class$="[[canScrollClass_]]">
-    <div class="header">
-      <img>
-      <template is="dom-if" if="[[isConsent_]]">
-        <h2>$i18n{consentTitle}</h2>
-        <h3>$i18n{consentSubtitle}</h3>
-      </template>
-      <template is="dom-if" if="[[!isConsent_]]">
-        <h3>$i18n{noticeSubtitle}</h3>
-      </template>
-    </div>
-
-    <div class="section">
-      <template is="dom-if" if="[[isConsent_]]">
-        <div class="section-header">$i18n{consentBodyHeader1}</div>
-        <div class="cr-secondary-text">$i18n{consentBodyDescription1}</div>
-      </template>
-      <template is="dom-if" if="[[!isConsent_]]">
-        <div class="section-header">$i18n{noticeBodyHeader1}</div>
-        <div class="cr-secondary-text">$i18n{noticeBodyDescription1}</div>
-      </template>
-    </div>
-
-    <div class="section">
-      <template is="dom-if" if="[[isConsent_]]">
-        <div class="section-header">$i18n{consentBodyHeader2}</div>
-        <div class="cr-secondary-text">$i18n{consentBodyDescription2}</div>
-      </template>
-      <template is="dom-if" if="[[!isConsent_]]">
-        <div class="section-header">$i18n{noticeBodyHeader2}</div>
-        <div class="cr-secondary-text">$i18n{noticeBodyDescription2}</div>
-      </template>
-    </div>
-
-    <div id="expandSection" hidden$="[[!isConsent_]]">
-      <template is="dom-if" if="[[isConsent_]]">
-        <cr-expand-button expanded="{{expanded_}}">
-          <div class="cr-secondary-text">$i18n{consentLearnMoreLabel}</div>
-        </cr-expand-button>
-        <cr-collapse opened="[[expanded_]]">
-          <div>$i18n{consentLearnMoreSection1Header}</div>
-          <ul class="cr-secondary-text">
-            <li>$i18nRaw{consentLearnMoreSection1BulletPoint1}</li>
-            <li>$i18nRaw{consentLearnMoreSection1BulletPoint2}</li>
-            <li>$i18nRaw{consentLearnMoreSection1BulletPoint3}</li>
-          </ul>
-
-          <div>$i18n{consentLearnMoreSection2Header}</div>
-          <ul class="cr-secondary-text">
-            <li>$i18nRaw{consentLearnMoreSection2BulletPoint1}</li>
-            <li>$i18nRaw{consentLearnMoreSection2BulletPoint2}</li>
-            <li>$i18nRaw{consentLearnMoreSection2BulletPoint3}</li>
-          </ul>
-        </cr-collapse>
-      </template>
-    </div>
-    <template is="dom-if" if="[[isConsent_]]">
-      <div class="section cr-secondary-text">$i18n{consentBottomSummary}</div>
-    </template>
-    <template is="dom-if" if="[[!isConsent_]]">
-      <div class="section cr-secondary-text">$i18n{noticeBottomSummary}</div>
-    </template>
-  </div>
-
-  <div class="buttons-container">
-    <template is="dom-if" if="[[isConsent_]]">
-      <cr-button id="declineButton"
-          on-click="onConsentDeclined_">
-        $i18n{consentDeclineButton}
-      </cr-button>
-      <cr-button id="confirmButton"
-          on-click="onConsentAccepted_">
-        $i18n{consentAcceptButton}
-      </cr-button>
-    </template>
-    <template is="dom-if" if="[[!isConsent_]]">
-      <cr-button id="settingsButton" on-click="onNoticeOpenSettings_">
-        $i18n{noticeOpenSettingsButton}
-      </cr-button>
-      <cr-button id="ackButton" class="action-button"
-          on-click="onNoticeAcknowledge_">
-        $i18n{noticeAcknowledgeButton}
-      </cr-button>
-    </template>
-  </div>
-</div>
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
deleted file mode 100644
index 19c8944..0000000
--- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'chrome://resources/cr_elements/cr_button/cr_button.js';
-import 'chrome://resources/cr_elements/cr_expand_button/cr_expand_button.js';
-import 'chrome://resources/cr_elements/cr_collapse/cr_collapse.js';
-import 'chrome://resources/cr_elements/cr_shared_style.css.js';
-import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
-import '/strings.m.js';
-
-import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
-import {afterNextRender, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
-
-import {getTemplate} from './privacy_sandbox_dialog_app.html.js';
-import {PrivacySandboxDialogBrowserProxy, PrivacySandboxPromptAction} from './privacy_sandbox_dialog_browser_proxy.js';
-
-export interface PrivacySandboxDialogAppElement {
-  $: {
-    contentArea: HTMLElement,
-    expandSection: HTMLElement,
-  };
-}
-
-export class PrivacySandboxDialogAppElement extends PolymerElement {
-  static get is() {
-    return 'privacy-sandbox-dialog-app';
-  }
-
-  static get template() {
-    return getTemplate();
-  }
-
-  static get properties() {
-    return {
-      expanded_: {
-        type: Boolean,
-        observer: 'onLearnMoreExpandedChanged_',
-      },
-
-      isConsent_: {
-        type: Boolean,
-        value: () => {
-          return loadTimeData.getBoolean('isConsent');
-        },
-      },
-
-      canScrollClass_: String,
-      fitIntoDialogClass_: String,
-    };
-  }
-
-  private expanded_: boolean;
-  private isConsent_: boolean;
-  private canScrollClass_: string;
-  private fitIntoDialogClass_: string;
-  private didStartWithScrollbar_: boolean;
-
-  override connectedCallback() {
-    super.connectedCallback();
-
-    afterNextRender(this, async () => {
-      const proxy = PrivacySandboxDialogBrowserProxy.getInstance();
-      // Prefer using |document.body.offsetHeight| instead of
-      // |document.body.scrollHeight| as it returns the correct height of the
-      // page even when the page zoom in Chrome is different than 100%.
-      await proxy.resizeDialog(document.body.offsetHeight);
-
-      // After the content was rendered at size it requires, toggle a class
-      // to fit the content into dialog bounds.
-      this.fitIntoDialogClass_ = 'fit-into-size';
-
-      // After the layout is adjusted to fit into the dialog, save if the
-      // dialog is scrollable and add a divider if needed.
-      this.didStartWithScrollbar_ =
-          this.$.contentArea.offsetHeight < this.$.contentArea.scrollHeight;
-      this.canScrollClass_ = this.didStartWithScrollbar_ ? 'can-scroll' : '';
-
-      proxy.showDialog();
-    });
-
-    window.addEventListener('keydown', event => {
-      // Only notice dialog can be dismissed by pressing "Esc".
-      if (event.key === 'Escape' && !this.isConsent_) {
-        this.promptActionOccurred(PrivacySandboxPromptAction.NOTICE_DISMISS);
-      }
-    });
-  }
-
-  private onNoticeOpenSettings_() {
-    this.promptActionOccurred(PrivacySandboxPromptAction.NOTICE_OPEN_SETTINGS);
-  }
-
-  private onNoticeAcknowledge_() {
-    this.promptActionOccurred(PrivacySandboxPromptAction.NOTICE_ACKNOWLEDGE);
-  }
-
-  private onConsentAccepted_() {
-    this.promptActionOccurred(PrivacySandboxPromptAction.CONSENT_ACCEPTED);
-  }
-
-  private onConsentDeclined_() {
-    this.promptActionOccurred(PrivacySandboxPromptAction.CONSENT_DECLINED);
-  }
-
-  private onLearnMoreExpandedChanged_(newVal: boolean, oldVal: boolean) {
-    if (!oldVal && newVal) {
-      this.promptActionOccurred(
-          PrivacySandboxPromptAction.CONSENT_MORE_INFO_OPENED);
-    }
-    if (oldVal && !newVal) {
-      this.promptActionOccurred(
-          PrivacySandboxPromptAction.CONSENT_MORE_INFO_CLOSED);
-    }
-    // Show divider if the dialog was scrollable from the beginning or became
-    // scrollable because the section is expanded. Otherwise, hide the
-    // scrollbar to avoid animating it out. Without it, when the section is
-    // collapsing, the scrollbar thumb would grow until it fills the track and
-    // disappears.
-    this.canScrollClass_ =
-        this.didStartWithScrollbar_ || newVal ? 'can-scroll' : 'hide-scrollbar';
-
-    // Wait for collapse section transition to complete 70%.
-    const collapseElement = this.$.expandSection.querySelector('cr-collapse');
-    if (collapseElement) {
-      const computedStyle = window.getComputedStyle(collapseElement);
-      const duration = parseFloat(computedStyle.getPropertyValue(
-          '--iron-collapse-transition-duration'));
-      setTimeout(() => {
-        // ...and scroll the content area up to make the section content
-        // visible.
-        const rect = this.$.expandSection.getBoundingClientRect();
-        this.$.contentArea.scrollTo({top: rect.top, behavior: 'smooth'});
-      }, duration * 0.7);
-    }
-  }
-
-  private promptActionOccurred(action: PrivacySandboxPromptAction) {
-    PrivacySandboxDialogBrowserProxy.getInstance().promptActionOccurred(action);
-  }
-}
-
-declare global {
-  interface HTMLElementTagNameMap {
-    'privacy-sandbox-dialog-app': PrivacySandboxDialogAppElement;
-  }
-}
-
-customElements.define(
-    PrivacySandboxDialogAppElement.is, PrivacySandboxDialogAppElement);
diff --git a/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc b/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
index 2b1d856..0a8f596 100644
--- a/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
+++ b/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc
@@ -373,6 +373,8 @@
   kAccessibilitySlowKeysDelayMs = 100312,
   kAccessibilityFaceGazePrecisionClick = 100313,
   kAccessibilityFaceGazePrecisionClickSpeedFactor = 100314,
+  kOfficeFilesAlwaysMoveToDriveSyncable = 100315,
+  kOfficeFilesAlwaysMoveToOneDriveSyncable = 100316,
   // See components/sync_preferences/README.md about adding new entries here.
   // vvvvv IMPORTANT! vvvvv
   // Note to the reviewer: IT IS YOUR RESPONSIBILITY to ensure that new syncable
@@ -822,6 +824,14 @@
      {syncable_prefs_ids::kNaturalScroll, syncer::OS_PRIORITY_PREFERENCES,
       sync_preferences::PrefSensitivity::kNone,
       sync_preferences::MergeBehavior::kNone}},
+    {prefs::kOfficeFilesAlwaysMoveToDriveSyncable,
+     {syncable_prefs_ids::kOfficeFilesAlwaysMoveToDriveSyncable,
+      syncer::OS_PREFERENCES, sync_preferences::PrefSensitivity::kNone,
+      sync_preferences::MergeBehavior::kNone}},
+    {prefs::kOfficeFilesAlwaysMoveToOneDriveSyncable,
+     {syncable_prefs_ids::kOfficeFilesAlwaysMoveToOneDriveSyncable,
+      syncer::OS_PREFERENCES, sync_preferences::PrefSensitivity::kNone,
+      sync_preferences::MergeBehavior::kNone}},
     {ash::prefs::kOobeMarketingOptInChoice,
      {syncable_prefs_ids::kOobeMarketingOptInChoice, syncer::OS_PREFERENCES,
       sync_preferences::PrefSensitivity::kNone,
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncLocalToRemoteTest.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncLocalToRemoteTest.java
index e4c6e95c..aecf8b8 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncLocalToRemoteTest.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncLocalToRemoteTest.java
@@ -66,7 +66,7 @@
     @Before
     public void setUp() {
         mHelper = new TabGroupSyncIntegrationTestHelper(mSyncTestRule);
-        mSyncTestRule.setUpAccountAndEnableSyncForTesting();
+        mSyncTestRule.setUpAccountAndEnableHistorySync();
         SyncTestUtil.waitForHistorySyncEnabled();
         mHelper.assertSyncEntityCount(0);
     }
diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteToLocalTest.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteToLocalTest.java
index e33c9f2..aca06b9 100644
--- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteToLocalTest.java
+++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/TabGroupSyncRemoteToLocalTest.java
@@ -75,7 +75,7 @@
     public void setUp() {
         setUpUrlConstants();
         mHelper = new TabGroupSyncIntegrationTestHelper(mSyncTestRule);
-        mSyncTestRule.setUpAccountAndEnableSyncForTesting();
+        mSyncTestRule.setUpAccountAndEnableHistorySync();
         SyncTestUtil.waitForHistorySyncEnabled();
         mHelper.assertSyncEntityCount(0);
 
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
index 00f7a0b..c29ac41 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">تم فتح قائمة بيانات الاعتماد التي يجب ملؤها باللمس على طول الشاشة.</translation>
 <translation id="5591247451101092906">هل تريد استخدام كلمة المرور أو مفتاح المرور المحفوظَين؟</translation>
 <translation id="5624120631404540903">إدارة كلمات المرور</translation>
+<translation id="592182999816790476">تم حفظ كلمة المرور لحساب <ph name="USERNAME" /> على <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">مفتاح مرور "<ph name="USERNAME" />": عليك استخدام قفل الشاشة.</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{هناك كلمة مرور جديدة لهذا الموقع الإلكتروني}zero{ما مِن كلمات مرور جديدة لهذا الموقع الإلكتروني}two{هناك كلمتا مرور جديدتان لهذا الموقع الإلكتروني}few{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}many{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}other{هناك كلمات مرور جديدة لهذا الموقع الإلكتروني}}</translation>
 <translation id="7286867818472074330">اختيار مفتاح المرور</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_bs.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_bs.xtb
index 4de9192..70616a28 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_bs.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_bs.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Lista akreditiva za popunjavanje dodirom je otvorena na cijelom ekranu.</translation>
 <translation id="5591247451101092906">Koristiti sačuvanu lozinku ili pristupni ključ?</translation>
 <translation id="5624120631404540903">Upravljajte lozinkama</translation>
+<translation id="592182999816790476">Zaporka za <ph name="USERNAME" /> spremljena je za web-lokaciju <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Pristupni ključ za račun <ph name="USERNAME" />; koristite zaključavanje ekrana</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nova lozinka za ovu web lokaciju}one{Nove lozinke za ovu web lokaciju}few{Nove lozinke za ovu web lokaciju}other{Nove lozinke za ovu web lokaciju}}</translation>
 <translation id="7286867818472074330">Odaberite pristupni ključ</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
index c0b9d9b..542007e 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Touch પર લૉગ ઇન વિગતો ભરવાની સૂચિ સંપૂર્ણ ઊંચાઈએ ખૂલી.</translation>
 <translation id="5591247451101092906">સાચવેલા પાસવર્ડ કે પાસકીનો ઉપયોગ કરીએ?</translation>
 <translation id="5624120631404540903">પાસવર્ડ્સનું સંચાલન કરો</translation>
+<translation id="592182999816790476"><ph name="WEBSITE" /> માટે <ph name="USERNAME" />નો પાસવર્ડ સાચવવામાં આવ્યો છે</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> માટેની પાસકી, તમારા સ્ક્રીન લૉકનો ઉપયોગ કરો</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{આ સાઇટ માટે નવો પાસવર્ડ}one{આ સાઇટ માટે નવો પાસવર્ડ}other{આ સાઇટ માટે નવા પાસવર્ડ}}</translation>
 <translation id="7286867818472074330">પાસકી પસંદ કરો</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
index c3c329073..efa8697 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Popis vjerodajnica za unos dodirom otvoren je preko cijelog zaslona.</translation>
 <translation id="5591247451101092906">Želite li koristiti spremljenu zaporku ili pristupni ključ?</translation>
 <translation id="5624120631404540903">Upravljanje zaporkama</translation>
+<translation id="592182999816790476">Zaporka za <ph name="USERNAME" /> spremljena je za web-lokaciju <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Pristupni ključ za <ph name="USERNAME" />, upotrijebite zaključavanje zaslona</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nova zaporka za ovu web-lokaciju}one{Nove zaporke za ovu web-lokaciju}few{Nove zaporke za ovu web-lokaciju}other{Nove zaporke za ovu web-lokaciju}}</translation>
 <translation id="7286867818472074330">Odaberite pristupni ključ</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
index f5baf6a..01b7323 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">タップ操作で入力する認証情報のリストが画面全体に表示されています。</translation>
 <translation id="5591247451101092906">保存したパスワードまたはパスキーを使用しますか?</translation>
 <translation id="5624120631404540903">パスワードを管理</translation>
+<translation id="592182999816790476"><ph name="WEBSITE" /> に <ph name="USERNAME" /> のパスワードを保存しました</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> のパスキーです。画面ロックを使用してください</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{このサイトの新しいパスワード}other{このサイトの新しいパスワード}}</translation>
 <translation id="7286867818472074330">パスキーを選択</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
index e7f230a..1155c0c 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_km.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">បញ្ជី​ព័ត៌មាន​ផ្ទៀងផ្ទាត់ ដែលត្រូវ​បំពេញ​ដោយ​ការប៉ះ​ត្រូវបាន​បើក​ពេញ​អេក្រង់។</translation>
 <translation id="5591247451101092906">ប្រើប្រាស់​ពាក្យសម្ងាត់ ឬ​កូដសម្ងាត់​ដែល​បាន​រក្សាទុកឬ?</translation>
 <translation id="5624120631404540903">គ្រប់គ្រងពាក្យសម្ងាត់</translation>
+<translation id="592182999816790476">ពាក្យ​សម្ងាត់​សម្រាប់ <ph name="USERNAME" /> ត្រូវបាន​រក្សាទុក​សម្រាប់ <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">កូដសម្ងាត់​សម្រាប់ <ph name="USERNAME" />, ប្រើការចាក់សោអេក្រង់​របស់អ្នក</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ពាក្យសម្ងាត់​ថ្មី​សម្រាប់​គេហទំព័រ​នេះ}other{ពាក្យសម្ងាត់​ថ្មី​សម្រាប់​គេហទំព័រ​នេះ}}</translation>
 <translation id="7286867818472074330">ជ្រើសរើសកូដសម្ងាត់</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
index f1ff3a6a..5778f036 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">터치 시 작성되는 사용자 인증 정보 목록이 전체 높이로 열렸습니다.</translation>
 <translation id="5591247451101092906">저장된 비밀번호 또는 패스키를 사용하시겠습니까?</translation>
 <translation id="5624120631404540903">비밀번호 관리</translation>
+<translation id="592182999816790476"><ph name="WEBSITE" />에 <ph name="USERNAME" />님의 비밀번호가 저장됨</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" />님의 패스키입니다. 화면 잠금을 사용하세요.</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{이 사이트의 새 비밀번호}other{이 사이트의 새 비밀번호}}</translation>
 <translation id="7286867818472074330">패스키 선택</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lo.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lo.xtb
index 9825eff..f429abbd 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lo.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lo.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">ລາຍການຂໍ້ມູນປະຈຳຕົວທີ່ຈະຕື່ມເມື່ອແຕະເປີດຢູ່ລະດັບລວງສູງເຕັມຈໍ.</translation>
 <translation id="5591247451101092906">ໃຊ້ລະຫັດຜ່ານ ຫຼື ກະແຈຜ່ານທີ່ບັນທຶກໄວ້ບໍ?</translation>
 <translation id="5624120631404540903">ຈັດການລະ​ຫັດ​ຜ່ານ​</translation>
+<translation id="592182999816790476">ລະຫັດຜ່ານສໍາລັບ <ph name="USERNAME" /> ໄດ້ຖືກບັນທຶກໄວ້ສໍາລັບ <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">ກະແຈຜ່ານສຳລັບ <ph name="USERNAME" />, ໃຊ້ການລັອກໜ້າຈໍຂອງທ່ານ</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ລະຫັດຜ່ານໃໝ່ສຳລັບເວັບໄຊນີ້}other{ລະຫັດຜ່ານໃໝ່ສຳລັບເວັບໄຊນີ້}}</translation>
 <translation id="7286867818472074330">ເລືອກກະແຈຜ່ານ</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
index b6c5fcd..5599195 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Prisijungimo duomenų, kuriuos galima užpildyti palietus, sąrašas atidarytas per visą ekrano aukštį.</translation>
 <translation id="5591247451101092906">Naudoti išsaugotą slaptažodį arba „passkey“?</translation>
 <translation id="5624120631404540903">Tvarkyti slaptažodžius</translation>
+<translation id="592182999816790476">Svetainei <ph name="WEBSITE" /> skirtas <ph name="USERNAME" /> slaptažodis išsaugotas</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> prieigos raktas, naudokite ekrano užraktą.</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Naujas šios svetainės slaptažodis}one{Nauji šios svetainės slaptažodžiai}few{Nauji šios svetainės slaptažodžiai}many{Nauji šios svetainės slaptažodžiai}other{Nauji šios svetainės slaptažodžiai}}</translation>
 <translation id="7286867818472074330">Pasirinkti prieigos raktą</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
index d192ff57..805d368 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">ടച്ച് ചെയ്യുമ്പോൾ പൂരിപ്പിക്കേണ്ട ക്രെഡൻഷ്യലുകളുടെ ലിസ്റ്റ് പൂർണ്ണ ഉയരത്തിൽ തുറന്നിരിക്കുന്നു.</translation>
 <translation id="5591247451101092906">സംരക്ഷിച്ച പാസ്‌വേഡോ പാസ്‌കീയോ ഉപയോഗിക്കണോ?</translation>
 <translation id="5624120631404540903">പാസ്‌വേഡുകൾ നിയന്ത്രിക്കുക</translation>
+<translation id="592182999816790476"><ph name="WEBSITE" /> എന്നതിനായി സംരക്ഷിച്ച,<ph name="USERNAME" /> എന്നതിനുള്ള പാസ്‍വേഡ്</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> എന്നതിനുള്ള പാസ്‌കീ, നിങ്ങളുടെ സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ഈ സൈറ്റിനായി പുതിയ പാസ്‌വേഡ്}other{ഈ സൈറ്റുകൾക്കായി പുതിയ പാസ്‌വേഡുകൾ}}</translation>
 <translation id="7286867818472074330">പാസ്‌കീ തിരഞ്ഞെടുക്കുക</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
index 8b4d637b..9ab5551 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">De lijst met gegevens die moeten worden ingevuld als je tikt, is op volledige hoogte geopend.</translation>
 <translation id="5591247451101092906">Opgeslagen wachtwoord of toegangssleutel gebruiken?</translation>
 <translation id="5624120631404540903">Wachtwoorden beheren</translation>
+<translation id="592182999816790476">Wachtwoord voor <ph name="USERNAME" /> opgeslagen voor <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Toegangssleutel voor <ph name="USERNAME" />, gebruik je schermvergrendeling</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nieuw wachtwoord voor deze site}other{Nieuwe wachtwoorden voor deze site}}</translation>
 <translation id="7286867818472074330">Toegangssleutel selecteren</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
index 90c919ae8..eed67e8 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Listen over legitimasjon som kan fylles ut ved å trykke, er åpnet i full høyde.</translation>
 <translation id="5591247451101092906">Vil du bruke et lagret passord eller en lagret passnøkkel?</translation>
 <translation id="5624120631404540903">Administrer passord</translation>
+<translation id="592182999816790476">Passord for <ph name="USERNAME" /> er lagret for <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Passnøkkel for <ph name="USERNAME" /> – bruk skjermlåsen</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nytt passord for dette nettstedet}other{Nye passord for dette nettstedet}}</translation>
 <translation id="7286867818472074330">Velg passnøkkel</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
index 5123d67..4fcf8ef 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_pa.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">ਸਪਰਸ਼ ਕਰਕੇ ਭਰੇ ਜਾਣ ਵਾਲੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲਾਂ ਦੀ ਸੂਚੀ ਪੂਰੀ ਉਚਾਈ ਤੱਕ ਖੁੱਲ੍ਹੀ ਹੋਈ ਹੈ।</translation>
 <translation id="5591247451101092906">ਕੀ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡ ਜਾਂ ਪਾਸਕੀ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?</translation>
 <translation id="5624120631404540903">ਪਾਸਵਰਡ ਵਿਵਸਥਿਤ ਕਰੋ</translation>
+<translation id="592182999816790476"><ph name="WEBSITE" /> ਦੇ ਲਈ <ph name="USERNAME" /> ਦਾ ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="6560306912274274630"><ph name="USERNAME" /> ਲਈ ਪਾਸਕੀ, ਆਪਣਾ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{ਇਸ ਸਾਈਟ ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ}one{ਇਸ ਸਾਈਟ ਲਈ ਨਵਾਂ ਪਾਸਵਰਡ}other{ਇਸ ਸਾਈਟ ਲਈ ਨਵੇਂ ਪਾਸਵਰਡ}}</translation>
 <translation id="7286867818472074330">ਪਾਸਕੀ ਚੁਣੋ</translation>
diff --git a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
index 6e56caba..9e9be349 100644
--- a/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
+++ b/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
@@ -17,6 +17,7 @@
 <translation id="5441504010984421144">Listan över användaruppgifter som ska fyllas i med ett tryck har öppnats över hela skärmen.</translation>
 <translation id="5591247451101092906">Vill du använda ett sparat lösenord eller en sparad nyckel?</translation>
 <translation id="5624120631404540903">Hantera lösenord</translation>
+<translation id="592182999816790476">Lösenordet för <ph name="USERNAME" /> har sparats för <ph name="WEBSITE" /></translation>
 <translation id="6560306912274274630">Nyckel för <ph name="USERNAME" /> – använd skärmlåset</translation>
 <translation id="7069750557362084654">{NUM_PASSWORDS,plural, =1{Nytt lösenord för den här webbplatsen}other{Nya lösenord för den här webbplatsen}}</translation>
 <translation id="7286867818472074330">Välj nyckel</translation>
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 62b2e5f5..99be1d2 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1403,8 +1403,6 @@
       "webui/history/navigation_handler.h",
       "webui/history_clusters/history_clusters_handler.cc",
       "webui/history_clusters/history_clusters_handler.h",
-      "webui/identity_internals_ui.cc",
-      "webui/identity_internals_ui.h",
       "webui/inspect/inspect_ui.cc",
       "webui/inspect/inspect_ui.h",
       "webui/managed_ui_handler.cc",
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java
index ccc9b371..a9c5f5d 100644
--- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java
+++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java
@@ -54,7 +54,6 @@
 import org.chromium.components.signin.identitymanager.ConsentLevel;
 import org.chromium.components.signin.identitymanager.IdentityManager;
 import org.chromium.components.signin.metrics.SigninAccessPoint;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.UserSelectableType;
 import org.chromium.components.user_prefs.UserPrefs;
@@ -403,7 +402,6 @@
     private boolean canShowBookmarkPromo() {
         if (ChromeFeatureList.isEnabled(
                 ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) {
-            assert SyncFeatureMap.isEnabled(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE);
             if (IdentityServicesProvider.get()
                     .getIdentityManager(mProfile)
                     .hasPrimaryAccount(ConsentLevel.SIGNIN)) {
@@ -412,13 +410,10 @@
         }
 
         SyncService syncService = SyncServiceFactory.getForProfile(mProfile);
-        if (SyncFeatureMap.isEnabled(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE)
-                && syncService
-                        .getSelectedTypes()
-                        .containsAll(
-                                Set.of(
-                                        UserSelectableType.BOOKMARKS,
-                                        UserSelectableType.READING_LIST))) {
+        if (syncService
+                .getSelectedTypes()
+                .containsAll(
+                        Set.of(UserSelectableType.BOOKMARKS, UserSelectableType.READING_LIST))) {
             return false;
         }
 
@@ -801,13 +796,9 @@
             PrefService prefService) {
         if (ChromeFeatureList.isEnabled(
                 ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) {
-            assert SyncFeatureMap.isEnabled(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE);
             return true;
         }
 
-        if (!SyncFeatureMap.isEnabled(SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE)) {
-            return false;
-        }
         if (accessPoint != SigninAccessPoint.BOOKMARK_MANAGER) {
             return false;
         }
diff --git a/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java b/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java
index c8e37b5f..6fe2278 100644
--- a/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java
+++ b/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java
@@ -43,7 +43,6 @@
 import org.chromium.components.signin.metrics.SigninAccessPoint;
 import org.chromium.components.signin.test.util.FakeAccountManagerFacade;
 import org.chromium.components.signin.test.util.TestAccounts;
-import org.chromium.components.sync.SyncFeatureMap;
 import org.chromium.components.sync.SyncService;
 import org.chromium.components.sync.UserSelectableType;
 
@@ -53,10 +52,7 @@
 /** Tests for {@link SyncPromoController}. */
 @RunWith(BaseRobolectricTestRunner.class)
 @DisableFeatures(ChromeFeatureList.FORCE_DISABLE_EXTENDED_SYNC_PROMOS)
-@EnableFeatures({
-    SyncFeatureMap.SYNC_ENABLE_BOOKMARKS_IN_TRANSPORT_MODE,
-    ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS
-})
+@EnableFeatures(ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)
 public class SyncPromoControllerTest {
     private static final int TIME_SINCE_FIRST_SHOWN_LIMIT_HOURS =
             SyncPromoController.NTP_SYNC_PROMO_NTP_SINCE_FIRST_TIME_SHOWN_LIMIT_HOURS;
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
index 6ac4f18..2c692694 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">ხელმისაწვდომობის მიხედვით გამოიყენება Wi-Fi</translation>
 <translation id="6569373978618239158">ამიერიდან, ახალი ჩანართის გახსნისას, იხილავთ ამბებს <ph name="SITE_NAME" />-დან. თქვენ მიერ თვალმიდევნებული საიტები შეინახება თქვენს Google ანგარიშში. მათი მართვა Discover-ის პარამეტრებიდან შეგიძლიათ.</translation>
 <translation id="6570116402456758630">გვერდის შეჯამება</translation>
+<translation id="657177046675873214">თქვენს სანიშნეებზე თქვენი ყველა მოწყობილობიდან წვდომისთვის პარამეტრებიდან ჩართეთ „სანიშნეები“</translation>
 <translation id="6573431926118603307">სხვა მოწყობილობებზე თქვენ მიერ Chrome-ით გახსნილი ჩანართები აქ გამოჩნდება.</translation>
 <translation id="6583199322650523874">მიმდინარე გვერდის სანიშნეებში დამატება</translation>
 <translation id="6588043302623806746">დაცული DNS-ის გამოყენება</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
index 157d79f..31221b80 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">ലഭ്യമാകുമ്പോൾ വൈഫൈ ഉപയോഗിക്കും</translation>
 <translation id="6569373978618239158">പുതിയൊരു ടാബ് തുറക്കുമ്പോൾ നിങ്ങൾക്ക് ഇപ്പോൾ <ph name="SITE_NAME" /> എന്നതിൽ നിന്നുള്ള സ്റ്റോറികൾ കാണാം. നിങ്ങൾ പിന്തുടരുന്ന സൈറ്റുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നു. Discover ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് അവ മാനേജ് ചെയ്യാനാകും.</translation>
 <translation id="6570116402456758630">പേജ് സംഗ്രഹം</translation>
+<translation id="657177046675873214">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകൾ ലഭിക്കാൻ, ക്രമീകരണത്തിൽ “ബുക്ക്‌മാർക്കുകൾ” ഓണാക്കുക</translation>
 <translation id="6573431926118603307">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിലെ Chrome-ൽ തുറന്ന ടാബുകൾ ഇവിടെ ദൃശ്യമാകും.</translation>
 <translation id="6583199322650523874">നിലവിലെ പേജ് ബുക്ക്‌മാർക്ക് ചെയ്യുക</translation>
 <translation id="6588043302623806746">സുരക്ഷിത DNS ഉപയോഗിക്കുക</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
index b62c500..91f76003 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">ਉਪਲਬਧ ਹੋਣ 'ਤੇ ਵਾਈ-ਫਾਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ</translation>
 <translation id="6569373978618239158">ਤੁਹਾਨੂੰ ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹਣ 'ਤੇ ਹੁਣ <ph name="SITE_NAME" /> ਦੀਆਂ ਕਹਾਣੀਆਂ ਦਿਖਾਈ ਦੇਣਗੀਆਂ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਅਨੁਸਰਣ ਕੀਤੀਆਂ ਸਾਈਟਾਂ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਡਿਸਕਵਰ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਕਰ ਸਕਦੇ ਹੋ।</translation>
 <translation id="6570116402456758630">ਪੰਨੇ ਦਾ ਸਾਰਾਂਸ਼</translation>
+<translation id="657177046675873214">ਆਪਣੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਆਪਣੇ ਬੁੱਕਮਾਰਕ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਸੈਟਿੰਗਾਂ ਵਿੱਚ "ਬੁੱਕਮਾਰਕ" ਚਾਲੂ ਕਰੋ</translation>
 <translation id="6573431926118603307">ਤੁਹਾਡੇ ਹੋਰ ਡੀਵਾਈਸਾਂ 'ਤੇ Chrome ਵਿੱਚ ਤੁਹਾਡੇ ਵੱਲੋਂ ਖੋਲ੍ਹੀਆਂ ਗਈਆਂ ਟੈਬਾਂ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ।</translation>
 <translation id="6583199322650523874">ਮੌਜੂਦਾ ਪੰਨੇ ਨੂੰ ਬੁੱਕਮਾਰਕ ਕਰੋ</translation>
 <translation id="6588043302623806746">ਸੁਰੱਖਿਅਤ DNS ਵਰਤੋ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
index 8022e38..7f731cc54 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">WiFi se koristi kada je dostupan</translation>
 <translation id="6569373978618239158">Sada ćete videti priče sa <ph name="SITE_NAME" /> kada otvorite novu karticu. Sajtovi koje pratite se čuvaju na Google nalogu. Njima možete da upravljate u podešavanjima Discover-a.</translation>
 <translation id="6570116402456758630">Rezime stranice</translation>
+<translation id="657177046675873214">Da bi vam obeleživači bili dostupni na svim uređajima, uključite Obeleživače u podešavanjima</translation>
 <translation id="6573431926118603307">Ovde će se prikazati kartice koje otvorite u Chrome-u na drugim uređajima.</translation>
 <translation id="6583199322650523874">Obeležavanje trenutne stranice</translation>
 <translation id="6588043302623806746">Koristi bezbedni DNS</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
index 0fda147..06f0ed8 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">WiFi се користи када је доступан</translation>
 <translation id="6569373978618239158">Сада ћете видети приче са <ph name="SITE_NAME" /> када отворите нову картицу. Сајтови које пратите се чувају на Google налогу. Њима можете да управљате у подешавањима Discover-а.</translation>
 <translation id="6570116402456758630">Резиме странице</translation>
+<translation id="657177046675873214">Да би вам обележивачи били доступни на свим уређајима, укључите Обележиваче у подешавањима</translation>
 <translation id="6573431926118603307">Овде ће се приказати картице које отворите у Chrome-у на другим уређајима.</translation>
 <translation id="6583199322650523874">Обележавање тренутне странице</translation>
 <translation id="6588043302623806746">Користи безбедни DNS</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
index 8a8edafa6f..1a267767 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -1225,6 +1225,7 @@
 <translation id="6565959834589222080">wifi används när det är tillgängligt</translation>
 <translation id="6569373978618239158">Nu visas artiklar från <ph name="SITE_NAME" /> när du öppnar en ny flik. Webbplatser som du följer sparas i Google-kontot. Du kan hantera dem i inställningarna för Förslag.</translation>
 <translation id="6570116402456758630">Sidsammanfattning</translation>
+<translation id="657177046675873214">Aktivera Bokmärken i inställningarna om du vill få tillgång till dina bokmärken på alla dina enheter</translation>
 <translation id="6573431926118603307">Här visas flikar som du har öppnat i Chrome på andra enheter.</translation>
 <translation id="6583199322650523874">Infoga ett bokmärke för den aktuella sidan</translation>
 <translation id="6588043302623806746">Använd säker DNS</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
index 6f076238..38e548e 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -455,7 +455,7 @@
 <translation id="3026955690410463085">లింక్‌ను చేర్చండి</translation>
 <translation id="3027644380269727216">సైట్‌లోని మీ యాక్టివిటీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation>
 <translation id="3027950907978057636"><ph name="APP_LABEL" /> నుండి</translation>
-<translation id="3029276696788198026">ప్రీ - లోడింగ్ అందుబాటులో లేదు</translation>
+<translation id="3029276696788198026">ప్రీ - లోడింగ్ వద్దు</translation>
 <translation id="3029704984691124060">రహస్య పదబంధాలు సరిపోలలేదు</translation>
 <translation id="3036750288708366620"><ph name="BEGIN_LINK" />సహాయం పొందండి<ph name="END_LINK" /></translation>
 <translation id="3037177537145227281">ధరను ట్రాక్ చేయడం</translation>
@@ -1222,6 +1222,7 @@
 <translation id="6565959834589222080">అందుబాటులో ఉన్నప్పుడు Wi-Fi ఉపయోగించబడుతుంది</translation>
 <translation id="6569373978618239158">మీరు కొత్త ట్యాబ్‌ను తెరిచినప్పుడు మీరు ఇప్పుడు <ph name="SITE_NAME" /> నుండి కథనాలను చూస్తారు. మీరు ఫాలో అయ్యే సైట్‌లు మీ Google ఖాతాలో సేవ్ చేయబడతాయి. మీరు వాటిని Discover సెట్టింగ్‌లలో మేనేజ్ చేయవచ్చు.</translation>
 <translation id="6570116402456758630">పేజీ సారాంశం</translation>
+<translation id="657177046675873214">మీ పరికరాలన్నింటిలో ఉన్న మీ బుక్‌మార్క్‌లను పొందడానికి, సెట్టింగ్‌లలో “బుక్‌మార్క్‌లు” ఆప్షన్‌ను ఆన్ చేయండి</translation>
 <translation id="6573431926118603307">మీరు మీ ఇతర పరికరాల్లోని Chromeలో తెరిచిన ట్యాబ్‌లు ఇక్కడ చూపబడతాయి.</translation>
 <translation id="6583199322650523874">ప్రస్తుత పేజీని బుక్‌మార్క్ చేయండి</translation>
 <translation id="6588043302623806746">సెక్యూర్ DNSను ఉపయోగించండి</translation>
@@ -1436,7 +1437,7 @@
 <translation id="7454641608352164238">తగినంత స్థలం లేదు</translation>
 <translation id="7454744349230173024">మీ సంస్థ పాస్‌వర్డ్‌లను సేవ్ చేయడాన్ని ఆఫ్ చేసింది</translation>
 <translation id="7455988709578031708">మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా. ఈ సెట్టింగ్ ఆన్ చేయబడింది.</translation>
-<translation id="7456774706094330779">పొడిగించిన ప్రీ - లోడింగ్</translation>
+<translation id="7456774706094330779">ఎక్స్‌టెండెడ్ ప్రీ - లోడింగ్</translation>
 <translation id="7466328545712777810">ఏదైనా సైట్‌లో ధర తగ్గితే మీరు నోటిఫికేషన్‌ను పొందుతారు</translation>
 <translation id="7466431077154602932">సంక్షిప్త వీక్షణ</translation>
 <translation id="7474822150871987353">పేజీ నుండి నిష్క్రమించకుండానే వెబ్‌సైట్‌లలోని టాపిక్‌ల గురించి తెలుసుకోండి. వాటి కోసం సెర్చ్ చేయడానికి పేజీలో ఉన్న ఒకటి లేదా అంతకంటే ఎక్కువ పదాలను ఎంచుకోండి.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
index 1e0544a..038674f 100644
--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -1224,6 +1224,7 @@
 <translation id="6565959834589222080">ระบบจะใช้ Wi-Fi เมื่อพร้อมใช้งาน</translation>
 <translation id="6569373978618239158">ตอนนี้คุณจะเห็นเรื่องราวจาก <ph name="SITE_NAME" /> เมื่อเปิดแท็บใหม่ ระบบจะบันทึกเว็บไซต์ที่คุณติดตามไว้ในบัญชี Google โดยคุณจัดการเว็บไซต์เหล่านี้ได้ในการตั้งค่าของฟีเจอร์สำรวจ</translation>
 <translation id="6570116402456758630">สรุปหน้าเว็บ</translation>
+<translation id="657177046675873214">หากต้องการรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่อง ให้เปิด "บุ๊กมาร์ก" ในการตั้งค่า</translation>
 <translation id="6573431926118603307">แท็บที่คุณเปิดไว้ใน Chrome ในอุปกรณ์เครื่องอื่นๆ จะปรากฏที่นี่</translation>
 <translation id="6583199322650523874">บุ๊กมาร์กหน้าปัจจุบัน</translation>
 <translation id="6588043302623806746">ใช้ DNS ที่ปลอดภัย</translation>
diff --git a/chrome/browser/ui/tabs/public/tab_dialog_manager.h b/chrome/browser/ui/tabs/public/tab_dialog_manager.h
index df047fc..8c1107bc 100644
--- a/chrome/browser/ui/tabs/public/tab_dialog_manager.h
+++ b/chrome/browser/ui/tabs/public/tab_dialog_manager.h
@@ -19,11 +19,14 @@
 
 namespace views {
 class Widget;
+class WidgetObserver;
 class DialogDelegate;
 }  // namespace views
 
 namespace tabs {
 
+class TabDialogWidgetObserver;
+
 // Class provides a mechanism to show a tab-scoped dialog.
 class TabDialogManager : public content::WebContentsObserver {
  public:
@@ -57,13 +60,15 @@
 
   void CloseDialog();
 
+  // Invoked from an internal WidgetObserver when the Widget is has been
+  // destroyed.
+  void WidgetDestroyed(views::Widget* widget);
+
  private:
   // Overridden from content::WebContentObserver:
   void DidFinishNavigation(
       content::NavigationHandle* navigation_handle) override;
 
-  void OnWidgetDestroyed(views::Widget* widget);
-
   void TabDidEnterForeground(TabInterface* tab_interface);
   void TabWillEnterBackground(TabInterface* tab_interface);
   void TabWillDetach(TabInterface* tab_interface,
@@ -79,6 +84,8 @@
 
   std::optional<content::WebContents::ScopedIgnoreInputEvents>
       scoped_ignore_input_events_;
+
+  std::unique_ptr<TabDialogWidgetObserver> tab_dialog_widget_observer_;
 };
 
 }  // namespace tabs
diff --git a/chrome/browser/ui/tabs/tab_dialog_manager.cc b/chrome/browser/ui/tabs/tab_dialog_manager.cc
index 70d7eab5..2a53e6a5 100644
--- a/chrome/browser/ui/tabs/tab_dialog_manager.cc
+++ b/chrome/browser/ui/tabs/tab_dialog_manager.cc
@@ -10,13 +10,16 @@
 #include "base/functional/callback.h"
 #include "base/memory/ptr_util.h"
 #include "base/ranges/algorithm.h"
+#include "base/scoped_observation.h"
 #include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
 #include "chrome/browser/ui/tabs/public/tab_features.h"
 #include "chrome/browser/ui/tabs/public/tab_interface.h"
 #include "components/back_forward_cache/back_forward_cache_disable.h"
+#include "components/web_modal/web_contents_modal_dialog_host.h"
 #include "content/public/browser/back_forward_cache.h"
 #include "content/public/browser/navigation_handle.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
+#include "ui/gfx/geometry/point.h"
 #include "ui/gfx/native_widget_types.h"
 #include "ui/views/widget/native_widget.h"
 #include "ui/views/widget/widget.h"
@@ -30,15 +33,43 @@
 
 namespace tabs {
 
+class TabDialogWidgetObserver : public views::WidgetObserver {
+ public:
+  TabDialogWidgetObserver(TabDialogManager* tab_dialog_manager,
+                          views::Widget* widget);
+  TabDialogWidgetObserver(const TabDialogWidgetObserver&) = delete;
+  TabDialogWidgetObserver& operator=(const TabDialogWidgetObserver&) = delete;
+  ~TabDialogWidgetObserver() override = default;
+
+ private:
+  // Overridden from WidgetObserver:
+  void OnWidgetDestroyed(views::Widget* widget) override;
+
+  raw_ptr<TabDialogManager> tab_dialog_manager_ = nullptr;
+  base::ScopedObservation<views::Widget, views::WidgetObserver>
+      tab_dialog_scoped_observation_{this};
+};
+
+TabDialogWidgetObserver::TabDialogWidgetObserver(
+    TabDialogManager* tab_dialog_manager,
+    views::Widget* widget)
+    : tab_dialog_manager_(tab_dialog_manager) {
+  tab_dialog_scoped_observation_.Observe(widget);
+}
+
+void TabDialogWidgetObserver::OnWidgetDestroyed(views::Widget* widget) {
+  tab_dialog_scoped_observation_.Reset();
+  tab_dialog_manager_->WidgetDestroyed(widget);
+}
+
 namespace {
 
 gfx::Rect GetModalDialogBounds(views::Widget* widget,
-                               views::Widget* host_widget,
+                               BrowserWindowInterface* host_browser_window,
                                const gfx::Size& size) {
-  gfx::Size host_widget_size = host_widget->GetWindowBoundsInScreen().size();
   gfx::Point position =
-      gfx::Point((host_widget_size.width() - size.width()) / 2,
-                 (host_widget_size.height() - size.height()) / 2);
+      host_browser_window->GetWebContentsModalDialogHostForWindow()
+          ->GetDialogPosition(size);
   // Align the first row of pixels inside the border. This is the apparent top
   // of the dialog.
   position.set_y(position.y() -
@@ -48,7 +79,7 @@
 }
 
 void UpdateModalDialogPosition(views::Widget* widget,
-                               views::Widget* host_widget,
+                               BrowserWindowInterface* host_browser_window,
                                const gfx::Size& size) {
   // Do not forcibly update the dialog widget position if it is being dragged.
   if (widget->HasCapture()) {
@@ -59,26 +90,29 @@
   // size. This can happen on MacViews under the Cocoa browser where the window
   // modal dialogs are displayed as sheets, and their position is managed by a
   // ConstrainedWindowSheetController instance.
-  if (!host_widget) {
+  if (!host_browser_window->TopContainer()->GetWidget()) {
     widget->SetSize(size);
     return;
   }
 
-  widget->SetBounds(GetModalDialogBounds(widget, host_widget, size));
+  widget->SetBounds(GetModalDialogBounds(widget, host_browser_window, size));
 }
 
-void ConfigureDesiredBoundsDelegate(views::Widget* widget,
-                                    views::Widget* host_widget) {
+void ConfigureDesiredBoundsDelegate(
+    views::Widget* widget,
+    BrowserWindowInterface* host_browser_window) {
   views::WidgetDelegate* delegate = widget->widget_delegate();
   // TODO(kylixrd): Audit other usages of this API and determine whether to make
   // it exclusive for use here. Currently used in BubbleDialogDelegate and
   // shouldn't ever be used for a tab-modal dialog.
   delegate->set_desired_bounds_delegate(base::BindRepeating(
-      [](views::Widget* widget, views::Widget* host_widget) -> gfx::Rect {
+      [](views::Widget* widget,
+         BrowserWindowInterface* host_browser_window) -> gfx::Rect {
         return GetModalDialogBounds(
-            widget, host_widget, widget->GetRootView()->GetPreferredSize({}));
+            widget, host_browser_window,
+            widget->GetRootView()->GetPreferredSize({}));
       },
-      widget, host_widget));
+      widget, host_browser_window));
 }
 
 }  // namespace
@@ -112,15 +146,19 @@
 void TabDialogManager::ShowDialogAndBlockTabInteraction(views::Widget* widget) {
   CHECK(tab_interface_->CanShowModalUI());
   widget_ = widget->GetWeakPtr();
-  ConfigureDesiredBoundsDelegate(
-      widget_.get(),
-      tab_interface_->GetBrowserWindowInterface()->TopContainer()->GetWidget());
+  ConfigureDesiredBoundsDelegate(widget_.get(),
+                                 tab_interface_->GetBrowserWindowInterface());
+  UpdateModalDialogPosition(widget_.get(),
+                            tab_interface_->GetBrowserWindowInterface(),
+                            widget_->GetRootView()->GetPreferredSize({}));
   widget_->SetNativeWindowProperty(
       views::kWidgetIdentifierKey,
       const_cast<void*>(
           constrained_window::kConstrainedWindowWidgetIdentifier));
   scoped_ignore_input_events_ =
       tab_interface_->GetContents()->IgnoreInputEvents(std::nullopt);
+  tab_dialog_widget_observer_ =
+      std::make_unique<TabDialogWidgetObserver>(this, widget_.get());
   if (tab_interface_->IsActivated()) {
     widget_->Show();
   }
@@ -133,14 +171,20 @@
   ShowDialogAndBlockTabInteraction(widget.get());
   return widget;
 }
+
 void TabDialogManager::CloseDialog() {
   if (widget_) {
-    scoped_ignore_input_events_.reset();
     widget_->Close();
     widget_.reset();
   }
 }
 
+void TabDialogManager::WidgetDestroyed(views::Widget* widget) {
+  CHECK_EQ(widget, widget_.get());
+  tab_dialog_widget_observer_.reset();
+  scoped_ignore_input_events_.reset();
+}
+
 void TabDialogManager::DidFinishNavigation(
     content::NavigationHandle* navigation_handle) {
   if (!navigation_handle->IsInPrimaryMainFrame() ||
@@ -172,9 +216,7 @@
 void TabDialogManager::TabDidEnterForeground(TabInterface* tab_interface) {
   if (widget_) {
     UpdateModalDialogPosition(widget_.get(),
-                              tab_interface_->GetBrowserWindowInterface()
-                                  ->TopContainer()
-                                  ->GetWidget(),
+                              tab_interface_->GetBrowserWindowInterface(),
                               widget_->GetRootView()->GetPreferredSize({}));
     widget_->SetVisible(true);
   }
diff --git a/chrome/browser/ui/views/autofill/address_sign_in_promo_view.cc b/chrome/browser/ui/views/autofill/address_sign_in_promo_view.cc
index 0bc0c57..f3b67ec5 100644
--- a/chrome/browser/ui/views/autofill/address_sign_in_promo_view.cc
+++ b/chrome/browser/ui/views/autofill/address_sign_in_promo_view.cc
@@ -23,9 +23,6 @@
   SetButtons(static_cast<int>(ui::mojom::DialogButton::kNone));
   SetTitle(IDS_AUTOFILL_SIGNIN_PROMO_TITLE_ADDRESS);
   SetShowCloseButton(true);
-  // TODO(crbug.com/382447697): Change this to focus the full bubble instead of
-  // the close button.
-  SetInitiallyFocusedView(this);
 
   SetLayoutManager(std::make_unique<views::BoxLayout>(
       views::BoxLayout::Orientation::kVertical, gfx::Insets(),
@@ -34,22 +31,10 @@
   set_fixed_width(views::LayoutProvider::Get()->GetDistanceMetric(
       views::DISTANCE_BUBBLE_PREFERRED_WIDTH));
 
-  // Add an accessibility alert view first so that it does not overlap with
-  // any other child view.
-  views::View* accessibility_alert =
-      AddChildView(std::make_unique<views::View>());
-
   // Show the sign in promo.
-  auto sign_in_promo = std::make_unique<AutofillBubbleSignInPromoView>(
+  AddChildView(std::make_unique<AutofillBubbleSignInPromoView>(
       web_contents, signin_metrics::AccessPoint::ACCESS_POINT_ADDRESS_BUBBLE,
-      std::move(move_address_callback));
-  AddChildView(std::move(sign_in_promo));
-
-  // Notify the screen reader that the bubble changed.
-  views::ViewAccessibility& ax = accessibility_alert->GetViewAccessibility();
-  ax.SetRole(ax::mojom::Role::kAlert);
-  ax.SetName(GetWindowTitle(), ax::mojom::NameFrom::kAttribute);
-  accessibility_alert->NotifyAccessibilityEvent(ax::mojom::Event::kAlert, true);
+      std::move(move_address_callback)));
 }
 
 AddressSignInPromoView::~AddressSignInPromoView() = default;
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.cc b/chrome/browser/ui/views/profiles/profile_menu_view.cc
index 21e57abb..06f2c90 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view.cc
+++ b/chrome/browser/ui/views/profiles/profile_menu_view.cc
@@ -1012,10 +1012,18 @@
       !identity_manager->GetExtendedAccountInfoForAccountsWithRefreshToken()
            .empty();
 
+  int message_id = IDS_PROFILE_MENU_OPEN_ACCOUNT_SETTINGS;
+  const gfx::VectorIcon* icon = &vector_icons::kSettingsChromeRefreshIcon;
   if (switches::IsImprovedSigninUIOnDesktopEnabled()) {
     if (!profile->GetPrefs()->GetBoolean(prefs::kSigninAllowed)) {
       should_show_settings_button = true;
     }
+    if (signin_util::GetSignedInState(identity_manager) ==
+        signin_util::SignedInState::kSyncing) {
+      // Indicates clearly that Sync is ON.
+      message_id = IDS_PROFILES_OPEN_SYNC_SETTINGS_BUTTON;
+      icon = &kSyncChromeRefreshIcon;
+    }
   } else {
     if (identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync)) {
       // Do not show if sync is enabled with the legacy design, because there is
@@ -1029,10 +1037,10 @@
   }
 
   AddFeatureButton(
-      l10n_util::GetStringUTF16(IDS_PROFILE_MENU_OPEN_ACCOUNT_SETTINGS),
+      l10n_util::GetStringUTF16(message_id),
       base::BindRepeating(&ProfileMenuView::OnSyncSettingsButtonClicked,
                           base::Unretained(this)),
-      vector_icons::kSettingsChromeRefreshIcon);
+      *icon);
 }
 
 void ProfileMenuView::MaybeBuildManageGoogleAccountButton() {
diff --git a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
index aa32e8f..8c3784f 100644
--- a/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
+++ b/chrome/browser/ui/webui/chrome_url_data_manager_browsertest.cc
@@ -341,7 +341,6 @@
     "chrome://histograms",
     "chrome://history",
     "chrome://history-clusters-side-panel.top-chrome",
-    "chrome://identity-internals",
     "chrome://indexeddb-internals",
     "chrome://inspect",
     "chrome://internals/session-service",
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
index 609a5fc9..c86664f 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -82,7 +82,6 @@
 #include "chrome/browser/ui/webui/downloads/downloads_ui.h"
 #include "chrome/browser/ui/webui/feedback/feedback_ui.h"
 #include "chrome/browser/ui/webui/history/history_ui.h"
-#include "chrome/browser/ui/webui/identity_internals_ui.h"
 #include "chrome/browser/ui/webui/inspect/inspect_ui.h"
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
 #include "chrome/browser/ui/webui/internals/internals_ui.h"
@@ -291,7 +290,6 @@
   map.AddWebUIConfig(std::make_unique<FeedbackUIConfig>());
   map.AddWebUIConfig(std::make_unique<HistoryUIConfig>());
   map.AddWebUIConfig(std::make_unique<HistoryClustersSidePanelUIConfig>());
-  map.AddWebUIConfig(std::make_unique<IdentityInternalsUIConfig>());
   map.AddWebUIConfig(std::make_unique<InspectUIConfig>());
 #if BUILDFLAG(ENABLE_SESSION_SERVICE)
   map.AddWebUIConfig(std::make_unique<InternalsUIConfig>());
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
index aa9c8b2..b936e3e 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -75,7 +75,6 @@
 #include "chrome/browser/ui/webui/devtools/devtools_ui.h"
 #include "chrome/browser/ui/webui/downloads/downloads_ui.h"
 #include "chrome/browser/ui/webui/history/history_ui.h"
-#include "chrome/browser/ui/webui/identity_internals_ui.h"
 #include "chrome/browser/ui/webui/management/management_ui.h"
 #include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
 #include "chrome/browser/ui/webui/password_manager/password_manager_ui.h"
diff --git a/chrome/browser/ui/webui/identity_internals_ui.cc b/chrome/browser/ui/webui/identity_internals_ui.cc
deleted file mode 100644
index 57d39e48..0000000
--- a/chrome/browser/ui/webui/identity_internals_ui.cc
+++ /dev/null
@@ -1,335 +0,0 @@
-// Copyright 2013 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/identity_internals_ui.h"
-
-#include <memory>
-#include <set>
-#include <string>
-
-#include "base/functional/bind.h"
-#include "base/i18n/time_formatting.h"
-#include "base/memory/raw_ptr.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/values.h"
-#include "chrome/browser/extensions/api/identity/identity_api.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/url_constants.h"
-#include "chrome/grit/generated_resources.h"
-#include "chrome/grit/identity_internals_resources.h"
-#include "chrome/grit/identity_internals_resources_map.h"
-#include "content/public/browser/web_ui.h"
-#include "content/public/browser/web_ui_controller.h"
-#include "content/public/browser/web_ui_data_source.h"
-#include "content/public/browser/web_ui_message_handler.h"
-#include "extensions/browser/extension_registry.h"
-#include "extensions/common/extension_id.h"
-#include "google_apis/gaia/gaia_auth_fetcher.h"
-#include "services/network/public/cpp/shared_url_loader_factory.h"
-
-IdentityInternalsUIConfig::IdentityInternalsUIConfig()
-    : DefaultWebUIConfig(content::kChromeUIScheme,
-                         chrome::kChromeUIIdentityInternalsHost) {}
-
-namespace {
-
-// RevokeToken message parameter offsets.
-const int kRevokeTokenExtensionOffset = 1;
-const int kRevokeTokenTokenOffset = 2;
-
-class IdentityInternalsTokenRevoker;
-
-// Class acting as a controller of the chrome://identity-internals WebUI.
-class IdentityInternalsUIMessageHandler : public content::WebUIMessageHandler {
- public:
-  IdentityInternalsUIMessageHandler();
-  ~IdentityInternalsUIMessageHandler() override;
-
-  // Ensures that a proper clean up happens after a token is revoked. That
-  // includes deleting the |token_revoker|, removing the token from Identity API
-  // cache and updating the UI that the token is gone.
-  void OnTokenRevokerDone(IdentityInternalsTokenRevoker* token_revoker,
-                          const std::string& callback_id);
-
-  // WebUIMessageHandler implementation.
-  void RegisterMessages() override;
-
- private:
-  // Gets the name of an extension referred to by |access_tokens_key| as a
-  // string.
-  const std::string GetExtensionName(
-      const extensions::IdentityTokenCache::AccessTokensKey& access_tokens_key);
-
-  // Gets a list of scopes specified in |token_cache_value| and returns a
-  // base::Value::List containing the scopes.
-  base::Value::List GetScopes(
-      const extensions::IdentityTokenCacheValue& token_cache_value);
-
-  // Gets a status of the access token in |token_cache_value|.
-  std::string GetStatus(
-      const extensions::IdentityTokenCacheValue& token_cache_value);
-
-  // Gets a string representation of an expiration time of the access token in
-  // |token_cache_value|.
-  std::u16string GetExpirationTime(
-      const extensions::IdentityTokenCacheValue& token_cache_value);
-
-  // Converts a pair of |access_tokens_key| and |token_cache_value| to a
-  // base::Value::Dict object with corresponding information.
-  base::Value::Dict GetInfoForToken(
-      const extensions::IdentityTokenCache::AccessTokensKey& access_tokens_key,
-      const extensions::IdentityTokenCacheValue& token_cache_value);
-
-  // Gets all of the tokens stored in IdentityAPI token cache and returns them
-  // to the caller using Javascript callback function
-  // |identity_internals.returnTokens()|.
-  void GetInfoForAllTokens(const base::Value::List& args);
-
-  // Initiates revoking of the token, based on the extension ID and token
-  // passed as entries in the |args| list. Updates the caller of completion
-  // using Javascript callback function |identity_internals.tokenRevokeDone()|.
-  void RevokeToken(const base::Value::List& args);
-
-  // A vector of token revokers that are currently revoking tokens.
-  std::vector<std::unique_ptr<IdentityInternalsTokenRevoker>> token_revokers_;
-};
-
-// Handles the revoking of an access token and helps performing the clean up
-// after it is revoked by holding information about the access token and related
-// extension ID.
-class IdentityInternalsTokenRevoker : public GaiaAuthConsumer {
- public:
-  // Revokes |access_token| from extension with |extension_id|.
-  // |profile| is required for its request context. |consumer| will be
-  // notified when revocation succeeds via |OnTokenRevokerDone()|.
-  IdentityInternalsTokenRevoker(const std::string& extension_id,
-                                const std::string& access_token,
-                                const std::string& callback_id,
-                                Profile* profile,
-                                IdentityInternalsUIMessageHandler* consumer);
-
-  IdentityInternalsTokenRevoker(const IdentityInternalsTokenRevoker&) = delete;
-  IdentityInternalsTokenRevoker& operator=(
-      const IdentityInternalsTokenRevoker&) = delete;
-
-  ~IdentityInternalsTokenRevoker() override;
-
-  // Returns the access token being revoked.
-  const std::string& access_token() const { return access_token_; }
-
-  // Returns the ID of the extension the access token is related to.
-  const extensions::ExtensionId& extension_id() const { return extension_id_; }
-
-  // GaiaAuthConsumer implementation.
-  void OnOAuth2RevokeTokenCompleted(
-      GaiaAuthConsumer::TokenRevocationStatus status) override;
-
- private:
-  // An object used to start a token revoke request.
-  GaiaAuthFetcher fetcher_;
-  // An ID of an extension the access token is related to.
-  const extensions::ExtensionId extension_id_;
-  // The access token to revoke.
-  const std::string access_token_;
-  // The JS callback to resolve when revoking is done.
-  const std::string callback_id_;
-  // An object that needs to be notified once the access token is revoked.
-  raw_ptr<IdentityInternalsUIMessageHandler> consumer_;  // weak.
-};
-
-IdentityInternalsUIMessageHandler::IdentityInternalsUIMessageHandler() =
-    default;
-
-IdentityInternalsUIMessageHandler::~IdentityInternalsUIMessageHandler() =
-    default;
-
-void IdentityInternalsUIMessageHandler::OnTokenRevokerDone(
-    IdentityInternalsTokenRevoker* token_revoker,
-    const std::string& callback_id) {
-  extensions::IdentityAPI* api =
-      extensions::IdentityAPI::GetFactoryInstance()->Get(
-          Profile::FromWebUI(web_ui()));
-  // API can be null in incognito, but then we shouldn't be in this function.
-  // This case is handled because this is called from a renderer process
-  // which could conceivably be compromised.
-  CHECK(api);
-
-  // Remove token from the cache.
-  api->token_cache()->EraseAccessToken(token_revoker->extension_id(),
-                                       token_revoker->access_token());
-
-  // Update view about the token being removed.
-  ResolveJavascriptCallback(base::Value(callback_id),
-                            base::Value(token_revoker->access_token()));
-
-  // Erase the revoker.
-  for (auto iter = token_revokers_.begin(); iter != token_revokers_.end();
-       ++iter) {
-    if (iter->get() == token_revoker) {
-      token_revokers_.erase(iter);
-      return;
-    }
-  }
-  DCHECK(false) << "revoker should have been in the list";
-}
-
-const std::string IdentityInternalsUIMessageHandler::GetExtensionName(
-    const extensions::IdentityTokenCache::AccessTokensKey& access_tokens_key) {
-  const extensions::ExtensionRegistry* registry =
-      extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui()));
-  const extensions::Extension* extension =
-      registry->enabled_extensions().GetByID(access_tokens_key.extension_id);
-  if (!extension) {
-    return std::string();
-  }
-  return extension->name();
-}
-
-base::Value::List IdentityInternalsUIMessageHandler::GetScopes(
-    const extensions::IdentityTokenCacheValue& token_cache_value) {
-  base::Value::List scopes_value;
-  for (const auto& scope : token_cache_value.granted_scopes()) {
-    scopes_value.Append(scope);
-  }
-  return scopes_value;
-}
-
-std::string IdentityInternalsUIMessageHandler::GetStatus(
-    const extensions::IdentityTokenCacheValue& token_cache_value) {
-  switch (token_cache_value.status()) {
-    case extensions::IdentityTokenCacheValue::CACHE_STATUS_REMOTE_CONSENT:
-    case extensions::IdentityTokenCacheValue::
-        CACHE_STATUS_REMOTE_CONSENT_APPROVED:
-      // Fallthrough to NOT FOUND case, as ADVICE, REMOTE_CONSENT and
-      // REMOTE_CONSENT_APPROVED are short lived.
-    case extensions::IdentityTokenCacheValue::CACHE_STATUS_NOTFOUND:
-      return "Not Found";
-    case extensions::IdentityTokenCacheValue::CACHE_STATUS_TOKEN:
-      return "Token Present";
-  }
-  NOTREACHED();
-}
-
-std::u16string IdentityInternalsUIMessageHandler::GetExpirationTime(
-    const extensions::IdentityTokenCacheValue& token_cache_value) {
-  return base::TimeFormatFriendlyDateAndTime(
-      token_cache_value.expiration_time());
-}
-
-base::Value::Dict IdentityInternalsUIMessageHandler::GetInfoForToken(
-    const extensions::IdentityTokenCache::AccessTokensKey& access_tokens_key,
-    const extensions::IdentityTokenCacheValue& token_cache_value) {
-  base::Value::Dict token_data;
-  token_data.Set("extensionId", access_tokens_key.extension_id);
-  token_data.Set("accountId", access_tokens_key.account_id.ToString());
-  token_data.Set("extensionName", GetExtensionName(access_tokens_key));
-  token_data.Set("scopes", GetScopes(token_cache_value));
-  token_data.Set("status", GetStatus(token_cache_value));
-  token_data.Set("accessToken", token_cache_value.token());
-  token_data.Set("expirationTime", GetExpirationTime(token_cache_value));
-  return token_data;
-}
-
-void IdentityInternalsUIMessageHandler::GetInfoForAllTokens(
-    const base::Value::List& args) {
-  const std::string& callback_id = args[0].GetString();
-  CHECK(!callback_id.empty());
-
-  AllowJavascript();
-  base::Value::List results;
-  extensions::IdentityTokenCache::AccessTokensCache tokens;
-  // The API can be null in incognito.
-  extensions::IdentityAPI* api =
-      extensions::IdentityAPI::GetFactoryInstance()->Get(
-          Profile::FromWebUI(web_ui()));
-  if (api) {
-    tokens = api->token_cache()->access_tokens_cache();
-  }
-  for (const auto& key_tokens : tokens) {
-    for (const auto& token : key_tokens.second) {
-      results.Append(GetInfoForToken(key_tokens.first, token));
-    }
-  }
-  ResolveJavascriptCallback(base::Value(callback_id), results);
-}
-
-void IdentityInternalsUIMessageHandler::RegisterMessages() {
-  web_ui()->RegisterMessageCallback(
-      "identityInternalsGetTokens",
-      base::BindRepeating(
-          &IdentityInternalsUIMessageHandler::GetInfoForAllTokens,
-          base::Unretained(this)));
-  web_ui()->RegisterMessageCallback(
-      "identityInternalsRevokeToken",
-      base::BindRepeating(&IdentityInternalsUIMessageHandler::RevokeToken,
-                          base::Unretained(this)));
-}
-
-void IdentityInternalsUIMessageHandler::RevokeToken(
-    const base::Value::List& list) {
-  const std::string& callback_id = list[0].GetString();
-  CHECK(!callback_id.empty());
-  std::string extension_id;
-  std::string access_token;
-  if (!list.empty() && list[kRevokeTokenExtensionOffset].is_string()) {
-    extension_id = list[kRevokeTokenExtensionOffset].GetString();
-  }
-  if (list.size() > kRevokeTokenTokenOffset &&
-      list[kRevokeTokenTokenOffset].is_string()) {
-    access_token = list[kRevokeTokenTokenOffset].GetString();
-  }
-
-  token_revokers_.push_back(std::make_unique<IdentityInternalsTokenRevoker>(
-      extension_id, access_token, callback_id, Profile::FromWebUI(web_ui()),
-      this));
-}
-
-IdentityInternalsTokenRevoker::IdentityInternalsTokenRevoker(
-    const std::string& extension_id,
-    const std::string& access_token,
-    const std::string& callback_id,
-    Profile* profile,
-    IdentityInternalsUIMessageHandler* consumer)
-    : fetcher_(this, gaia::GaiaSource::kChrome, profile->GetURLLoaderFactory()),
-      extension_id_(extension_id),
-      access_token_(access_token),
-      callback_id_(callback_id),
-      consumer_(consumer) {
-  DCHECK(consumer_);
-  fetcher_.StartRevokeOAuth2Token(access_token);
-}
-
-IdentityInternalsTokenRevoker::~IdentityInternalsTokenRevoker() = default;
-
-void IdentityInternalsTokenRevoker::OnOAuth2RevokeTokenCompleted(
-    GaiaAuthConsumer::TokenRevocationStatus status) {
-  consumer_->OnTokenRevokerDone(this, callback_id_);
-}
-
-}  // namespace
-
-IdentityInternalsUI::IdentityInternalsUI(content::WebUI* web_ui)
-    : content::WebUIController(web_ui) {
-  // chrome://identity-internals source.
-  content::WebUIDataSource* html_source =
-      content::WebUIDataSource::CreateAndAdd(
-          Profile::FromWebUI(web_ui), chrome::kChromeUIIdentityInternalsHost);
-
-  // Required resources
-  html_source->AddResourcePaths(kIdentityInternalsResources);
-  html_source->SetDefaultResource(
-      IDR_IDENTITY_INTERNALS_IDENTITY_INTERNALS_HTML);
-
-  html_source->OverrideContentSecurityPolicy(
-      network::mojom::CSPDirectiveName::TrustedTypes,
-      "trusted-types static-types;");
-  html_source->OverrideContentSecurityPolicy(
-      network::mojom::CSPDirectiveName::ScriptSrc,
-      "script-src chrome://resources chrome://webui-test 'self';");
-
-  web_ui->AddMessageHandler(
-      std::make_unique<IdentityInternalsUIMessageHandler>());
-}
-
-IdentityInternalsUI::~IdentityInternalsUI() = default;
diff --git a/chrome/browser/ui/webui/identity_internals_ui.h b/chrome/browser/ui/webui/identity_internals_ui.h
deleted file mode 100644
index bb7a173..0000000
--- a/chrome/browser/ui/webui/identity_internals_ui.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2013 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_H_
-#define CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_H_
-
-#include "content/public/browser/web_ui_controller.h"
-#include "content/public/browser/webui_config.h"
-
-class IdentityInternalsUI;
-
-class IdentityInternalsUIConfig
-    : public content::DefaultWebUIConfig<IdentityInternalsUI> {
- public:
-  IdentityInternalsUIConfig();
-};
-
-// The WebUI for chrome://identity-internals
-class IdentityInternalsUI : public content::WebUIController {
- public:
-  explicit IdentityInternalsUI(content::WebUI* web_ui);
-
-  IdentityInternalsUI(const IdentityInternalsUI&) = delete;
-  IdentityInternalsUI& operator=(const IdentityInternalsUI&) = delete;
-
-  ~IdentityInternalsUI() override;
-};
-
-#endif  // CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_H_
diff --git a/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc b/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
deleted file mode 100644
index c0385f8..0000000
--- a/chrome/browser/ui/webui/identity_internals_ui_browsertest.cc
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2013 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/identity_internals_ui_browsertest.h"
-
-#include "base/strings/string_number_conversions.h"
-#include "base/time/time.h"
-#include "chrome/browser/extensions/api/identity/extension_token_key.h"
-#include "chrome/browser/extensions/api/identity/identity_api.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-
-namespace {
-
-const char kChromeWebStoreId[] = "ahfgeienlihckogmohjhadlkjgocpleb";
-const int kOneHour = 3600;
-}  // namespace
-
-IdentityInternalsUIBrowserTest::IdentityInternalsUIBrowserTest() = default;
-
-IdentityInternalsUIBrowserTest::~IdentityInternalsUIBrowserTest() = default;
-
-void IdentityInternalsUIBrowserTest::SetupTokenCache(int number_of_tokens) {
-  for (int number = 0; number < number_of_tokens; ++number) {
-    const std::string token_number = base::NumberToString(number);
-    std::string token_id("token");
-    token_id += token_number;
-    std::string extension_id("extension");
-    extension_id += token_number;
-    std::string gaia_id("account");
-    gaia_id += token_number;
-    std::vector<std::string> scopes;
-    scopes.emplace_back("scope_1_" + token_number);
-    scopes.emplace_back("scope_2_" + token_number);
-    AddTokenToCache(token_id, extension_id, gaia_id, scopes, kOneHour);
-  }
-}
-
-void IdentityInternalsUIBrowserTest::SetupTokenCacheWithStoreApp() {
-  std::vector<std::string> scopes;
-  scopes.emplace_back("store_scope1");
-  scopes.emplace_back("store_scope2");
-  AddTokenToCache("store_token", kChromeWebStoreId, "store_account", scopes,
-                  kOneHour);
-}
-
-void IdentityInternalsUIBrowserTest::AddTokenToCache(
-    const std::string& token_id,
-    const std::string& extension_id,
-    const std::string& gaia_id,
-    const std::vector<std::string>& scopes,
-    int time_to_live) {
-  std::set<std::string> scopes_set(scopes.begin(), scopes.end());
-  extensions::IdentityTokenCacheValue token_cache_value =
-      extensions::IdentityTokenCacheValue::CreateToken(
-          token_id, scopes_set, base::Seconds(time_to_live));
-
-  CoreAccountInfo user_info;
-  user_info.account_id = CoreAccountId::FromGaiaId(gaia_id);
-  user_info.gaia = gaia_id;
-  user_info.email = "user_email_" + gaia_id + "@foo.com";
-
-  extensions::ExtensionTokenKey key(extension_id, user_info, scopes_set);
-  extensions::IdentityAPI::GetFactoryInstance()
-      ->Get(browser()->profile())
-      ->token_cache()
-      ->SetToken(key, token_cache_value);
-}
diff --git a/chrome/browser/ui/webui/identity_internals_ui_browsertest.h b/chrome/browser/ui/webui/identity_internals_ui_browsertest.h
deleted file mode 100644
index 5bf431d..0000000
--- a/chrome/browser/ui/webui/identity_internals_ui_browsertest.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2013 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_BROWSERTEST_H_
-#define CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_BROWSERTEST_H_
-
-#include <string>
-#include <vector>
-
-#include "chrome/test/base/web_ui_mocha_browser_test.h"
-
-class IdentityInternalsUIBrowserTest : public WebUIMochaBrowserTest {
- public:
-  IdentityInternalsUIBrowserTest();
-
-  IdentityInternalsUIBrowserTest(const IdentityInternalsUIBrowserTest&) =
-      delete;
-  IdentityInternalsUIBrowserTest& operator=(
-      const IdentityInternalsUIBrowserTest&) = delete;
-
-  ~IdentityInternalsUIBrowserTest() override;
-
- protected:
-  void SetupTokenCache(int number_of_tokens);
-
-  void SetupTokenCacheWithStoreApp();
-
- private:
-  void AddTokenToCache(const std::string& token_id,
-                       const std::string& extension_id,
-                       const std::string& gaia_id,
-                       const std::vector<std::string>& scopes,
-                       int time_to_live);
-};
-
-#endif  // CHROME_BROWSER_UI_WEBUI_IDENTITY_INTERNALS_UI_BROWSERTEST_H_
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
index 009faaaf..01a0145f 100644
--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_ui.cc
@@ -44,8 +44,9 @@
   auto* source = content::WebUIDataSource::CreateAndAdd(
       Profile::FromWebUI(web_ui), chrome::kChromeUIPrivacySandboxDialogHost);
 
-  webui::SetupWebUIDataSource(source, kPrivacySandboxResources,
-                              IDR_PRIVACY_SANDBOX_PRIVACY_SANDBOX_DIALOG_HTML);
+  webui::SetupWebUIDataSource(
+      source, kPrivacySandboxResources,
+      IDR_PRIVACY_SANDBOX_PRIVACY_SANDBOX_NOTICE_DIALOG_HTML);
 
   // Allow the chrome-untrusted://privacy-sandbox-dialog/privacy-policy page to
   // load as an iframe in the page.
@@ -77,51 +78,6 @@
       IDR_PRIVACY_SANDBOX_PRIVACY_SANDBOX_NOTICE_RESTRICTED_DIALOG_HTML);
 
   static constexpr webui::LocalizedString kStrings[] = {
-      {"privacySandboxTitle", IDS_SETTINGS_PRIVACY_SANDBOX_TITLE},
-      {"consentTitle", IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_TITLE},
-      {"consentSubtitle", IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_SUBTITLE},
-      {"consentBodyHeader1", IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_1},
-      {"consentBodyDescription1",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_1},
-      {"consentBodyHeader2", IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_HEADER_2},
-      {"consentBodyDescription2",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BODY_DESCRIPTION_2},
-      {"consentLearnMoreLabel",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_LABEL},
-      {"consentBottomSummary",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_BOTTOM_SUMMARY},
-      {"consentLearnMoreSection1Header",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_HEADER},
-      {"consentLearnMoreSection1BulletPoint1",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_1},
-      {"consentLearnMoreSection1BulletPoint2",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_2},
-      {"consentLearnMoreSection1BulletPoint3",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_1_BULLET_POINT_3},
-      {"consentLearnMoreSection2Header",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_HEADER},
-      {"consentLearnMoreSection2BulletPoint1",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_1},
-      {"consentLearnMoreSection2BulletPoint2",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_2},
-      {"consentLearnMoreSection2BulletPoint3",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_LEARN_MORE_SECTION_2_BULLET_POINT_3},
-      {"consentAcceptButton", IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_ACCEPT_BUTTON},
-      {"consentDeclineButton",
-       IDS_PRIVACY_SANDBOX_DIALOG_CONSENT_DECLINE_BUTTON},
-      {"noticeSubtitle", IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_SUBTITLE},
-      {"noticeBodyHeader1", IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_1},
-      {"noticeBodyDescription1",
-       IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_1},
-      {"noticeBodyHeader2", IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_HEADER_2},
-      {"noticeBodyDescription2",
-       IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BODY_DESCRIPTION_2},
-      {"noticeBottomSummary", IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_BOTTOM_SUMMARY},
-      {"noticeAcknowledgeButton",
-       IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_ACKNOWLEDGE_BUTTON},
-      {"noticeOpenSettingsButton",
-       IDS_PRIVACY_SANDBOX_DIALOG_NOTICE_OPEN_SETTINGS_BUTTON},
-
       {"adPrivacyPageTitle", IDS_SETTINGS_AD_PRIVACY_PAGE_TITLE},
 
       // Strings for the consent step of the combined dialog (kM1Consent).
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index 2a6e1f59..786c1cf1 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1736121387-8751dfc419c6202923916413867178215066cb95-3f7a0664838c4800231a7ac65ddeae542de0f4c2.profdata
+chrome-android32-main-1736164015-a2e4e97014cc2d6347bed764c6acf3dda22c1ebc-9036501137b419fc1fe11d418547f3ae0bcd7d94.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 41affdf4..8e82440 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1736134916-b2df95d437c0ad9a9cc400278b9bd079386b4425-d1b3471f0def2a33b14c2ff994c9dd732f665b27.profdata
+chrome-android64-main-1736173361-186c1a765eae389d12d2909dd7d00c34e8337b8e-5435124828be2b05da46b94530bb88869181eb85.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index ee18135f..d4adc36 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1736121387-cddeb30d029927c1a144289d8673b424a481006e-3f7a0664838c4800231a7ac65ddeae542de0f4c2.profdata
+chrome-linux-main-1736164015-0f903cdba3e02334be4204dacea103b94405707c-9036501137b419fc1fe11d418547f3ae0bcd7d94.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index 13f56d4c..c8f2cb3ad 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1736135741-b251be4942bbabcf6662b7616242ce2996af8147-f4955f3c3b8bc3f3f3c15b39da05d9d7063d9aeb.profdata
+chrome-mac-arm-main-1736171909-4cdb932f3ef2559993ccb2385897099eb9c20087-86d72d0261b16de5ffcab9f1284fb7956766488e.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index d8c2085..2aedf2f 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1736098906-09b9dd61082e7600356f4bec99b62ebd1c848c23-33373bb9b02131e92a14dea7a5719eff4bd2d253.profdata
+chrome-mac-main-1736164015-a8c200e8881226c479fe1c4fffda409bc93d83f4-9036501137b419fc1fe11d418547f3ae0bcd7d94.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index bcb979c..286c5c7 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1736121387-effff0437ebf306721ebeecfae3987ca6a497b3a-3f7a0664838c4800231a7ac65ddeae542de0f4c2.profdata
+chrome-win-arm64-main-1736164015-37f22b2e0fafc48030c529e34802b4bae4dbc11b-9036501137b419fc1fe11d418547f3ae0bcd7d94.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index 945055d6..187b090 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1736098906-778c3036db29030f9eb01174fd19d073df88fb0e-33373bb9b02131e92a14dea7a5719eff4bd2d253.profdata
+chrome-win32-main-1736153710-5077d38cc01bd6e37e0ec45691f909dc2fb9cc0e-fa7d5850ace87798e8c16c93268ad0cfb35aca8c.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index 8640ad92..e5e4ed80 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1736110736-c9a065ed12aeef7ca7fc2f498c4ab9fff40af67c-788208e24fea880703644b5bcd36e5a49407f115.profdata
+chrome-win64-main-1736142401-3f611aa3dad57eab20c7d0d4b75170a2dfcf87fd-c8f265f6c7bdc2efe5221925909c82fa4a421a95.profdata
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
index 6965b14..42976a9 100644
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -175,7 +175,6 @@
         "$root_gen_dir/chrome/feedback_resources.pak",
         "$root_gen_dir/chrome/gaia_auth_host_resources.pak",
         "$root_gen_dir/chrome/history_resources.pak",
-        "$root_gen_dir/chrome/identity_internals_resources.pak",
         "$root_gen_dir/chrome/inline_login_resources.pak",
         "$root_gen_dir/chrome/inspect_resources.pak",
         "$root_gen_dir/chrome/key_value_pair_viewer_shared_resources.pak",
diff --git a/chrome/common/extensions/manifest_handlers/content_scripts_manifest_unittest.cc b/chrome/common/extensions/manifest_handlers/content_scripts_manifest_unittest.cc
index 8cece615..dda4bd5 100644
--- a/chrome/common/extensions/manifest_handlers/content_scripts_manifest_unittest.cc
+++ b/chrome/common/extensions/manifest_handlers/content_scripts_manifest_unittest.cc
@@ -14,7 +14,7 @@
 #include "extensions/common/file_util.h"
 #include "extensions/common/manifest_constants.h"
 #include "extensions/common/manifest_handlers/content_scripts_handler.h"
-#include "extensions/common/script_constants.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/switches.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -129,27 +129,28 @@
   ASSERT_EQ(7u, user_scripts.size());
 
   // The first script specifies `"match_origin_as_fallback": true`.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kAlways,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kAlways,
             user_scripts[0]->match_origin_as_fallback());
   // The second specifies `"match_origin_as_fallback": false`.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kNever,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kNever,
             user_scripts[1]->match_origin_as_fallback());
   // The third specifies `"match_about_blank": true`.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
-            user_scripts[2]->match_origin_as_fallback());
+  EXPECT_EQ(
+      mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
+      user_scripts[2]->match_origin_as_fallback());
   // The fourth specifies `"match_about_blank": false`.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kNever,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kNever,
             user_scripts[3]->match_origin_as_fallback());
   // The fifth specifies `"match_origin_as_fallback": false` *and*
   // `"match_about_blank": true`. "match_origin_as_fallback" takes precedence.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kNever,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kNever,
             user_scripts[4]->match_origin_as_fallback());
   // The sixth specifies `"match_origin_as_fallback": true` *and*
   // `"match_about_blank": false`. "match_origin_as_fallback" takes precedence.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kAlways,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kAlways,
             user_scripts[5]->match_origin_as_fallback());
   // The seventh and final does not specify a value for either.
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kNever,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kNever,
             user_scripts[6]->match_origin_as_fallback());
 }
 
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index 0597746..44735afd 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -2207,11 +2207,15 @@
 // the user first.
 inline constexpr char kOfficeFilesAlwaysMoveToDrive[] =
     "filebrowser.office.always_move_to_drive";
+inline constexpr char kOfficeFilesAlwaysMoveToDriveSyncable[] =
+    "filebrowser.office.always_move_to_drive_syncable";
 
 // Whether we should always move office files to OneDrive without prompting the
 // user first.
 inline constexpr char kOfficeFilesAlwaysMoveToOneDrive[] =
     "filebrowser.office.always_move_to_onedrive";
+inline constexpr char kOfficeFilesAlwaysMoveToOneDriveSyncable[] =
+    "filebrowser.office.always_move_to_onedrive_syncable";
 
 // Whether the move confirmation dialog has been shown before for Google Drive.
 inline constexpr char kOfficeMoveConfirmationShownForDrive[] =
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 8b24386..7a3db410 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -800,8 +800,6 @@
       "../browser/ui/views/performance_controls/test_support/discard_mock_navigation_handle.cc",
       "../browser/ui/views/performance_controls/test_support/discard_mock_navigation_handle.h",
       "../browser/ui/views/performance_controls/test_support/memory_saver_unit_test_mixin.h",
-      "../browser/ui/webui/identity_internals_ui_browsertest.cc",
-      "../browser/ui/webui/identity_internals_ui_browsertest.h",
       "../browser/ui/webui/net_internals/net_internals_ui_browsertest.cc",
       "../browser/ui/webui/net_internals/net_internals_ui_browsertest.h",
       "../browser/ui/webui/test_support/webui_interactive_test_mixin.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/signin/SigninTestRule.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/signin/SigninTestRule.java
index 9fea760..bcb34a7 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/signin/SigninTestRule.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/signin/SigninTestRule.java
@@ -71,7 +71,7 @@
     }
 
     /**
-     * Adds and signs in an account with the default name without sync consent.
+     * Adds and signs in an account with the default name.
      *
      * @deprecated Use the version with {@link AccountInfo}.
      */
@@ -84,7 +84,7 @@
         return coreAccountInfo;
     }
 
-    /** Adds and signs in with the provided account without sync consent. */
+    /** Adds and signs in with the provided account. */
     public void addAccountThenSignin(AccountInfo accountInfo) {
         assert !mIsSignedIn : "An account is already signed in!";
         addAccount(accountInfo);
@@ -92,6 +92,14 @@
         mIsSignedIn = true;
     }
 
+    /** Adds and signs in with the provided account and opts into history sync. */
+    public void addAccountThenSigninAndEnableHistorySync(AccountInfo accountInfo) {
+        assert !mIsSignedIn : "An account is already signed in!";
+        addAccount(accountInfo);
+        SigninTestUtil.signinAndEnableHistorySync(accountInfo);
+        mIsSignedIn = true;
+    }
+
     /** Adds and signs in an account with the default name and enables sync. */
     public CoreAccountInfo addTestAccountThenSigninAndEnableSync() {
         return addTestAccountThenSigninAndEnableSync(
@@ -112,15 +120,6 @@
         return coreAccountInfo;
     }
 
-    /** Adds and signs in an account with the specified name and enables sync. */
-    public void addAccountThenSigninAndEnableSync(AccountInfo accountInfo) {
-        assert !mIsSignedIn : "An account is already signed in!";
-        addAccount(accountInfo);
-        SigninTestUtil.signinAndEnableSync(
-                accountInfo, SyncTestUtil.getSyncServiceForLastUsedProfile());
-        mIsSignedIn = true;
-    }
-
     /** Waits for the account corresponding to coreAccountInfo to finish signin. */
     public void waitForSignin(CoreAccountInfo coreAccountInfo) {
         CriteriaHelper.pollUiThread(
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index b42b30e3..c276be57 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -42,7 +42,6 @@
     "history/history_supervised_user_browsertest.cc",
     "history/history_ui_browsertest.cc",
     "history_clusters_internals/history_clusters_internals_browsertest.cc",
-    "identity_internals/identity_internals_browsertest.cc",
     "inspect/inspect_ui_browsertest.cc",
     "js/js_browsertest.cc",
     "key_value_pair_viewer/key_value_pair_viewer_browsertest.cc",
@@ -445,7 +444,6 @@
     "histograms:build_grdp",
     "history:build_grdp",
     "history_clusters_internals:build_grdp",
-    "identity_internals:build_grdp",
     "inspect:build_grdp",
     "js:build_grdp",
     "key_value_pair_viewer:build_grdp",
@@ -500,7 +498,6 @@
     "$target_gen_dir/histograms/resources.grdp",
     "$target_gen_dir/history/resources.grdp",
     "$target_gen_dir/history_clusters_internals/resources.grdp",
-    "$target_gen_dir/identity_internals/resources.grdp",
     "$target_gen_dir/inspect/resources.grdp",
     "$target_gen_dir/js/resources.grdp",
     "$target_gen_dir/key_value_pair_viewer/resources.grdp",
diff --git a/chrome/test/data/webui/history/history_ui_browsertest.cc b/chrome/test/data/webui/history/history_ui_browsertest.cc
index 97db19b..7d9465a0d 100644
--- a/chrome/test/data/webui/history/history_ui_browsertest.cc
+++ b/chrome/test/data/webui/history/history_ui_browsertest.cc
@@ -171,7 +171,8 @@
   RunTestCase("AnnouncesExactMatches");
 }
 
-IN_PROC_BROWSER_TEST_F(HistoryListTest, ScrollingLoadsMore) {
+// TODO(crbug.com/387491448): Test is flaky
+IN_PROC_BROWSER_TEST_F(HistoryListTest, DISABLED_ScrollingLoadsMore) {
   RunTestCase("ScrollingLoadsMore");
 }
 
diff --git a/chrome/test/data/webui/identity_internals/BUILD.gn b/chrome/test/data/webui/identity_internals/BUILD.gn
deleted file mode 100644
index 5df0717..0000000
--- a/chrome/test/data/webui/identity_internals/BUILD.gn
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2023 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("../build_webui_tests.gni")
-
-build_webui_tests("build") {
-  files = [ "identity_internals_test.ts" ]
-
-  ts_deps = [ "//ui/webui/resources/js:build_ts" ]
-}
diff --git a/chrome/test/data/webui/identity_internals/identity_internals_browsertest.cc b/chrome/test/data/webui/identity_internals/identity_internals_browsertest.cc
deleted file mode 100644
index f82c5293..0000000
--- a/chrome/test/data/webui/identity_internals/identity_internals_browsertest.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/strings/stringprintf.h"
-#include "chrome/browser/ui/webui/identity_internals_ui_browsertest.h"
-#include "chrome/common/webui_url_constants.h"
-#include "chrome/test/base/web_ui_mocha_browser_test.h"
-#include "content/public/test/browser_test.h"
-
-class BaseIdentityInternalsWebUITest : public IdentityInternalsUIBrowserTest {
- protected:
-  BaseIdentityInternalsWebUITest() {
-    set_test_loader_host(chrome::kChromeUIIdentityInternalsHost);
-  }
-
-  void RunTestCase(const std::string& testSuite, const std::string& testCase) {
-    RunTestWithoutTestLoader(
-        "identity_internals/identity_internals_test.js",
-        base::StringPrintf("runMochaTest('%s', '%s');", testSuite.c_str(),
-                           testCase.c_str()));
-  }
-};
-
-// Test verifying chrome://identity-internals Web UI when the token cache is
-// empty.
-IN_PROC_BROWSER_TEST_F(BaseIdentityInternalsWebUITest, emptyTokenCache) {
-  RunTestCase("NoToken", "emptyTokenCache");
-}
-
-using IdentityInternalsSingleTokenWebUITest = BaseIdentityInternalsWebUITest;
-
-// Test for listing a token cache with a single token. It uses a known extension
-// - the Chrome Web Store, in order to check the extension name.
-IN_PROC_BROWSER_TEST_F(IdentityInternalsSingleTokenWebUITest, getAllTokens) {
-  SetupTokenCacheWithStoreApp();
-  RunTestCase("SingleToken", "getAllTokens");
-}
-
-// Test ensuring the getters on the BaseIdentityInternalsWebUITest work
-// correctly. They are implemented on the child class, because the parent does
-// not have any tokens to display.
-IN_PROC_BROWSER_TEST_F(IdentityInternalsSingleTokenWebUITest, verifyGetters) {
-  SetupTokenCacheWithStoreApp();
-  RunTestCase("SingleToken", "verifyGetters");
-}
-
-using IdentityInternalsMultipleTokensWebUITest = BaseIdentityInternalsWebUITest;
-
-// Test for listing a token cache with multiple tokens. Names of the extensions
-// are empty, because extensions are faked, and not present in the extension
-// service.
-IN_PROC_BROWSER_TEST_F(IdentityInternalsMultipleTokensWebUITest, getAllTokens) {
-  SetupTokenCache(2);
-  RunTestCase("MultipleTokens", "getAllTokens");
-}
-
-IN_PROC_BROWSER_TEST_F(IdentityInternalsMultipleTokensWebUITest, revokeToken) {
-  SetupTokenCache(2);
-  RunTestCase("MultipleTokens", "revokeToken");
-}
diff --git a/chrome/test/data/webui/identity_internals/identity_internals_test.ts b/chrome/test/data/webui/identity_internals/identity_internals_test.ts
deleted file mode 100644
index 969dca0..0000000
--- a/chrome/test/data/webui/identity_internals/identity_internals_test.ts
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import {getRequiredElement} from 'chrome://resources/js/util.js';
-import {assertEquals, assertLT} from 'chrome://webui-test/chai_assert.js';
-
-/**
- * Gets all of the token entries on the page.
- * @return Elements displaying token information.
- */
-function getTokens() {
-  return getRequiredElement('token-list')
-      .querySelectorAll<HTMLElement>('token-list-item');
-}
-
-/**
- * Gets the expiration time displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- * @return Expiration date of the token.
- */
-function getExpirationTime(tokenEntry: HTMLElement): number {
-  // Full-date format has 'at' between date and time in en-US, but
-  // ECMAScript's Date.parse cannot grok it.
-  return Date.parse(
-      tokenEntry.shadowRoot!.querySelector('.expiration-time')!.textContent!
-          .replace(' at ', ' ')
-          .replace('\u202f', ' '));
-}
-
-/**
- * Gets the extension id displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getExtensionId(tokenEntry: HTMLElement): string {
-  return tokenEntry.shadowRoot!.querySelector('.extension-id')!.textContent!;
-}
-
-/**
- * Gets the account id displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getAccountId(tokenEntry: HTMLElement): string {
-  return tokenEntry.shadowRoot!.querySelector('.account-id')!.textContent!;
-}
-
-/**
- * Gets the extension name displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getExtensionName(tokenEntry: HTMLElement): string {
-  return tokenEntry.shadowRoot!.querySelector('.extension-name')!.textContent!;
-}
-
-/**
- * Gets the revoke button of the token entry.
- * @param tokenEntry Display element holding token information.
- */
-function getRevokeButton(tokenEntry: HTMLElement): HTMLButtonElement {
-  return tokenEntry.shadowRoot!.querySelector<HTMLButtonElement>(
-      '.revoke-button')!;
-}
-
-/**
- * Gets the token ID displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getAccessToken(tokenEntry: HTMLElement): string {
-  return tokenEntry.shadowRoot!.querySelector('.access-token')!.textContent!;
-}
-
-/**
- * Gets the token status displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getTokenStatus(tokenEntry: HTMLElement): string {
-  return tokenEntry.shadowRoot!.querySelector('.status')!.textContent!;
-}
-
-/**
- * Gets the token scopes displayed on the page for a given entry.
- * @param tokenEntry Display element holding token information.
- */
-function getScopes(tokenEntry: HTMLElement): string[] {
-  return tokenEntry.shadowRoot!.querySelector('.scope-list')!.innerHTML.split(
-      '<br>');
-}
-
-suite('NoToken', function() {
-  test('emptyTokenCache', function() {
-    const tokenListEntries = getTokens();
-    assertEquals(0, tokenListEntries.length);
-  });
-});
-
-suite('SingleToken', function() {
-  test('getAllTokens', function() {
-    const tokenListEntries = getTokens();
-    assertEquals(1, tokenListEntries.length);
-    const entry = tokenListEntries[0]!;
-    assertEquals('Web Store', getExtensionName(entry));
-    assertEquals('ahfgeienlihckogmohjhadlkjgocpleb', getExtensionId(entry));
-    assertEquals('store_account', getAccountId(entry));
-    assertEquals('store_token', getAccessToken(entry));
-    assertEquals('Token Present', getTokenStatus(entry));
-    assertLT(getExpirationTime(entry) - Date.now(), 3600 * 1000);
-    const scopes = getScopes(entry);
-    assertEquals(3, scopes.length);
-    assertEquals('store_scope1', scopes[0]);
-    assertEquals('store_scope2', scopes[1]);
-    assertEquals('', scopes[2]);
-  });
-
-  test('verifyGetters', function() {
-    const tokenListEntries =
-        getRequiredElement('token-list')
-            .querySelectorAll<HTMLElement>('token-list-item');
-    const actualTokens = getTokens();
-    assertEquals(tokenListEntries.length, actualTokens.length);
-    const entry = tokenListEntries[0]!;
-    assertEquals(entry, actualTokens[0]);
-    assertEquals(
-        getExtensionName(entry),
-        entry.shadowRoot!.querySelector('.extension-name')!.textContent);
-    assertEquals(
-        getExtensionId(entry),
-        entry.shadowRoot!.querySelector('.extension-id')!.textContent);
-    assertEquals(
-        getAccountId(entry),
-        entry.shadowRoot!.querySelector('.account-id')!.textContent);
-    assertEquals(
-        getAccessToken(entry),
-        entry.shadowRoot!.querySelector('.access-token')!.textContent);
-    assertEquals(
-        getTokenStatus(entry),
-        entry.shadowRoot!.querySelector('.status')!.textContent);
-    // Full-date format has 'at' between date and time in en-US, but
-    // ECMAScript's Date.parse cannot grok it.
-    assertEquals(
-        getExpirationTime(entry),
-        Date.parse(
-            entry.shadowRoot!.querySelector('.expiration-time')!.textContent!
-                .replace(' at ', ' ')
-                .replace('\u202f', ' ')));
-    const scopes =
-        entry.shadowRoot!.querySelector('.scope-list')!.innerHTML.split('<br>');
-    const actualScopes = getScopes(entry);
-    assertEquals(scopes.length, actualScopes.length);
-    for (let i = 0; i < scopes.length; i++) {
-      assertEquals(scopes[i], actualScopes[i]);
-    }
-  });
-});
-
-suite('MultipleTokens', function() {
-  test('getAllTokens', function() {
-    const tokenListEntries = getTokens();
-    assertEquals(2, tokenListEntries.length);
-    const entry1 = tokenListEntries[0]!;
-    const entry2 = tokenListEntries[1]!;
-    assertEquals('', getExtensionName(entry1));
-    assertEquals('extension0', getExtensionId(entry1));
-    assertEquals('account0', getAccountId(entry1));
-    assertEquals('token0', getAccessToken(entry1));
-    assertEquals('Token Present', getTokenStatus(entry1));
-    assertLT(getExpirationTime(entry1) - Date.now(), 3600 * 1000);
-    let scopes = getScopes(entry1);
-    assertEquals(3, scopes.length);
-    assertEquals('scope_1_0', scopes[0]);
-    assertEquals('scope_2_0', scopes[1]);
-    assertEquals('', scopes[2]);
-    assertEquals('', getExtensionName(entry2));
-    assertEquals('extension1', getExtensionId(entry2));
-    assertEquals('account1', getAccountId(entry2));
-    assertEquals('token1', getAccessToken(entry2));
-    assertEquals('Token Present', getTokenStatus(entry2));
-    assertLT(getExpirationTime(entry2) - Date.now(), 3600 * 1000);
-    scopes = getScopes(entry2);
-    assertEquals(3, scopes.length);
-    assertEquals('scope_1_1', scopes[0]);
-    assertEquals('scope_2_1', scopes[1]);
-    assertEquals('', scopes[2]);
-  });
-
-  test('revokeToken', function(done) {
-    const tokenListBefore = getTokens();
-    assertEquals(2, tokenListBefore.length);
-    const tokenList = getRequiredElement('token-list');
-    tokenList.addEventListener('token-removed-for-test', () => {
-      const tokenListAfter = getTokens();
-      assertEquals(1, tokenListAfter.length);
-      assertEquals(
-          getAccessToken(tokenListBefore[0]!),
-          getAccessToken(tokenListAfter[0]!));
-      done();
-    });
-    getRevokeButton(tokenListBefore[1]!).click();
-  });
-});
diff --git a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_browsertest.cc b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_browsertest.cc
index c7a82d5..ac7d7a06 100644
--- a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_browsertest.cc
+++ b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_browsertest.cc
@@ -55,14 +55,6 @@
                          PrivacySandboxDialogTest,
                          testing::Values(WindowSize::kSmall, WindowSize::kBig));
 
-IN_PROC_BROWSER_TEST_P(PrivacySandboxDialogTest, Consent) {
-  RunTestSuite("Consent");
-}
-
-IN_PROC_BROWSER_TEST_P(PrivacySandboxDialogTest, Notice) {
-  RunTestSuite("Notice");
-}
-
 IN_PROC_BROWSER_TEST_P(PrivacySandboxDialogTest, Combined) {
   RunTestSuite("Combined");
 }
diff --git a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts
index 6677c8d..6a49571 100644
--- a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts
+++ b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts
@@ -2,14 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-import 'chrome://privacy-sandbox-dialog/privacy_sandbox_dialog_app.js';
 import 'chrome://privacy-sandbox-dialog/privacy_sandbox_notice_dialog_app.js';
 import 'chrome://privacy-sandbox-dialog/privacy_sandbox_notice_restricted_dialog_app.js';
 import 'chrome://privacy-sandbox-dialog/privacy_sandbox_combined_dialog_app.js';
 
 import type {PrivacySandboxCombinedDialogAppElement} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_combined_dialog_app.js';
 import {PrivacySandboxCombinedDialogStep} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_combined_dialog_app.js';
-import type {PrivacySandboxDialogAppElement} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_dialog_app.js';
 import {PrivacySandboxDialogBrowserProxy, PrivacySandboxPromptAction} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_dialog_browser_proxy.js';
 import type {PrivacySandboxDialogConsentStepElement} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_dialog_consent_step.js';
 import {PrivacySandboxDialogMixin} from 'chrome://privacy-sandbox-dialog/privacy_sandbox_dialog_mixin.js';
@@ -19,7 +17,6 @@
 import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
 import {flush, html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js';
-import {pressAndReleaseKeyOn} from 'chrome://webui-test/keyboard_mock_interactions.js';
 import {flushTasks} from 'chrome://webui-test/polymer_test_util.js';
 import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js';
 import {isChildVisible, isVisible, microtasksFinished} from 'chrome://webui-test/test_util.js';
@@ -115,159 +112,6 @@
   actionButton.click();
 }
 
-suite('Consent', function() {
-  let page: PrivacySandboxDialogAppElement;
-  let browserProxy: TestPrivacySandboxDialogBrowserProxy;
-
-  suiteSetup(function() {
-    loadTimeData.overrideValues({
-      isConsent: true,
-    });
-  });
-
-  setup(async function() {
-    browserProxy = new TestPrivacySandboxDialogBrowserProxy();
-    PrivacySandboxDialogBrowserProxy.setInstance(browserProxy);
-
-    document.body.innerHTML = window.trustedTypes!.emptyHTML;
-    page = document.createElement('privacy-sandbox-dialog-app');
-    document.body.appendChild(page);
-
-    await browserProxy.whenCalled('resizeDialog');
-    await browserProxy.whenCalled('showDialog');
-  });
-
-  test('dialogStructure', function() {
-    // Consent dialog has addditionally an expand button and H2 title. It also
-    // has a different set of buttons.
-    assertTrue(isChildVisible(page, '.header h2'));
-    assertTrue(isChildVisible(page, '.header h3'));
-
-    assertTrue(isChildVisible(page, '.section'));
-
-    assertTrue(isChildVisible(page, '#expandSection cr-expand-button'));
-
-    assertTrue(isChildVisible(page, '#declineButton'));
-    assertTrue(isChildVisible(page, '#confirmButton'));
-    assertFalse(isChildVisible(page, '#settingsButton'));
-    assertFalse(isChildVisible(page, '#ackButton'));
-  });
-
-  test('acceptClicked', async function() {
-    testClickButton('#confirmButton', page);
-    const [action] = await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(action, PrivacySandboxPromptAction.CONSENT_ACCEPTED);
-  });
-
-  test('declineClicked', async function() {
-    testClickButton('#declineButton', page);
-    const [action] = await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(action, PrivacySandboxPromptAction.CONSENT_DECLINED);
-  });
-
-  test('learnMoreClicked', async function() {
-    // In the initial state, the content area isn't scrollable and doesn't have
-    // a separator in the bottom (represented by 'can-scroll' class).
-    // The collapse section is closed.
-    const collapseElement = page.shadowRoot!.querySelector('cr-collapse');
-    const contentArea: HTMLElement|null =
-        page.shadowRoot!.querySelector('#contentArea');
-    let hasScrollbar = doesElemenHaveScrollbar(contentArea!);
-    assertFalse(collapseElement!.opened);
-    assertEquals(contentArea!.classList.contains('can-scroll'), hasScrollbar);
-
-    // After clicking on the collapse section, the content area expands and
-    // becomes scrollable with a separator in the bottom. The collapse section
-    // is opened and the native UI is notified about the action.
-    testClickButton('#expandSection cr-expand-button', page);
-    // TODO(crbug.com/40210776): Add testing for the scroll position.
-    const [openedAction] =
-        await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(
-        openedAction, PrivacySandboxPromptAction.CONSENT_MORE_INFO_OPENED);
-    assertTrue(collapseElement!.opened);
-    assertTrue(contentArea!.classList.contains('can-scroll'));
-
-    // Reset proxy in between button clicks.
-    browserProxy.reset();
-
-    // After clicking on the collapse section again, the content area collapses
-    // and returns to the initial state.
-    testClickButton('#expandSection cr-expand-button', page);
-    const [closedAction] =
-        await browserProxy.whenCalled('promptActionOccurred');
-    hasScrollbar = doesElemenHaveScrollbar(contentArea!);
-    assertEquals(
-        closedAction, PrivacySandboxPromptAction.CONSENT_MORE_INFO_CLOSED);
-    assertFalse(collapseElement!.opened);
-    assertEquals(contentArea!.classList.contains('can-scroll'), hasScrollbar);
-  });
-
-  test('escPressed', async function() {
-    browserProxy.reset();
-    pressAndReleaseKeyOn(page, 0, [], 'Escape');
-    // No user action is triggered by pressing Esc.
-    assertEquals(browserProxy.getCallCount('promptActionOccurred'), 0);
-  });
-});
-
-suite('Notice', function() {
-  let page: PrivacySandboxDialogAppElement;
-  let browserProxy: TestPrivacySandboxDialogBrowserProxy;
-
-  suiteSetup(function() {
-    loadTimeData.overrideValues({
-      isConsent: false,
-    });
-  });
-
-  setup(async function() {
-    browserProxy = new TestPrivacySandboxDialogBrowserProxy();
-    PrivacySandboxDialogBrowserProxy.setInstance(browserProxy);
-
-    document.body.innerHTML = window.trustedTypes!.emptyHTML;
-    page = document.createElement('privacy-sandbox-dialog-app');
-    document.body.appendChild(page);
-
-    await browserProxy.whenCalled('resizeDialog');
-    await browserProxy.whenCalled('showDialog');
-  });
-
-  test('dialogStructure', function() {
-    // Notice dialog doesn't have an expand button and H2 title. It also has
-    // a different set of buttons.
-    assertFalse(isChildVisible(page, '.header h2'));
-    assertTrue(isChildVisible(page, '.header h3'));
-
-    assertTrue(isChildVisible(page, '.section'));
-
-    assertFalse(isChildVisible(page, '#expandSection cr-expand-button'));
-
-    assertFalse(isChildVisible(page, '#declineButton'));
-    assertFalse(isChildVisible(page, '#confirmButton'));
-    assertTrue(isChildVisible(page, '#settingsButton'));
-    assertTrue(isChildVisible(page, '#ackButton'));
-  });
-
-  test('ackClicked', async function() {
-    testClickButton('#ackButton', page);
-    const [action] = await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(action, PrivacySandboxPromptAction.NOTICE_ACKNOWLEDGE);
-  });
-
-  test('settingsClicked', async function() {
-    testClickButton('#settingsButton', page);
-    const [action] = await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(action, PrivacySandboxPromptAction.NOTICE_OPEN_SETTINGS);
-  });
-
-  test('escPressed', async function() {
-    pressAndReleaseKeyOn(page, 0, [], 'Escape');
-    const [action] = await browserProxy.whenCalled('promptActionOccurred');
-    assertEquals(action, PrivacySandboxPromptAction.NOTICE_DISMISS);
-  });
-});
-
 function getActiveStep(page: PrivacySandboxCombinedDialogAppElement):
     PrivacySandboxDialogConsentStepElement|
     PrivacySandboxDialogNoticeStepElement {
diff --git a/chrome/test/data/webui/settings/people_page_sync_page_test.ts b/chrome/test/data/webui/settings/people_page_sync_page_test.ts
index e663d0b..afac4694 100644
--- a/chrome/test/data/webui/settings/people_page_sync_page_test.ts
+++ b/chrome/test/data/webui/settings/people_page_sync_page_test.ts
@@ -951,6 +951,7 @@
         !!syncPage.shadowRoot!.querySelector('settings-sync-account-control'));
     syncPage.syncStatus = {
       syncSystemEnabled: false,
+      signedInState: SignedInState.SIGNED_IN,
       statusAction: StatusAction.NO_ACTION,
     };
     flush();
@@ -958,6 +959,7 @@
         !!syncPage.shadowRoot!.querySelector('settings-sync-account-control'));
     syncPage.syncStatus = {
       syncSystemEnabled: true,
+      signedInState: SignedInState.SIGNED_IN,
       statusAction: StatusAction.NO_ACTION,
     };
     flush();
diff --git a/chrome/test/data/webui/settings/people_page_test.ts b/chrome/test/data/webui/settings/people_page_test.ts
index 78d6030..9ab40472 100644
--- a/chrome/test/data/webui/settings/people_page_test.ts
+++ b/chrome/test/data/webui/settings/people_page_test.ts
@@ -170,6 +170,7 @@
   test('ShowCorrectRows', async function() {
     await syncBrowserProxy.whenCalled('getSyncStatus');
     simulateSyncStatus({
+      signedInState: SignedInState.SIGNED_IN,
       syncSystemEnabled: true,
       statusAction: StatusAction.NO_ACTION,
     });
@@ -179,12 +180,6 @@
     assertTrue(!!peoplePage.shadowRoot!.querySelector('#edit-profile'));
     assertFalse(!!peoplePage.shadowRoot!.querySelector('#profile-row'));
 
-    simulateSyncStatus({
-      signedInState: SignedInState.SIGNED_IN,
-      syncSystemEnabled: true,
-      statusAction: StatusAction.NO_ACTION,
-    });
-
     // The control element should exist when policy allows.
     const accountControl =
         peoplePage.shadowRoot!.querySelector('settings-sync-account-control')!;
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 9c6679a7..95b1445 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-16150.0.0-1065890
\ No newline at end of file
+16150.0.0-1065894
\ No newline at end of file
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc
index 98b91ea..bf6fcc63 100644
--- a/chromeos/constants/chromeos_features.cc
+++ b/chromeos/constants/chromeos_features.cc
@@ -586,6 +586,10 @@
 #endif
 }
 
+bool IsUploadOfficeToCloudSyncEnabled() {
+  return base::FeatureList::IsEnabled(kUploadOfficeToCloudSync);
+}
+
 bool IsMicrosoft365ScopeExtensionsEnabled() {
   return base::FeatureList::IsEnabled(kMicrosoft365ScopeExtensions);
 }
diff --git a/chromeos/constants/chromeos_features.h b/chromeos/constants/chromeos_features.h
index 5fe9cc1..c7348bc 100644
--- a/chromeos/constants/chromeos_features.h
+++ b/chromeos/constants/chromeos_features.h
@@ -195,6 +195,8 @@
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 bool IsUploadOfficeToCloudForEnterpriseEnabled();
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
+bool IsUploadOfficeToCloudSyncEnabled();
+COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 bool IsMicrosoft365ScopeExtensionsEnabled();
 COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
 bool IsMicrosoftOneDriveIntegrationForEnterpriseEnabled();
diff --git a/clank b/clank
index 61ca08e..c0f9cfa 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit 61ca08e978df2e55fe40731b7c5c1ed333480e42
+Subproject commit c0f9cfa5836eb7aedcef22bb09fa19001ed59c35
diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc
index 3eefa23..ab20807 100644
--- a/components/attribution_reporting/features.cc
+++ b/components/attribution_reporting/features.cc
@@ -13,10 +13,6 @@
              "ConversionMeasurement",
              base::FEATURE_ENABLED_BY_DEFAULT);
 
-BASE_FEATURE(kAttributionScopes,
-             "AttributionScopes",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 BASE_FEATURE(kAttributionAggregatableNamedBudgets,
              "AttributionAggregatableNamedBudgets",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/components/attribution_reporting/features.h b/components/attribution_reporting/features.h
index 925eb61..070c6e23 100644
--- a/components/attribution_reporting/features.h
+++ b/components/attribution_reporting/features.h
@@ -15,9 +15,6 @@
 BASE_DECLARE_FEATURE(kConversionMeasurement);
 
 COMPONENT_EXPORT(ATTRIBUTION_REPORTING_FEATURES)
-BASE_DECLARE_FEATURE(kAttributionScopes);
-
-COMPONENT_EXPORT(ATTRIBUTION_REPORTING_FEATURES)
 BASE_DECLARE_FEATURE(kAttributionAggregatableNamedBudgets);
 
 }  // namespace attribution_reporting::features
diff --git a/components/attribution_reporting/source_registration.cc b/components/attribution_reporting/source_registration.cc
index 2f11800..25d4dd7a 100644
--- a/components/attribution_reporting/source_registration.cc
+++ b/components/attribution_reporting/source_registration.cc
@@ -11,7 +11,6 @@
 #include <utility>
 
 #include "base/check.h"
-#include "base/feature_list.h"
 #include "base/json/json_reader.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/time/time.h"
@@ -26,7 +25,6 @@
 #include "components/attribution_reporting/destination_set.h"
 #include "components/attribution_reporting/event_level_epsilon.h"
 #include "components/attribution_reporting/event_report_windows.h"
-#include "components/attribution_reporting/features.h"
 #include "components/attribution_reporting/filters.h"
 #include "components/attribution_reporting/parsing_utils.h"
 #include "components/attribution_reporting/source_registration_error.mojom.h"
@@ -165,9 +163,7 @@
                    AggregatableNamedBudgetDefs::FromJSON(
                        registration.Find(kAggregatableNamedBudgets)));
 
-  if (base::Value* scopes_value = registration.Find(kAttributionScopes);
-      scopes_value &&
-      base::FeatureList::IsEnabled(features::kAttributionScopes)) {
+  if (base::Value* scopes_value = registration.Find(kAttributionScopes)) {
     ASSIGN_OR_RETURN(result.attribution_scopes_data,
                      AttributionScopesData::FromJSON(*scopes_value));
   }
@@ -263,8 +259,7 @@
 
   aggregatable_debug_reporting_config.Serialize(dict);
 
-  if (attribution_scopes_data.has_value() &&
-      base::FeatureList::IsEnabled(features::kAttributionScopes)) {
+  if (attribution_scopes_data.has_value()) {
     dict.Set(kAttributionScopes, attribution_scopes_data->ToJson());
   }
 
diff --git a/components/attribution_reporting/source_registration_unittest.cc b/components/attribution_reporting/source_registration_unittest.cc
index f5a236c..5f0ea79b 100644
--- a/components/attribution_reporting/source_registration_unittest.cc
+++ b/components/attribution_reporting/source_registration_unittest.cc
@@ -784,9 +784,6 @@
       },
   };
 
-  base::test::ScopedFeatureList scoped_feature_list(
-      features::kAttributionScopes);
-
   for (const auto& test_case : kTestCases) {
     base::HistogramTester histograms;
     SCOPED_TRACE(test_case.desc);
diff --git a/components/attribution_reporting/trigger_registration.cc b/components/attribution_reporting/trigger_registration.cc
index b4601644..8a97da6 100644
--- a/components/attribution_reporting/trigger_registration.cc
+++ b/components/attribution_reporting/trigger_registration.cc
@@ -158,10 +158,8 @@
       registration.aggregatable_values,
       AggregatableValues::FromJSON(dict.Find(kAggregatableValues)));
 
-  if (base::FeatureList::IsEnabled(features::kAttributionScopes)) {
-    ASSIGN_OR_RETURN(registration.attribution_scopes,
-                     AttributionScopesSet::FromJSON(dict));
-  }
+  ASSIGN_OR_RETURN(registration.attribution_scopes,
+                   AttributionScopesSet::FromJSON(dict));
 
   registration.debug_key = ParseDebugKey(dict);
   registration.debug_reporting = ParseDebugReporting(dict);
@@ -260,9 +258,7 @@
 
   aggregatable_debug_reporting_config.Serialize(dict);
 
-  if (base::FeatureList::IsEnabled(features::kAttributionScopes)) {
-    attribution_scopes.SerializeForTrigger(dict);
-  }
+  attribution_scopes.SerializeForTrigger(dict);
 
   SerializeListIfNotEmpty(dict, kAggregatableNamedBudgets,
                           aggregatable_named_budget_candidates);
diff --git a/components/attribution_reporting/trigger_registration_unittest.cc b/components/attribution_reporting/trigger_registration_unittest.cc
index 23eaa94..1129915 100644
--- a/components/attribution_reporting/trigger_registration_unittest.cc
+++ b/components/attribution_reporting/trigger_registration_unittest.cc
@@ -579,9 +579,6 @@
       },
   };
 
-  base::test::ScopedFeatureList scoped_feature_list(
-      features::kAttributionScopes);
-
   for (const auto& test_case : kTestCases) {
     base::HistogramTester histograms;
     SCOPED_TRACE(test_case.desc);
diff --git a/components/autofill/ios/browser/autofill_driver_ios.mm b/components/autofill/ios/browser/autofill_driver_ios.mm
index 6f4c45e..523845f 100644
--- a/components/autofill/ios/browser/autofill_driver_ios.mm
+++ b/components/autofill/ios/browser/autofill_driver_ios.mm
@@ -163,6 +163,8 @@
 
 bool AutofillDriverIOS::IsInAnyMainFrame() const {
   web::WebFrame* frame = web_frame();
+  // Unlike the content/ implementation, WebKit does not have a distinction
+  // between primary and non-primary main frames.
   return frame ? frame->IsMainFrame() : true;
 }
 
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json
index 4b9c046a..6782c5d 100644
--- a/components/certificate_transparency/data/log_list.json
+++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@
 {
-  "version": "50.60",
-  "log_list_timestamp": "2025-01-05T12:53:50Z",
+  "version": "50.61",
+  "log_list_timestamp": "2025-01-06T12:55:09Z",
   "operators": [
     {
       "name": "Google",
diff --git a/components/dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc b/components/dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc
index 2da1f5cb..ee5a0542 100644
--- a/components/dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc
+++ b/components/dom_distiller/content/browser/test/dom_distiller_js_browsertest.cc
@@ -95,9 +95,10 @@
   }
 };
 
-// Disabled on MSan as well as Android and Linux CFI bots.
+// Disabled on MSan, TSAN as well as Android and Linux CFI bots.
 // https://crbug.com/845180
 // https://crbug.com/1434395
+// https://crbug.com/387892105
 // Then disabled more generally on Android: https://crbug.com/979685
 // TODO(jaebaek):  HTMLImageElement::LayoutBoxWidth() returns a value that has
 // a small error from the real one (i.e., the real is 38, but it returns 37)
@@ -105,7 +106,7 @@
 // EmbedExtractorTest.testImageExtractorWithAttributesCSSHeightCM (See
 // crrev.com/c/916021). We must solve this precision issue.
 #if defined(MEMORY_SANITIZER) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
-    BUILDFLAG(IS_FUCHSIA) ||                                                   \
+    BUILDFLAG(IS_FUCHSIA) || defined(THREAD_SANITIZER) ||                      \
     ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) &&                        \
      (BUILDFLAG(CFI_CAST_CHECK) || BUILDFLAG(CFI_ICALL_CHECK) ||               \
       BUILDFLAG(CFI_ENFORCEMENT_DIAGNOSTIC) ||                                 \
diff --git a/components/gcm_driver/BUILD.gn b/components/gcm_driver/BUILD.gn
index 1e1a828..fe33859 100644
--- a/components/gcm_driver/BUILD.gn
+++ b/components/gcm_driver/BUILD.gn
@@ -197,6 +197,9 @@
       "gcm_stats_recorder_impl_unittest.cc",
     ]
 
-    deps += [ "//components/signin/public/identity_manager:test_support" ]
+    deps += [
+      "//components/signin/public/identity_manager:test_support",
+      "//google_apis",
+    ]
   }
 }
diff --git a/components/gcm_driver/DEPS b/components/gcm_driver/DEPS
index 4c6864b..be27399 100644
--- a/components/gcm_driver/DEPS
+++ b/components/gcm_driver/DEPS
@@ -14,6 +14,7 @@
   # blundell@chromium.org if looking to add more.
   "+google_apis/gaia/core_account_id.h",
   "+google_apis/gaia/gaia_constants.h",
+  "+google_apis/gaia/gaia_id.h",
   "+google_apis/gaia/gaia_oauth_client.h",
   "+google_apis/gaia/google_service_auth_error.h",
   "+google_apis/gcm",
diff --git a/components/gcm_driver/account_tracker_unittest.cc b/components/gcm_driver/account_tracker_unittest.cc
index a7f28c9d..15d55ea1 100644
--- a/components/gcm_driver/account_tracker_unittest.cc
+++ b/components/gcm_driver/account_tracker_unittest.cc
@@ -12,6 +12,7 @@
 #include "base/test/task_environment.h"
 #include "build/build_config.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
@@ -24,7 +25,7 @@
  public:
   TrackingEvent(TrackingEventType type,
                 const CoreAccountId& account_id,
-                const std::string& gaia_id)
+                const GaiaId& gaia_id)
       : type_(type), account_id_(account_id), gaia_id_(gaia_id) {}
 
   TrackingEvent(TrackingEventType type, const CoreAccountInfo& account_info)
@@ -48,7 +49,8 @@
         break;
     }
     return base::StringPrintf("{ type: %s, account_id: %s, gaia: %s }", typestr,
-                              account_id_.ToString().c_str(), gaia_id_.c_str());
+                              account_id_.ToString().c_str(),
+                              gaia_id_.ToString().c_str());
   }
 
  private:
@@ -56,7 +58,7 @@
 
   TrackingEventType type_;
   CoreAccountId account_id_;
-  std::string gaia_id_;
+  GaiaId gaia_id_;
 };
 
 bool CompareByUser(TrackingEvent a, TrackingEvent b) {
diff --git a/components/language_detection/core/BUILD.gn b/components/language_detection/core/BUILD.gn
index 21975a1..1d89239 100644
--- a/components/language_detection/core/BUILD.gn
+++ b/components/language_detection/core/BUILD.gn
@@ -11,6 +11,7 @@
   sources = [
     "background_file.cc",
     "background_file.h",
+    "constants.h",
     "features.cc",
     "features.h",
     "language_detection_model.cc",
@@ -26,10 +27,6 @@
     ":internals",
     "//base",
     "//components/optimization_guide/core:features",
-
-    # TODO(https://crbug.com/380786760): Remove this dep. It is for a constant
-    # that really belongs in langage_detection.
-    "//components/translate/core/common",
     "//third_party/tflite",
     "//third_party/tflite_support",
     "//third_party/tflite_support:tflite_support_proto",
diff --git a/components/language_detection/core/constants.h b/components/language_detection/core/constants.h
new file mode 100644
index 0000000..751b7eb
--- /dev/null
+++ b/components/language_detection/core/constants.h
@@ -0,0 +1,16 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_LANGUAGE_DETECTION_CORE_CONSTANTS_H_
+#define COMPONENTS_LANGUAGE_DETECTION_CORE_CONSTANTS_H_
+
+namespace language_detection {
+
+// The language code used when the language of a page could not be detected.
+// (Matches what the CLD -Compact Language Detection- library reports.)
+inline constexpr char kUnknownLanguageCode[] = "und";
+
+}  // namespace language_detection
+
+#endif  // COMPONENTS_LANGUAGE_DETECTION_CORE_CONSTANTS_H_
diff --git a/components/language_detection/core/language_detection_model.cc b/components/language_detection/core/language_detection_model.cc
index 557fb8f..a751bf32 100644
--- a/components/language_detection/core/language_detection_model.cc
+++ b/components/language_detection/core/language_detection_model.cc
@@ -19,9 +19,9 @@
 #include "base/task/thread_pool.h"
 #include "base/timer/elapsed_timer.h"
 #include "base/trace_event/trace_event.h"
+#include "components/language_detection/core/constants.h"
 #include "components/language_detection/core/language_detection_resolver.h"
 #include "components/optimization_guide/core/optimization_guide_features.h"
-#include "components/translate/core/common/translate_constants.h"
 #include "third_party/tflite_support/src/tensorflow_lite_support/cc/task/text/nlclassifier/nl_classifier.h"
 
 namespace language_detection {
@@ -134,19 +134,15 @@
 LanguageDetectionModel::~LanguageDetectionModel() = default;
 
 std::vector<Prediction> LanguageDetectionModel::Predict(
-    std::u16string_view contents,
-    bool truncate) const {
+    std::u16string_view contents) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   TRACE_EVENT("browser", "LanguageDetectionModel::DetectTopLanguage");
   base::ElapsedTimer timer;
 
   CHECK(IsAvailable());
 
+  size_t convert_length = std::min(kModelTruncationLength, contents.length());
   std::string utf8_contents;
-  size_t convert_length =
-      truncate ? std::min(kModelTruncationLength, contents.length())
-               : contents.length();
-
   base::UTF16ToUTF8(contents.data(), convert_length, &utf8_contents);
 
   // TFLite expects all strings to be aligned to 4 bytes.
@@ -171,7 +167,7 @@
   base::UmaHistogramBoolean(
       "LanguageDetection.TFLiteModel.ClassifyText.Detected", detected);
   if (!detected) {
-    return {Prediction(translate::kUnknownLanguageCode, 0.0)};
+    return {Prediction(kUnknownLanguageCode, 0.0)};
   }
   std::vector<Prediction> predictions;
   predictions.reserve(status_or_categories.value().size());
diff --git a/components/language_detection/core/language_detection_model.h b/components/language_detection/core/language_detection_model.h
index 4c321e23..525da58 100644
--- a/components/language_detection/core/language_detection_model.h
+++ b/components/language_detection/core/language_detection_model.h
@@ -82,9 +82,7 @@
   // the string before passing to the TFLite model. Even though the model only
   // considers a prefix of the input, the runtime is proportional to the total
   // length of the input.
-  // TODO(https://crbug.com/352636753): Remove the option and always truncate.
-  std::vector<Prediction> Predict(std::u16string_view contents,
-                                  bool truncate = true) const;
+  std::vector<Prediction> Predict(std::u16string_view contents) const;
 
   // Runs the TFLIte language detection model on the whole string. This will
   // scan over the content with the 128 character window.
diff --git a/components/language_detection/core/language_detection_model_unittest.cc b/components/language_detection/core/language_detection_model_unittest.cc
index d79105ebb..543cf69b 100644
--- a/components/language_detection/core/language_detection_model_unittest.cc
+++ b/components/language_detection/core/language_detection_model_unittest.cc
@@ -291,32 +291,6 @@
 TEST_F(LanguageDetectionValidTest, Truncation) {
   std::u16string contents = u"This is a page apparently written in English.";
 
-  // Short string with truncation.
-  {
-    base::HistogramTester histogram_tester_;
-    auto prediction = TopPrediction(
-        language_detection_model_->Predict(contents, /*truncate=*/true));
-    EXPECT_EQ("en", prediction.language);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size", contents.length(),
-        1);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size.PreTruncation",
-        contents.length(), 1);
-  }
-  // Short string without truncation.
-  {
-    base::HistogramTester histogram_tester_;
-    auto prediction = TopPrediction(
-        language_detection_model_->Predict(contents, /*truncate=*/false));
-    EXPECT_EQ("en", prediction.language);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size", contents.length(),
-        1);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size.PreTruncation",
-        contents.length(), 1);
-  }
   // Make a longer string. Much long than the truncation length to make sure
   // different histogram buckets are involved.
   contents += contents;
@@ -326,31 +300,12 @@
   contents += contents;
   ASSERT_GE(contents.length(), kModelTruncationLength * 4);
   // Long string with truncation.
-  {
-    base::HistogramTester histogram_tester_;
-    auto prediction = TopPrediction(
-        language_detection_model_->Predict(contents, /*truncate=*/true));
-    EXPECT_EQ("en", prediction.language);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size",
-        kModelTruncationLength, 1);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size.PreTruncation",
-        contents.length(), 1);
-  }
-  // Long string without truncation.
-  {
-    base::HistogramTester histogram_tester_;
-    auto prediction = TopPrediction(
-        language_detection_model_->Predict(contents, /*truncate=*/false));
-    EXPECT_EQ("en", prediction.language);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size", contents.length(),
-        1);
-    histogram_tester_.ExpectUniqueSample(
-        "LanguageDetection.TFLiteModel.ClassifyText.Size.PreTruncation",
-        contents.length(), 1);
-  }
+  base::HistogramTester histogram_tester_;
+  auto prediction = TopPrediction(language_detection_model_->Predict(contents));
+  EXPECT_EQ("en", prediction.language);
+  histogram_tester_.ExpectUniqueSample(
+      "LanguageDetection.TFLiteModel.ClassifyText.Size", kModelTruncationLength,
+      1);
 }
 
 // Regression test for https://crbug.com/1414235. This test is expecting that
diff --git a/components/lens/lens_url_utils.cc b/components/lens/lens_url_utils.cc
index 1b34ee4..2038682 100644
--- a/components/lens/lens_url_utils.cc
+++ b/components/lens/lens_url_utils.cc
@@ -37,7 +37,6 @@
 
 constexpr char kRenderingEnvironmentQueryParameter[] = "re";
 constexpr char kOneLensDesktopWebFullscreen[] = "df";
-constexpr char kLensSurfaceQueryParameter[] = "lns_surface";
 
 void AppendQueryParam(std::string* query_string,
                       const char name[],
diff --git a/components/lens/lens_url_utils.h b/components/lens/lens_url_utils.h
index fc5da35..daf176a 100644
--- a/components/lens/lens_url_utils.h
+++ b/components/lens/lens_url_utils.h
@@ -25,6 +25,7 @@
 constexpr char kFilterTypeQueryParameter[] = "filtertype";
 constexpr char kTranslateFilterTypeQueryParameterValue[] = "tr";
 constexpr char kLensRequestQueryParameter[] = "vsrid";
+constexpr char kLensSurfaceQueryParameter[] = "lns_surface";
 
 // Appends logs to query param as a string
 extern void AppendLogsQueryParam(
diff --git a/components/page_load_metrics/browser/observers/use_counter/webdx_feature_maps.cc b/components/page_load_metrics/browser/observers/use_counter/webdx_feature_maps.cc
index 9f38e4d2c..3f704a2 100644
--- a/components/page_load_metrics/browser/observers/use_counter/webdx_feature_maps.cc
+++ b/components/page_load_metrics/browser/observers/use_counter/webdx_feature_maps.cc
@@ -334,6 +334,7 @@
            WebDXFeature::kBeforeUnload},
           {WebFeature::kLayoutShiftExplicitlyRequested,
            WebDXFeature::kLayoutInstability},
+          {WebFeature::kJSSelfProfiling, WebDXFeature::kProfiler},
       }};
 
   return *kMap;
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 4e9042e..b2235c8 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -8462,6 +8462,17 @@
 
       การตั้งค่านโยบายเป็น "เท็จ" หมายความว่าผู้ใช้ แอป หรือส่วนขยายจะเข้าสู่โหมดเต็มหน้าจอไม่ได้</translation>
 <translation id="718126088895133062">นโยบายนี้ระบุ User ID การอนุญาตให้ใช้สิทธิของ <ph name="PLUGIN_VM_NAME" /> สำหรับอุปกรณ์นี้</translation>
+<translation id="7184152751828902217">ประสิทธิภาพแบตเตอรี่อาจได้รับผลกระทบจากปัจจัยต่างๆ เช่น การชาร์จจนเต็มบ่อยๆ และการชาร์จเป็นเวลานาน นโยบายนี้มีตัวเลือก 3 รายการเพื่อเพิ่มประสิทธิภาพการชาร์จและลดปัจจัยเหล่านี้ ซึ่งจะช่วยยืดอายุการใช้งานแบตเตอรี่ได้ในที่สุด
+
+เมื่อตั้งค่านโยบายนี้เป็น 1 "มาตรฐาน" หรือไม่ได้ตั้งค่า แบตเตอรี่จะชาร์จตามปกติจนถึง 100% การดำเนินการนี้จะปิดใช้การชาร์จแบบปรับอัตโนมัติและการชาร์จแบบจำกัด
+
+เมื่อตั้งค่านโยบายนี้เป็น 2 "ปรับอัตโนมัติ" อุปกรณ์จะเรียนรู้พฤติกรรมการชาร์จของคุณและชะลอการชาร์จไม่ให้ถึง 100% จนกว่าจะจำเป็น ซึ่งจะช่วยให้แบตเตอรี่มีประสิทธิภาพยาวนานขึ้น
+
+เมื่อตั้งค่านโยบายนี้เป็น 3 "จำกัด" แบตเตอรี่จะชาร์จเพียงประมาณ 80% เพื่อยืดอายุการใช้งานให้นานที่สุด
+
+นโยบายนี้จะลบล้าง <ph name="DEVICE_POWER_ADAPTIVE_CHARGING_ENABLED_POLICY_NAME" />
+
+นโยบาย <ph name="DEVICE_POWER_BATTERY_CHARGING_OPTIMIZATION_POLICY_NAME" /> และ <ph name="DEVICE_POWER_ADAPTIVE_CHARGING_ENABLED_POLICY_NAME" /> จะมีความสำคัญเหนือกว่าการตั้งค่าของผู้ใช้เสมอ</translation>
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="7185630966939835143">ใช้บริการเว็บของ Google เพื่อช่วยแก้ไขข้อผิดพลาดของการสะกดคำ</translation>
 <translation id="7187248416163189586">ปิดใช้การรายงานข้อมูลแบ็กไลต์ของอุปกรณ์</translation>
@@ -10520,6 +10531,15 @@
 <translation id="8827275450034266143">สตริง User-Agent จะหยุดเวอร์ชันหลักไว้ที่ 99 และรวมเวอร์ชันหลักของเบราว์เซอร์ไว้ในตำแหน่งรอง</translation>
 <translation id="8827366480126575426">โปรโตคอลสำหรับเครื่องจัดการโปรโตคอล</translation>
 <translation id="8827417642396462482">อนุญาตประเภทคำขอ DNS เพิ่มเติม</translation>
+<translation id="8829335556009496455">ระบุว่าจะอนุญาตให้รูปแบบการชาร์จแบบปรับอัตโนมัติพักขั้นตอนการชาร์จไว้ชั่วคราวเพื่อยืดอายุการใช้งานแบตเตอรี่หรือไม่
+
+เมื่อเสียบปลั๊กอุปกรณ์อยู่ รูปแบบการชาร์จแบบปรับอัตโนมัติจะประเมินว่าควรพักขั้นตอนการชาร์จไว้ชั่วคราวเพื่อยืดอายุการใช้งานแบตเตอรี่หรือไม่ หากรูปแบบการชาร์จแบบปรับอัตโนมัติพักขั้นตอนการชาร์จไว้ชั่วคราวก็จะคงแบตเตอรี่ไว้ที่ระดับหนึ่ง (เช่น 80%) จากนั้นจะชาร์จจนถึง 100% เมื่อผู้ใช้ต้องการ
+
+หากตั้งค่านโยบายนี้เป็น "จริง" ระบบจะเปิดใช้การชาร์จแบบปรับอัตโนมัติและอนุญาตให้หยุดการชาร์จไว้ชั่วคราวได้เพื่อยืดอายุการใช้งานแบตเตอรี่
+
+หากตั้งค่านโยบายนี้เป็น "เท็จ" หรือไม่ได้ตั้งค่า การชาร์จแบบปรับอัตโนมัติจะไม่ส่งผลต่อขั้นตอนการชาร์จ
+
+หมายเหตุ: นโยบายนี้จะไม่มีผลหากมีการตั้งค่า DevicePowerBatteryChargingOptimization</translation>
 <translation id="8830717323204407209">อนุญาตให้แสดงการโปรโมตส่วนขยายผู้ให้บริการเอกสารสิทธิ์แก่ผู้ใช้</translation>
 <translation id="8832829916385857156">หน้าแท็บใหม่จะแสดงการ์ดหากมีเนื้อหา</translation>
 <translation id="8833109046074170275">การตรวจสอบสิทธิ์ผ่านขั้นตอน GAIA เริ่มต้น</translation>
diff --git a/components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.cc b/components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.cc
index d1c0324..065dc2e 100644
--- a/components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.cc
+++ b/components/signin/internal/identity_manager/mutable_profile_oauth2_token_service_delegate.cc
@@ -353,9 +353,11 @@
 #if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS)
   if (token_binding_helper_ &&
       token_binding_helper_->HasBindingKey(account_id)) {
-    const GaiaId gaia_id =
-        account_tracker_service_->GetAccountInfo(account_id).gaia;
-    CHECK(!gaia_id.empty());
+    // `CoreAccountId` is always equal to Gaia ID on DICE platforms.
+    // We cannot get Gaia ID from `account_tracker_service_` as it's sometimes
+    // unknown and the only way of getting it requires an access token, which
+    // requires a known Gaia ID (see https://crbug.com/386841916).
+    const GaiaId gaia_id(account_id.ToString());
     // `GaiaAccessTokenFetcher` doesn't support bound refresh tokens.
     auto fetcher = std::make_unique<OAuth2MintAccessTokenFetcherAdapter>(
         consumer, url_loader_factory, gaia_id, refresh_token,
diff --git a/components/signin/public/base/signin_feature_map.cc b/components/signin/public/base/signin_feature_map.cc
index e62e0dd..356fe0b 100644
--- a/components/signin/public/base/signin_feature_map.cc
+++ b/components/signin/public/base/signin_feature_map.cc
@@ -23,6 +23,7 @@
     &switches::kSkipCheckForAccountManagementOnSignin,
     &switches::kCctSignInPrompt,
     &switches::kUnoForAuto,
+    &switches::kUseHostedDomainForManagementCheckOnSignin,
 };
 
 // static
diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc
index 05a38280..752e001 100644
--- a/components/signin/public/base/signin_switches.cc
+++ b/components/signin/public/base/signin_switches.cc
@@ -34,6 +34,9 @@
              "ForceSupervisedSigninWithCapabilities",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BASE_FEATURE(kUseHostedDomainForManagementCheckOnSignin,
+             "UseHostedDomainForManagementCheckOnSignin",
+             base::FEATURE_DISABLED_BY_DEFAULT);
 #endif
 
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
diff --git a/components/signin/public/base/signin_switches.h b/components/signin/public/base/signin_switches.h
index 738f942..330d528 100644
--- a/components/signin/public/base/signin_switches.h
+++ b/components/signin/public/base/signin_switches.h
@@ -38,6 +38,9 @@
 
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
 BASE_DECLARE_FEATURE(kForceSupervisedSigninWithCapabilities);
+
+COMPONENT_EXPORT(SIGNIN_SWITCHES)
+BASE_DECLARE_FEATURE(kUseHostedDomainForManagementCheckOnSignin);
 #endif
 
 COMPONENT_EXPORT(SIGNIN_SWITCHES)
diff --git a/components/signin/public/identity_manager/account_managed_status_finder.cc b/components/signin/public/identity_manager/account_managed_status_finder.cc
index e33a5ec..6facfc6 100644
--- a/components/signin/public/identity_manager/account_managed_status_finder.cc
+++ b/components/signin/public/identity_manager/account_managed_status_finder.cc
@@ -12,6 +12,7 @@
 #include "base/logging.h"
 #include "base/time/time.h"
 #include "google_apis/gaia/gaia_auth_util.h"
+#include "google_apis/gaia/google_service_auth_error.h"
 
 #if BUILDFLAG(IS_ANDROID)
 #include "base/android/callback_android.h"
@@ -502,6 +503,11 @@
     base::OnceClosure async_callback,
     base::TimeDelta timeout)
     : identity_manager_(identity_manager), account_(account) {
+  // If a timeout is provided - treat persistent auth errors as timeouts.
+  // The assumption being that time-sensitive code paths (which are mostly in
+  // the UI) shouldn't wait for user to resolve the persistent auth error.
+  ignore_persistent_auth_errors_ = timeout.is_max();
+
   if (!identity_manager_->AreRefreshTokensLoaded()) {
     // We want to make sure that `account` exists in the IdentityManager but
     // we can only that after tokens are loaded. Wait for the
@@ -559,6 +565,32 @@
   OutcomeDeterminedAsync(Outcome::kError);
 }
 
+void AccountManagedStatusFinder::OnErrorStateOfRefreshTokenUpdatedForAccount(
+    const CoreAccountInfo& account_info,
+    const GoogleServiceAuthError& error,
+    signin_metrics::SourceForRefreshTokenOperation token_operation_source) {
+  DCHECK_EQ(outcome_, Outcome::kPending);
+
+  if (!identity_manager_->AreRefreshTokensLoaded()) {
+    // `OnRefreshTokensLoaded` will update the outcome.
+    return;
+  }
+
+  // Don't care about other accounts.
+  if (account_info.account_id != account_.account_id) {
+    return;
+  }
+
+  Outcome outcome = DetermineOutcome();
+  if (outcome == Outcome::kPending) {
+    // There is still not enough information to determine the account managed
+    // status. Keep waiting for notifications from IdentityManager.
+    return;
+  }
+
+  OutcomeDeterminedAsync(outcome);
+}
+
 void AccountManagedStatusFinder::OnRefreshTokensLoaded() {
   DCHECK_EQ(outcome_, Outcome::kPending);
 
@@ -620,6 +652,13 @@
                             : Outcome::kConsumerNotWellKnown;
   }
 
+  GoogleServiceAuthError authError =
+      identity_manager_->GetErrorStateOfRefreshTokenForAccount(
+          account_.account_id);
+  if (!ignore_persistent_auth_errors_ && authError.IsPersistentError()) {
+    return Outcome::kTimeout;
+  }
+
   // Hosted domain info isn't available yet. Observe the IdentityManager to
   // get notified once it is.
   return Outcome::kPending;
diff --git a/components/signin/public/identity_manager/account_managed_status_finder.h b/components/signin/public/identity_manager/account_managed_status_finder.h
index 03aeab4..3bbedf1e 100644
--- a/components/signin/public/identity_manager/account_managed_status_finder.h
+++ b/components/signin/public/identity_manager/account_managed_status_finder.h
@@ -90,6 +90,11 @@
   void OnExtendedAccountInfoUpdated(const AccountInfo& info) override;
   void OnRefreshTokenRemovedForAccount(
       const CoreAccountId& account_id) override;
+  void OnErrorStateOfRefreshTokenUpdatedForAccount(
+      const CoreAccountInfo& account_info,
+      const GoogleServiceAuthError& error,
+      signin_metrics::SourceForRefreshTokenOperation token_operation_source)
+      override;
   void OnRefreshTokensLoaded() override;
   void OnIdentityManagerShutdown(
       signin::IdentityManager* identity_manager) override;
@@ -109,6 +114,7 @@
 
   raw_ptr<signin::IdentityManager> identity_manager_;
   const CoreAccountInfo account_;
+  bool ignore_persistent_auth_errors_ = true;
 
   base::ScopedObservation<signin::IdentityManager,
                           signin::IdentityManager::Observer>
diff --git a/components/signin/public/identity_manager/account_managed_status_finder_unittest.cc b/components/signin/public/identity_manager/account_managed_status_finder_unittest.cc
index 4a76fc98..de55486 100644
--- a/components/signin/public/identity_manager/account_managed_status_finder_unittest.cc
+++ b/components/signin/public/identity_manager/account_managed_status_finder_unittest.cc
@@ -11,6 +11,7 @@
 #include "components/signin/public/identity_manager/identity_manager.h"
 #include "components/signin/public/identity_manager/identity_test_environment.h"
 #include "components/signin/public/identity_manager/identity_test_utils.h"
+#include "google_apis/gaia/google_service_auth_error.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace signin {
@@ -559,4 +560,49 @@
             AccountManagedStatusFinder::Outcome::kEnterprise);
 }
 
+TEST_F(AccountManagedStatusFinderTest, ImmediateOutcomeAuthError) {
+  AccountInfo account =
+      identity_env_.MakeAccountAvailable("account@not-an-enterprise.com");
+  identity_env_.UpdatePersistentErrorOfRefreshTokenForAccount(
+      account.account_id,
+      GoogleServiceAuthError::FromInvalidGaiaCredentialsReason(
+          GoogleServiceAuthError::InvalidGaiaCredentialsReason::
+              CREDENTIALS_REJECTED_BY_SERVER));
+
+  base::MockCallback<base::OnceClosure> outcome_determined;
+  // Need to specify the timeout, otherwise `AccountManagedStatusFinder` ignores
+  // auth errors.
+  base::TimeDelta timeout(base::Seconds(30));
+  AccountManagedStatusFinder finder(identity_env_.identity_manager(), account,
+                                    outcome_determined.Get(), timeout);
+
+  // Since the account has a persistent auth error, the outcome should be
+  // decided immediately.
+  EXPECT_EQ(finder.GetOutcome(), AccountManagedStatusFinder::Outcome::kTimeout);
+  EXPECT_CALL(outcome_determined, Run).Times(0);
+}
+
+TEST_F(AccountManagedStatusFinderTest, DelayedOutcomeAuthError) {
+  AccountInfo account =
+      identity_env_.MakeAccountAvailable("account@not-an-enterprise.com");
+
+  base::MockCallback<base::OnceClosure> outcome_determined;
+  // Need to specify the timeout, otherwise `AccountManagedStatusFinder` ignores
+  // auth errors.
+  base::TimeDelta timeout(base::Seconds(30));
+  AccountManagedStatusFinder finder(identity_env_.identity_manager(), account,
+                                    outcome_determined.Get(), timeout);
+
+  EXPECT_EQ(finder.GetOutcome(), AccountManagedStatusFinder::Outcome::kPending);
+  EXPECT_CALL(outcome_determined, Run);
+
+  identity_env_.UpdatePersistentErrorOfRefreshTokenForAccount(
+      account.account_id,
+      GoogleServiceAuthError::FromInvalidGaiaCredentialsReason(
+          GoogleServiceAuthError::InvalidGaiaCredentialsReason::
+              CREDENTIALS_REJECTED_BY_SERVER));
+
+  EXPECT_EQ(finder.GetOutcome(), AccountManagedStatusFinder::Outcome::kTimeout);
+}
+
 }  // namespace signin
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb
index 97d93cb..ae10bf17 100644
--- a/components/strings/components_strings_mk.xtb
+++ b/components/strings/components_strings_mk.xtb
@@ -2430,7 +2430,7 @@
 <translation id="5329858041417644019">Прелистувачот не е управуван</translation>
 <translation id="5331585574693522196">Постави како стандардно</translation>
 <translation id="5332219387342487447">Метод на испорака</translation>
-<translation id="5332769172018416402">Побарајте со порака</translation>
+<translation id="5332769172018416402">Прашај со порака</translation>
 <translation id="533323551986281710">Долниот лист за трговија е отворен на целосна висина</translation>
 <translation id="5334013548165032829">Детални системски дневници</translation>
 <translation id="5340250774223869109">Апликацијата е блокирана</translation>
@@ -3663,7 +3663,7 @@
 <translation id="7535087603100972091">Вредност</translation>
 <translation id="753556296624075801">Овозможено од Google</translation>
 <translation id="7537536606612762813">Задолжително</translation>
-<translation id="7543525346216957623">Прашајте го родителот</translation>
+<translation id="7543525346216957623">Прашај го родителот</translation>
 <translation id="7546409722674205727">Се стартува <ph name="APP_NAME" /></translation>
 <translation id="7548892272833184391">Поправање грешки при поврзувањето</translation>
 <translation id="7549584377607005141">Веб-страницава бара податоци кои сте ги внеле претходно за правилно да се прикаже. Може повторно да ги испратите податоците, но со тоа ќе ги повторите сите дејства што претходно ги извршила страницата.</translation>
@@ -3898,7 +3898,7 @@
 <translation id="7952327717479677595">Копче за управување со пребарувачите, активирајте го за да управувате со стандардниот пребарувач и пребарувањето сајтови</translation>
 <translation id="7953236668995583915">Вчитајте ја страницава повторно за да се применат ажурираните поставки на сајтов</translation>
 <translation id="7953569069500808819">Шиење на работ горе</translation>
-<translation id="7955105108888461311">Побарај лично</translation>
+<translation id="7955105108888461311">Прашај лично</translation>
 <translation id="7956713633345437162">Мобилни обележувачи</translation>
 <translation id="7961015016161918242">Никогаш</translation>
 <translation id="7962467575542381659">Компјутер на платформа</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 7582e22a..38a99d3 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -3665,7 +3665,7 @@
 <translation id="7535087603100972091">Nilai</translation>
 <translation id="753556296624075801">Dikuasakan oleh Google</translation>
 <translation id="7537536606612762813">Wajib</translation>
-<translation id="7543525346216957623">Tanya ibu bapa anda</translation>
+<translation id="7543525346216957623">Tanya ibu/bapa anda</translation>
 <translation id="7546409722674205727">Memulakan <ph name="APP_NAME" /></translation>
 <translation id="7548892272833184391">Betulkan ralat sambungan</translation>
 <translation id="7549584377607005141">Halaman web ini memerlukan data yang anda masukkan sebelum ini agar dapat dipaparkan dengan betul. Anda boleh menghantar data ini semula, tetapi dengan berbuat demikian anda akan mengulangi sebarang tindakan terdahulu yang telah dilakukan oleh halaman ini.</translation>
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
index 48713207..cdda5f4 100644
--- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc
@@ -186,13 +186,7 @@
 
 BASE_FEATURE(kClassifyUrlOnProcessResponseEvent,
              "ClassifyUrlOnProcessResponseEvent",
-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
-    BUILDFLAG(IS_WIN)
-             base::FEATURE_ENABLED_BY_DEFAULT
-#else
-             base::FEATURE_DISABLED_BY_DEFAULT
-#endif
-);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 BASE_FEATURE(kExemptGuardianApprovalOnGwsRedirector,
              "ExemptGuardianApprovalOnGwsRedirector",
diff --git a/components/translate/DEPS b/components/translate/DEPS
index 70e632f..38bd5a9 100644
--- a/components/translate/DEPS
+++ b/components/translate/DEPS
@@ -2,6 +2,7 @@
   "+components/grit/components_resources.h",
   "+components/infobars",
   "+components/language",
+  "+components/language_detection/core",
   "+components/pref_registry",
   "+components/prefs",
   "+components/strings/grit/components_locale_settings.h",
diff --git a/components/translate/core/common/BUILD.gn b/components/translate/core/common/BUILD.gn
index 01d3be6..3bfbf5d 100644
--- a/components/translate/core/common/BUILD.gn
+++ b/components/translate/core/common/BUILD.gn
@@ -23,6 +23,7 @@
   deps = [
     "//base",
     "//components/language/core/common",
+    "//components/language_detection/core:core",
     "//third_party/metrics_proto",
     "//url",
   ]
diff --git a/components/translate/core/common/translate_constants.cc b/components/translate/core/common/translate_constants.cc
index 95e8dd319..aa3ccf6 100644
--- a/components/translate/core/common/translate_constants.cc
+++ b/components/translate/core/common/translate_constants.cc
@@ -6,8 +6,6 @@
 
 namespace translate {
 
-const char* const kUnknownLanguageCode = "und";
-
 const int kDesktopPartialTranslateTextSelectionMaxCharacters = 500;
 
 const int kDesktopPartialTranslateBubbleShowDelayMs = 500;
diff --git a/components/translate/core/common/translate_constants.h b/components/translate/core/common/translate_constants.h
index f65321e7..8ac30d4 100644
--- a/components/translate/core/common/translate_constants.h
+++ b/components/translate/core/common/translate_constants.h
@@ -5,11 +5,9 @@
 #ifndef COMPONENTS_TRANSLATE_CORE_COMMON_TRANSLATE_CONSTANTS_H_
 #define COMPONENTS_TRANSLATE_CORE_COMMON_TRANSLATE_CONSTANTS_H_
 
-namespace translate {
+#include "components/language_detection/core/constants.h"
 
-// The language code used when the language of a page could not be detected.
-// (Matches what the CLD -Compact Language Detection- library reports.)
-extern const char* const kUnknownLanguageCode;
+namespace translate {
 
 // The maximum number of characters allowed for a text selection in Partial
 // Translate. Longer selections will be truncated down to the first valid word
@@ -20,6 +18,10 @@
 // is shown.
 extern const int kDesktopPartialTranslateBubbleShowDelayMs;
 
+// TODO(https://crbug.com/380786760): Delete this when all users have migrated
+// to the language_detection:: version.
+using language_detection::kUnknownLanguageCode;
+
 }  // namespace translate
 
 #endif  // COMPONENTS_TRANSLATE_CORE_COMMON_TRANSLATE_CONSTANTS_H_
diff --git a/components/translate/core/language_detection/language_detection_model.cc b/components/translate/core/language_detection/language_detection_model.cc
index 6f1867dc..2cce45e 100644
--- a/components/translate/core/language_detection/language_detection_model.cc
+++ b/components/translate/core/language_detection/language_detection_model.cc
@@ -18,12 +18,6 @@
 #include "components/translate/core/language_detection/language_detection_util.h"
 
 namespace translate {
-// If enabled, the string passed to the language detection model for the whole
-// page is truncated to `kTextSampleLength`
-BASE_FEATURE(kTruncateLanguageDetectionSample,
-             "TruncateLanguageDetectionSample",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 LanguageDetectionModel::LanguageDetectionModel(
     language_detection::LanguageDetectionModel& shared_tflite_model)
     : tflite_model_(shared_tflite_model) {}
diff --git a/components/translate/core/language_detection/language_detection_model.h b/components/translate/core/language_detection/language_detection_model.h
index f222987..eccdca1 100644
--- a/components/translate/core/language_detection/language_detection_model.h
+++ b/components/translate/core/language_detection/language_detection_model.h
@@ -26,8 +26,6 @@
 // determining the language of the page content.
 inline constexpr int kNumTextSamples = 3;
 
-BASE_DECLARE_FEATURE(kTruncateLanguageDetectionSample);
-
 // A language detection model that will use a TFLite model to determine the
 // language of the content of the web page.
 class LanguageDetectionModel {
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
index 6b02f11..fc205d0 100644
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -185,7 +185,7 @@
 // ignored. If there's no allowlist, the soc must be absent from the blocklist.
 BASE_FEATURE(kWebViewEnableADPF,
              "WebViewEnableADPF",
-             base::FEATURE_DISABLED_BY_DEFAULT);
+             base::FEATURE_ENABLED_BY_DEFAULT);
 
 const base::FeatureParam<std::string> kWebViewADPFSocManufacturerAllowlist{
     &kWebViewEnableADPF, "webview_soc_manufacturer_allowlist", "Google"};
diff --git a/components/viz/service/BUILD.gn b/components/viz/service/BUILD.gn
index 51ef96b3..f0b5397 100644
--- a/components/viz/service/BUILD.gn
+++ b/components/viz/service/BUILD.gn
@@ -421,6 +421,8 @@
       "frame_sinks/external_begin_frame_source_android.h",
       "gl/throw_uncaught_exception.cc",
       "gl/throw_uncaught_exception.h",
+      "input/android_state_transfer_handler.cc",
+      "input/android_state_transfer_handler.h",
       "input/fling_scheduler_android.cc",
       "input/fling_scheduler_android.h",
       "input/render_input_router_support_android.cc",
@@ -689,7 +691,9 @@
       "display/overlay_unittest.cc",
       "frame_sinks/external_begin_frame_source_android_unittest.cc",
       "frame_sinks/fling_scheduler_android_unittest.cc",
+      "input/android_state_transfer_handler_unittest.cc",
     ]
+    deps += [ "//ui/events:motionevent_jni_headers" ]
   }
 
   if (enable_vulkan) {
diff --git a/components/viz/service/display/software_renderer_unittest.cc b/components/viz/service/display/software_renderer_unittest.cc
index f9a45ef..110229c 100644
--- a/components/viz/service/display/software_renderer_unittest.cc
+++ b/components/viz/service/display/software_renderer_unittest.cc
@@ -99,22 +99,23 @@
 
   ResourceId AllocateAndFillSoftwareResource(const gfx::Size& size,
                                              const SkBitmap& source) {
-    auto shared_image_mapping = shared_image_interface()->CreateSharedImage(
-        {SinglePlaneFormat::kBGRA_8888, size, gfx::ColorSpace(),
-         gpu::SHARED_IMAGE_USAGE_CPU_WRITE_ONLY,
-         "SoftwareRendererTestSharedBitmap"});
+    auto shared_image =
+        shared_image_interface()->CreateSharedImageForSoftwareCompositor(
+            {SinglePlaneFormat::kBGRA_8888, size, gfx::ColorSpace(),
+             gpu::SHARED_IMAGE_USAGE_CPU_WRITE_ONLY,
+             "SoftwareRendererTestSharedBitmap"});
+    auto mapping = shared_image->Map();
 
     SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height());
-    source.readPixels(info, shared_image_mapping.mapping.memory(),
+    source.readPixels(info, mapping->GetMemoryForPlane(0).data(),
                       info.minRowBytes(), 0, 0);
 
     auto transferable_resource = TransferableResource::MakeSoftwareSharedImage(
-        shared_image_mapping.shared_image,
-        shared_image_interface()->GenVerifiedSyncToken(), size,
+        shared_image, shared_image_interface()->GenVerifiedSyncToken(), size,
         SinglePlaneFormat::kBGRA_8888,
         TransferableResource::ResourceSource::kTileRasterTask);
-    auto release_callback = base::BindOnce(
-        &DeleteSharedImage, std::move(shared_image_mapping.shared_image));
+    auto release_callback =
+        base::BindOnce(&DeleteSharedImage, std::move(shared_image));
 
     return child_resource_provider_->ImportResource(
         std::move(transferable_resource), std::move(release_callback));
diff --git a/components/viz/service/input/android_state_transfer_handler.cc b/components/viz/service/input/android_state_transfer_handler.cc
new file mode 100644
index 0000000..ca093d6
--- /dev/null
+++ b/components/viz/service/input/android_state_transfer_handler.cc
@@ -0,0 +1,233 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/viz/service/input/android_state_transfer_handler.h"
+
+#include <utility>
+
+#include "base/check_deref.h"
+#include "base/notreached.h"
+#include "ui/events/android/motion_event_android_native.h"
+
+namespace viz {
+
+namespace {
+
+base::TimeTicks GetEventDowntime(const base::android::ScopedInputEvent& event) {
+  return base::TimeTicks::FromUptimeMillis(
+      AMotionEvent_getDownTime(event.a_input_event()) /
+      base::Time::kNanosecondsPerMillisecond);
+}
+
+}  // namespace
+
+AndroidStateTransferHandler::TransferState::TransferState(
+    base::WeakPtr<RenderInputRouterSupportAndroidInterface> support,
+    input::mojom::TouchTransferStatePtr state)
+    : rir_support(support), transfer_state(std::move(state)) {
+  CHECK(transfer_state);
+}
+
+AndroidStateTransferHandler::TransferState::~TransferState() = default;
+
+AndroidStateTransferHandler::TransferState::TransferState(
+    TransferState&& other) {
+  rir_support = other.rir_support;
+  other.rir_support = nullptr;
+  transfer_state = std::move(other.transfer_state);
+}
+
+AndroidStateTransferHandler::AndroidStateTransferHandler() = default;
+
+AndroidStateTransferHandler::~AndroidStateTransferHandler() = default;
+
+void AndroidStateTransferHandler::StateOnTouchTransfer(
+    input::mojom::TouchTransferStatePtr state,
+    base::WeakPtr<RenderInputRouterSupportAndroidInterface> rir_support) {
+  TRACE_EVENT("viz", "AndroidStateTransferHandler::StateOnTouchTransfer");
+
+  EmitPendingTransfersHistogram();
+
+  // TODO(crbug.com/383323530): Convert it to CHECK once we are using
+  // AssociatedRemotes for passing state from Browser to Viz.
+  const bool state_received_out_of_order =
+      (!pending_transferred_states_.empty() &&
+       (state->down_time_ms <
+        pending_transferred_states_.back().transfer_state->down_time_ms));
+  if (state_received_out_of_order) {
+    TRACE_EVENT_INSTANT("viz", "OutOfOrderTransferStateDropped");
+    // Drop out of order state received.
+    // It is possible since the state transfers coming from different web
+    // contents come over different mojo pipes.
+    return;
+  }
+
+  MaybeDropEventsFromEarlierSequences(state);
+
+  pending_transferred_states_.emplace(rir_support, std::move(state));
+  if (pending_transferred_states_.size() > kMaxPendingTransferredStates) {
+    pending_transferred_states_.pop();
+  }
+
+  if (events_buffer_.empty()) {
+    return;
+  }
+
+  if (CanStartProcessingVizEvents(events_buffer_.front())) {
+    while (!events_buffer_.empty()) {
+      if (!state_for_curr_sequence_.has_value()) {
+        // This can happen if the whole sequence was received on Viz before the
+        // state could be transferred from Browser. Early out since we wouldn't
+        // want to process the events from next sequence if they made it to
+        // queue as well. `state_for_curr_sequence_` is reset at the end of
+        // touch sequence when touch up or cancel is seen in `HandleTouchEvent`
+        // method.
+        return;
+      }
+      HandleTouchEvent(std::move(events_buffer_.front()));
+      events_buffer_.pop();
+    }
+  }
+}
+
+bool AndroidStateTransferHandler::OnMotionEvent(
+    base::android::ScopedInputEvent input_event,
+    const FrameSinkId& root_frame_sink_id) {
+  TRACE_EVENT("input", "AndroidStateTransferHandler::OnMotionEvent");
+
+  const int action = AMotionEvent_getAction(input_event.a_input_event()) &
+                     AMOTION_EVENT_ACTION_MASK;
+  if (ignore_remaining_touch_sequence_) {
+    if (action == AMOTION_EVENT_ACTION_CANCEL ||
+        action == AMOTION_EVENT_ACTION_UP) {
+      ignore_remaining_touch_sequence_ = false;
+      state_for_curr_sequence_.reset();
+    }
+    return true;
+  }
+
+  ValidateRootFrameSinkId(root_frame_sink_id);
+
+  if (state_for_curr_sequence_.has_value() ||
+      CanStartProcessingVizEvents(input_event)) {
+    HandleTouchEvent(std::move(input_event));
+    return true;
+  }
+
+  bool events_from_dropped_sequence =
+      !pending_transferred_states_.empty() &&
+      (GetEventDowntime(input_event) <
+       pending_transferred_states_.front().transfer_state->down_time_ms);
+  if (events_from_dropped_sequence) {
+    return true;
+  }
+
+  // Queue events until we can start processing events received directly on
+  // Viz.
+  // TODO(crbug.com/384424270): Coalesce touch moves instead of pushing
+  // individual events to queue.
+  events_buffer_.push(std::move(input_event));
+
+  // Always return true since we are receiving input on Viz after hit testing on
+  // Browser already determined that web contents are being hit.
+  return true;
+}
+
+bool AndroidStateTransferHandler::CanStartProcessingVizEvents(
+    const base::android::ScopedInputEvent& event) {
+  CHECK(!state_for_curr_sequence_.has_value());
+
+  if (pending_transferred_states_.empty()) {
+    return false;
+  }
+
+  const jlong j_event_down_time =
+      base::TimeTicks::FromJavaNanoTime(
+          AMotionEvent_getDownTime(event.a_input_event()))
+          .ToUptimeMillis();
+  base::TimeTicks event_down_time =
+      base::TimeTicks::FromUptimeMillis(j_event_down_time);
+
+  auto& state = pending_transferred_states_.front();
+  // Touch event corresponding to previous state transfer should be
+  // processed before next sequence starts.
+  if (event_down_time == state.transfer_state->down_time_ms) {
+    state_for_curr_sequence_.emplace(std::move(state));
+    pending_transferred_states_.pop();
+    return true;
+  }
+  CHECK_LT(event_down_time, state.transfer_state->down_time_ms);
+  return false;
+}
+
+void AndroidStateTransferHandler::MaybeDropEventsFromEarlierSequences(
+    const input::mojom::TouchTransferStatePtr& state) {
+  if (events_buffer_.empty()) {
+    return;
+  }
+  while (!events_buffer_.empty() &&
+         GetEventDowntime(events_buffer_.front()) < state->down_time_ms) {
+    events_buffer_.pop();
+  }
+}
+
+void AndroidStateTransferHandler::EmitPendingTransfersHistogram() {
+  const char* histogram_name;
+  if (state_for_curr_sequence_.has_value()) {
+    histogram_name = kPendingTransfersHistogramNonNull;
+  } else {
+    histogram_name = kPendingTransfersHistogramNull;
+  }
+  // We don't expect histogram value i.e. `pending_transferred_states_.size()`
+  // to be more than 3(`kMaxPendingTransferredStates`, but leaving histogram max
+  // to 10 to have some space to increase `kMaxPendingTransferredStates`.
+  base::UmaHistogramCustomCounts(histogram_name,
+                                 pending_transferred_states_.size(), /*min=*/1,
+                                 /*exclusive_max=*/10, /*buckets=*/10u);
+}
+
+void AndroidStateTransferHandler::HandleTouchEvent(
+    base::android::ScopedInputEvent input_event) {
+  CHECK(state_for_curr_sequence_.has_value() &&
+        GetEventDowntime(input_event) ==
+            state_for_curr_sequence_->transfer_state->down_time_ms);
+
+  if (!state_for_curr_sequence_->rir_support) {
+    const int action = AMotionEvent_getAction(input_event.a_input_event()) &
+                       AMOTION_EVENT_ACTION_MASK;
+    if (action == AMOTION_EVENT_ACTION_CANCEL ||
+        action == AMOTION_EVENT_ACTION_UP) {
+      state_for_curr_sequence_.reset();
+      ignore_remaining_touch_sequence_ = false;
+    } else {
+      ignore_remaining_touch_sequence_ = true;
+    }
+    return;
+  }
+
+  // TOOD(crbug.com/370506271): Use correct pix_to_dip for creating events.
+  auto event = ui::MotionEventAndroidNative::Create(
+      std::move(input_event),
+      /* pix_to_dip= */ 1,
+      state_for_curr_sequence_->transfer_state->raw_y_offset);
+
+  state_for_curr_sequence_->rir_support->OnTouchEvent(
+      *event.get(), /* emit_histograms= */ true);
+
+  if (event->GetAction() == ui::MotionEvent::Action::UP ||
+      event->GetAction() == ui::MotionEvent::Action::CANCEL) {
+    state_for_curr_sequence_.reset();
+  }
+}
+
+void AndroidStateTransferHandler::ValidateRootFrameSinkId(
+    const FrameSinkId& root_frame_sink_id) {
+  CHECK(root_frame_sink_id.is_valid());
+  if (active_root_frame_sink_id_ != root_frame_sink_id) {
+    CHECK(!active_root_frame_sink_id_.is_valid());
+    active_root_frame_sink_id_ = root_frame_sink_id;
+  }
+}
+
+}  // namespace viz
diff --git a/components/viz/service/input/android_state_transfer_handler.h b/components/viz/service/input/android_state_transfer_handler.h
new file mode 100644
index 0000000..4387be5
--- /dev/null
+++ b/components/viz/service/input/android_state_transfer_handler.h
@@ -0,0 +1,91 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_VIZ_SERVICE_INPUT_ANDROID_STATE_TRANSFER_HANDLER_H_
+#define COMPONENTS_VIZ_SERVICE_INPUT_ANDROID_STATE_TRANSFER_HANDLER_H_
+
+#include <optional>
+
+#include "base/containers/queue.h"
+#include "base/memory/weak_ptr.h"
+#include "base/metrics/histogram_functions.h"
+#include "components/input/android/android_input_callback.h"
+#include "components/input/render_input_router.mojom.h"
+#include "components/viz/common/surfaces/frame_sink_id.h"
+#include "components/viz/service/input/render_input_router_support_android.h"
+#include "components/viz/service/viz_service_export.h"
+
+namespace viz {
+
+// AndroidStateTransferHandler listens to input events coming from Android
+// platform and receives |TouchTransferState| coming from Browser. Input events
+// are queued until state for corresponding touch sequence is received from
+// Browser, similarly state is queued until we started receiving input events
+// from Android platform.
+class VIZ_SERVICE_EXPORT AndroidStateTransferHandler
+    : public input::AndroidInputCallbackClient {
+ public:
+  AndroidStateTransferHandler();
+  ~AndroidStateTransferHandler();
+
+  // AndroidInputCallbackClient implementation.
+  bool OnMotionEvent(base::android::ScopedInputEvent input_event,
+                     const FrameSinkId& root_frame_sink_id) override;
+
+  // `rir_support`: RenderInputRouterSupport corresponding to root widget's
+  // FrameSinkId in TouchTransferState. `rir_support` can be null at the start
+  // or in the middle of sequence in case CompositorFrameSink got destroyed.
+  void StateOnTouchTransfer(
+      input::mojom::TouchTransferStatePtr state,
+      base::WeakPtr<RenderInputRouterSupportAndroidInterface> rir_support);
+
+  size_t GetEventsBufferSizeForTesting() const { return events_buffer_.size(); }
+
+  static constexpr const char* kPendingTransfersHistogramNonNull =
+      "Android.InputOnViz.Viz.PendingStateTransfers.NonNullCurrentState";
+  static constexpr const char* kPendingTransfersHistogramNull =
+      "Android.InputOnViz.Viz.PendingStateTransfers.NullCurrentState";
+
+ private:
+  bool CanStartProcessingVizEvents(
+      const base::android::ScopedInputEvent& event);
+
+  void HandleTouchEvent(base::android::ScopedInputEvent input_event);
+  void MaybeDropEventsFromEarlierSequences(
+      const input::mojom::TouchTransferStatePtr& state);
+  void EmitPendingTransfersHistogram();
+  void ValidateRootFrameSinkId(const FrameSinkId& root_frame_sink_id);
+
+  // We currently only support a single active root frame sink.
+  FrameSinkId active_root_frame_sink_id_;
+
+  bool ignore_remaining_touch_sequence_ = false;
+
+  struct TransferState {
+    TransferState(
+        base::WeakPtr<RenderInputRouterSupportAndroidInterface> support,
+        input::mojom::TouchTransferStatePtr transfer_state);
+    TransferState(TransferState&& other);
+    ~TransferState();
+
+    base::WeakPtr<RenderInputRouterSupportAndroidInterface> rir_support;
+    input::mojom::TouchTransferStatePtr transfer_state;
+  };
+
+  // State corresponding to active touch sequence.
+  std::optional<TransferState> state_for_curr_sequence_ = std::nullopt;
+
+  // The list maintains sorted order by key `TouchTransferState.down_time_ms`.
+  // Any state transfer received out of order is dropped.
+  base::queue<TransferState> pending_transferred_states_;
+  static constexpr int kMaxPendingTransferredStates = 3;
+
+  // Stores input events until we have received state from Browser for the
+  // currently transferred touch sequence.
+  base::queue<base::android::ScopedInputEvent> events_buffer_;
+};
+
+}  // namespace viz
+
+#endif  // COMPONENTS_VIZ_SERVICE_INPUT_ANDROID_STATE_TRANSFER_HANDLER_H_
diff --git a/components/viz/service/input/android_state_transfer_handler_unittest.cc b/components/viz/service/input/android_state_transfer_handler_unittest.cc
new file mode 100644
index 0000000..ab523b2
--- /dev/null
+++ b/components/viz/service/input/android_state_transfer_handler_unittest.cc
@@ -0,0 +1,421 @@
+// Copyright 2025 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/viz/service/input/android_state_transfer_handler.h"
+
+#include <android/input.h>
+
+#include <utility>
+#include <vector>
+
+#include "base/android/build_info.h"
+#include "base/android/jni_android.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+// Must come after all headers that specialize FromJniType() / ToJniType().
+#include "ui/events/motionevent_jni_headers/MotionEvent_jni.h"
+
+namespace viz {
+
+using ::testing::_;
+
+namespace {
+
+constexpr int kAndroidActionDown = AMOTION_EVENT_ACTION_DOWN;
+constexpr int kAndroidActionMove = AMOTION_EVENT_ACTION_MOVE;
+constexpr int kAndroidActionUp = AMOTION_EVENT_ACTION_UP;
+constexpr FrameSinkId kRootCompositorFrameSinkId = FrameSinkId(1, 1);
+constexpr FrameSinkId kRootWidgetFrameSinkId = FrameSinkId(2, 3);
+
+base::android::ScopedInputEvent GetInputEvent(jlong down_time_ms,
+                                              jlong event_time_ms,
+                                              int action,
+                                              float x,
+                                              float y) {
+  // Java_MotionEvent_obtain expects timestamps(down time, event time) obtained
+  // from |SystemClock#uptimeMillis()|.
+  JNIEnv* env = base::android::AttachCurrentThread();
+  base::android::ScopedJavaLocalRef<jobject> java_motion_event =
+      JNI_MotionEvent::Java_MotionEvent_obtain(env, down_time_ms, event_time_ms,
+                                               action, x, y,
+                                               /*metaState=*/0);
+  const AInputEvent* native_event = nullptr;
+  if (__builtin_available(android 31, *)) {
+    native_event = AMotionEvent_fromJava(env, java_motion_event.obj());
+  }
+  CHECK(native_event);
+
+  return base::android::ScopedInputEvent(native_event);
+}
+
+struct TestInputStream {
+  base::TimeTicks down_time_ms;
+  std::vector<base::android::ScopedInputEvent> events;
+};
+
+TestInputStream GenerateEventsForSequence(int num_moves,
+                                          bool include_touch_up) {
+  static base::TimeTicks event_time =
+      base::TimeTicks::Now() - base::Milliseconds(100);
+  static float x = 100;
+  static float y = 200;
+
+  TestInputStream event_stream;
+
+  event_time += base::Milliseconds(8);
+  x += 5;
+  y += 5;
+
+  jlong down_time = event_time.ToUptimeMillis();
+  event_stream.down_time_ms = base::TimeTicks::FromUptimeMillis(down_time);
+  event_stream.events.push_back(GetInputEvent(
+      down_time, event_time.ToUptimeMillis(), kAndroidActionDown, x, y));
+
+  for (int i = 1; i <= num_moves; i++) {
+    event_time += base::Milliseconds(8);
+    x += 5;
+    y += 5;
+    event_stream.events.push_back(GetInputEvent(
+        down_time, event_time.ToUptimeMillis(), kAndroidActionMove, x, y));
+  }
+  if (include_touch_up) {
+    event_time += base::Milliseconds(8);
+    event_stream.events.push_back(GetInputEvent(
+        down_time, event_time.ToUptimeMillis(), kAndroidActionUp, x, y));
+  }
+  return event_stream;
+}
+
+}  // namespace
+
+class MockRenderInputRouterSupportAndroid
+    : public RenderInputRouterSupportAndroidInterface {
+ public:
+  virtual ~MockRenderInputRouterSupportAndroid() = default;
+
+  MOCK_METHOD((bool),
+              OnTouchEvent,
+              (const ui::MotionEventAndroid&, bool),
+              (override));
+
+  base::WeakPtr<RenderInputRouterSupportAndroidInterface> GetWeakPtr() {
+    return weak_factory_.GetWeakPtr();
+  }
+
+  void Destroy() { weak_factory_.InvalidateWeakPtrs(); }
+
+ private:
+  base::WeakPtrFactory<RenderInputRouterSupportAndroidInterface> weak_factory_{
+      this};
+};
+
+class AndroidStateTransferHandlerTest : public testing::Test {
+ public:
+  void SetUp() override {
+    if (base::android::BuildInfo::GetInstance()->sdk_int() <
+        base::android::SDK_VERSION_V) {
+      GTEST_SKIP()
+          << "AndroidStateTransferHandlerTest is used only when InputOnViz "
+             "is enabled i.e. on Android V+";
+    }
+  }
+
+ protected:
+  MockRenderInputRouterSupportAndroid mock_rir_support_;
+  AndroidStateTransferHandler handler_;
+};
+
+// The order of events received:
+// Down1 -> Move1 -> StateTransfer(for Down1)
+TEST_F(AndroidStateTransferHandlerTest, EventsProcessedOnStateTransfer) {
+  TestInputStream event_stream = GenerateEventsForSequence(
+      /*num_moves*/ 1,
+      /*include_touch_up*/ false);
+
+  for (auto& event : event_stream.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 2u);
+
+  auto state = input::mojom::TouchTransferState::New();
+  state->down_time_ms = event_stream.down_time_ms;
+  state->root_widget_frame_sink_id = kRootWidgetFrameSinkId;
+
+  // Both the events should be dequeued and processed.
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(2);
+  handler_.StateOnTouchTransfer(std::move(state),
+                                mock_rir_support_.GetWeakPtr());
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// Down1 -> Move1 -> StateTransfer(for Down1)
+// The rir_support for widget referred in state is already destroyed.
+TEST_F(AndroidStateTransferHandlerTest, RIRSupportNullOnStateTransfer) {
+  TestInputStream event_stream = GenerateEventsForSequence(
+      /*num_moves*/ 1,
+      /*include_touch_up*/ false);
+
+  for (auto& event : event_stream.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 2u);
+
+  auto state = input::mojom::TouchTransferState::New();
+  state->down_time_ms = event_stream.down_time_ms;
+  state->root_widget_frame_sink_id = kRootWidgetFrameSinkId;
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(0);
+  handler_.StateOnTouchTransfer(std::move(state),
+                                /* rir_support= */ nullptr);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// StateTransfer(for Down1) -> Down1 -> Move1 -> OnDestroyedCompositorFrameSink
+// -> Move3.
+// Move3 ends up getting dropped.
+TEST_F(AndroidStateTransferHandlerTest,
+       InputReceivingCompositorFrameSinkDestroyedMidSequence) {
+  TestInputStream event_stream = GenerateEventsForSequence(
+      /*num_moves*/ 2,
+      /*include_touch_up*/ false);
+
+  auto state = input::mojom::TouchTransferState::New();
+  state->down_time_ms = event_stream.down_time_ms;
+  state->root_widget_frame_sink_id = kRootWidgetFrameSinkId;
+
+  handler_.StateOnTouchTransfer(std::move(state),
+                                mock_rir_support_.GetWeakPtr());
+  handler_.OnMotionEvent(std::move(event_stream.events[0]),
+                         kRootCompositorFrameSinkId);
+  handler_.OnMotionEvent(std::move(event_stream.events[1]),
+                         kRootCompositorFrameSinkId);
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(0);
+  mock_rir_support_.Destroy();
+
+  //  The events are dropped after the render input router support is
+  //  destroyed.
+  handler_.OnMotionEvent(std::move(event_stream.events[2]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// StateTransfer(for Down1) -> Down1 -> Move1
+// Down1 and Move1 can be immediately processed.
+TEST_F(AndroidStateTransferHandlerTest, StateReceivedBeforeTouchDownOnViz) {
+  TestInputStream event_stream = GenerateEventsForSequence(
+      /*num_moves*/ 2,
+      /*include_touch_up*/ false);
+
+  auto state = input::mojom::TouchTransferState::New();
+  state->down_time_ms = event_stream.down_time_ms;
+  state->root_widget_frame_sink_id = kRootWidgetFrameSinkId;
+  handler_.StateOnTouchTransfer(std::move(state),
+                                mock_rir_support_.GetWeakPtr());
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(1);
+  handler_.OnMotionEvent(std::move(event_stream.events[0]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(1);
+  handler_.OnMotionEvent(std::move(event_stream.events[1]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// StateTransfer(for Down1) -> Down1 -> Move1 -> StateTransfer(for Down2) -> Up1
+// -> Down2 Down1 and move1 can be immediately processed.
+TEST_F(AndroidStateTransferHandlerTest, NewStateReceivedMidSequence) {
+  TestInputStream event_stream_1 =
+      GenerateEventsForSequence(/*num_moves*/ 1,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_2 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ false);
+
+  // State is received before receiving any touch events directly on Viz
+  auto state1 = input::mojom::TouchTransferState::New();
+  state1->down_time_ms = event_stream_1.down_time_ms;
+
+  handler_.StateOnTouchTransfer(std::move(state1),
+                                mock_rir_support_.GetWeakPtr());
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(3);
+  // Down1 is received.
+  handler_.OnMotionEvent(std::move(event_stream_1.events[0]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  // Move1 is received.
+  handler_.OnMotionEvent(std::move(event_stream_1.events[1]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  // State for second sequence is received.
+  MockRenderInputRouterSupportAndroid mock_rir_support2;
+  auto state2 = input::mojom::TouchTransferState::New();
+  state2->down_time_ms = event_stream_2.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state2),
+                                mock_rir_support2.GetWeakPtr());
+
+  // Up1 is received.
+  handler_.OnMotionEvent(std::move(event_stream_1.events[2]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  // Down1 is received from second sequence, on different
+  // RenderInputRouterSupport.
+  EXPECT_CALL(mock_rir_support2, OnTouchEvent(_, _)).Times(1);
+  handler_.OnMotionEvent(std::move(event_stream_2.events[0]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// Down1 -> Move1 -> Up1 -> Down2 -> StateTransfer(for Down1)
+// Down1 and move1 can be immediately processed.
+TEST_F(AndroidStateTransferHandlerTest,
+       FullSequenceReceivedBeforeStateTransfer) {
+  TestInputStream event_stream_1 =
+      GenerateEventsForSequence(/*num_moves*/ 1,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_2 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ false);
+
+  for (auto& event : event_stream_1.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 3u);
+
+  for (auto& event : event_stream_2.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 4u);
+
+  // State is received before receiving any touch events directly on Viz
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(3);
+  auto state1 = input::mojom::TouchTransferState::New();
+  state1->down_time_ms = event_stream_1.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state1),
+                                mock_rir_support_.GetWeakPtr());
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 1u);
+}
+
+// The order of events received:
+// StateTransfer(Down2) -> Down1 -> Up1 -> Down2
+TEST_F(AndroidStateTransferHandlerTest,
+       InputEventsAreNotQueuedForDroppedStateTransfer) {
+  TestInputStream event_stream_1 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_2 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ false);
+
+  auto state2 = input::mojom::TouchTransferState::New();
+  state2->down_time_ms = event_stream_2.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state2),
+                                mock_rir_support_.GetWeakPtr());
+
+  for (auto& event : event_stream_1.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(1);
+  for (auto& event : event_stream_2.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+}
+
+// The order of events received:
+// Down1 -> Up1 -> Down2 -> Up2 -> Down3 -> StateTransfer(Down3)
+TEST_F(AndroidStateTransferHandlerTest,
+       QueuedInputEventsDroppedUponLaterStateTransfer) {
+  TestInputStream event_stream_1 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_2 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_3 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ false);
+
+  for (auto& event : event_stream_1.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  for (auto& event : event_stream_2.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  for (auto& event : event_stream_3.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(),
+            event_stream_1.events.size() + event_stream_2.events.size() +
+                event_stream_3.events.size());
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(1);
+  auto state3 = input::mojom::TouchTransferState::New();
+  state3->down_time_ms = event_stream_3.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state3),
+                                mock_rir_support_.GetWeakPtr());
+}
+
+// The order of events received:
+// StateTransfer(Down1) -> Down1 -> Move1 -> OnDestroyedCompositorFrameSink ->
+// Up1 -> Down2 -> StateTransfer(Down2)
+TEST_F(AndroidStateTransferHandlerTest, RirNullOnLastInputInSequence) {
+  TestInputStream event_stream_1 =
+      GenerateEventsForSequence(/*num_moves*/ 1,
+                                /*include_touch_up*/ true);
+
+  TestInputStream event_stream_2 =
+      GenerateEventsForSequence(/*num_moves*/ 0,
+                                /*include_touch_up*/ false);
+
+  auto state1 = input::mojom::TouchTransferState::New();
+  state1->down_time_ms = event_stream_1.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state1),
+                                mock_rir_support_.GetWeakPtr());
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(2);
+  handler_.OnMotionEvent(std::move(event_stream_1.events[0]),
+                         kRootCompositorFrameSinkId);
+  handler_.OnMotionEvent(std::move(event_stream_1.events[1]),
+                         kRootCompositorFrameSinkId);
+
+  mock_rir_support_.Destroy();
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(0);
+  handler_.OnMotionEvent(std::move(event_stream_1.events[2]),
+                         kRootCompositorFrameSinkId);
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 0u);
+
+  for (auto& event : event_stream_2.events) {
+    handler_.OnMotionEvent(std::move(event), kRootCompositorFrameSinkId);
+  }
+  EXPECT_EQ(handler_.GetEventsBufferSizeForTesting(), 1u);
+
+  EXPECT_CALL(mock_rir_support_, OnTouchEvent(_, _)).Times(1);
+  auto state2 = input::mojom::TouchTransferState::New();
+  state2->down_time_ms = event_stream_2.down_time_ms;
+  handler_.StateOnTouchTransfer(std::move(state2),
+                                mock_rir_support_.GetWeakPtr());
+}
+
+}  // namespace viz
diff --git a/components/viz/service/input/input_manager.cc b/components/viz/service/input/input_manager.cc
index c4da5027..4dedeff 100644
--- a/components/viz/service/input/input_manager.cc
+++ b/components/viz/service/input/input_manager.cc
@@ -381,7 +381,18 @@
 }
 void InputManager::StateOnTouchTransfer(
     input::mojom::TouchTransferStatePtr state) {
-  // TODO(crbug.com/370506271): Handle state to start processing input events.
+#if BUILDFLAG(IS_ANDROID)
+  auto iter = frame_sink_metadata_map_.find(state->root_widget_frame_sink_id);
+  base::WeakPtr<RenderInputRouterSupportAndroidInterface>
+      support_android_interface = nullptr;
+  if (iter != frame_sink_metadata_map_.end()) {
+    auto* support_android = static_cast<RenderInputRouterSupportAndroid*>(
+        iter->second.rir_support.get());
+    support_android_interface = support_android->GetWeakPtr();
+  }
+  android_state_transfer_handler_.StateOnTouchTransfer(
+      std::move(state), support_android_interface);
+#endif
 }
 
 void InputManager::NotifySiteIsMobileOptimized(
@@ -512,7 +523,8 @@
   }
 
   std::unique_ptr<input::AndroidInputCallback> android_input_callback =
-      std::make_unique<input::AndroidInputCallback>(frame_sink_id, this);
+      std::make_unique<input::AndroidInputCallback>(
+          frame_sink_id, &android_state_transfer_handler_);
   // Destructor of |ScopedInputReceiverCallbacks| will call
   // |AInputReceiverCallbacks_release|, so we don't have to explicitly unset the
   // motion event callback we set below using
@@ -560,16 +572,6 @@
       std::move(receiver), std::move(viz_input_token));
 }
 
-bool InputManager::OnMotionEvent(base::android::ScopedInputEvent input_event,
-                                 const FrameSinkId& root_frame_sink_id) {
-  // TODO(370506271): Implement once we do the state transfer from Browser on
-  // touch down.
-
-  // Always return true since we are receiving input on Viz after hit testing on
-  // Browser already determined that web contents are being hit.
-  return true;
-}
-
 BeginFrameSource* InputManager::GetBeginFrameSourceForFrameSink(
     const FrameSinkId& id) {
   return frame_sink_manager_->GetFrameSinkForId(id)->begin_frame_source();
diff --git a/components/viz/service/input/input_manager.h b/components/viz/service/input/input_manager.h
index abddd20..fd7f9b4 100644
--- a/components/viz/service/input/input_manager.h
+++ b/components/viz/service/input/input_manager.h
@@ -21,9 +21,10 @@
 #include "gpu/ipc/common/surface_handle.h"
 
 #if BUILDFLAG(IS_ANDROID)
-#include "components/input/android/android_input_callback.h"
 #include "components/input/android/input_receiver_data.h"
+#include "components/viz/service/input/android_state_transfer_handler.h"
 #include "components/viz/service/input/fling_scheduler_android.h"
+#include "components/viz/service/input/render_input_router_support_android.h"
 #endif
 
 namespace input {
@@ -55,7 +56,6 @@
     : public FrameSinkObserver,
       public input::RenderWidgetHostInputEventRouter::Delegate,
 #if BUILDFLAG(IS_ANDROID)
-      public input::AndroidInputCallbackClient,
       public FlingSchedulerAndroid::Delegate,
 #endif
       public RenderInputRouterSupportBase::Delegate,
@@ -98,10 +98,6 @@
       const FrameSinkId& frame_sink_id) override;
 
 #if BUILDFLAG(IS_ANDROID)
-  // AndroidInputCallbackClient implementation.
-  bool OnMotionEvent(base::android::ScopedInputEvent input_event,
-                     const FrameSinkId& root_frame_sink_id) override;
-
   // FlingSchedulerAndroid::Delegate implementation.
   BeginFrameSource* GetBeginFrameSourceForFrameSink(
       const FrameSinkId& id) override;
@@ -167,6 +163,8 @@
       const FrameSinkId& frame_sink_id,
       const gpu::SurfaceHandle& surface_handle);
 
+  AndroidStateTransferHandler android_state_transfer_handler_;
+
   std::unique_ptr<input::InputReceiverData> receiver_data_;
 #endif  // BUILDFLAG(IS_ANDROID)
 
diff --git a/components/viz/service/input/render_input_router_support_android.cc b/components/viz/service/input/render_input_router_support_android.cc
index d6ce845..76e3dba 100644
--- a/components/viz/service/input/render_input_router_support_android.cc
+++ b/components/viz/service/input/render_input_router_support_android.cc
@@ -143,4 +143,9 @@
   StopFlingingIfNecessary(event, ack_result);
 }
 
+base::WeakPtr<RenderInputRouterSupportAndroid>
+RenderInputRouterSupportAndroid::GetWeakPtr() {
+  return weak_factory_.GetWeakPtr();
+}
+
 }  // namespace viz
diff --git a/components/viz/service/input/render_input_router_support_android.h b/components/viz/service/input/render_input_router_support_android.h
index 1f05151a..e4aa192 100644
--- a/components/viz/service/input/render_input_router_support_android.h
+++ b/components/viz/service/input/render_input_router_support_android.h
@@ -7,6 +7,7 @@
 
 #include <memory>
 
+#include "base/memory/weak_ptr.h"
 #include "components/input/android_input_helper.h"
 #include "components/input/events_helper.h"
 #include "components/viz/service/input/render_input_router_support_base.h"
@@ -15,10 +16,19 @@
 
 namespace viz {
 
+// Allow easy testing of code calling into RenderInputRouterSupport's
+// OnTouchEvent.
+class RenderInputRouterSupportAndroidInterface {
+ public:
+  virtual bool OnTouchEvent(const ui::MotionEventAndroid& event,
+                            bool emit_histograms) = 0;
+};
+
 class VIZ_SERVICE_EXPORT RenderInputRouterSupportAndroid
     : public RenderInputRouterSupportBase,
       public ui::GestureProviderClient,
-      public input::AndroidInputHelper::Delegate {
+      public input::AndroidInputHelper::Delegate,
+      public RenderInputRouterSupportAndroidInterface {
  public:
   explicit RenderInputRouterSupportAndroid(
       input::RenderInputRouter* rir,
@@ -35,7 +45,8 @@
   // |emit_histograms|: Whether to emit tool type and OS touch latency
   // histograms, for the events forwarded from Browser we wouldn't want to emit
   // histograms for them since Browser code would have already emitted them.
-  bool OnTouchEvent(const ui::MotionEventAndroid& event, bool emit_histograms);
+  bool OnTouchEvent(const ui::MotionEventAndroid& event,
+                    bool emit_histograms) override;
   bool ShouldRouteEvents() const;
 
   // ui::GestureProviderClient implementation.
@@ -64,12 +75,16 @@
   void SendGestureEvent(const blink::WebGestureEvent& event) override;
   ui::FilteredGestureProvider& GetGestureProvider() override;
 
+  base::WeakPtr<RenderInputRouterSupportAndroid> GetWeakPtr();
+
  private:
   std::unique_ptr<input::AndroidInputHelper> input_helper_;
 
   // Provides gesture synthesis given a stream of touch events (derived from
   // Android MotionEvent's) and touch event acks.
   ui::FilteredGestureProvider gesture_provider_;
+
+  base::WeakPtrFactory<RenderInputRouterSupportAndroid> weak_factory_{this};
 };
 
 }  // namespace viz
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl_unittest.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl_unittest.cc
index 7e93044..1f11bcd 100644
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl_unittest.cc
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl_unittest.cc
@@ -39,7 +39,6 @@
 #include "components/attribution_reporting/destination_set.h"
 #include "components/attribution_reporting/event_report_windows.h"
 #include "components/attribution_reporting/event_trigger_data.h"
-#include "components/attribution_reporting/features.h"
 #include "components/attribution_reporting/filters.h"
 #include "components/attribution_reporting/max_event_level_reports.h"
 #include "components/attribution_reporting/os_registration.h"
@@ -867,10 +866,6 @@
 
 TEST_F(AttributionDataHostManagerImplTest,
        NavigationSourceUniqueScopesSet_NoScopes) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      attribution_reporting::features::kAttributionScopes);
-
   base::HistogramTester histograms;
 
   const auto page_origin = *SuitableOrigin::Deserialize("https://page.example");
@@ -1002,10 +997,6 @@
 
 TEST_F(AttributionDataHostManagerImplTest,
        NavigationSourceUniqueScopesSet_WithScopes) {
-  base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitAndEnableFeature(
-      attribution_reporting::features::kAttributionScopes);
-
   base::HistogramTester histograms;
 
   const auto page_origin = *SuitableOrigin::Deserialize("https://page.example");
diff --git a/content/browser/attribution_reporting/interop/parser.cc b/content/browser/attribution_reporting/interop/parser.cc
index 16296928..3e602a6 100644
--- a/content/browser/attribution_reporting/interop/parser.cc
+++ b/content/browser/attribution_reporting/interop/parser.cc
@@ -173,8 +173,6 @@
       bool required) && {
     interop_config.needs_cross_app_web =
         ParseBool(dict, "needs_cross_app_web").value_or(false);
-    interop_config.needs_attribution_scopes =
-        ParseBool(dict, "needs_attribution_scopes").value_or(false);
     interop_config.needs_aggregatable_named_budgets =
         ParseBool(dict, "needs_aggregatable_named_budgets").value_or(false);
 
diff --git a/content/browser/attribution_reporting/interop/parser.h b/content/browser/attribution_reporting/interop/parser.h
index 3e41cd0..a7743f25c 100644
--- a/content/browser/attribution_reporting/interop/parser.h
+++ b/content/browser/attribution_reporting/interop/parser.h
@@ -100,7 +100,6 @@
   double max_event_level_epsilon = 0;
   uint32_t max_trigger_state_cardinality = 0;
   bool needs_cross_app_web = false;
-  bool needs_attribution_scopes = false;
   bool needs_aggregatable_named_budgets = false;
   std::vector<url::Origin> aggregation_coordinator_origins;
 
diff --git a/content/browser/attribution_reporting/interop/runner.cc b/content/browser/attribution_reporting/interop/runner.cc
index 047251d..c23bea2 100644
--- a/content/browser/attribution_reporting/interop/runner.cc
+++ b/content/browser/attribution_reporting/interop/runner.cc
@@ -447,11 +447,6 @@
     scoped_api_state.emplace(AttributionOsLevelManager::ApiState::kEnabled);
   }
 
-  if (run.config.needs_attribution_scopes) {
-    enabled_features.emplace_back(
-        attribution_reporting::features::kAttributionScopes);
-  }
-
   if (run.config.needs_aggregatable_named_budgets) {
     enabled_features.emplace_back(
         attribution_reporting::features::kAttributionAggregatableNamedBudgets);
diff --git a/content/browser/media/session/media_session_impl.cc b/content/browser/media/session/media_session_impl.cc
index 9d420f0b..a4ae15f 100644
--- a/content/browser/media/session/media_session_impl.cc
+++ b/content/browser/media/session/media_session_impl.cc
@@ -273,7 +273,6 @@
   normal_players_.clear();
   pepper_players_.clear();
   one_shot_players_.clear();
-  ambient_players_.clear();
 
   AbandonSystemAudioFocusIfNeeded();
 
@@ -436,13 +435,10 @@
                                  int player_id) {
   media::MediaContentType media_content_type = observer->GetMediaContentType();
 
-  if (media_content_type == media::MediaContentType::kOneShot) {
+  if (media_content_type == media::MediaContentType::kOneShot)
     return AddOneShotPlayer(observer, player_id);
-  } else if (media_content_type == media::MediaContentType::kPepper) {
+  if (media_content_type == media::MediaContentType::kPepper)
     return AddPepperPlayer(observer, player_id);
-  } else if (media_content_type == media::MediaContentType::kAmbient) {
-    return AddAmbientPlayer(observer, player_id);
-  }
 
   observer->OnSetVolumeMultiplier(player_id, GetVolumeMultiplier());
   if (audio_device_id_for_origin_)
@@ -526,7 +522,6 @@
   normal_players_.erase(identifier);
   pepper_players_.erase(identifier);
   one_shot_players_.erase(identifier);
-  ambient_players_.erase(identifier);
   hidden_players_.erase(identifier);
 
   if (guarding_player_id_ && *guarding_player_id_ == identifier)
@@ -541,21 +536,26 @@
 }
 
 void MediaSessionImpl::RemovePlayers(MediaSessionPlayerObserver* observer) {
-  std::erase_if(normal_players_, [observer](const auto& player) {
-    return player.first.observer == observer;
-  });
+  for (auto it = normal_players_.begin(); it != normal_players_.end();) {
+    if (it->first.observer == observer)
+      normal_players_.erase(it++);
+    else
+      ++it;
+  }
 
-  base::EraseIf(pepper_players_, [observer](const auto& player) {
-    return player.observer == observer;
-  });
+  for (auto it = pepper_players_.begin(); it != pepper_players_.end();) {
+    if (it->observer == observer)
+      pepper_players_.erase(it++);
+    else
+      ++it;
+  }
 
-  base::EraseIf(one_shot_players_, [observer](const auto& player) {
-    return player.observer == observer;
-  });
-
-  base::EraseIf(ambient_players_, [observer](const auto& player) {
-    return player.observer == observer;
-  });
+  for (auto it = one_shot_players_.begin(); it != one_shot_players_.end();) {
+    if (it->observer == observer)
+      one_shot_players_.erase(it++);
+    else
+      ++it;
+  }
 
   if (guarding_player_id_ && guarding_player_id_->observer == observer)
     ResetDurationUpdateGuard();
@@ -578,8 +578,7 @@
   PlayerIdentifier identifier(observer, player_id);
   if (!normal_players_.count(identifier) &&
       !pepper_players_.count(identifier) &&
-      !one_shot_players_.count(identifier) &&
-      !ambient_players_.count(identifier)) {
+      !one_shot_players_.count(identifier)) {
     return;
   }
 
@@ -597,13 +596,6 @@
     return;
   }
 
-  // If the player is an ambient player, just remove it since it is not expected
-  // to resume an ambient player via resuming MediaSession.
-  if (ambient_players_.count(identifier)) {
-    RemovePlayer(observer, player_id);
-    return;
-  }
-
   // Otherwise, suspend the session.
   // The session might not have audio focus if it was paused prior to being
   // suspended, which is fine.
@@ -785,9 +777,8 @@
 }
 
 bool MediaSessionImpl::IsControllable() const {
-  if (audio_focus_state_ == State::INACTIVE || HasOnlyOneShotPlayers()) {
+  if (audio_focus_state_ == State::INACTIVE || HasOnlyOneShotPlayers())
     return false;
-  }
 
 #if !BUILDFLAG(IS_ANDROID)
   if (routed_service_ && routed_service_->playback_state() !=
@@ -843,13 +834,8 @@
     it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
   }
 
-  for (const auto& it : pepper_players_) {
+  for (const auto& it : pepper_players_)
     it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
-  }
-
-  for (const auto& it : ambient_players_) {
-    it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
-  }
 }
 
 double MediaSessionImpl::GetVolumeMultiplier() const {
@@ -886,7 +872,6 @@
   normal_players_.clear();
   pepper_players_.clear();
   one_shot_players_.clear();
-  ambient_players_.clear();
   AbandonSystemAudioFocusIfNeeded();
 }
 
@@ -947,9 +932,8 @@
   // UI suspend cannot use State::INACTIVE.
   DCHECK(suspend_type == SuspendType::kSystem || new_state == State::SUSPENDED);
 
-  if (HasOnlyOneShotPlayers()) {
+  if (HasOnlyOneShotPlayers())
     return;
-  }
 
   if (audio_focus_state_ != State::ACTIVE)
     return;
@@ -1205,10 +1189,8 @@
         OnSuspendInternal(SuspendType::kSystem, State::SUSPENDED);
         break;
       case AudioFocusType::kAmbient:
-        // There's nothing to do if an ambient request fails.
-        break;
       case AudioFocusType::kGainTransient:
-        // MediaSessionImpl does not use |kGainTransient|.
+        // MediaSessionImpl does not use |kGainTransient| or |kAmbient|.
         NOTREACHED();
       case AudioFocusType::kGainTransientMayDuck:
         // The focus request failed, we should suspend any players that have
@@ -1421,8 +1403,7 @@
 
 void MediaSessionImpl::AbandonSystemAudioFocusIfNeeded() {
   if (audio_focus_state_ == State::INACTIVE || !normal_players_.empty() ||
-      !pepper_players_.empty() || !one_shot_players_.empty() ||
-      !ambient_players_.empty()) {
+      !pepper_players_.empty() || !one_shot_players_.empty()) {
     return;
   }
   delegate_->AbandonAudioFocus();
@@ -1525,32 +1506,6 @@
   return true;
 }
 
-bool MediaSessionImpl::AddAmbientPlayer(MediaSessionPlayerObserver* observer,
-                                        int player_id) {
-#if BUILDFLAG(IS_ANDROID)
-  // Ambient players are completely ignored for Android audio focus.
-  return true;
-#else
-  // If we're currently ducking, ensure the new player is also ducked.
-  observer->OnSetVolumeMultiplier(player_id, GetVolumeMultiplier());
-
-  // Request audio focus only if we're entirely inactive (i.e. don't request to
-  // un-suspend for an ambient player).
-  if (audio_focus_state_ == State::INACTIVE) {
-    if (RequestSystemAudioFocus(AudioFocusType::kAmbient) ==
-        AudioFocusDelegate::AudioFocusResult::kFailed) {
-      return false;
-    }
-  }
-
-  // If we have audio focus, then add this to the list of ambient players, but
-  // we don't need to update any info or metadata as they are unaffected by
-  // ambient players.
-  ambient_players_.insert(PlayerIdentifier(observer, player_id));
-  return true;
-#endif  // BUILDFLAG(IS_ANDROID)
-}
-
 // MediaSessionService-related methods
 
 void MediaSessionImpl::OnServiceCreated(MediaSessionServiceImpl* service) {
diff --git a/content/browser/media/session/media_session_impl.h b/content/browser/media/session/media_session_impl.h
index c25588a..d7f345d9 100644
--- a/content/browser/media/session/media_session_impl.h
+++ b/content/browser/media/session/media_session_impl.h
@@ -450,9 +450,6 @@
   CONTENT_EXPORT bool AddOneShotPlayer(MediaSessionPlayerObserver* observer,
                                        int player_id);
 
-  CONTENT_EXPORT bool AddAmbientPlayer(MediaSessionPlayerObserver* observer,
-                                       int player_id);
-
   // Returns true if there is at least one player and all the players are
   // one-shot.
   bool HasOnlyOneShotPlayers() const;
@@ -547,22 +544,14 @@
   std::set<media_session::mojom::MediaSessionAction> actions_;
 
   std::unique_ptr<AudioFocusDelegate> delegate_;
-
-  // Standard video playback (e.g. WebMediaPlayerImpl players).
   std::map<PlayerIdentifier, media_session::mojom::AudioFocusType>
       normal_players_;
-
-  // Pepper players (PPAPI players).
   base::flat_set<PlayerIdentifier> pepper_players_;
 
   // Players that are playing in the web contents but we cannot control (e.g.
-  // MediaStream).
+  // WebAudio or MediaStream).
   base::flat_set<PlayerIdentifier> one_shot_players_;
 
-  // Players that we can neither control nor should affect other players in the
-  // audio focus stack (e.g. WebAudio).
-  base::flat_set<PlayerIdentifier> ambient_players_;
-
   // Players that are removed from |normal_players_| temporarily when the page
   // goes to back-forward cache. When the page is restored from the cache, these
   // players are also restored to |normal_players_|.
diff --git a/content/browser/media/session/media_session_impl_browsertest.cc b/content/browser/media/session/media_session_impl_browsertest.cc
index c6c380823..e091696 100644
--- a/content/browser/media/session/media_session_impl_browsertest.cc
+++ b/content/browser/media/session/media_session_impl_browsertest.cc
@@ -14,7 +14,6 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/raw_ptr.h"
 #include "base/metrics/histogram_samples.h"
-#include "base/run_loop.h"
 #include "base/strings/strcat.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind.h"
@@ -38,7 +37,6 @@
 #include "content/shell/browser/shell.h"
 #include "content/test/content_browser_test_utils_internal.h"
 #include "media/base/media_content_type.h"
-#include "media/base/media_switches.h"
 #include "net/base/filename_util.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/test/embedded_test_server/http_request.h"
@@ -79,9 +77,6 @@
 
   AudioFocusDelegate::AudioFocusResult RequestAudioFocus(
       AudioFocusType audio_focus_type) override {
-    if (audio_focus_request_waiter_) {
-      audio_focus_request_waiter_->Quit();
-    }
     if (async_mode_) {
       requests_.push_back(audio_focus_type);
       return AudioFocusDelegate::AudioFocusResult::kDelayed;
@@ -120,14 +115,6 @@
     sync_result_ = result;
   }
 
-  void WaitForAudioFocusRequested() {
-    if (audio_focus_type_.has_value() || !requests_.empty()) {
-      return;
-    }
-    audio_focus_request_waiter_ = std::make_unique<base::RunLoop>();
-    audio_focus_request_waiter_->Run();
-  }
-
  private:
   AudioFocusDelegate::AudioFocusResult sync_result_ =
       AudioFocusDelegate::AudioFocusResult::kSuccess;
@@ -135,8 +122,6 @@
   raw_ptr<content::MediaSessionImpl> media_session_ = nullptr;
   const bool async_mode_ = false;
 
-  std::unique_ptr<base::RunLoop> audio_focus_request_waiter_;
-
   std::list<AudioFocusType> requests_;
   std::optional<AudioFocusType> audio_focus_type_;
 };
@@ -225,12 +210,6 @@
     ASSERT_TRUE(media_session_);
   }
 
-  void SetUpCommandLine(base::CommandLine* command_line) override {
-    command_line->AppendSwitchASCII(
-        switches::kAutoplayPolicy,
-        switches::autoplay::kNoUserGestureRequiredPolicy);
-  }
-
   void TearDownOnMainThread() override {
     media_session_->RemoveAllPlayersForTest();
     mock_media_session_service_.reset();
@@ -3307,22 +3286,6 @@
   EXPECT_FALSE(waiter.MeetsVisibility());
 }
 
-#if !BUILDFLAG(IS_ANDROID)
-IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
-                       WebAudioPlayersAreRegisteredAsAmbientPlayers) {
-  // Start WebAudio playback.
-  EXPECT_TRUE(NavigateToURL(
-      shell(), content::GetTestUrl("media/webaudio/", "playback-test.html")));
-  ASSERT_TRUE(ExecJs(shell()->web_contents(), "gain.gain.value = 1"));
-
-  // The WebAudio playback should request ambient audio focus.
-  mock_audio_focus_delegate()->WaitForAudioFocusRequested();
-  ResolveAudioFocusSuccess();
-  ASSERT_TRUE(GetSessionAudioFocusType().has_value());
-  EXPECT_EQ(AudioFocusType::kAmbient, *GetSessionAudioFocusType());
-}
-#endif  // !BUILDFLAG(IS_ANDROID)
-
 class MediaSessionImplPrerenderingBrowserTest
     : public MediaSessionImplBrowserTest {
  public:
diff --git a/content/browser/media/session/media_session_impl_unittest.cc b/content/browser/media/session/media_session_impl_unittest.cc
index bb29164..15c77f3 100644
--- a/content/browser/media/session/media_session_impl_unittest.cc
+++ b/content/browser/media/session/media_session_impl_unittest.cc
@@ -56,7 +56,6 @@
 
   AudioFocusResult RequestAudioFocus(AudioFocusType type) override {
     request_audio_focus_count_++;
-    last_requested_focus_type_ = type;
     return AudioFocusResult::kSuccess;
   }
 
@@ -80,13 +79,8 @@
 
   int request_audio_focus_count() const { return request_audio_focus_count_; }
 
-  const std::optional<AudioFocusType>& GetLastRequestedFocusType() {
-    return last_requested_focus_type_;
-  }
-
  private:
   int request_audio_focus_count_ = 0;
-  std::optional<AudioFocusType> last_requested_focus_type_;
 
   MediaSessionInfoPtr session_info_;
 };
@@ -193,8 +187,8 @@
   std::unique_ptr<MockMediaSessionPlayerObserver> player_observer_;
 
   void SetDelegateForTests(MediaSessionImpl* session,
-                           std::unique_ptr<AudioFocusDelegate> delegate) {
-    session->SetDelegateForTests(std::move(delegate));
+                           AudioFocusDelegate* delegate) {
+    session->SetDelegateForTests(base::WrapUnique(delegate));
   }
 
   MockMediaSessionServiceImpl& mock_media_session_service() const {
@@ -296,9 +290,8 @@
 }
 
 TEST_F(MediaSessionImplTest, NotifyDelegateOnStateChange) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
 
   RequestAudioFocus(GetMediaSession(), AudioFocusType::kGain);
   base::RunLoop().RunUntilIdle();
@@ -607,9 +600,8 @@
 #if BUILDFLAG(IS_MAC)
 
 TEST_F(MediaSessionImplTest, TabFocusDoesNotCauseAudioFocus) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
 
   {
     MockMediaSessionMojoObserver observer(*GetMediaSession());
@@ -626,9 +618,8 @@
 #else  // BUILDFLAG(IS_MAC)
 
 TEST_F(MediaSessionImplTest, RequestAudioFocus_OnFocus_Active) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
 
   {
     MockMediaSessionMojoObserver observer(*GetMediaSession());
@@ -643,9 +634,8 @@
 }
 
 TEST_F(MediaSessionImplTest, RequestAudioFocus_OnFocus_Inactive) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
   EXPECT_EQ(MediaSessionInfo::SessionState::kInactive,
             GetState(GetMediaSession()));
 
@@ -655,9 +645,8 @@
 }
 
 TEST_F(MediaSessionImplTest, RequestAudioFocus_OnFocus_Suspended) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
 
   {
     MockMediaSessionMojoObserver observer(*GetMediaSession());
@@ -887,9 +876,8 @@
 TEST_F(MediaSessionImplTest, PausedPlayersDoNotRequestFocus) {
   // If a player is paused when it's added, it should be controllable but should
   // not request audio focus.
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
+  MockAudioFocusDelegate* delegate = new MockAudioFocusDelegate();
+  SetDelegateForTests(GetMediaSession(), delegate);
   int player_id = StartNewPlayer();
   EXPECT_TRUE(GetMediaSession()->IsActive());
   EXPECT_TRUE(GetMediaSession()->IsControllable());
@@ -953,63 +941,6 @@
       base::Contains(observer.actions(), MediaSessionAction::kSeekBackward));
 }
 
-TEST_F(MediaSessionImplTest, AmbientPlayerFocusRequest) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  MockAudioFocusDelegate* delegate = delegate_unique.get();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
-
-  int player_id = player_observer_->StartNewPlayer();
-
-  player_observer_->SetMediaContentType(media::MediaContentType::kAmbient);
-  MockMediaSessionMojoObserver observer(*GetMediaSession());
-  GetMediaSession()->AddPlayer(player_observer_.get(), player_id);
-
-#if BUILDFLAG(IS_ANDROID)
-  // On Android, ambient players should not request audio focus.
-  observer.WaitForState(MediaSessionInfo::SessionState::kInactive);
-  EXPECT_FALSE(delegate->GetLastRequestedFocusType().has_value());
-#else
-  // On other platforms, an ambient player should request ambient focus.
-  observer.WaitForState(MediaSessionInfo::SessionState::kActive);
-  EXPECT_TRUE(delegate->GetLastRequestedFocusType().has_value());
-  EXPECT_EQ(AudioFocusType::kAmbient, *delegate->GetLastRequestedFocusType());
-
-  // Ambient players should also receive volume multiplier updates.
-  constexpr float kDuckingMultiplier = 0.1;
-  EXPECT_EQ(player_observer_->GetVolumeMultiplier(player_id), 1.0);
-  GetMediaSession()->SetDuckingVolumeMultiplier(kDuckingMultiplier);
-  GetMediaSession()->StartDucking();
-  EXPECT_EQ(player_observer_->GetVolumeMultiplier(player_id),
-            kDuckingMultiplier);
-  GetMediaSession()->StopDucking();
-  EXPECT_EQ(player_observer_->GetVolumeMultiplier(player_id), 1.0);
-#endif  // BUILDFLAG(IS_ANDROID)
-}
-
-TEST_F(MediaSessionImplTest, AmbientPlayerDoesNotRequestFocusWhenSuspended) {
-  auto delegate_unique = std::make_unique<MockAudioFocusDelegate>();
-  SetDelegateForTests(GetMediaSession(), std::move(delegate_unique));
-
-  int persistent_player_id = player_observer_->StartNewPlayer();
-
-  MockMediaSessionPlayerObserver ambient_player_observer(
-      main_rfh(), media::MediaContentType::kAmbient);
-  int ambient_player_id = ambient_player_observer.StartNewPlayer();
-
-  // Add a persistent player to get audio focus.
-  MockMediaSessionMojoObserver observer(*GetMediaSession());
-  GetMediaSession()->AddPlayer(player_observer_.get(), persistent_player_id);
-  observer.WaitForState(MediaSessionInfo::SessionState::kActive);
-
-  // Suspend the persistent player.
-  GetMediaSession()->Suspend(MediaSession::SuspendType::kSystem);
-  observer.WaitForState(MediaSessionInfo::SessionState::kSuspended);
-
-  // Adding an ambient player should not change the audio focus state.
-  GetMediaSession()->AddPlayer(&ambient_player_observer, ambient_player_id);
-  observer.WaitForState(MediaSessionInfo::SessionState::kSuspended);
-}
-
 class MediaSessionImplWithMediaSessionClientTest : public MediaSessionImplTest {
  protected:
   TestMediaSessionClient client_;
diff --git a/content/browser/renderer_host/input/input_transfer_handler_android.cc b/content/browser/renderer_host/input/input_transfer_handler_android.cc
index f66d79d3..e30c585e 100644
--- a/content/browser/renderer_host/input/input_transfer_handler_android.cc
+++ b/content/browser/renderer_host/input/input_transfer_handler_android.cc
@@ -44,6 +44,8 @@
 InputTransferHandlerAndroid::~InputTransferHandlerAndroid() = default;
 
 bool InputTransferHandlerAndroid::OnTouchEvent(const ui::MotionEvent& event) {
+  // TODO(crbug.com/383307455): Forward events seen on Browser post transfer
+  // over to Viz.
   if (touch_transferred_) {
     // TODO(crbug.com/370506271): Add support for getDownTime in MotionEvent and
     // check if this cancel has same downtime as the original down used for
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 61e054b..2e47e64 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -3542,6 +3542,10 @@
   return view->GetWebContentsAccessibility();
 }
 
+bool RenderFrameHostImpl::AccessibilityIsWebContentSource() {
+  return true;
+}
+
 ui::AXPlatformNodeId RenderFrameHostImpl::GetOrCreateAXNodeUniqueId(
     ui::AXNodeID ax_node_id) {
   auto iter = ax_unique_ids_.lower_bound(ax_node_id);
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h
index 8ba8067..e60b06a 100644
--- a/content/browser/renderer_host/render_frame_host_impl.h
+++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -732,6 +732,7 @@
   bool AccessibilityIsRootFrame() const override;
   bool ShouldSuppressAXLoadComplete() override;
   WebContentsAccessibility* AccessibilityGetWebContentsAccessibility() override;
+  bool AccessibilityIsWebContentSource() override;
 
   // ui::AXNodeIdDelegate:
   ui::AXPlatformNodeId GetOrCreateAXNodeUniqueId(
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_basic.json b/content/test/data/attribution_reporting/interop/attribution_scopes_basic.json
index 41b5c35..83ee1ef1 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_basic.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_basic.json
@@ -1,8 +1,5 @@
 {
   "description": "Trigger only converts on source with matching scopes",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: attribution scopes -> ["1"], destinations -> [D1].
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_different_max_event_states.json b/content/test/data/attribution_reporting/interop/attribution_scopes_different_max_event_states.json
index 2b8ead0..c4b386c1 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_different_max_event_states.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_different_max_event_states.json
@@ -1,8 +1,5 @@
 {
   "description": "Test source deactivation logic based on different max event states for attribution scopes",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: max_event_states -> 10, attribution scopes-> ["1", "2"].
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_max_event_states_limit.json b/content/test/data/attribution_reporting/interop/attribution_scopes_max_event_states_limit.json
index 7fe47db..e55b9b6 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_max_event_states_limit.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_max_event_states_limit.json
@@ -1,8 +1,5 @@
 {
   "description": "Event source exceeding defined max event states",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       {
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_multiple_trigger_scopes.json b/content/test/data/attribution_reporting/interop/attribution_scopes_multiple_trigger_scopes.json
index a490999..15938c4 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_multiple_trigger_scopes.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_multiple_trigger_scopes.json
@@ -1,8 +1,5 @@
 {
   "description": "Trigger with multiple attribution scopes",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: attribution scopes -> ["1"], destinations -> [D1].
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_no_scopes.json b/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_no_scopes.json
index 79b374c..f917fb4 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_no_scopes.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_no_scopes.json
@@ -1,8 +1,5 @@
 {
   "description": "One unique scopes set per reporting origin per navigation - no scopes",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       {
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_with_scopes.json b/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_with_scopes.json
index dee38091a..f54ecc1 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_with_scopes.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_navigation_limit_with_scopes.json
@@ -1,8 +1,5 @@
 {
   "description": "One unique scopes set per reporting origin per navigation - with scopes",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       {
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_incoming_data_interaction.json b/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_incoming_data_interaction.json
index cd5428f..6cb28a8af 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_incoming_data_interaction.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_incoming_data_interaction.json
@@ -1,8 +1,5 @@
 {
   "description": "A source with scope data set to null should be removed with incoming scope data.",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: attribution scopes -> [1] destinations -> [D1]
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_removes_data.json b/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_removes_data.json
index 4cad0c40..f6be6db 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_removes_data.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_null_scopes_removes_data.json
@@ -1,7 +1,6 @@
 {
   "description": "An incoming source with null scopes should remove previous matching sources' scopes data.",
   "api_config": {
-    "needs_attribution_scopes": true,
     "max_destinations_per_rate_limit_window": "2",
     "max_destinations_per_rate_limit_window_reporting_site": "2"
   },
@@ -227,4 +226,4 @@
       }
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed.json b/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed.json
index 34ca575..84169ee 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed.json
@@ -1,8 +1,5 @@
 {
   "description": "Tests that sources with outdated scopes are deleted.",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: attribution scopes-> ["1", "2", "3"]  destinations -> [D1].
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed_2.json b/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed_2.json
index 8066148f..19da835 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed_2.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_older_scopes_removed_2.json
@@ -1,8 +1,5 @@
 {
   "description": "Tests that sources with outdated scopes are deleted using expected scope ordering.",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       {
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_parsing_failures.json b/content/test/data/attribution_reporting/interop/attribution_scopes_parsing_failures.json
index 584c9bc..eaca3c4 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_parsing_failures.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_parsing_failures.json
@@ -1,8 +1,5 @@
 {
   "description": "Registrations with invalid attribution scopes fields are dropped",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // Scopes wrong type.
diff --git a/content/test/data/attribution_reporting/interop/attribution_scopes_smaller_scope_limit.json b/content/test/data/attribution_reporting/interop/attribution_scopes_smaller_scope_limit.json
index 3ae4884..7ecca01 100644
--- a/content/test/data/attribution_reporting/interop/attribution_scopes_smaller_scope_limit.json
+++ b/content/test/data/attribution_reporting/interop/attribution_scopes_smaller_scope_limit.json
@@ -1,8 +1,5 @@
 {
   "description": "Test that sources with a smaller attribution scope limit are deleted.",
-  "api_config": {
-    "needs_attribution_scopes": true
-  },
   "input": {
     "registrations": [
       // S1: attribution scope limit -> 3 destinations -> [D1].
@@ -168,4 +165,4 @@
       }
     ]
   }
-}
\ No newline at end of file
+}
diff --git a/content/test/data/attribution_reporting/interop/source_registration_limits.json b/content/test/data/attribution_reporting/interop/source_registration_limits.json
index 6610a49..bc4c4b7 100644
--- a/content/test/data/attribution_reporting/interop/source_registration_limits.json
+++ b/content/test/data/attribution_reporting/interop/source_registration_limits.json
@@ -9,8 +9,7 @@
     "rate_limit_max_reporting_origins_per_source_reporting_site": "1",
     "max_destinations_per_rate_limit_window_reporting_site": "3",
     "max_destinations_per_rate_limit_window": "3",
-    "rate_limit_max_source_registration_reporting_origins": "1",
-    "needs_attribution_scopes": true
+    "rate_limit_max_source_registration_reporting_origins": "1"
   },
   "input": {
     "registrations": [
diff --git a/docs/infra/moving_large_files.md b/docs/infra/moving_large_files.md
index bd06f35e..b70d5d2 100644
--- a/docs/infra/moving_large_files.md
+++ b/docs/infra/moving_large_files.md
@@ -26,10 +26,10 @@
 chromium-android-tools bucket. Create a new folder in the bucket, and use
 chromium-android-tools/[new folder name] as the bucket name.
 
-Otherwise, go to [go/chromeinfraticket](http://go/chromeinfraticket) to request
-a bucket.  We ask that you do this so we can ensure the ACLs will work on our
-buildbots, and storage costs will be centralize to Chrome Infrastructure.
-You'll need to specify:
+Otherwise, to create a new bucket you can add an entry into
+[bucket.json](http://shortn/_wkOtCQm10E). Entries within `bucket.json` should
+aim to answer the below questions. Afterwards, send the CL to a coworker for review.
+After that is aprroved, someone from chops security will do a final review.
 
 * Who can have read access to this bucket? Certain groups at Google? All of
   Google? All of Chrome-Team? Everyone? Consider adding googlers@chromium.org to
diff --git a/extensions/browser/api/execute_code_function.cc b/extensions/browser/api/execute_code_function.cc
index 620ed8f..4380bc3c 100644
--- a/extensions/browser/api/execute_code_function.cc
+++ b/extensions/browser/api/execute_code_function.cc
@@ -92,10 +92,11 @@
 
   root_frame_id_ = details_->frame_id.value_or(GetRootFrameId());
 
-  ScriptExecutor::MatchAboutBlank match_about_blank =
+  mojom::MatchOriginAsFallbackBehavior match_about_blank =
       details_->match_about_blank.value_or(false)
-          ? ScriptExecutor::MATCH_ABOUT_BLANK
-          : ScriptExecutor::DONT_MATCH_ABOUT_BLANK;
+          ? mojom::MatchOriginAsFallbackBehavior::
+                kMatchForAboutSchemeAndClimbTree
+          : mojom::MatchOriginAsFallbackBehavior::kNever;
 
   mojom::RunLocation run_at = ConvertRunLocation(details_->run_at);
 
diff --git a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
index c2f59cb..d139864 100644
--- a/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
+++ b/extensions/browser/api/guest_view/web_view/web_view_internal_api.cc
@@ -34,9 +34,9 @@
 #include "extensions/common/api/web_view_internal.h"
 #include "extensions/common/error_utils.h"
 #include "extensions/common/manifest_constants.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/user_script.h"
 #include "third_party/skia/include/core/SkBitmap.h"
 
@@ -214,9 +214,9 @@
   if (script_value.match_about_blank) {
     script->set_match_origin_as_fallback(
         *script_value.match_about_blank
-            ? extensions::MatchOriginAsFallbackBehavior::
+            ? extensions::mojom::MatchOriginAsFallbackBehavior::
                   kMatchForAboutSchemeAndClimbTree
-            : extensions::MatchOriginAsFallbackBehavior::kNever);
+            : extensions::mojom::MatchOriginAsFallbackBehavior::kNever);
   }
 
   // css:
diff --git a/extensions/browser/script_executor.cc b/extensions/browser/script_executor.cc
index 9260b51..cd16ecd 100644
--- a/extensions/browser/script_executor.cc
+++ b/extensions/browser/script_executor.cc
@@ -30,6 +30,7 @@
 #include "extensions/browser/extension_web_contents_observer.h"
 #include "extensions/browser/script_injection_tracker.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "ipc/ipc_message.h"
 #include "ipc/ipc_message_macros.h"
 #include "pdf/buildflags.h"
@@ -387,15 +388,16 @@
                             host_id.id.c_str(), base::FastHash(source));
 }
 
-void ScriptExecutor::ExecuteScript(const mojom::HostID& host_id,
-                                   mojom::CodeInjectionPtr injection,
-                                   ScriptExecutor::FrameScope frame_scope,
-                                   const std::set<int>& frame_ids,
-                                   ScriptExecutor::MatchAboutBlank about_blank,
-                                   mojom::RunLocation run_at,
-                                   ScriptExecutor::ProcessType process_type,
-                                   const GURL& webview_src,
-                                   ScriptFinishedCallback callback) {
+void ScriptExecutor::ExecuteScript(
+    const mojom::HostID& host_id,
+    mojom::CodeInjectionPtr injection,
+    ScriptExecutor::FrameScope frame_scope,
+    const std::set<int>& frame_ids,
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback_behavior,
+    mojom::RunLocation run_at,
+    ScriptExecutor::ProcessType process_type,
+    const GURL& webview_src,
+    ScriptFinishedCallback callback) {
   if (host_id.type == mojom::HostID::HostType::kExtensions) {
     // Don't execute if the extension has been unloaded.
     const Extension* extension =
@@ -428,7 +430,7 @@
   auto params = mojom::ExecuteCodeParams::New();
   params->host_id = host_id.Clone();
   params->injection = std::move(injection);
-  params->match_about_blank = (about_blank == MATCH_ABOUT_BLANK);
+  params->match_origin_as_fallback_behavior = match_origin_as_fallback_behavior;
   params->run_at = run_at;
   params->is_web_view = (process_type == WEB_VIEW_PROCESS);
   params->webview_src = webview_src;
diff --git a/extensions/browser/script_executor.h b/extensions/browser/script_executor.h
index 42dee4d2..bc52b64 100644
--- a/extensions/browser/script_executor.h
+++ b/extensions/browser/script_executor.h
@@ -19,6 +19,7 @@
 #include "extensions/common/mojom/code_injection.mojom.h"
 #include "extensions/common/mojom/css_origin.mojom-shared.h"
 #include "extensions/common/mojom/host_id.mojom-forward.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-forward.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
 #include "extensions/common/user_script.h"
 
@@ -60,13 +61,6 @@
     INCLUDE_SUB_FRAMES,
   };
 
-  // Whether to insert the script in about: frames when its origin matches
-  // the extension's host permissions.
-  enum MatchAboutBlank {
-    DONT_MATCH_ABOUT_BLANK,
-    MATCH_ABOUT_BLANK,
-  };
-
   // The type of process the target is.
   enum ProcessType {
     DEFAULT_PROCESS,
@@ -123,15 +117,16 @@
   // |callback| will always be called even if the IPC'd renderer is destroyed
   // before a response is received (in this case the callback will be with a
   // failure and appropriate error message).
-  void ExecuteScript(const mojom::HostID& host_id,
-                     mojom::CodeInjectionPtr injection,
-                     FrameScope frame_scope,
-                     const std::set<int>& frame_ids,
-                     MatchAboutBlank match_about_blank,
-                     mojom::RunLocation run_at,
-                     ProcessType process_type,
-                     const GURL& webview_src,
-                     ScriptFinishedCallback callback);
+  void ExecuteScript(
+      const mojom::HostID& host_id,
+      mojom::CodeInjectionPtr injection,
+      FrameScope frame_scope,
+      const std::set<int>& frame_ids,
+      mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback_behavior,
+      mojom::RunLocation run_at,
+      ProcessType process_type,
+      const GURL& webview_src,
+      ScriptFinishedCallback callback);
 
   // Set the observer for ScriptsExecutedNotification callbacks.
   void set_observer(ScriptsExecutedNotification observer) {
diff --git a/extensions/browser/script_injection_tracker.cc b/extensions/browser/script_injection_tracker.cc
index 029db45..c82f30a 100644
--- a/extensions/browser/script_injection_tracker.cc
+++ b/extensions/browser/script_injection_tracker.cc
@@ -29,6 +29,7 @@
 #include "extensions/common/content_script_injection_url_getter.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/manifest_handlers/content_scripts_handler.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "extensions/common/trace_util.h"
 #include "extensions/common/user_script.h"
@@ -196,7 +197,7 @@
 GURL GetEffectiveDocumentURL(
     content::RenderFrameHost* frame,
     const GURL& document_url,
-    MatchOriginAsFallbackBehavior match_origin_as_fallback) {
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback) {
   // This is a simplification to avoid calling
   // `BrowserFrameContextData::CanAccess` which is unable to replicate all of
   // WebSecurityOrigin::CanAccess checks (e.g. universal access or file
diff --git a/extensions/browser/url_loader_factory_manager.cc b/extensions/browser/url_loader_factory_manager.cc
index dd03b62a..e6a6286 100644
--- a/extensions/browser/url_loader_factory_manager.cc
+++ b/extensions/browser/url_loader_factory_manager.cc
@@ -20,7 +20,6 @@
 #include "extensions/common/manifest_handlers/permissions_parser.h"
 #include "extensions/common/mojom/host_id.mojom.h"
 #include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/url_pattern.h"
 #include "extensions/common/url_pattern_set.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
diff --git a/extensions/common/BUILD.gn b/extensions/common/BUILD.gn
index 30c1a33..118c7255 100644
--- a/extensions/common/BUILD.gn
+++ b/extensions/common/BUILD.gn
@@ -97,6 +97,7 @@
     "mojom/injection_type.mojom",
     "mojom/keep_alive.mojom",
     "mojom/manifest.mojom",
+    "mojom/match_origin_as_fallback.mojom",
     "mojom/message_port.mojom",
     "mojom/permission_set.mojom",
     "mojom/renderer.mojom",
@@ -466,7 +467,6 @@
     "permissions/usb_device_permission_data.cc",
     "permissions/usb_device_permission_data.h",
     "process_context_data.h",
-    "script_constants.h",
     "stack_frame.cc",
     "stack_frame.h",
     "switches.cc",
diff --git a/extensions/common/api/scripts_internal/script_serialization.cc b/extensions/common/api/scripts_internal/script_serialization.cc
index 697c0f8..97a0e44 100644
--- a/extensions/common/api/scripts_internal/script_serialization.cc
+++ b/extensions/common/api/scripts_internal/script_serialization.cc
@@ -108,7 +108,7 @@
   // `matchOriginAsFallback`.
   serialized_script.match_origin_as_fallback =
       user_script.match_origin_as_fallback() ==
-      MatchOriginAsFallbackBehavior::kAlways;
+      mojom::MatchOriginAsFallbackBehavior::kAlways;
 
   // `runAt`.
   serialized_script.run_at =
@@ -213,8 +213,8 @@
   if (serialized_script.match_origin_as_fallback.has_value()) {
     user_script->set_match_origin_as_fallback(
         *serialized_script.match_origin_as_fallback
-            ? MatchOriginAsFallbackBehavior::kAlways
-            : MatchOriginAsFallbackBehavior::kNever);
+            ? mojom::MatchOriginAsFallbackBehavior::kAlways
+            : mojom::MatchOriginAsFallbackBehavior::kNever);
   }
   // `runAt`.
   user_script->set_run_location(ConvertRunLocation(serialized_script.run_at));
diff --git a/extensions/common/api/scripts_internal/script_serialization_unittest.cc b/extensions/common/api/scripts_internal/script_serialization_unittest.cc
index 7e9a74c..7f62cd3 100644
--- a/extensions/common/api/scripts_internal/script_serialization_unittest.cc
+++ b/extensions/common/api/scripts_internal/script_serialization_unittest.cc
@@ -66,7 +66,7 @@
             script->js_scripts()[0]->source());
   EXPECT_THAT(script->url_patterns().ToStringVector(),
               testing::ElementsAre("http://matches.example/*"));
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kNever,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kNever,
             script->match_origin_as_fallback());
   EXPECT_EQ(mojom::RunLocation::kDocumentIdle, script->run_location());
   EXPECT_EQ(UserScript::Source::kDynamicContentScript, script->GetSource());
@@ -122,7 +122,7 @@
             script->js_scripts()[0]->source());
   EXPECT_THAT(script->url_patterns().ToStringVector(),
               testing::ElementsAre("http://matches.example/*"));
-  EXPECT_EQ(MatchOriginAsFallbackBehavior::kAlways,
+  EXPECT_EQ(mojom::MatchOriginAsFallbackBehavior::kAlways,
             script->match_origin_as_fallback());
   EXPECT_EQ(mojom::RunLocation::kDocumentStart, script->run_location());
   EXPECT_EQ(UserScript::Source::kDynamicContentScript, script->GetSource());
@@ -151,7 +151,8 @@
       base::FilePath(), base::FilePath(FILE_PATH_LITERAL("script.js")),
       stub_extension->GetResourceURL("script.js")));
   script.add_url_pattern(URLPattern(valid_schemes, "http://matches.example/*"));
-  script.set_match_origin_as_fallback(MatchOriginAsFallbackBehavior::kAlways);
+  script.set_match_origin_as_fallback(
+      mojom::MatchOriginAsFallbackBehavior::kAlways);
   script.set_run_location(mojom::RunLocation::kDocumentStart);
   script.set_execution_world(mojom::ExecutionWorld::kMain);
 
diff --git a/extensions/common/content_script_injection_url_getter.cc b/extensions/common/content_script_injection_url_getter.cc
index 8a5ae9c..34c75548 100644
--- a/extensions/common/content_script_injection_url_getter.cc
+++ b/extensions/common/content_script_injection_url_getter.cc
@@ -8,6 +8,7 @@
 #include "base/containers/flat_set.h"
 #include "base/notreached.h"
 #include "base/trace_event/typed_macros.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "url/scheme_host_port.h"
 
 namespace extensions {
@@ -16,7 +17,7 @@
 GURL ContentScriptInjectionUrlGetter::Get(
     const FrameContextData& context_data,
     const GURL& document_url,
-    MatchOriginAsFallbackBehavior match_origin_as_fallback,
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback,
     bool allow_inaccessible_parents) {
   // The following schemes are considered for opaque origins if the
   // `match_origin_as_fallback` behavior is to always match.
@@ -40,21 +41,22 @@
   auto should_consider_origin = [&document_url, match_origin_as_fallback]() {
     bool result = false;
     switch (match_origin_as_fallback) {
-      case MatchOriginAsFallbackBehavior::kNever: {
+      case mojom::MatchOriginAsFallbackBehavior::kNever: {
         TRACE_EVENT_INSTANT("extensions",
                             "ContentScriptInjectionUrlGetter::Get/"
                             "should_consider_origin: origin-never");
         result = false;
         break;
       }
-      case MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree: {
+      case mojom::MatchOriginAsFallbackBehavior::
+          kMatchForAboutSchemeAndClimbTree: {
         TRACE_EVENT_INSTANT("extensions",
                             "ContentScriptInjectionUrlGetter::Get/"
                             "should_consider_origin: origin-climb");
         result = document_url.SchemeIs(url::kAboutScheme);
         break;
       }
-      case MatchOriginAsFallbackBehavior::kAlways: {
+      case mojom::MatchOriginAsFallbackBehavior::kAlways: {
         TRACE_EVENT_INSTANT("extensions",
                             "ContentScriptInjectionUrlGetter::Get/"
                             "should_consider_origin: origin-always");
@@ -120,7 +122,8 @@
 
   // Looks like the initiator origin is an appropriate fallback!
 
-  if (match_origin_as_fallback == MatchOriginAsFallbackBehavior::kAlways) {
+  if (match_origin_as_fallback ==
+      mojom::MatchOriginAsFallbackBehavior::kAlways) {
     // The easy case! We use the origin directly. We're done.
     TRACE_EVENT_INSTANT(
         "extensions",
@@ -128,8 +131,9 @@
     return origin_or_precursor_origin.GetURL();
   }
 
-  DCHECK_EQ(MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
-            match_origin_as_fallback);
+  DCHECK_EQ(
+      mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree,
+      match_origin_as_fallback);
 
   // Unfortunately, in this case, we have to climb the frame tree. This is for
   // match patterns that are associated with paths as well, not just origins.
diff --git a/extensions/common/content_script_injection_url_getter.h b/extensions/common/content_script_injection_url_getter.h
index 8fe35e38..50cf9f6 100644
--- a/extensions/common/content_script_injection_url_getter.h
+++ b/extensions/common/content_script_injection_url_getter.h
@@ -6,7 +6,7 @@
 #define EXTENSIONS_COMMON_CONTENT_SCRIPT_INJECTION_URL_GETTER_H_
 
 #include "extensions/common/frame_context_data.h"
-#include "extensions/common/script_constants.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-forward.h"
 #include "url/gurl.h"
 
 namespace extensions {
@@ -26,7 +26,7 @@
 
   static GURL Get(const FrameContextData& context_data,
                   const GURL& document_url,
-                  MatchOriginAsFallbackBehavior match_origin_as_fallback,
+                  mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback,
                   bool allow_inaccessible_parents);
 };
 
diff --git a/extensions/common/manifest_handlers/content_scripts_handler.cc b/extensions/common/manifest_handlers/content_scripts_handler.cc
index 4f4db052..c1c82851 100644
--- a/extensions/common/manifest_handlers/content_scripts_handler.cc
+++ b/extensions/common/manifest_handlers/content_scripts_handler.cc
@@ -19,9 +19,9 @@
 #include "extensions/common/manifest_constants.h"
 #include "extensions/common/manifest_handlers/permissions_parser.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/url_pattern.h"
 #include "extensions/common/url_pattern_set.h"
 #include "extensions/common/utils/content_script_utils.h"
@@ -76,12 +76,12 @@
   // Manifest content scripts support `match_about_blank` (unlike
   // `SerializedUserScript`). If `match_about_blank` is specified, we'll
   // override the `match_origin_as_fallback` behavior on the user script later.
-  std::optional<MatchOriginAsFallbackBehavior>
+  std::optional<mojom::MatchOriginAsFallbackBehavior>
       match_origin_as_fallback_override;
   if (!serialized_script.match_origin_as_fallback.has_value() &&
       content_script.match_about_blank && *content_script.match_about_blank) {
     match_origin_as_fallback_override =
-        MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree;
+        mojom::MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree;
   }
 
   serialized_script.include_globs = std::move(content_script.include_globs);
diff --git a/extensions/common/mojom/frame.mojom b/extensions/common/mojom/frame.mojom
index 4ec6f4a..1d480fc8 100644
--- a/extensions/common/mojom/frame.mojom
+++ b/extensions/common/mojom/frame.mojom
@@ -10,6 +10,7 @@
 import "extensions/common/mojom/extra_response_data.mojom";
 import "extensions/common/mojom/host_id.mojom";
 import "extensions/common/mojom/injection_type.mojom";
+import "extensions/common/mojom/match_origin_as_fallback.mojom";
 import "extensions/common/mojom/message_port.mojom";
 import "extensions/common/mojom/run_location.mojom";
 import "extensions/common/mojom/stack_frame.mojom";
@@ -30,8 +31,8 @@
 
   // The webview guest source who calls to execute code.
   url.mojom.Url webview_src;
-  // Whether to inject into about:blank (sub)frames.
-  bool match_about_blank;
+  // Behavior for frames where the URL cannot be matched directly.
+  MatchOriginAsFallbackBehavior match_origin_as_fallback_behavior;
   // When to inject the code.
   RunLocation run_at;
   // Whether the request is coming from a <webview>.
diff --git a/extensions/common/script_constants.h b/extensions/common/mojom/match_origin_as_fallback.mojom
similarity index 76%
rename from extensions/common/script_constants.h
rename to extensions/common/mojom/match_origin_as_fallback.mojom
index f85f9cf8..55338e57 100644
--- a/extensions/common/script_constants.h
+++ b/extensions/common/mojom/match_origin_as_fallback.mojom
@@ -1,15 +1,12 @@
-// Copyright 2020 The Chromium Authors
+// Copyright 2025 The Chromium Authors
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef EXTENSIONS_COMMON_SCRIPT_CONSTANTS_H_
-#define EXTENSIONS_COMMON_SCRIPT_CONSTANTS_H_
-
-namespace extensions {
+module extensions.mojom;
 
 // Whether to fall back to matching the origin for frames where the URL
 // cannot be matched directly, such as those with about: or data: schemes.
-enum class MatchOriginAsFallbackBehavior {
+enum MatchOriginAsFallbackBehavior {
   // Never fall back on the origin; this means scripts will never match on
   // these frames.
   kNever,
@@ -24,7 +21,3 @@
   // corresponding path.
   kAlways,
 };
-
-}  // namespace extensions
-
-#endif  // EXTENSIONS_COMMON_SCRIPT_CONSTANTS_H_
diff --git a/extensions/common/user_script.cc b/extensions/common/user_script.cc
index b1929ca4..54b6b18 100644
--- a/extensions/common/user_script.cc
+++ b/extensions/common/user_script.cc
@@ -332,8 +332,8 @@
   CHECK(iter->ReadBool(&match_all_frames_));
   int match_origin_as_fallback_int = 0;
   CHECK(iter->ReadInt(&match_origin_as_fallback_int));
-  match_origin_as_fallback_ =
-      static_cast<MatchOriginAsFallbackBehavior>(match_origin_as_fallback_int);
+  match_origin_as_fallback_ = static_cast<mojom::MatchOriginAsFallbackBehavior>(
+      match_origin_as_fallback_int);
   CHECK(iter->ReadBool(&incognito_enabled_));
 
   // Read the execution world.
diff --git a/extensions/common/user_script.h b/extensions/common/user_script.h
index d3d1659..83e067e 100644
--- a/extensions/common/user_script.h
+++ b/extensions/common/user_script.h
@@ -14,8 +14,8 @@
 #include "extensions/common/extension_id.h"
 #include "extensions/common/mojom/execution_world.mojom-shared.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/mojom/run_location.mojom-shared.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/url_pattern.h"
 #include "extensions/common/url_pattern_set.h"
 #include "url/gurl.h"
@@ -204,10 +204,10 @@
 
   // Whether to match the origin as a fallback if the URL cannot be used
   // directly.
-  MatchOriginAsFallbackBehavior match_origin_as_fallback() const {
+  mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback() const {
     return match_origin_as_fallback_;
   }
-  void set_match_origin_as_fallback(MatchOriginAsFallbackBehavior val) {
+  void set_match_origin_as_fallback(mojom::MatchOriginAsFallbackBehavior val) {
     match_origin_as_fallback_ = val;
   }
 
@@ -378,8 +378,8 @@
   // origin matches a match pattern, if an appropriate URL cannot be found for
   // the frame for matching purposes, such as in the case of about:, data:, and
   // other schemes.
-  MatchOriginAsFallbackBehavior match_origin_as_fallback_ =
-      MatchOriginAsFallbackBehavior::kNever;
+  mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback_ =
+      mojom::MatchOriginAsFallbackBehavior::kNever;
 
   // True if the script should be injected into an incognito tab.
   bool incognito_enabled_ = false;
diff --git a/extensions/common/utils/content_script_utils.cc b/extensions/common/utils/content_script_utils.cc
index f929f93..efa1cd1 100644
--- a/extensions/common/utils/content_script_utils.cc
+++ b/extensions/common/utils/content_script_utils.cc
@@ -19,6 +19,7 @@
 #include "extensions/common/error_utils.h"
 #include "extensions/common/manifest_constants.h"
 #include "extensions/common/manifest_handlers/permissions_parser.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "extensions/common/url_pattern.h"
 #include "extensions/common/url_pattern_set.h"
@@ -400,7 +401,7 @@
 }
 
 bool ValidateMatchOriginAsFallback(
-    MatchOriginAsFallbackBehavior match_origin_as_fallback,
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback,
     const URLPatternSet& url_patterns,
     std::u16string* error_out) {
   // If the extension is using `match_origin_as_fallback`, we require the
@@ -409,7 +410,8 @@
   // a pattern of `"https://google.com/maps/*"`, this script would also run
   // on about:blank, data:, etc frames from https://google.com (because in
   // both cases, the precursor origin is https://google.com).
-  if (match_origin_as_fallback == MatchOriginAsFallbackBehavior::kAlways) {
+  if (match_origin_as_fallback ==
+      mojom::MatchOriginAsFallbackBehavior::kAlways) {
     for (const auto& pattern : url_patterns) {
       if (pattern.path() != "/*") {
         *error_out = errors::kMatchOriginAsFallbackCantHavePaths;
diff --git a/extensions/common/utils/content_script_utils.h b/extensions/common/utils/content_script_utils.h
index d3de4b59..041d1ab 100644
--- a/extensions/common/utils/content_script_utils.h
+++ b/extensions/common/utils/content_script_utils.h
@@ -13,7 +13,7 @@
 #include "extensions/common/api/scripts_internal.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/extension_resource.h"
-#include "extensions/common/script_constants.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-forward.h"
 #include "extensions/common/user_script.h"
 
 // Contains helper methods for parsing content script fields.
@@ -83,7 +83,7 @@
 // patterns specified in `url_patterns`. I.e. patterns in `url_patterns` must
 // specify a wildcard path or no path if `match_origin_as_fallback` is enabled.
 bool ValidateMatchOriginAsFallback(
-    MatchOriginAsFallbackBehavior match_origin_as_fallback,
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback,
     const URLPatternSet& url_patterns,
     std::u16string* error_out);
 
diff --git a/extensions/renderer/programmatic_script_injector.cc b/extensions/renderer/programmatic_script_injector.cc
index e63ccbd5..1b0a9091 100644
--- a/extensions/renderer/programmatic_script_injector.cc
+++ b/extensions/renderer/programmatic_script_injector.cc
@@ -15,7 +15,6 @@
 #include "extensions/common/mojom/host_id.mojom.h"
 #include "extensions/common/permissions/api_permission.h"
 #include "extensions/common/permissions/permissions_data.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/renderer/injection_host.h"
 #include "extensions/renderer/renderer_extension_registry.h"
 #include "extensions/renderer/script_context.h"
@@ -104,9 +103,7 @@
   GURL effective_document_url =
       ScriptContext::GetEffectiveDocumentURLForInjection(
           frame, frame->GetDocument().Url(),
-          params_->match_about_blank
-              ? MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree
-              : MatchOriginAsFallbackBehavior::kNever);
+          params_->match_origin_as_fallback_behavior);
   if (params_->is_web_view) {
     if (!frame->IsOutermostMainFrame()) {
       // This is a subframe inside <webview>, so allow it.
diff --git a/extensions/renderer/script_context.cc b/extensions/renderer/script_context.cc
index 304b0d5..5d95d27a 100644
--- a/extensions/renderer/script_context.cc
+++ b/extensions/renderer/script_context.cc
@@ -25,6 +25,7 @@
 #include "extensions/common/extension_urls.h"
 #include "extensions/common/manifest_handlers/sandboxed_page_info.h"
 #include "extensions/common/mojom/context_type.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/common/permissions/permissions_data.h"
 #include "extensions/common/switches.h"
 #include "extensions/renderer/dispatcher.h"
@@ -50,7 +51,7 @@
 GURL GetEffectiveDocumentURL(
     blink::WebLocalFrame* frame,
     const GURL& document_url,
-    MatchOriginAsFallbackBehavior match_origin_as_fallback,
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback,
     bool allow_inaccessible_parents) {
   return ContentScriptInjectionUrlGetter::Get(
       RendererFrameContextData(frame), document_url, match_origin_as_fallback,
@@ -408,9 +409,9 @@
   // TODO(devlin): Determine if this could use kAlways instead of
   // kMatchForAboutSchemeAndClimbTree.
   auto match_origin_as_fallback =
-      match_about_blank
-          ? MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree
-          : MatchOriginAsFallbackBehavior::kNever;
+      match_about_blank ? mojom::MatchOriginAsFallbackBehavior::
+                              kMatchForAboutSchemeAndClimbTree
+                        : mojom::MatchOriginAsFallbackBehavior::kNever;
   return GetEffectiveDocumentURL(frame, document_url, match_origin_as_fallback,
                                  allow_inaccessible_parents);
 }
@@ -419,7 +420,7 @@
 GURL ScriptContext::GetEffectiveDocumentURLForInjection(
     blink::WebLocalFrame* frame,
     const GURL& document_url,
-    MatchOriginAsFallbackBehavior match_origin_as_fallback) {
+    mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback) {
   // We explicitly allow inaccessible parents here. Extensions should still be
   // able to inject into a sandboxed iframe if it has access to the embedding
   // origin.
diff --git a/extensions/renderer/script_context.h b/extensions/renderer/script_context.h
index a7301d6..01b4a89 100644
--- a/extensions/renderer/script_context.h
+++ b/extensions/renderer/script_context.h
@@ -19,8 +19,8 @@
 #include "extensions/common/mojom/api_permission_id.mojom-shared.h"
 #include "extensions/common/mojom/context_type.mojom-forward.h"
 #include "extensions/common/mojom/host_id.mojom.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-forward.h"
 #include "extensions/common/permissions/api_permission_set.h"
-#include "extensions/common/script_constants.h"
 #include "extensions/common/stack_frame.h"
 #include "extensions/renderer/module_system.h"
 #include "extensions/renderer/safe_builtins.h"
@@ -252,7 +252,7 @@
   static GURL GetEffectiveDocumentURLForInjection(
       blink::WebLocalFrame* frame,
       const GURL& document_url,
-      MatchOriginAsFallbackBehavior match_origin_as_fallback);
+      mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback);
 
   // Grants a set of content capabilities to this context.
   void set_content_capabilities(APIPermissionSet capabilities) {
diff --git a/extensions/renderer/script_context_browsertest.cc b/extensions/renderer/script_context_browsertest.cc
index a20b0124f..b025449 100644
--- a/extensions/renderer/script_context_browsertest.cc
+++ b/extensions/renderer/script_context_browsertest.cc
@@ -2,10 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "extensions/renderer/script_context.h"
+
 #include "content/public/renderer/render_frame.h"
 #include "content/public/test/frame_load_waiter.h"
-#include "extensions/common/script_constants.h"
-#include "extensions/renderer/script_context.h"
+#include "extensions/common/mojom/match_origin_as_fallback.mojom-shared.h"
 #include "extensions/renderer/script_context_set.h"
 #include "extensions/shell/test/extensions_render_view_test.h"
 #include "third_party/blink/public/platform/web_runtime_features.h"
@@ -26,8 +27,8 @@
   }
   GURL GetEffectiveDocumentURLForInjection(
       WebLocalFrame* frame,
-      MatchOriginAsFallbackBehavior match_origin_as_fallback =
-          MatchOriginAsFallbackBehavior::kAlways) {
+      mojom::MatchOriginAsFallbackBehavior match_origin_as_fallback =
+          mojom::MatchOriginAsFallbackBehavior::kAlways) {
     return ScriptContext::GetEffectiveDocumentURLForInjection(
         frame, frame->GetDocument().Url(), match_origin_as_fallback);
   }
@@ -137,11 +138,9 @@
   EXPECT_EQ(top_url, GetEffectiveDocumentURLForInjection(frame4));
   // Sanity-check: if we only match about: schemes, the original URL should be
   // returned.
-  EXPECT_EQ(
-      data_url,
-      GetEffectiveDocumentURLForInjection(
-          frame4,
-          MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree));
+  EXPECT_EQ(data_url, GetEffectiveDocumentURLForInjection(
+                          frame4, mojom::MatchOriginAsFallbackBehavior::
+                                      kMatchForAboutSchemeAndClimbTree));
 
   // top -> sandboxed data URL = same URL when classifying contexts, but
   // inherited when injecting scripts.
@@ -149,11 +148,9 @@
   EXPECT_EQ(top_url, GetEffectiveDocumentURLForInjection(frame5));
   // Sanity-check: if we only match about: schemes, the original URL should be
   // returned.
-  EXPECT_EQ(
-      data_url,
-      GetEffectiveDocumentURLForInjection(
-          frame5,
-          MatchOriginAsFallbackBehavior::kMatchForAboutSchemeAndClimbTree));
+  EXPECT_EQ(data_url, GetEffectiveDocumentURLForInjection(
+                          frame5, mojom::MatchOriginAsFallbackBehavior::
+                                      kMatchForAboutSchemeAndClimbTree));
 
   // top -> different origin = different origin
   EXPECT_EQ(different_url, GetEffectiveDocumentURLForContext(frame3));
diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc
index c1301dd5..562e7d1 100644
--- a/google_apis/gaia/fake_gaia.cc
+++ b/google_apis/gaia/fake_gaia.cc
@@ -729,7 +729,7 @@
         base::Value::Dict()
             .Set("issued_to", token_info->issued_to)
             .Set("audience", token_info->audience)
-            .Set("user_id", token_info->user_id)
+            .Set("user_id", token_info->user_id.ToString())
             .Set("scope", base::JoinString(std::vector<std::string_view>(
                                                token_info->scopes.begin(),
                                                token_info->scopes.end()),
diff --git a/google_apis/gaia/fake_gaia.h b/google_apis/gaia/fake_gaia.h
index f483409a..fc357f1e6 100644
--- a/google_apis/gaia/fake_gaia.h
+++ b/google_apis/gaia/fake_gaia.h
@@ -46,7 +46,7 @@
     std::string token;
     std::string issued_to;
     std::string audience;
-    std::string user_id;
+    GaiaId user_id;
     ScopeSet scopes;
     int expires_in = 3600;
     std::string email;
diff --git a/google_apis/gaia/gaia_auth_test_util.cc b/google_apis/gaia/gaia_auth_test_util.cc
index bcc0f76..99e80ad 100644
--- a/google_apis/gaia/gaia_auth_test_util.cc
+++ b/google_apis/gaia/gaia_auth_test_util.cc
@@ -8,10 +8,11 @@
 
 namespace gaia {
 
+#include "google_apis/gaia/gaia_id.h"
 std::string GenerateOAuth2MintTokenConsentResult(
     std::optional<bool> approved,
     const std::optional<std::string>& encrypted_approval_data,
-    const std::optional<std::string>& obfuscated_id,
+    const std::optional<GaiaId>& obfuscated_id,
     base::Base64UrlEncodePolicy encode_policy) {
   OAuth2MintTokenConsentResult consent_result;
   if (approved.has_value())
@@ -19,7 +20,7 @@
   if (encrypted_approval_data.has_value())
     consent_result.set_encrypted_approval_data(encrypted_approval_data.value());
   if (obfuscated_id.has_value())
-    consent_result.set_obfuscated_id(obfuscated_id.value());
+    consent_result.set_obfuscated_id(obfuscated_id->ToString());
   std::string serialized_consent = consent_result.SerializeAsString();
   std::string encoded_consent;
   base::Base64UrlEncode(serialized_consent, encode_policy, &encoded_consent);
diff --git a/google_apis/gaia/gaia_auth_test_util.h b/google_apis/gaia/gaia_auth_test_util.h
index 818aee0..88cefed 100644
--- a/google_apis/gaia/gaia_auth_test_util.h
+++ b/google_apis/gaia/gaia_auth_test_util.h
@@ -9,13 +9,14 @@
 #include <string>
 
 #include "base/base64url.h"
+#include "google_apis/gaia/gaia_id.h"
 
 namespace gaia {
 
 std::string GenerateOAuth2MintTokenConsentResult(
     std::optional<bool> approved,
     const std::optional<std::string>& encrypted_approval_data,
-    const std::optional<std::string>& obfuscated_id,
+    const std::optional<GaiaId>& obfuscated_id,
     base::Base64UrlEncodePolicy encode_policy =
         base::Base64UrlEncodePolicy::OMIT_PADDING);
 
diff --git a/google_apis/gaia/gaia_auth_util_unittest.cc b/google_apis/gaia/gaia_auth_util_unittest.cc
index 4930006d3..d80204f 100644
--- a/google_apis/gaia/gaia_auth_util_unittest.cc
+++ b/google_apis/gaia/gaia_auth_util_unittest.cc
@@ -520,8 +520,8 @@
 
 TEST(GaiaAuthUtilTest, ParseConsentResultApproved) {
   const char kApprovedConsent[] = "CAESCUVOQ1JZUFRFRBoMZmFrZV9nYWlhX2lk";
-  EXPECT_EQ(kApprovedConsent,
-            GenerateOAuth2MintTokenConsentResult(true, "ENCRYPTED", kGaiaId));
+  EXPECT_EQ(kApprovedConsent, GenerateOAuth2MintTokenConsentResult(
+                                  true, "ENCRYPTED", GaiaId(kGaiaId)));
   bool approved = false;
   GaiaId gaia_id;
   ASSERT_TRUE(
@@ -532,8 +532,8 @@
 
 TEST(GaiaAuthUtilTest, ParseConsentResultApprovedEmptyData) {
   const char kApprovedConsent[] = "CAEaDGZha2VfZ2FpYV9pZA";
-  EXPECT_EQ(kApprovedConsent,
-            GenerateOAuth2MintTokenConsentResult(true, std::nullopt, kGaiaId));
+  EXPECT_EQ(kApprovedConsent, GenerateOAuth2MintTokenConsentResult(
+                                  true, std::nullopt, GaiaId(kGaiaId)));
   bool approved = false;
   GaiaId gaia_id;
   ASSERT_TRUE(
@@ -556,8 +556,8 @@
 
 TEST(GaiaAuthUtilTest, ParseConsentResultNotApproved) {
   const char kNoGrantConsent[] = "CAAaDGZha2VfZ2FpYV9pZA";
-  EXPECT_EQ(kNoGrantConsent,
-            GenerateOAuth2MintTokenConsentResult(false, std::nullopt, kGaiaId));
+  EXPECT_EQ(kNoGrantConsent, GenerateOAuth2MintTokenConsentResult(
+                                 false, std::nullopt, GaiaId(kGaiaId)));
   bool approved = false;
   GaiaId gaia_id;
   ASSERT_TRUE(
diff --git a/google_apis/gaia/oauth2_mint_token_flow_unittest.cc b/google_apis/gaia/oauth2_mint_token_flow_unittest.cc
index 9594605..167de897 100644
--- a/google_apis/gaia/oauth2_mint_token_flow_unittest.cc
+++ b/google_apis/gaia/oauth2_mint_token_flow_unittest.cc
@@ -18,6 +18,7 @@
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/values_test_util.h"
 #include "base/values.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "google_apis/gaia/google_service_auth_error.h"
 #include "google_apis/gaia/oauth2_access_token_fetcher.h"
 #include "net/base/net_errors.h"
@@ -202,35 +203,35 @@
   const network::mojom::URLResponseHeadPtr head_200_;
 
   void CreateFlow(OAuth2MintTokenFlow::Mode mode) {
-    return CreateFlow(&delegate_, mode, false, "", "", "");
+    return CreateFlow(&delegate_, mode, false, "", GaiaId(), "");
   }
 
   void CreateFlowWithEnableGranularPermissions(
       const bool enable_granular_permissions) {
     return CreateFlow(&delegate_, OAuth2MintTokenFlow::MODE_ISSUE_ADVICE,
-                      enable_granular_permissions, "", "", "");
+                      enable_granular_permissions, "", GaiaId(), "");
   }
 
   void CreateFlowWithDeviceId(const std::string& device_id) {
     return CreateFlow(&delegate_, OAuth2MintTokenFlow::MODE_ISSUE_ADVICE, false,
-                      device_id, "", "");
+                      device_id, GaiaId(), "");
   }
 
-  void CreateFlowWithSelectedUserId(const std::string& selected_user_id) {
+  void CreateFlowWithSelectedUserId(const GaiaId& selected_user_id) {
     return CreateFlow(&delegate_, OAuth2MintTokenFlow::MODE_ISSUE_ADVICE, false,
                       "", selected_user_id, "");
   }
 
   void CreateFlowWithConsentResult(const std::string& consent_result) {
     return CreateFlow(&delegate_, OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE,
-                      false, "", "", consent_result);
+                      false, "", GaiaId(), consent_result);
   }
 
   void CreateFlow(MockDelegate* delegate,
                   OAuth2MintTokenFlow::Mode mode,
                   const bool enable_granular_permissions,
                   const std::string& device_id,
-                  const std::string& selected_user_id,
+                  const GaiaId& selected_user_id,
                   const std::string& consent_result) {
     const std::string_view kExtensionId = "ext1";
     flow_ = std::make_unique<MockMintTokenFlow>(
@@ -371,7 +372,7 @@
 }
 
 TEST_F(OAuth2MintTokenFlowTest, CreateApiCallBodyMintTokenWithSelectedUserId) {
-  CreateFlowWithSelectedUserId("user_id1");
+  CreateFlowWithSelectedUserId(GaiaId("user_id1"));
   std::string body = flow_->CreateApiCallBody();
   std::string expected_body(
       "force=false"
@@ -720,7 +721,7 @@
 TEST_F(OAuth2MintTokenFlowTest, ProcessApiCallFailure_NullDelegate) {
   network::mojom::URLResponseHead head;
   CreateFlow(nullptr, OAuth2MintTokenFlow::MODE_MINT_TOKEN_NO_FORCE, false, "",
-             "", "");
+             GaiaId(), "");
   ProcessApiCallFailure(net::ERR_FAILED, &head, nullptr);
   histogram_tester_.ExpectUniqueSample(
       kOAuth2MintTokenApiCallResultHistogram,
diff --git a/google_apis/gcm/engine/account_mapping_unittest.cc b/google_apis/gcm/engine/account_mapping_unittest.cc
index ad8eb94..15458a8 100644
--- a/google_apis/gcm/engine/account_mapping_unittest.cc
+++ b/google_apis/gcm/engine/account_mapping_unittest.cc
@@ -6,6 +6,7 @@
 
 #include <string>
 
+#include "google_apis/gaia/gaia_id.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace gcm {
@@ -14,7 +15,7 @@
 
 TEST(AccountMappingTest, SerializeAccountMapping) {
   AccountMapping account_mapping;
-  account_mapping.account_id = CoreAccountId::FromGaiaId("acc_id");
+  account_mapping.account_id = CoreAccountId::FromGaiaId(GaiaId("acc_id"));
   account_mapping.email = "test@example.com";
   account_mapping.access_token = "access_token";
   account_mapping.status = AccountMapping::NEW;
@@ -41,7 +42,7 @@
   EXPECT_EQ("test@example.com&mapped&1305797421259977",
             account_mapping.SerializeAsString());
 
-  account_mapping.account_id = CoreAccountId::FromGaiaId("acc_id2");
+  account_mapping.account_id = CoreAccountId::FromGaiaId(GaiaId("acc_id2"));
   account_mapping.email = "test@gmail.com";
   account_mapping.access_token = "access_token";  // should be ignored.
   account_mapping.status = AccountMapping::REMOVING;
@@ -59,7 +60,7 @@
 
 TEST(AccountMappingTest, DeserializeAccountMapping) {
   AccountMapping account_mapping;
-  account_mapping.account_id = CoreAccountId::FromGaiaId("acc_id");
+  account_mapping.account_id = CoreAccountId::FromGaiaId(GaiaId("acc_id"));
 
   EXPECT_TRUE(account_mapping.ParseFromString("test@example.com&new&0"));
   EXPECT_EQ("acc_id", account_mapping.account_id.ToString());
@@ -122,7 +123,7 @@
 
 TEST(AccountMappingTest, DeserializeAccountMappingInvalidInput) {
   AccountMapping account_mapping;
-  account_mapping.account_id = CoreAccountId::FromGaiaId("acc_id");
+  account_mapping.account_id = CoreAccountId::FromGaiaId(GaiaId("acc_id"));
   // Too many arguments.
   EXPECT_FALSE(account_mapping.ParseFromString(
       "test@example.com&adding&1305797421259935&last_message_id_1&stuff_here"));
diff --git a/google_apis/gcm/engine/gcm_store_impl_unittest.cc b/google_apis/gcm/engine/gcm_store_impl_unittest.cc
index c4f0c96..9181c57 100644
--- a/google_apis/gcm/engine/gcm_store_impl_unittest.cc
+++ b/google_apis/gcm/engine/gcm_store_impl_unittest.cc
@@ -20,6 +20,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/test/task_environment.h"
+#include "google_apis/gaia/gaia_id.h"
 #include "google_apis/gcm/base/fake_encryptor.h"
 #include "google_apis/gcm/base/gcm_constants.h"
 #include "google_apis/gcm/base/mcs_message.h"
@@ -566,7 +567,8 @@
 
   // Add account mappings.
   AccountMapping account_mapping1;
-  account_mapping1.account_id = CoreAccountId::FromGaiaId("account_id_1");
+  account_mapping1.account_id =
+      CoreAccountId::FromGaiaId(GaiaId("account_id_1"));
   account_mapping1.email = "account_id_1@gmail.com";
   account_mapping1.access_token = "account_token1";
   account_mapping1.status = AccountMapping::ADDING;
@@ -574,7 +576,8 @@
   account_mapping1.last_message_id = "message_1";
 
   AccountMapping account_mapping2;
-  account_mapping2.account_id = CoreAccountId::FromGaiaId("account_id_2");
+  account_mapping2.account_id =
+      CoreAccountId::FromGaiaId(GaiaId("account_id_2"));
   account_mapping2.email = "account_id_2@gmail.com";
   account_mapping2.access_token = "account_token1";
   account_mapping2.status = AccountMapping::REMOVING;
diff --git a/gpu/command_buffer/client/client_shared_image.cc b/gpu/command_buffer/client/client_shared_image.cc
index f87cf707..1c52db7a 100644
--- a/gpu/command_buffer/client/client_shared_image.cc
+++ b/gpu/command_buffer/client/client_shared_image.cc
@@ -15,6 +15,7 @@
 #include "gpu/command_buffer/client/gles2_interface.h"
 #include "gpu/command_buffer/common/shared_image_capabilities.h"
 #include "gpu/command_buffer/common/shared_image_usage.h"
+#include "gpu/ipc/common/gpu_memory_buffer_impl_shared_memory.h"
 #include "gpu/ipc/common/gpu_memory_buffer_support.h"
 #include "ui/gfx/buffer_format_util.h"
 #include "ui/gfx/buffer_types.h"
@@ -65,6 +66,9 @@
       int importance) override {
     NOTREACHED();
   }
+  base::UnguessableToken GetSharedMemoryGuid() override {
+    return mapping_->guid();
+  }
 
  private:
   SharedImageMetadata metadata_;
@@ -132,6 +136,12 @@
     buffer_->OnMemoryDump(pmd, buffer_dump_guid, tracing_process_id,
                           importance);
   }
+  base::UnguessableToken GetSharedMemoryGuid() override {
+    CHECK(buffer_);
+    CHECK(IsSharedMemory());
+    return static_cast<GpuMemoryBufferImplSharedMemory*>(buffer_)
+        ->GetSharedMemoryGUID();
+  }
 
   bool Init(gfx::GpuMemoryBuffer* gpu_memory_buffer, bool is_already_mapped) {
     if (!gpu_memory_buffer) {
diff --git a/gpu/command_buffer/client/client_shared_image.h b/gpu/command_buffer/client/client_shared_image.h
index e656d35..326808af 100644
--- a/gpu/command_buffer/client/client_shared_image.h
+++ b/gpu/command_buffer/client/client_shared_image.h
@@ -83,6 +83,10 @@
         uint64_t tracing_process_id,
         int importance) = 0;
 
+    // Returns a memory dump GUID consistent across processes. Should be called
+    // only if IsSharedMemory() is true.
+    virtual base::UnguessableToken GetSharedMemoryGuid() = 0;
+
    private:
     friend class ClientSharedImage;
 
diff --git a/infra/inclusive_language_presubmit_exempt_dirs.txt b/infra/inclusive_language_presubmit_exempt_dirs.txt
index 53b8fc8..a163055 100644
--- a/infra/inclusive_language_presubmit_exempt_dirs.txt
+++ b/infra/inclusive_language_presubmit_exempt_dirs.txt
@@ -638,7 +638,6 @@
 third_party/protobuf/src/google/protobuf/util/internal 4 1
 third_party/pyjson5/src 1 1
 third_party/pylint/pylint 8 2
-third_party/qcms 1 1
 third_party/rapidhash 5 2
 third_party/rust/chromium_crates_io/supply-chain 1 1
 third_party/rust/chromium_crates_io/vendor/adler2-2.0.0/.github/workflows 2 1
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
index 8f6611d..b177bfd 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
@@ -169,7 +169,7 @@
 <translation id="5661521615548540542">Google Password Manager ಎಲ್ಲಾ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="5690398455483874150">{count,plural, =1{ಈಗ 1 Chrome ವಿಂಡೋವನ್ನು ತೋರಿಸುತ್ತಿದೆ}one{ಈಗ {count} Chrome ವಿಂಡೋಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ}other{ಈಗ {count} Chrome ವಿಂಡೋಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ}}</translation>
 <translation id="5690427481109656848">Google LLC</translation>
-<translation id="5709557627224531708">Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation>
+<translation id="5709557627224531708">Chrome ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಸೆಟ್ ಮಾಡಿ</translation>
 <translation id="571296537125272375">ಆಫ್‌ಲೈನ್, ಅಪ್‌ಡೇಟ್‌ಗಳಿವೆಯೇ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಲು Chrome ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="5716154293141027663">ಇತರ ಆ್ಯಪ್‌ಗಳ ಲಿಂಕ್‌ಗಳನ್ನು ನೀವು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗಲೆಲ್ಲಾ Chrome ತೆರೆಯಿರಿ</translation>
 <translation id="5772407442571703917">Chrome ಅನ್ನು ಇಲ್ಲಿ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿ.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index df33b3b..c4fde21 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">يمكنك التسوّق وترجمة النصوص والتعرّف على ما تراه باستخدام الكاميرا.</translation>
 <translation id="2220529011494928058">الإبلاغ عن مشكلة</translation>
 <translation id="2223461067862937305">إنشاء رمز استجابة سريعة</translation>
+<translation id="2229345671837147090">شبكة علامات التبويب البعيدة</translation>
 <translation id="2230173723195178503">تم تحميل الصفحة المطلوبة</translation>
 <translation id="2236949375853147973">نشاطي</translation>
 <translation id="2240256190924001613">ملف تحميل الإعدادات متوفِّر</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">لمحة حول هذه الصفحة</translation>
 <translation id="3994422733891749358">اختيار الإشعارات التي تريد تلقّيها</translation>
 <translation id="3994522032746736727">تسجيل الدخول بحساب <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">حسنًا</translation>
 <translation id="3995521777587992544">شريط تقدُّم تحميل الصفحة، تم تحميل <ph name="EMAIL" />.</translation>
 <translation id="3997522473364371632">أوقَفَ المشرف ميزة "مشاركة كلمات المرور".</translation>
 <translation id="4002066346123236978">العنوان</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{إخفاء علامات التبويب بعد دقيقة واحدة}zero{إخفاء علامات التبويب بعد {count} دقيقة}two{إخفاء علامات التبويب بعد دقيقتَين ({count})}few{إخفاء علامات التبويب بعد {count} دقائق}many{إخفاء علامات التبويب بعد {count} دقيقة}other{إخفاء علامات التبويب بعد {count} دقيقة}}</translation>
 <translation id="4652817563047461855">يُرجى التأكّد من أنّ كلمات المرور الخاصة بك آمنة، وتحديد ما إذا تم اختراقها، والحصول على نصائح للمساعدة في حماية نفسك على الإنترنت. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">حفظ</translation>
+<translation id="466307903888586355">حظرت مؤسستك حفظ الملفات</translation>
 <translation id="4668929960204016307">،</translation>
 <translation id="4669618761237477717">تفرض مؤسستك سياسة التصفُّح بخصوصية تامّة. لذا، لا تتم مزامنة مجموعات علامات التبويب في وضع التصفُّح المتخفي.
 <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation>
@@ -1269,6 +1272,7 @@
 <translation id="6641465290890659327">مشاركة نسخة من كلمة المرور</translation>
 <translation id="6642362222295953972">التبديل إلى علامة تبويب حالية</translation>
 <translation id="6644512095122093795">اقتراح حفظ كلمات المرور</translation>
+<translation id="664573288952458293">شبكة علامات التبويب العادية</translation>
 <translation id="6645899968535965230">رمز الاستجابة السريعة: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">‏يتم إرسال عناوين URL التي تزورها إلى Google لتوقّع المواقع الإلكترونية التي ستزورها بعد ذلك.</translation>
 <translation id="6657585470893396449">كلمة المرور</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">لم يتم العثور على كلمات مرور لهذا الموقع الإلكتروني</translation>
 <translation id="8407831512155324054">كلمات مرورك تبدو قوية</translation>
 <translation id="842523302461531262">الضبط كمتصفِّح تلقائي من خلال "الإعدادات"…</translation>
+<translation id="8425826545759040372">شبكة علامات التبويب في وضع التصفّح المتخفي</translation>
 <translation id="8428045167754449968">المدينة/البلدة</translation>
 <translation id="8428213095426709021">الإعدادات</translation>
 <translation id="8428634594422941299">حسنًا</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
index 75eba9b4..c4069f3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">Kupujte, prevodite i prepoznajte ono što vidite pomoću kamere.</translation>
 <translation id="2220529011494928058">Prijavite problem</translation>
 <translation id="2223461067862937305">Kreiraj QR kôd</translation>
+<translation id="2229345671837147090">Daljinska rešetka kartice</translation>
 <translation id="2230173723195178503">Web lokacija je učitana</translation>
 <translation id="2236949375853147973">Moja aktivnost</translation>
 <translation id="2240256190924001613">Dostupan je profil konfiguracije</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">O ovoj stranici</translation>
 <translation id="3994422733891749358">Odaberite koja obavještenja želite primati</translation>
 <translation id="3994522032746736727">Prijavite se kao <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">SHVAĆAM</translation>
 <translation id="3995521777587992544">Traka napretka učitavanja stranice, učitano <ph name="EMAIL" />.</translation>
 <translation id="3997522473364371632">Dijeljenje lozinke je onemogućio administrator.</translation>
 <translation id="4002066346123236978">Naslov</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Sakrij nakon 1 minute}one{Sakrij nakon {count} minute}few{Sakrij nakon {count} minute}other{Sakrij nakon {count} minuta}}</translation>
 <translation id="4652817563047461855">Osigurajte da lozinke budu na sigurnom, saznajte ako su ugrožene i dobijte savjet o tome kako se zaštititi online. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Sačuvaj</translation>
+<translation id="466307903888586355">Spremanje datoteka blokirala je vaša organizacija</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Vaša organizacija zahtijeva da pregledate privatno. Grupe kartica se ne sinhroniziraju u anonimnom načinu rada.
 <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">Podijelite kopiju lozinke</translation>
 <translation id="6642362222295953972">Prelazak na postojeću karticu</translation>
 <translation id="6644512095122093795">Ponuda za čuvanje lozinki</translation>
+<translation id="664573288952458293">Rešetka obične kartice</translation>
 <translation id="6645899968535965230">QR kôd: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL-ovi koje posjetite šalju se Googleu radi predviđanja koje web lokacije ćete možda posjetiti sljedeće</translation>
 <translation id="6657585470893396449">Lozinka</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">Nije pronađena nijedna lozinka za ovu web lokaciju</translation>
 <translation id="8407831512155324054">Vaše lozinke izgledaju jake</translation>
 <translation id="842523302461531262">Postavljanje kao zadanog u postavkama…</translation>
+<translation id="8425826545759040372">Rešetka anonimne kartice</translation>
 <translation id="8428045167754449968">Grad/mjesto</translation>
 <translation id="8428213095426709021">Postavke</translation>
 <translation id="8428634594422941299">Razumijem</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index e387687..ae130f6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">તમારા કૅમેરા વડે જે જુઓ, તેને ખરીદો, અનુવાદ કરો અને તેની ઓળખ કરો.</translation>
 <translation id="2220529011494928058">સમસ્યાની જાણ કરો</translation>
 <translation id="2223461067862937305">કોઈ QR કોડ બનાવો</translation>
+<translation id="2229345671837147090">રિમોટ ટૅબ ગ્રિડ</translation>
 <translation id="2230173723195178503">વેબપેજ લોડ કર્યું</translation>
 <translation id="2236949375853147973">મારી ઍક્ટિવિટી</translation>
 <translation id="2240256190924001613">કન્ફિગ્યુરેશન પ્રોફાઇલ ઉપલબ્ધ છે</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">આ પેજ વિશે</translation>
 <translation id="3994422733891749358">તમે મેળવવા હોય તે નોટિફિકેશન પસંદ કરો</translation>
 <translation id="3994522032746736727"><ph name="EMAIL" /> તરીકે સાઇન ઇન કરો</translation>
+<translation id="3994911892367422121">સમજાઈ ગયું</translation>
 <translation id="3995521777587992544">પેજ લોડ પ્રોગ્રેસ બાર, <ph name="EMAIL" /> લોડ થયો.</translation>
 <translation id="3997522473364371632">તમારા ઍડમિનિસ્ટ્રેટરે પાસવર્ડ શેરિંગની સુવિધા બંધ કરી છે.</translation>
 <translation id="4002066346123236978">શીર્ષક</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{1 મિનિટ પછી છુપાવો}one{{count} મિનિટ પછી છુપાવો}other{{count} મિનિટ પછી છુપાવો}}</translation>
 <translation id="4652817563047461855">ખાતરી કરો કે તમારા પાસવર્ડ સલામત છે, જાણો કે તેની સાથે ચેડાં થયા છે કે નહીં અને તમારી જાતને ઑનલાઇન સુરક્ષિત રાખવામાં સહાય માટે સલાહ મેળવો. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">સાચવો</translation>
+<translation id="466307903888586355">તમારી સંસ્થા દ્વારા ફાઇલો સાચવવાની સુવિધા બ્લૉક કરવામાં આવી છે</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">તમારી સંસ્થાની પૉલિસી અનુસાર જરૂરી છે કે તમે ખાનગી રીતે બ્રાઉઝ કરો. છૂપા મોડમાં ટૅબના ગ્રૂપ સિંક કરવામાં આવતા નથી.
 <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">તમારા પાસવર્ડની કોઈ કૉપિ શેર કરો</translation>
 <translation id="6642362222295953972">હાલના ટૅબ પર સ્વિચ કરો</translation>
 <translation id="6644512095122093795">પાસવર્ડ સાચવવા સુવિધા આપો</translation>
+<translation id="664573288952458293">નિયમિત ટૅબ ગ્રિડ</translation>
 <translation id="6645899968535965230">QR કોડ: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">હવે તમે આના પછી કઈ સાઇટની મુલાકાત લેશો તેનું પૂર્વાનુમાન લગાવવા માટે, તમે જેની મુલાકાત લો છો તે URLs Googleને મોકલવામાં આવે છે</translation>
 <translation id="6657585470893396449">પાસવર્ડ</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">આ સાઇટ માટે કોઈ પાસવર્ડ મળ્યાં નથી</translation>
 <translation id="8407831512155324054">તમારા પાસવર્ડ સશક્ત લાગે છે</translation>
 <translation id="842523302461531262">સેટિંગમાં ડિફૉલ્ટ બનાવો…</translation>
+<translation id="8425826545759040372">છૂપી ટૅબ ગ્રિડ</translation>
 <translation id="8428045167754449968">શહેર/નગર</translation>
 <translation id="8428213095426709021">સેટિંગ</translation>
 <translation id="8428634594422941299">સમજાઈ ગયું</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index da42fd60..30fead0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">Kupujte, prevodite i identificirajte ono što vidite pomoću kamere.</translation>
 <translation id="2220529011494928058">Prijavite poteškoću</translation>
 <translation id="2223461067862937305">Izradi QR kôd</translation>
+<translation id="2229345671837147090">Daljinska rešetka kartice</translation>
 <translation id="2230173723195178503">Web-stranica učitana</translation>
 <translation id="2236949375853147973">Moja aktivnost</translation>
 <translation id="2240256190924001613">Dostupan je profil za konfiguraciju</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">Informacije o ovoj stranici</translation>
 <translation id="3994422733891749358">Odaberite obavijesti koje želite primati</translation>
 <translation id="3994522032746736727">Prijavite se kao <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">SHVAĆAM</translation>
 <translation id="3995521777587992544">Traka napretka učitavanja stranice, učitano <ph name="EMAIL" />.</translation>
 <translation id="3997522473364371632">Dijeljenje zaporki onemogućio je vaš administrator.</translation>
 <translation id="4002066346123236978">Naslov</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Sakrij nakon 1 minute}one{Sakrij nakon {count} minute}few{Sakrij nakon {count} minute}other{Sakrij nakon {count} minuta}}</translation>
 <translation id="4652817563047461855">Provjerite jesu li vaše zaporke sigurne, saznajte jesu li ugrožene i primite savjete koji će vam pomoći da se zaštitite online. <ph name="BEGIN_LINK" />Saznaj više<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Spremi</translation>
+<translation id="466307903888586355">Spremanje datoteka blokirala je vaša organizacija</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Vaša organizacija zahtijeva da pregledavate privatno. Grupe kartica ne sinkroniziraju se u anonimnom načinu.
 <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">Dijeljenje kopije zaporke</translation>
 <translation id="6642362222295953972">Prijeđite na postojeću karticu</translation>
 <translation id="6644512095122093795">Ponudi spremanje zaporki</translation>
+<translation id="664573288952458293">Rešetka obične kartice</translation>
 <translation id="6645899968535965230">QR kôd: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL-ovi koje posjećujete šalju se Googleu kako bi se predvidjelo koje biste web-lokacije mogli posjetiti sljedeće</translation>
 <translation id="6657585470893396449">Zaporka</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">Nije pronađena nijedna zaporka za ovu web-lokaciju</translation>
 <translation id="8407831512155324054">Vaše zaporke izgledaju snažno</translation>
 <translation id="842523302461531262">Postavi kao zadano u postavkama…</translation>
+<translation id="8425826545759040372">Rešetka anonimne kartice</translation>
 <translation id="8428045167754449968">Grad/mjesto</translation>
 <translation id="8428213095426709021">Postavke</translation>
 <translation id="8428634594422941299">Shvaćam</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index f32dad06..1d51e08 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">カメラを使って、見たものを購入、翻訳、特定できます。</translation>
 <translation id="2220529011494928058">問題を報告</translation>
 <translation id="2223461067862937305">QR コードを作成</translation>
+<translation id="2229345671837147090">リモートタブのグリッド</translation>
 <translation id="2230173723195178503">ウェブページを読み込みました</translation>
 <translation id="2236949375853147973">マイ アクティビティ</translation>
 <translation id="2240256190924001613">設定プロファイルを使用できます</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">このページについて</translation>
 <translation id="3994422733891749358">受信する通知を選択してください</translation>
 <translation id="3994522032746736727"><ph name="EMAIL" /> としてログイン</translation>
+<translation id="3994911892367422121">OK</translation>
 <translation id="3995521777587992544">ページ読み込み状況バー、<ph name="EMAIL" /> 読み込み完了。</translation>
 <translation id="3997522473364371632">パスワードの共有は管理者によって無効にされています。</translation>
 <translation id="4002066346123236978">タイトル</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{1 分後に非表示にする}other{{count} 分後に非表示にする}}</translation>
 <translation id="4652817563047461855">パスワードを安全に保管し、不正使用の有無を確認し、オンラインでご自身を守るためのアドバイスを得ることができます。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">保存</translation>
+<translation id="466307903888586355">ファイルの保存は組織によってブロックされています</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">組織がシークレット モードで閲覧するよう求めています。シークレット モードではタブグループは同期されません。
 <ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">パスワードを共有する</translation>
 <translation id="6642362222295953972">既存のタブに切り替え</translation>
 <translation id="6644512095122093795">パスワードを保存できるようにする</translation>
+<translation id="664573288952458293">通常のタブのグリッド</translation>
 <translation id="6645899968535965230">QR コード: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">アクセスした URL が Google に送信され、次にアクセスするサイトの予測が行われます</translation>
 <translation id="6657585470893396449">パスワード</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">このサイト用のパスワードが見つかりません</translation>
 <translation id="8407831512155324054">安全なパスワードが使用されています</translation>
 <translation id="842523302461531262">[設定] でデフォルトにする…</translation>
+<translation id="8425826545759040372">シークレット タブのグリッド</translation>
 <translation id="8428045167754449968">市区町村</translation>
 <translation id="8428213095426709021">設定</translation>
 <translation id="8428634594422941299">OK</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
index 8a74c18..e178dd78 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} ჩანართი}other{{count} ჩანართი}}</translation>
 <translation id="1084365883616172403">Facebook-ის პოსტი დასრულებულია.</translation>
 <translation id="1085677983426914530"><ph name="FILENAME" />-ის გახსნა ვერ მოხერხდა</translation>
+<translation id="1086468407802688066">ანგარიშს <ph name="USER_EMAIL" /> მართავს <ph name="HOSTED_DOMAIN" />, რომელსაც შეუძლია გარკვეული ინფორმაციის ნახვა. <ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">სინქრონიზაციის პარამეტრები აღდგენილი იქნება თქვენი ბოლო სარეზერვო ასლის მიხედვით. <ph name="BEGIN_LINK" />იხილეთ, რისი სინქრონიზაცია შეგიძლიათ<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314">ყოველთვის თარგმნე ამ ენიდან: <ph name="LANGUAGE" /></translation>
 <translation id="1108938384783527433">ისტორიის სინქრონიზაცია</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">აირჩიეთ მისამართთა ზოლის პოზიცია</translation>
 <translation id="1347468774581902829">აქტივობის მართვა</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">მართული ანგარიში</translation>
 <translation id="1358214951266274152">თქვენ მიერ კოპირებულ ბმულზე გადასვლა</translation>
 <translation id="1360432990279830238">გსურთ გამოსვლა და სინქრონიზაციის გამორთვა?</translation>
 <translation id="1363028406613469049">ჩანაწერი</translation>
@@ -695,6 +697,7 @@
 <translation id="4183350924949589798">გსურთ მეტი უსაფრთხოება?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} სუსტი პაროლი}other{{count} სუსტი პაროლი}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} ერთეული შენახულია მხოლოდ ამ მოწყობილობაზე. სხვა მოწყობილობაზე მის გამოსაყენებლად შეინახეთ ის თქვენს Google ანგარიშში ({email}).}other{{count} ერთეული შენახულია მხოლოდ ამ მოწყობილობაზე. სხვა მოწყობილობაზე მათ გამოსაყენებლად შეინახეთ ისინი თქვენს Google ანგარიშში ({email}).}}</translation>
+<translation id="4207873326995387292">ბრაუზერის ინფორმაცია</translation>
 <translation id="421070604241073551">ჩართვის შემთხვევაში, მონაცემები შეინახება თქვენს Google ანგარიშში. გამორთვის შემთხვევაში, მონაცემები მხოლოდ ამ მოწყობილობაზე შეინახება.</translation>
 <translation id="4224534474590365556">გსურთ, დახუროთ 99+ არააქტიური ჩანართი?</translation>
 <translation id="422474357428465195">პაროლებთან დაკავშირებით რამდენიმე პრობლემა გაქვთ, რაც უსაფრთხოებისთვის რისკის შემცველია.</translation>
@@ -762,6 +765,7 @@
 <translation id="4495516234578759322">მომდევნოს მოძებნა</translation>
 <translation id="4502423230170890588">ამ მოწყობილობიდან ამოშლა</translation>
 <translation id="4508750114462689118">შესვლის პრომო-ერთეულის დახურვა</translation>
+<translation id="4517684186578051919">მოწყობილობის ინფორმაცია</translation>
 <translation id="4520798012560649652">შეიტყვეთ მეტი ინკოგნიტო რეჟიმის შესახებ</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} სანიშნე}other{{count} სანიშნე}}</translation>
 <translation id="4525629404718770519">ბმულის გადახედვების ჩვენება</translation>
@@ -969,6 +973,7 @@
 <translation id="5444892875087332195">სანიშნეები</translation>
 <translation id="5452354193031718372">ძლიერი პაროლის გამოყენება</translation>
 <translation id="5454211924362324495">სხვებმა თქვენი პაროლი რომ ვეღარ გამოიყენონ, <ph name="BEGIN_LINK" />შეცვალეთ ის მისამართზე <ph name="WEBSITE" /><ph name="END_LINK" /></translation>
+<translation id="5454723301413569630">ანგარიშს <ph name="USER_EMAIL" /> მართავს <ph name="HOSTED_DOMAIN" />, რომელსაც შეუძლია ზოგიერთი ინფორმაციის ნახვა</translation>
 <translation id="5457082343331641453">დაამატეთ თქვენს ძიებაში</translation>
 <translation id="5457226814769348910">ხაზგარეშე ვერსიის გახსნა</translation>
 <translation id="5478327362747197944">შექმენით კალენდრის მოვლენები პირდაპირ ვებგვერდზე მოცემულ თარიღზე დაწკაპუნებით.</translation>
@@ -1371,6 +1376,7 @@
 <translation id="7102005569666697658">მიმდინარეობს ჩამოტვირთვა… <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">მენიუ → პარამეტრები → გადახდის მეთოდები</translation>
 <translation id="7108338896283013870">დამალვა</translation>
+<translation id="7128693485119315539">თქვენს ორგანიზაციას შეიძლება დასჭირდეს თქვენს მართულ ანგარიშთან მიბმული დათვალიერების მონაცემების (დათვალიერების ისტორია და პაროლები) ნახვა და მართვა.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">კამერა მიუწვდომელია</translation>
 <translation id="7141960840225504692">თქვენი ჩანართები დაიხურება, ხოლო ვების დათვალიერების მონაცემები წაიშლება</translation>
@@ -1764,6 +1770,7 @@
 <translation id="8813277370772331957">მოგვიანებით შეხსენება</translation>
 <translation id="8814719628147284151">გაგრძელება</translation>
 <translation id="8820817407110198400">სანიშნეები</translation>
+<translation id="8822421075653507124">ამ მოწყობილობის უსაფრთხო გამოყენების უზრუნველსაყოფად თქვენს ორგანიზაციას, შესაძლოა, დასჭირდეს ინფორმაციის ნახვა მისი ოპერაციული სისტემის, ბრაუზერის, პარამეტრების და მოწყობილობაზე დაყენებული პროგრამული უზრუნველყოფის შესახებ.</translation>
 <translation id="8825562130641217944">მიიღეთ თქვენი სანიშნეები, პაროლები და სხვა მონაცემები.</translation>
 <translation id="8827154289515190290">თქვენი საყვარელი ბრაუზერი უკვე iOS-ზეა</translation>
 <translation id="8831208860914609320">ყველა არააქტიურის დახურვა</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb
index fab2a7f..04e939c76 100644
--- a/ios/chrome/app/strings/resources/ios_strings_km.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">រកទិញ បកប្រែ និង​សម្គាល់​អ្វីដែលអ្នក​មើលឃើញ​ដោយប្រើ​កាមេរ៉ា​របស់អ្នក។</translation>
 <translation id="2220529011494928058">រាយការណ៍ពីបញ្ហា</translation>
 <translation id="2223461067862937305">បង្កើតកូដ QR</translation>
+<translation id="2229345671837147090">ក្រឡា​ផ្ទាំង​ពីចម្ងាយ</translation>
 <translation id="2230173723195178503">បាន​ផ្ទុក​គេហទំព័រ​</translation>
 <translation id="2236949375853147973">សកម្មភាព​របស់ខ្ញុំ</translation>
 <translation id="2240256190924001613">មាន​កម្រងព័ត៌មាន​នៃការកំណត់រចនាសម្ព័ន្ធ</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">អំពី​ទំព័រ​នេះ</translation>
 <translation id="3994422733891749358">ជ្រើសរើស​ការជូនដំណឹង​ដែលអ្នក​ចង់ទទួលបាន</translation>
 <translation id="3994522032746736727">ចូលគណនី​ជា <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">យល់ហើយ</translation>
 <translation id="3995521777587992544">របារដំណើរការនៃការផ្ទុកទំព័រ បានផ្ទុក <ph name="EMAIL" /> ។</translation>
 <translation id="3997522473364371632">ការចែករំលែកពាក្យសម្ងាត់ត្រូវបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក។</translation>
 <translation id="4002066346123236978">ចំណងជើង</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{លាក់​ក្រោយ​រយៈពេល 1 នាទី}other{លាក់​ក្រោយ​រយៈពេល {count} នាទី}}</translation>
 <translation id="4652817563047461855">ត្រូវប្រាកដថាពាក្យសម្ងាត់​របស់អ្នក​មានសុវត្ថិភាព ពិនិត្យមើល​ថាតើពាក្យ​សម្ងាត់​ទាំងនោះ​រងការលុកលុយ​ឬអត់ និង​ទទួល​ការណែនាំ​ក្នុងការ​ជួយការពារខ្លួនអ្នក​លើអ៊ីនធឺណិត។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">រក្សាទុក</translation>
+<translation id="466307903888586355">ការរក្សាទុក​ឯកសារ​ត្រូវបាន​ទប់ស្កាត់​ដោយ​ស្ថាប័ន​របស់អ្នក</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">ស្ថាប័ន​របស់អ្នក​តម្រូវឱ្យអ្នក​រុករកជាលក្ខណៈ​ឯកជន។ ក្រុមផ្ទាំង​មិនត្រូវបាន​ធ្វើ​សមកាលកម្ម​នៅក្នុង​មុខងារ​ឯកជនទេ។
 <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">ចែករំលែក​ច្បាប់ចម្លង​នៃពាក្យសម្ងាត់​របស់អ្នក</translation>
 <translation id="6642362222295953972">ប្ដូរទៅផ្ទាំង​ដែលមានស្រាប់</translation>
 <translation id="6644512095122093795">ស្នើ​ឱ្យ​រក្សាទុក​ពាក្យ​សម្ងាត់</translation>
+<translation id="664573288952458293">ក្រឡាផ្ទាំង​ធម្មតា</translation>
 <translation id="6645899968535965230">កូដ QR៖ <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL ដែលអ្នក​ចូលមើលត្រូវ​បានផ្ញើទៅ Google ដើម្បីព្យាករ​គេហទំព័រដែលអ្នក​ប្រហែលជា​ចូលមើលបន្ទាប់</translation>
 <translation id="6657585470893396449">ពាក្យសម្ងាត់</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">រកមិនឃើញ​ពាក្យសម្ងាត់​សម្រាប់គេហទំព័រ​នេះទេ</translation>
 <translation id="8407831512155324054">ពាក្យសម្ងាត់របស់អ្នកមើលទៅខ្លាំង</translation>
 <translation id="842523302461531262">កំណត់ជាលំនាំដើមនៅក្នុងការកំណត់…</translation>
+<translation id="8425826545759040372">ក្រឡា​ផ្ទាំងឯកជន</translation>
 <translation id="8428045167754449968">រដ្ឋធានី ឬ ទីក្រុង</translation>
 <translation id="8428213095426709021">ការកំណត់</translation>
 <translation id="8428634594422941299">យល់ហើយ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 8fb06a5..63d418030 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">카메라를 사용해 지금 보고 있는 항목을 쇼핑하고, 번역하고, 식별하세요.</translation>
 <translation id="2220529011494928058">문제 신고</translation>
 <translation id="2223461067862937305">QR 코드 만들기</translation>
+<translation id="2229345671837147090">원격 탭 격자</translation>
 <translation id="2230173723195178503">웹페이지 로드됨</translation>
 <translation id="2236949375853147973">내 활동</translation>
 <translation id="2240256190924001613">구성 프로필 이용 가능</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">이 페이지에 관한 정보</translation>
 <translation id="3994422733891749358">수신할 알림 선택</translation>
 <translation id="3994522032746736727"><ph name="EMAIL" />(으)로 로그인</translation>
+<translation id="3994911892367422121">확인</translation>
 <translation id="3995521777587992544">페이지 로드 진행률 표시줄입니다. <ph name="EMAIL" /> 이메일이 로드되어 있습니다.</translation>
 <translation id="3997522473364371632">관리자가 비밀번호 공유를 사용 중지했습니다.</translation>
 <translation id="4002066346123236978">제목</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{1분 후 숨기기}other{{count}분 후 숨기기}}</translation>
 <translation id="4652817563047461855">비밀번호의 안전성 및 유출 여부를 알아본 후 온라인에서 자신을 보호하는 방법에 관한 조언을 얻으세요. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">저장</translation>
+<translation id="466307903888586355">조직에서 파일 저장을 차단했습니다</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">조직에서 비공개로 탐색할 것을 요구합니다. 탭 그룹은 시크릿 모드에서 동기화되지 않습니다.
 <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">비밀번호 사본 공유</translation>
 <translation id="6642362222295953972">기존 탭으로 전환</translation>
 <translation id="6644512095122093795">비밀번호 저장 여부 확인</translation>
+<translation id="664573288952458293">일반 탭 격자</translation>
 <translation id="6645899968535965230">QR 코드: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">다음에 방문할 사이트를 예측하기 위해 내가 방문한 URL이 Google에 전송됩니다.</translation>
 <translation id="6657585470893396449">비밀번호</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">이 사이트의 비밀번호를 찾을 수 없음</translation>
 <translation id="8407831512155324054">비밀번호가 안전함</translation>
 <translation id="842523302461531262">설정에서 기본 브라우저로 지정…</translation>
+<translation id="8425826545759040372">시크릿 탭 격자</translation>
 <translation id="8428045167754449968">시/군/구</translation>
 <translation id="8428213095426709021">설정</translation>
 <translation id="8428634594422941299">확인</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lo.xtb b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
index d378668..9488024 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lo.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lo.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">ເລືອກຊື້, ແປພາສາ ແລະ ລະບຸສິ່ງທີ່ທ່ານເຫັນໂດຍໃຊ້ກ້ອງຂອງທ່ານ.</translation>
 <translation id="2220529011494928058">ລາຍ​ງານ​ບັນ​ຫາ</translation>
 <translation id="2223461067862937305">ສ້າງລະຫັດ QR</translation>
+<translation id="2229345671837147090">ຕາຕະລາງແຖບທາງໄກ</translation>
 <translation id="2230173723195178503">ໂຫຼດໜ້າເວັບແລ້ວ</translation>
 <translation id="2236949375853147973">ການເຄື່ອນໄຫວຂອງຂ້ອຍ</translation>
 <translation id="2240256190924001613">ມີໂປຣໄຟລ໌ການຕັ້ງຄ່າ</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">ກ່ຽວກັບໜ້ານີ້</translation>
 <translation id="3994422733891749358">ເລືອກການແຈ້ງເຕືອນທີ່ທ່ານຕ້ອງການຮັບ</translation>
 <translation id="3994522032746736727">ເຂົ້າສູ່ລະບົບໃນຖານະ <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">ເຂົ້າໃຈແລ້ວ</translation>
 <translation id="3995521777587992544">ແຖບສະແດງຄວາມຄືບໜ້າການໂຫຼດໜ້າ, ໂຫຼດ <ph name="EMAIL" /> ແລ້ວ.</translation>
 <translation id="3997522473364371632">ການແບ່ງປັນລະຫັດຜ່ານຖືກປິດການນຳໃຊ້ໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation>
 <translation id="4002066346123236978">ຫົວຂໍ້</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{ເຊື່ອງຫຼັງຈາກ 1 ນາທີ}other{ເຊື່ອງຫຼັງຈາກ {count} ນາທີ}}</translation>
 <translation id="4652817563047461855">ກວດສອບວ່າລະຫັດຜ່ານຂອງທ່ານປອດໄພ, ເບິ່ງວ່າລະຫັດຜ່ານຖືກລະເມີດຫຼືບໍ່ ແລະ ຮັບຄຳແນະນຳເພື່ອຊ່ວຍປົກປ້ອງຕົນເອງໃນໂລກອອນລາຍ. <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">ບັນທຶກ</translation>
+<translation id="466307903888586355">ການບັນທຶກໄຟລ໌ຖືກບລັອກໂດຍອົງກອນຂອງທ່ານ</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">ອົງກອນຂອງທ່ານກຳນົດໃຫ້ທ່ານເລືອກເບິ່ງແບບສ່ວນຕົວ. ກຸ່ມແຖບຈະບໍ່ຊິ້ງໃນໂໝດບໍ່ເປີດເຜີຍຕົວຕົນ.
 <ph name="BEGIN_LINK" />ສຶກສາເພີ່ມເຕີມ<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">ແບ່ງປັນສຳເນົາລະຫັດຜ່ານຂອງທ່ານ</translation>
 <translation id="6642362222295953972">ປ່ຽນເປັນແຖບທີ່ມີຢູ່</translation>
 <translation id="6644512095122093795">ສະເໜີບັນທຶກລະຫັດຜ່ານ</translation>
+<translation id="664573288952458293">ຕາຕະລາງແຖບປົກກະຕິ</translation>
 <translation id="6645899968535965230">ລະຫັດ QR: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL ທີ່ທ່ານເຂົ້າເບິ່ງຈະຖືກສົ່ງໄປໃຫ້ Google ເພື່ອຄາດເດົາເວັບໄຊທີ່ທ່ານອາດຈະເຂົ້າເບິ່ງເປັນລຳດັບຕໍ່ໄປ</translation>
 <translation id="6657585470893396449">ລະຫັດຜ່ານ</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">ບໍ່ເຫັນລະຫັດຜ່ານສຳລັບເວັບໄຊນີ້</translation>
 <translation id="8407831512155324054">ລະຫັດຜ່ານຂອງທ່ານຄາດເດົາໄດ້ຍາກ</translation>
 <translation id="842523302461531262">ຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນໃນການຕັ້ງຄ່າ…</translation>
+<translation id="8425826545759040372">ຕາຕະລາງແຖບບໍ່ເປີດເຜີຍຕົວຕົນ</translation>
 <translation id="8428045167754449968">ເມືອງ</translation>
 <translation id="8428213095426709021">ການ​ຕັ້ງຄ່າ</translation>
 <translation id="8428634594422941299">ເຂົ້າໃຈແລ້ວ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index e57708e..0afc224 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">Pirkite, verskite ir nustatykite, ką matote, naudodami fotoaparatą.</translation>
 <translation id="2220529011494928058">Pranešti apie problemą</translation>
 <translation id="2223461067862937305">Kurti QR kodą</translation>
+<translation id="2229345671837147090">Nuotolinių skirtukų tinklelis</translation>
 <translation id="2230173723195178503">TInklalapis įkeltas</translation>
 <translation id="2236949375853147973">Mano veikla</translation>
 <translation id="2240256190924001613">Pasiekiamas konfigūracijos profilis</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">Apie šį puslapį</translation>
 <translation id="3994422733891749358">Pasirinkite, kuriuos pranešimus norite gauti</translation>
 <translation id="3994522032746736727">Prisijungti kaip <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">SUPRATAU</translation>
 <translation id="3995521777587992544">Puslapio įkėlimo eigos juosta, įkelta <ph name="EMAIL" />.</translation>
 <translation id="3997522473364371632">Slaptažodžio bendrinimą išjungė administratorius.</translation>
 <translation id="4002066346123236978">Pavadinimas</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Slėpti po vienos minutės}one{Slėpti po {count} minutės}few{Slėpti po {count} minučių}many{Slėpti po {count} minutės}other{Slėpti po {count} minučių}}</translation>
 <translation id="4652817563047461855">Įsitikinkite, kad slaptažodžiai saugūs, sužinokite, ar jie nebuvo pažeisti, ir gaukite patarimų, kaip apsisaugoti internete. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Išsaugoti</translation>
+<translation id="466307903888586355">Failų išsaugojimą užblokavo jūsų organizacija</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Jūsų organizacija reikalauja, kad naršytumėte privačiai. Skirtukų grupės nesinchronizuojamos inkognito režimu.
 <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">Slaptažodžio kopijos bendrinimas</translation>
 <translation id="6642362222295953972">Perjungti į esamą skirtuką</translation>
 <translation id="6644512095122093795">Siūlyti išsaugoti slaptažodžius</translation>
+<translation id="664573288952458293">Įprastų skirtukų tinklelis</translation>
 <translation id="6645899968535965230">QR kodas: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL, kuriais lankotės, siunčiami „Google“, kad numatytų, kokiose svetainėse galite vėliau apsilankyti</translation>
 <translation id="6657585470893396449">Slaptažodis</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">Nerasta šios svetainės slaptažodžių</translation>
 <translation id="8407831512155324054">Jūsų slaptažodžiai atrodo sudėtingi</translation>
 <translation id="842523302461531262">Nustatyti kaip numatytąją nustatymuose…</translation>
+<translation id="8425826545759040372">Inkognito skirtukų tinklelis</translation>
 <translation id="8428045167754449968">Didm. / miest.</translation>
 <translation id="8428213095426709021">Nustatymai</translation>
 <translation id="8428634594422941299">Supratau</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 5356498..5c1077d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} ടാബ്}other{{count} ടാബുകൾ}}</translation>
 <translation id="1084365883616172403">Facebook പങ്കിടൽ പൂർത്തിയായി.</translation>
 <translation id="1085677983426914530"><ph name="FILENAME" /> തുറക്കാനായില്ല</translation>
+<translation id="1086468407802688066"><ph name="USER_EMAIL" /> എന്ന അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="HOSTED_DOMAIN" /> ആണ്, അതിന് ചില വിവരങ്ങൾ കാണാനാകും. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">നിങ്ങളുടെ അവസാനത്തെ ബാക്കപ്പ് അനുസരിച്ച് നിങ്ങളുടെ സമന്വയ ക്രമീകരണം പുനഃസ്ഥാപിക്കും. <ph name="BEGIN_LINK" />നിങ്ങൾക്ക് എന്തൊക്കെ സമന്വയിപ്പിക്കാമെന്ന് കാണുക<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314"><ph name="LANGUAGE" /> എല്ലായ്പ്പോഴും വിവര്‍ത്തനം ചെയ്യുക </translation>
 <translation id="1108938384783527433">ചരിത്രം സമന്വയിപ്പിക്കൽ</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">വിലാസ ബാറിന്റെ സ്ഥാനം തിരഞ്ഞെടുക്കുക</translation>
 <translation id="1347468774581902829">ആക്റ്റിവിറ്റി മാനേജ് ചെയ്യുക</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">മാനേജ് ചെയ്യപ്പെടുന്ന അക്കൗണ്ട്</translation>
 <translation id="1358214951266274152">നിങ്ങൾ പകർത്തിയ ലിങ്ക് സന്ദർശിക്കുക</translation>
 <translation id="1360432990279830238">സൈൻ ഔട്ട് ചെയ്‌ത് സമന്വയം ഓഫാക്കണോ?</translation>
 <translation id="1363028406613469049">ട്രാക്കുചെയ്യുക</translation>
@@ -285,6 +287,7 @@
 <translation id="2214453882118345682">ക്യാമറ ഉപയോഗിച്ച് ഷോപ്പ് ചെയ്യുക, വിവർത്തനം ചെയ്യുക, നിങ്ങൾ കാണുന്നത് തിരിച്ചറിയുക.</translation>
 <translation id="2220529011494928058">ഒരു പ്രശ്‌നം റിപ്പോർട്ട് ചെയ്യുക</translation>
 <translation id="2223461067862937305">QR കോഡ് സൃഷ്ടിക്കുക</translation>
+<translation id="2229345671837147090">റിമോട്ട് ടാബ് ഗ്രിഡ്</translation>
 <translation id="2230173723195178503">വെബ്‌പേജ് ലോഡ് ചെയ്‌തു</translation>
 <translation id="2236949375853147973">എന്റെ ആക്റ്റിവിറ്റി</translation>
 <translation id="2240256190924001613">കോൺഫിഗറേഷൻ പ്രൊഫൈൽ ലഭ്യമാണ്</translation>
@@ -651,6 +654,7 @@
 <translation id="3992684624889376114">ഈ പേജിനെക്കുറിച്ച്</translation>
 <translation id="3994422733891749358">നിങ്ങൾ സ്വീകരിക്കാൻ ആഗ്രഹിക്കുന്ന അറിയിപ്പുകൾ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="3994522032746736727"><ph name="EMAIL" /> ആയി സൈൻ ഇൻ ചെയ്യുക</translation>
+<translation id="3994911892367422121">മനസ്സിലായി</translation>
 <translation id="3995521777587992544">പേജ് ലോഡ് പ്രോഗ്രസ് ബാര്‍, <ph name="EMAIL" /> ലോഡ് ചെയ്‌തു.</translation>
 <translation id="3997522473364371632">പാസ്‌വേഡ് പങ്കിടുന്നത് നിങ്ങളുടെ അഡ്‌മിൻ പ്രവർത്തനരഹിതമാക്കി.</translation>
 <translation id="4002066346123236978">ശീർഷകം</translation>
@@ -695,6 +699,7 @@
 <translation id="4183350924949589798">കൂടുതൽ സുരക്ഷ വേണോ?</translation>
 <translation id="4184063163998877398">{count,plural, =1{ദുർബലമായ {count} പാസ്‌വേഡ്}other{ദുർബലമായ {count} പാസ്‌വേഡുകൾ}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} ഇനം ഈ ഉപകരണത്തിൽ മാത്രമേ സംരക്ഷിച്ചിട്ടുള്ളൂ. മറ്റ് ഉപകരണങ്ങളിൽ ഉപയോഗിക്കാൻ, നിങ്ങളുടെ {email} എന്ന Google Account-ൽ അത് സംരക്ഷിക്കുക.}other{{count} ഇനങ്ങൾ ഈ ഉപകരണത്തിൽ മാത്രമേ സംരക്ഷിച്ചിട്ടുള്ളൂ. മറ്റ് ഉപകരണങ്ങളിൽ ഉപയോഗിക്കുന്നതിന്, നിങ്ങളുടെ {email} എന്ന Google Account-ൽ അവ സംരക്ഷിക്കുക.}}</translation>
+<translation id="4207873326995387292">ബ്രൗസർ വിവരങ്ങൾ</translation>
 <translation id="421070604241073551">ഓണായിരിക്കുമ്പോൾ, ഡാറ്റ നിങ്ങളുടെ Google Account-ൽ സംരക്ഷിക്കും. ഓഫായിരിക്കുമ്പോൾ, ഡാറ്റ ഈ ഉപകരണത്തിൽ മാത്രമേ സംരക്ഷിക്കൂ.</translation>
 <translation id="4224534474590365556">സജീവമല്ലാത്ത 99+ ടാബുകൾ അടയ്ക്കണോ?</translation>
 <translation id="422474357428465195">നിങ്ങളുടെ സുരക്ഷിതത്വം അപകടത്തിലാക്കിയേക്കാവുന്ന തരത്തിൽ, പാസ്‌വേഡുകളുമായി ബന്ധപ്പെട്ട നിരവധി പ്രശ്‌നങ്ങൾ നിങ്ങൾക്കുണ്ട്.</translation>
@@ -762,6 +767,7 @@
 <translation id="4495516234578759322">അടുത്തത് കണ്ടെത്തുക</translation>
 <translation id="4502423230170890588">ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കം ചെയ്യുക</translation>
 <translation id="4508750114462689118">സൈൻ ഇൻ പ്രമോ അടയ്‌ക്കുക</translation>
+<translation id="4517684186578051919">ഉപകരണ വിവരം</translation>
 <translation id="4520798012560649652">അദൃശ്യ മോഡ് സംബന്ധിച്ച് കൂടുതലറിയുക</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} ബുക്ക്‌മാർക്ക്}other{{count} ബുക്ക്‌മാർക്കുകൾ}}</translation>
 <translation id="4525629404718770519">ലിങ്ക് പ്രിവ്യൂകൾ കാണിക്കുക</translation>
@@ -798,6 +804,7 @@
 <translation id="4651927776207937667">{count,plural, =1{ഒരു മിനിറ്റിന് ശേഷം മറയ്ക്കുക}other{{count} മിനിറ്റിന് ശേഷം മറയ്ക്കുക}}</translation>
 <translation id="4652817563047461855">നിങ്ങളുടെ പാസ്‌വേഡുകൾ സുരക്ഷിതമാണെന്ന് ഉറപ്പാക്കുക, അവ അപഹരിക്കപ്പെട്ടുവെന്ന് കണ്ടെത്തിയാൽ ഓൺലൈനിൽ സ്വയം പരിരക്ഷിക്കുന്നതിനുള്ള ഉപദേശം നേടുക. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">സംരക്ഷിക്കുക</translation>
+<translation id="466307903888586355">ഫയലുകൾ സംരക്ഷിക്കുന്നത് നിങ്ങളുടെ സ്ഥാപനം ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">സ്വകാര്യമായി ബ്രൗസ് ചെയ്യാൻ നിങ്ങളുടെ സ്ഥാപനം ആവശ്യപ്പെടുന്നു. അദൃശ്യ മോഡിൽ ടാബ് ഗ്രൂപ്പുകൾ സമന്വയിപ്പിച്ചിട്ടില്ല.
 <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
@@ -969,6 +976,7 @@
 <translation id="5444892875087332195">ബുക്ക്‌മാർക്കുകൾ</translation>
 <translation id="5452354193031718372">ശക്തമായ പാസ്‌വേഡ് ഉപയോഗിക്കുക:</translation>
 <translation id="5454211924362324495">നിങ്ങളുടെ പാസ്‌വേഡ് മറ്റുള്ളവർ ഉപയോഗിക്കുന്നത് നിർത്താൻ, <ph name="BEGIN_LINK" />അത് <ph name="WEBSITE" /> എന്നതിൽ മാറ്റുക<ph name="END_LINK" /></translation>
+<translation id="5454723301413569630"><ph name="USER_EMAIL" /> എന്ന അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="HOSTED_DOMAIN" /> ആണ്, അതിന് ഇനിപ്പറയുന്നവ ഉൾപ്പെടെയുള്ള ചില വിവരങ്ങൾ കാണാനാകും</translation>
 <translation id="5457082343331641453">നിങ്ങളുടെ തിരയലിലേക്ക് ചേർക്കുക</translation>
 <translation id="5457226814769348910">ഓഫ്‌ലെെൻ പതിപ്പ് തുറക്കുക</translation>
 <translation id="5478327362747197944">വെബ് പേജിലെ ഒരു തീയതിയിൽ ക്ലിക്ക് ചെയ്ത് നേരിട്ട് കലണ്ടർ ഇവന്റുകൾ സൃഷ്ടിക്കുക.</translation>
@@ -1271,6 +1279,7 @@
 <translation id="6641465290890659327">നിങ്ങളുടെ പാസ്‌വേഡിന്റെ പകർപ്പ് പങ്കിടുക</translation>
 <translation id="6642362222295953972">നിലവിലുള്ള ടാബിലേക്ക് മാറുക</translation>
 <translation id="6644512095122093795">പാസ്‌വേഡുകള്‍ സംരക്ഷിക്കുന്നതിനുള്ള നിര്‍ദ്ദേശം</translation>
+<translation id="664573288952458293">റെഗുലർ ടാബ് ഗ്രിഡ്</translation>
 <translation id="6645899968535965230">QR കോഡ്: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">നിങ്ങൾ അടുത്തതായി ഏതൊക്കെ സൈറ്റുകളായിരിക്കും സന്ദർശിക്കുകയെന്ന് പ്രവചിക്കാൻ, നിങ്ങൾ സന്ദർശിക്കുന്ന URL-കൾ Google-ലേക്ക് അയയ്ക്കുന്നു</translation>
 <translation id="6657585470893396449">പാസ്‌വേഡ്</translation>
@@ -1371,6 +1380,7 @@
 <translation id="7102005569666697658">ഡൗൺലോഡ് ചെയ്യുന്നു… <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">മെനു → ക്രമീകരണം → പേയ്മെന്റ് രീതികൾ</translation>
 <translation id="7108338896283013870">മറയ്ക്കുക</translation>
+<translation id="7128693485119315539">ബ്രൗസിംഗ് ചരിത്രവും പാസ്‌വേഡുകളും പോലെ, നിങ്ങളുടെ മാനേജ് ചെയ്യപ്പെടുന്ന അക്കൗണ്ടുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന ബ്രൗസിംഗ് ഡാറ്റ നിങ്ങളുടെ സ്ഥാപനത്തിന് കാണുകയും മാനേജ് ചെയ്യുകയും വേണ്ടി വന്നേക്കാം.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">ക്യാമറ ലഭ്യമല്ല</translation>
 <translation id="7141960840225504692">നിങ്ങളുടെ ടാബുകൾ അടച്ചു, ബ്രൗസിംഗ് ഡാറ്റ ഇല്ലാതാക്കി</translation>
@@ -1661,6 +1671,7 @@
 <translation id="8407669440184693619">ഈ സൈറ്റിനുള്ള പാസ്‍വേഡുകളൊന്നും കണ്ടെത്തിയില്ല</translation>
 <translation id="8407831512155324054">നിങ്ങളുടെ പാസ്‌വേഡുകൾ ശക്തമാണെന്ന് തോന്നുന്നു</translation>
 <translation id="842523302461531262">ക്രമീകരണത്തിൽ ഡിഫോൾട്ട് ആക്കുക…</translation>
+<translation id="8425826545759040372">അദൃശ്യ ടാബ് ഗ്രിഡ്</translation>
 <translation id="8428045167754449968">നഗരം / പട്ടണം</translation>
 <translation id="8428213095426709021">ക്രമീകരണം</translation>
 <translation id="8428634594422941299">മനസ്സിലായി</translation>
@@ -1764,6 +1775,7 @@
 <translation id="8813277370772331957">എന്നെ പിന്നീട് ഓർമ്മിപ്പിക്കുക</translation>
 <translation id="8814719628147284151">തുടരുക</translation>
 <translation id="8820817407110198400">Bookmarks</translation>
+<translation id="8822421075653507124">ഈ ഉപകരണം സുരക്ഷിതമായി ഉപയോഗിക്കാനാകുമെന്ന് ഉറപ്പാക്കാൻ, നിങ്ങളുടെ സ്ഥാപനത്തിന് ഇതിന്റെ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, ബ്രൗസർ, ക്രമീകരണം, ഉപകരണത്തിൽ എന്തെല്ലാം സോഫ്‌റ്റ്‌വെയറാണ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ളത് എന്നിവ സംബന്ധിച്ച വിവരങ്ങൾ കാണേണ്ടി വന്നേക്കാം.</translation>
 <translation id="8825562130641217944">നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകളും പാസ്‌വേഡുകളും മറ്റും നേടുക.</translation>
 <translation id="8827154289515190290">നിങ്ങൾക്ക് പ്രിയപ്പെട്ട ബ്രൗസർ ഇപ്പോൾ iOS-ൽ</translation>
 <translation id="8831208860914609320">സജീവമല്ലാത്ത എല്ലാ ടാബുകളും അടയ്ക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 73a68a7..bf086849 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">Winkel, vertaal en identificeer wat je ziet met je camera.</translation>
 <translation id="2220529011494928058">Een probleem melden</translation>
 <translation id="2223461067862937305">Een QR-code maken</translation>
+<translation id="2229345671837147090">Raster voor tabbladen op afstand</translation>
 <translation id="2230173723195178503">Webpagina geladen</translation>
 <translation id="2236949375853147973">Mijn activiteit</translation>
 <translation id="2240256190924001613">Configuratieprofiel beschikbaar</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">Over deze pagina</translation>
 <translation id="3994422733891749358">Kies welke meldingen je wilt krijgen</translation>
 <translation id="3994522032746736727">Inloggen als <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">OK</translation>
 <translation id="3995521777587992544">Voortgangsbalk voor laden van pagina, <ph name="EMAIL" /> geladen.</translation>
 <translation id="3997522473364371632">Wachtwoord delen is uitgezet door je beheerder.</translation>
 <translation id="4002066346123236978">Titel</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Verbergen na 1 minuut}other{Verbergen na {count} minuten}}</translation>
 <translation id="4652817563047461855">Zorg dat je wachtwoorden veilig zijn, ga na of ze zijn gehackt en krijg advies om je online te beschermen. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Opslaan</translation>
+<translation id="466307903888586355">Bestanden opslaan wordt geblokkeerd door je organisatie</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Je organisatie vereist dat je privé browst. Tabbladgroepen worden niet gesynchroniseerd in de incognitomodus.
 <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">Een kopie van je wachtwoord delen</translation>
 <translation id="6642362222295953972">Overschakelen naar bestaand tabblad</translation>
 <translation id="6644512095122093795">Aanbieden wachtwoorden op te slaan</translation>
+<translation id="664573288952458293">Raster voor normale tabbladen</translation>
 <translation id="6645899968535965230">QR-code: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">URL's die je bezoekt, worden naar Google gestuurd om te voorspellen naar welke sites je misschien daarna gaat</translation>
 <translation id="6657585470893396449">Wachtwoord</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">Geen wachtwoorden gevonden voor deze site</translation>
 <translation id="8407831512155324054">Je wachtwoorden lijken sterk</translation>
 <translation id="842523302461531262">Als standaard instellen in Instellingen…</translation>
+<translation id="8425826545759040372">Raster voor incognitotabbladen</translation>
 <translation id="8428045167754449968">Stad/plaats</translation>
 <translation id="8428213095426709021">Instellingen</translation>
 <translation id="8428634594422941299">OK</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index ee8536a..565c636 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -285,6 +285,7 @@
 <translation id="2214453882118345682">Handle, oversett og identifiser det du ser, med kameraet.</translation>
 <translation id="2220529011494928058">Rapporter et problem</translation>
 <translation id="2223461067862937305">Lag en QR-kode</translation>
+<translation id="2229345671837147090">Rutenett for eksterne faner</translation>
 <translation id="2230173723195178503">Nettsiden er lastet inn</translation>
 <translation id="2236949375853147973">Min aktivitet</translation>
 <translation id="2240256190924001613">En konfigurasjonsprofil er tilgjengelig</translation>
@@ -651,6 +652,7 @@
 <translation id="3992684624889376114">Om denne siden</translation>
 <translation id="3994422733891749358">Velg hvilke varsler du vil motta</translation>
 <translation id="3994522032746736727">Logg på som <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">GREIT</translation>
 <translation id="3995521777587992544">Fremdriftslinje for sideinnlasting, <ph name="EMAIL" /> er lastet inn.</translation>
 <translation id="3997522473364371632">Administratoren din har slått av passorddeling.</translation>
 <translation id="4002066346123236978">Tittel</translation>
@@ -798,6 +800,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Skjul etter 1 minutt}other{Skjul etter {count} minutter}}</translation>
 <translation id="4652817563047461855">Sørg for at passordene dine er trygge, finn ut om de har vært utsatt for sikkerhetsbrudd, og få råd om å beskytte deg på nettet. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Lagre</translation>
+<translation id="466307903888586355">Organisasjonen din blokkerer lagring av filer</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Organisasjonen din krever at du surfer privat. Fanegrupper synkroniseres ikke i inkognitomodus.
 <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
@@ -1271,6 +1274,7 @@
 <translation id="6641465290890659327">Del en kopi av passordet ditt</translation>
 <translation id="6642362222295953972">Bytt til den eksisterende fanen</translation>
 <translation id="6644512095122093795">Bli tilbudt å lagre passord</translation>
+<translation id="664573288952458293">Rutenett for vanlige faner</translation>
 <translation id="6645899968535965230">QR-kode: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">Nettadresser du besøker, sendes til Google for å forutsi hvilke nettsteder du kanskje kommer til å besøke etterpå</translation>
 <translation id="6657585470893396449">Passord</translation>
@@ -1661,6 +1665,7 @@
 <translation id="8407669440184693619">Fant ingen passord for dette nettstedet</translation>
 <translation id="8407831512155324054">Passordene dine ser sterke ut</translation>
 <translation id="842523302461531262">Angi som standard i innstillingene…</translation>
+<translation id="8425826545759040372">Rutenett for inkognitofaner</translation>
 <translation id="8428045167754449968">By/tettsted</translation>
 <translation id="8428213095426709021">Innstillinger</translation>
 <translation id="8428634594422941299">Greit</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pa.xtb b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
index a0a69048..a15d452 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pa.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} ਟੈਬ}one{{count} ਟੈਬ}other{{count} ਟੈਬਾਂ}}</translation>
 <translation id="1084365883616172403">ਫੇਸਬੁੱਕ ਪੋਸਟ ਪੂਰੀ ਕੀਤੀ।</translation>
 <translation id="1085677983426914530"><ph name="FILENAME" /> ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ</translation>
+<translation id="1086468407802688066"><ph name="USER_EMAIL" /> ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="HOSTED_DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਵੱਲੋਂ ਕੁਝ ਜਾਣਕਾਰੀ ਨੂੰ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">ਤੁਹਾਡੀਆਂ ਸਿੰਕ ਸੈਟਿੰਗਾਂ ਨੂੰ ਤੁਹਾਡੇ ਪਿਛਲੇ ਬੈਕਅੱਪ ਦੇ ਆਧਾਰ 'ਤੇ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਜਾਵੇਗਾ। <ph name="BEGIN_LINK" />ਦੇਖੋ ਕਿ ਤੁਸੀਂ ਕਿਸ ਚੀਜ਼ ਦਾ ਸਿੰਕ ਕਰ ਸਕਦੇ ਹੋ<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314"><ph name="LANGUAGE" /> ਦਾ ਹਮੇਸ਼ਾਂ ਅਨੁਵਾਦ ਕਰੋ</translation>
 <translation id="1108938384783527433">ਇਤਿਹਾਸ ਸਿੰਕ</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">ਪਤਾ ਬਾਰ ਸਥਿਤੀ ਚੁਣੋ</translation>
 <translation id="1347468774581902829">ਸਰਗਰਮੀ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਖਾਤਾ</translation>
 <translation id="1358214951266274152">ਆਪਣੇ ਕਾਪੀ ਕੀਤੇ ਲਿੰਕ 'ਤੇ ਜਾਓ</translation>
 <translation id="1360432990279830238">ਕੀ ਸਾਈਨ-ਆਊਟ ਕਰਕੇ ਸਿੰਕ ਬੰਦ ਕਰਨਾ ਹੈ?</translation>
 <translation id="1363028406613469049">ਟਰੈਕ</translation>
@@ -285,6 +287,7 @@
 <translation id="2214453882118345682">ਤੁਹਾਨੂੰ ਜਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਦਿਖਾਈ ਦੇ ਰਹੀਆਂ ਹਨ, ਉਨ੍ਹਾਂ ਨੂੰ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਖਰੀਦੋ, ਉਨ੍ਹਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰੋ ਅਤੇ ਉਨ੍ਹਾਂ ਦੀ ਪਛਾਣ ਕਰੋ।</translation>
 <translation id="2220529011494928058">ਇੱਕ ਸਮੱਸਿਆ ਦੀ ਰਿਪੋਰਟ ਕਰੋ</translation>
 <translation id="2223461067862937305">QR ਕੋਡ ਬਣਾਓ</translation>
+<translation id="2229345671837147090">ਰਿਮੋਟ ਟੈਬ ਗਰਿੱਡ</translation>
 <translation id="2230173723195178503">ਵੈੱਬਪੰਨਾ ਲੋਡ ਕੀਤਾ ਗਿਆ</translation>
 <translation id="2236949375853147973">ਮੇਰੀ ਸਰਗਰਮੀ</translation>
 <translation id="2240256190924001613">ਸੰਰੂਪਣ ਪ੍ਰੋਫਾਈਲ ਉਪਲਬਧ ਹੈ</translation>
@@ -651,6 +654,7 @@
 <translation id="3992684624889376114">ਇਸ ਪੰਨੇ ਬਾਰੇ</translation>
 <translation id="3994422733891749358">ਉਨ੍ਹਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ</translation>
 <translation id="3994522032746736727"><ph name="EMAIL" /> ਵਜੋਂ ਸਾਈਨ-ਇਨ ਕਰੋ</translation>
+<translation id="3994911892367422121">ਸਮਝ ਲਿਆ</translation>
 <translation id="3995521777587992544">ਪੰਨਾ ਲੋਡ ਪ੍ਰਗਤੀ ਬਾਰ, <ph name="EMAIL" /> ਲੋਡ ਕੀਤੀ ਗਈ।</translation>
 <translation id="3997522473364371632">ਪਾਸਵਰਡ ਸਾਂਝਾਕਰਨ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
 <translation id="4002066346123236978">ਸਿਰਲੇਖ</translation>
@@ -695,6 +699,7 @@
 <translation id="4183350924949589798">ਕੀ ਹੋਰ ਸੁਰੱਖਿਆ ਦੀ ਲੋੜ ਹੈ?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ}one{{count} ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ}other{{count} ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} ਆਈਟਮ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ ਹੈ। ਦੂਜੇ ਡੀਵਾਈਸਾਂ 'ਤੇ ਵਰਤਣ ਲਈ, ਇਸਨੂੰ ਆਪਣੇ Google ਖਾਤੇ, {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ।}one{{count} ਆਈਟਮ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ ਹੈ। ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੇ ਹੋਰ ਡੀਵਾਈਸਾਂ 'ਤੇ ਵਰਤਣ ਲਈ, ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ।}other{{count} ਆਈਟਮਾਂ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੇ ਹੋਰ ਡੀਵਾਈਸਾਂ 'ਤੇ ਵਰਤਣ ਲਈ, ਉਨ੍ਹਾਂ ਨੂੰ ਆਪਣੇ Google ਖਾਤੇ {email} ਵਿੱਚ ਰੱਖਿਅਤ ਕਰੋ।}}</translation>
+<translation id="4207873326995387292">ਬ੍ਰਾਊਜ਼ਰ ਜਾਣਕਾਰੀ</translation>
 <translation id="421070604241073551">ਚਾਲੂ ਹੋਣ 'ਤੇ, ਡਾਟਾ ਤੁਹਾਡੇ Google ਖਾਤੇ ਵਿੱਚ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਬੰਦ ਹੋਣ 'ਤੇ, ਡਾਟਾ ਸਿਰਫ਼ ਇਸ ਡੀਵਾਈਸ 'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।</translation>
 <translation id="4224534474590365556">ਕੀ 99+ ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?</translation>
 <translation id="422474357428465195">ਤੁਹਾਨੂੰ ਪਾਸਵਰਡ ਸੰਬੰਧੀ ਕਈ ਸਮੱਸਿਆਵਾਂ ਹਨ ਜੋ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਨੂੰ ਖਤਰੇ ਵਿੱਚ ਪਾ ਸਕਦੀਆਂ ਹਨ।</translation>
@@ -762,6 +767,7 @@
 <translation id="4495516234578759322">ਅਗਲਾ ਲੱਭੋ</translation>
 <translation id="4502423230170890588">ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟਾਓ</translation>
 <translation id="4508750114462689118">ਸਾਈਨ-ਇਨ ਪ੍ਰੋਮੋ ਬੰਦ ਕਰੋ</translation>
+<translation id="4517684186578051919">ਡੀਵਾਈਸ ਜਾਣਕਾਰੀ</translation>
 <translation id="4520798012560649652">ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਬਾਰੇ ਹੋਰ ਜਾਣੋ</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} ਬੁੱਕਮਾਰਕ}one{{count} ਬੁੱਕਮਾਰਕ}other{{count} ਬੁੱਕਮਾਰਕ}}</translation>
 <translation id="4525629404718770519">ਲਿੰਕ ਦੀ ਪੂਰਵ-ਝਲਕ ਦਿਖਾਓ</translation>
@@ -798,6 +804,7 @@
 <translation id="4651927776207937667">{count,plural, =1{1 ਮਿੰਟ ਬਾਅਦ ਲੁਕਾਓ}one{{count} ਮਿੰਟ ਬਾਅਦ ਲੁਕਾਓ}other{{count} ਮਿੰਟਾਂ ਬਾਅਦ ਲੁਕਾਓ}}</translation>
 <translation id="4652817563047461855">ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਹੋਣ, ਦੇਖੋ ਕਿ ਉਨ੍ਹਾਂ ਨਾਲ ਕਿਸੇ ਕਿਸਮ ਦੀ ਛੇੜਛਾੜ ਤਾਂ ਨਹੀਂ ਕੀਤੀ ਗਈ ਅਤੇ ਆਪਣੇ ਆਪ ਨੂੰ ਆਨਲਾਈਨ ਸੁਰੱਖਿਅਤ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਲਈ ਸਲਾਹ ਲਓ। <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">ਰੱਖਿਅਤ ਕਰੋ</translation>
+<translation id="466307903888586355">ਤੁਹਾਡੀ ਸੰਸਥਾ ਨੇ ਫ਼ਾਈਲਾਂ ਨੂੰ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਸੁਵਿਧਾ ਨੂੰ ਬਲਾਕ ਕਰ ਦਿੱਤਾ ਹੈ</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">ਤੁਹਾਡੀ ਸੰਸਥਾ ਲਈ ਤੁਹਾਨੂੰ ਨਿੱਜੀ ਤੌਰ 'ਤੇ ਬ੍ਰਾਊਜ਼ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਟੈਬ ਗਰੁੱਪਾਂ ਨੂੰ ਇਨਕੋਗਨਿਟੋ ਮੋਡ ਵਿੱਚ ਸਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ।
 <ph name="BEGIN_LINK" />ਹੋਰ ਜਾਣੋ<ph name="END_LINK" /></translation>
@@ -969,6 +976,7 @@
 <translation id="5444892875087332195">ਬੁੱਕਮਾਰਕ</translation>
 <translation id="5452354193031718372">ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰੋ:</translation>
 <translation id="5454211924362324495">ਦੂਜਿਆਂ ਨੂੰ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕਣ ਲਈ, ਇਸਨੂੰ <ph name="BEGIN_LINK" /><ph name="WEBSITE" /> 'ਤੇ ਬਦਲੋ<ph name="END_LINK" /></translation>
+<translation id="5454723301413569630"><ph name="USER_EMAIL" /> ਖਾਤੇ ਦਾ ਪ੍ਰਬੰਧਨ <ph name="HOSTED_DOMAIN" /> ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਵੱਲੋਂ ਕੁਝ ਜਾਣਕਾਰੀ ਨੂੰ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇਹ ਵੀ ਸ਼ਾਮਲ ਹਨ</translation>
 <translation id="5457082343331641453">ਆਪਣੀ ਖੋਜ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ</translation>
 <translation id="5457226814769348910">ਆਫ਼ਲਾਈਨ ਵਰਜਨ ਖੋਲ੍ਹੋ</translation>
 <translation id="5478327362747197944">ਕਿਸੇ ਵੈੱਬ ਪੰਨੇ 'ਤੇ ਕਿਸੇ ਤਾਰੀਖ 'ਤੇ ਕਲਿੱਕ ਕਰ ਕੇ ਸਿੱਧੇ ਕੈਲੰਡਰ ਇਵੈਂਟ ਬਣਾਓ।</translation>
@@ -1271,6 +1279,7 @@
 <translation id="6641465290890659327">ਆਪਣੇ ਪਾਸਵਰਡ ਦੀ ਇੱਕ ਕਾਪੀ ਸਾਂਝੀ ਕਰੋ</translation>
 <translation id="6642362222295953972">ਮੌਜੂਦਾ ਟੈਬ 'ਤੇ ਜਾਓ</translation>
 <translation id="6644512095122093795">ਪਾਸਵਰਡ ਰੱਖਿਅਤ ਕਰਨ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰੋ</translation>
+<translation id="664573288952458293">ਆਮ ਟੈਬ ਗਰਿੱਡ</translation>
 <translation id="6645899968535965230">QR ਕੋਡ: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">ਤੁਹਾਡੇ ਵੱਲੋਂ ਖੋਲ੍ਹੇ ਜਾਣ ਵਾਲੇ URL Google ਨੂੰ ਇਹ ਪੂਰਵ-ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ ਭੇਜੇ ਜਾਂਦੇ ਹਨ ਕਿ ਤੁਸੀਂ ਅਗਲੀਆਂ ਕਿਹੜੀਆਂ ਸਾਈਟਾਂ 'ਤੇ ਜਾਉਗੇ</translation>
 <translation id="6657585470893396449">ਪਾਸਵਰਡ</translation>
@@ -1371,6 +1380,7 @@
 <translation id="7102005569666697658">ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ… <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">ਮੀਨੂ → ਸੈਟਿੰਗਾਂ → ਭੁਗਤਾਨ ਵਿਧੀਆਂ</translation>
 <translation id="7108338896283013870">ਲੁਕਾਓ</translation>
+<translation id="7128693485119315539">ਤੁਹਾਡੀ ਸੰਸਥਾ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਬੰਧਿਤ ਕੀਤੇ ਖਾਤੇ ਨਾਲ ਸੰਬੰਧਿਤ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟੇ ਨੂੰ ਦੇਖਣ ਅਤੇ ਉਸਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਿੰਗ ਇਤਿਹਾਸ ਅਤੇ ਪਾਸਵਰਡ।</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">ਕੈਮਰਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ</translation>
 <translation id="7141960840225504692">ਤੁਹਾਡੀਆਂ ਟੈਬਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ ਅਤੇ ਬ੍ਰਾਊਜ਼ਿੰਗ ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ</translation>
@@ -1661,6 +1671,7 @@
 <translation id="8407669440184693619">ਇਸ ਸਾਈਟ ਲਈ ਕੋਈ ਪਾਸਵਰਡ ਨਹੀਂ ਲੱਭਿਆ</translation>
 <translation id="8407831512155324054">ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਮਜ਼ਬੂਤ ਲੱਗਦਾ ਹੈ</translation>
 <translation id="842523302461531262">ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਇਸਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਬਣਾਓ…</translation>
+<translation id="8425826545759040372">ਇਨਕੋਗਨਿਟੋ ਟੈਬ ਗਰਿੱਡ</translation>
 <translation id="8428045167754449968">ਸ਼ਹਿਰ / ਕਸਬਾ</translation>
 <translation id="8428213095426709021">ਸੈਟਿੰਗਾਂ</translation>
 <translation id="8428634594422941299">ਸਮਝ ਲਿਆ</translation>
@@ -1764,6 +1775,7 @@
 <translation id="8813277370772331957">ਮੈਨੂੰ ਬਾਅਦ ਵਿੱਚ ਯਾਦ ਕਰਵਾਓ</translation>
 <translation id="8814719628147284151">ਜਾਰੀ ਰੱਖੋ</translation>
 <translation id="8820817407110198400">Bookmarks</translation>
+<translation id="8822421075653507124">ਇਹ ਪੱਕਾ ਕਰਨ ਲਈ ਕਿ ਇਸ ਡੀਵਾਈਸ ਦੀ ਸੁਰੱਖਿਅਤ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਤੁਹਾਡੀ ਸੰਸਥਾ ਨੂੰ ਇਸਦੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ, ਬ੍ਰਾਊਜ਼ਰ, ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਖਣ ਦੇ ਨਾਲ-ਨਾਲ ਇਹ ਵੀ ਦੇਖਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਕਿ ਡੀਵਾਈਸ 'ਤੇ ਕਿਹੜਾ ਸਾਫ਼ਟਵੇਅਰ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ ਹੈ।</translation>
 <translation id="8825562130641217944">ਆਪਣੇ ਬੁੱਕਮਾਰਕ, ਪਾਸਵਰਡ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਪ੍ਰਾਪਤ ਕਰੋ।</translation>
 <translation id="8827154289515190290">iOS 'ਤੇ ਤੁਹਾਡਾ ਮਨਪਸੰਦ ਬ੍ਰਾਊਜ਼ਰ</translation>
 <translation id="8831208860914609320">ਸਾਰੀਆਂ ਅਕਿਰਿਆਸ਼ੀਲ ਟੈਬਾਂ ਨੂੰ ਬੰਦ ਕਰੋ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
index f3ace39..a714e15 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr-Latn.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} kartica}one{{count} kartica}few{{count} kartice}other{{count} kartica}}</translation>
 <translation id="1084365883616172403">Facebook post je dovršen.</translation>
 <translation id="1085677983426914530">Otvaranje fajla <ph name="FILENAME" /> nije uspelo</translation>
+<translation id="1086468407802688066">Nalogom <ph name="USER_EMAIL" /> upravlja <ph name="HOSTED_DOMAIN" />, koji može da pregleda određene informacije. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">Podešavanja sinhronizacije će se vratiti na osnovu poslednje rezervne kopije. <ph name="BEGIN_LINK" />Pogledajte šta možete da sinhronizujete<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314">Uvek prevodi <ph name="LANGUAGE" /></translation>
 <translation id="1108938384783527433">Sinhronizacija istorije</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">Odaberite položaj trake za adresu</translation>
 <translation id="1347468774581902829">Upravljajte aktivnostima</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">Upravljani nalog</translation>
 <translation id="1358214951266274152">Posetite link koji ste kopirali</translation>
 <translation id="1360432990279830238">Odjavljujete se i isključujete sinhroniz?</translation>
 <translation id="1363028406613469049">Pesma</translation>
@@ -697,6 +699,7 @@
 <translation id="4183350924949589798">Više bezbednosti?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} slaba lozinka}one{{count} slaba lozinka}few{{count} slabe lozinke}other{{count} slabih lozinki}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} stavka je sačuvana samo na ovom uređaju. Da biste je koristili na drugim uređajima, sačuvajte je na Google nalogu, {email}.}one{{count} stavka je sačuvana samo na ovom uređaju. Da biste ih koristili na drugim uređajima, sačuvajte ih na Google nalogu, {email}.}few{{count} stavke su sačuvane samo na ovom uređaju. Da biste ih koristili na drugim uređajima, sačuvajte ih na Google nalogu, {email}.}other{{count} stavki je sačuvano samo na ovom uređaju. Da biste ih koristili na drugim uređajima, sačuvajte ih na Google nalogu, {email}.}}</translation>
+<translation id="4207873326995387292">Informacije o pregledaču</translation>
 <translation id="421070604241073551">Kada je uključeno, podaci se čuvaju na Google nalogu. Kada je isključeno, podaci se čuvaju samo na ovom uređaju.</translation>
 <translation id="4224534474590365556">Želite da zatvorite više od 99 neaktivnih kartica?</translation>
 <translation id="422474357428465195">Imate nekoliko problema sa lozinkama koji mogu da ugroze bezbednost.</translation>
@@ -764,6 +767,7 @@
 <translation id="4495516234578759322">Pronalaženje sledeće stavke</translation>
 <translation id="4502423230170890588">Ukloni sa ovog uređaja</translation>
 <translation id="4508750114462689118">Zatvori promociju za prijavljivanje</translation>
+<translation id="4517684186578051919">Informacije o uređaju</translation>
 <translation id="4520798012560649652">Saznajte više o režimu bez arhiviranja</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} obeleživač}one{{count} obeleživač}few{{count} obeleživača}other{{count} obeleživača}}</translation>
 <translation id="4525629404718770519">Prikaži preglede linkova</translation>
@@ -972,6 +976,7 @@
 <translation id="5444892875087332195">Obeleživači</translation>
 <translation id="5452354193031718372">Koristite jaku lozinku:</translation>
 <translation id="5454211924362324495">Da biste onemogućili drugima da koriste vašu lozinku, <ph name="BEGIN_LINK" />promenite je na <ph name="WEBSITE" /><ph name="END_LINK" /></translation>
+<translation id="5454723301413569630">Nalogom <ph name="USER_EMAIL" /> upravlja <ph name="HOSTED_DOMAIN" />, koji može da pregleda određene informacije, uključujući</translation>
 <translation id="5457082343331641453">Dodajte u pretragu</translation>
 <translation id="5457226814769348910">Otvori oflajn verziju</translation>
 <translation id="5478327362747197944">Pravite događaje u kalendaru direktno klikom na datum na veb-stranici.</translation>
@@ -1375,6 +1380,7 @@
 <translation id="7102005569666697658"><ph name="FILE_SIZE" /> se preuzima…</translation>
 <translation id="7104701424653979232">Meni → Podešavanja → Načini plaćanja</translation>
 <translation id="7108338896283013870">Sakrij</translation>
+<translation id="7128693485119315539">Organizacija može da ima potrebu da vidi podatke pregledanja povezane sa vašim upravljanim nalogom, poput istorije pregledanja i lozinki, kao i da upravlja njima.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">Kamera je nedostupna</translation>
 <translation id="7141960840225504692">Kartice će biti zatvorene i podaci pregledanja će biti izbrisani</translation>
@@ -1769,6 +1775,7 @@
 <translation id="8813277370772331957">Podseti me kasnije</translation>
 <translation id="8814719628147284151">Nastavi</translation>
 <translation id="8820817407110198400">Obeleživači</translation>
+<translation id="8822421075653507124">Da bi se uverila da ovaj uređaj može bezbedno da se koristi, organizacija će možda morati da vidi informacije o operativnom sistemu, pregledaču i podešavanjima, kao i o softveru koji je instaliran na uređaju.</translation>
 <translation id="8825562130641217944">Pristupajte obeleživačima, lozinkama i drugom sadržaju.</translation>
 <translation id="8827154289515190290">Pregledač koji volite sada i na iOS-u</translation>
 <translation id="8831208860914609320">Zatvori sve neaktivne</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index cba375c..d83ec9f1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} картица}one{{count} картица}few{{count} картице}other{{count} картица}}</translation>
 <translation id="1084365883616172403">Facebook пост је довршен.</translation>
 <translation id="1085677983426914530">Отварање фајла <ph name="FILENAME" /> није успело</translation>
+<translation id="1086468407802688066">Налогом <ph name="USER_EMAIL" /> управља <ph name="HOSTED_DOMAIN" />, који може да прегледа одређене информације. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">Подешавања синхронизације ће се вратити на основу последње резервне копије. <ph name="BEGIN_LINK" />Погледајте шта можете да синхронизујете<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314">Увек преводи <ph name="LANGUAGE" /></translation>
 <translation id="1108938384783527433">Синхронизација историје</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">Одаберите положај траке за адресу</translation>
 <translation id="1347468774581902829">Управљајте активностима</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">Управљани налог</translation>
 <translation id="1358214951266274152">Посетите линк који сте копирали</translation>
 <translation id="1360432990279830238">Одјављујете се и искључујете синхрониз?</translation>
 <translation id="1363028406613469049">Песма</translation>
@@ -697,6 +699,7 @@
 <translation id="4183350924949589798">Више безбедности?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} слаба лозинка}one{{count} слаба лозинка}few{{count} слабе лозинке}other{{count} слабих лозинки}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} ставка је сачувана само на овом уређају. Да бисте је користили на другим уређајима, сачувајте је на Google налогу, {email}.}one{{count} ставка је сачувана само на овом уређају. Да бисте их користили на другим уређајима, сачувајте их на Google налогу, {email}.}few{{count} ставке су сачуване само на овом уређају. Да бисте их користили на другим уређајима, сачувајте их на Google налогу, {email}.}other{{count} ставки је сачувано само на овом уређају. Да бисте их користили на другим уређајима, сачувајте их на Google налогу, {email}.}}</translation>
+<translation id="4207873326995387292">Информације о прегледачу</translation>
 <translation id="421070604241073551">Када је укључено, подаци се чувају на Google налогу. Када је искључено, подаци се чувају само на овом уређају.</translation>
 <translation id="4224534474590365556">Желите да затворите више од 99 неактивних картица?</translation>
 <translation id="422474357428465195">Имате неколико проблема са лозинкама који могу да угрозе безбедност.</translation>
@@ -764,6 +767,7 @@
 <translation id="4495516234578759322">Проналажење следеће ставке</translation>
 <translation id="4502423230170890588">Уклони са овог уређаја</translation>
 <translation id="4508750114462689118">Затвори промоцију за пријављивање</translation>
+<translation id="4517684186578051919">Информације о уређају</translation>
 <translation id="4520798012560649652">Сазнајте више о режиму без архивирања</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} обележивач}one{{count} обележивач}few{{count} обележивача}other{{count} обележивача}}</translation>
 <translation id="4525629404718770519">Прикажи прегледе линкова</translation>
@@ -972,6 +976,7 @@
 <translation id="5444892875087332195">Обележивачи</translation>
 <translation id="5452354193031718372">Користите јаку лозинку:</translation>
 <translation id="5454211924362324495">Да бисте онемогућили другима да користе вашу лозинку, <ph name="BEGIN_LINK" />промените је на <ph name="WEBSITE" /><ph name="END_LINK" /></translation>
+<translation id="5454723301413569630">Налогом <ph name="USER_EMAIL" /> управља <ph name="HOSTED_DOMAIN" />, који може да прегледа одређене информације, укључујући</translation>
 <translation id="5457082343331641453">Додајте у претрагу</translation>
 <translation id="5457226814769348910">Отвори офлајн верзију</translation>
 <translation id="5478327362747197944">Правите догађаје у календару директно кликом на датум на веб-страници.</translation>
@@ -1375,6 +1380,7 @@
 <translation id="7102005569666697658"><ph name="FILE_SIZE" /> се преузима…</translation>
 <translation id="7104701424653979232">Мени → Подешавања → Начини плаћања</translation>
 <translation id="7108338896283013870">Сакриј</translation>
+<translation id="7128693485119315539">Организација може да има потребу да види податке прегледања повезане са вашим управљаним налогом, попут историје прегледања и лозинки, као и да управља њима.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">Камера је недоступна</translation>
 <translation id="7141960840225504692">Картице ће бити затворене и подаци прегледања ће бити избрисани</translation>
@@ -1769,6 +1775,7 @@
 <translation id="8813277370772331957">Подсети ме касније</translation>
 <translation id="8814719628147284151">Настави</translation>
 <translation id="8820817407110198400">Обележивачи</translation>
+<translation id="8822421075653507124">Да би се уверила да овај уређај може безбедно да се користи, организација ће можда морати да види информације о оперативном систему, прегледачу и подешавањима, као и о софтверу који је инсталиран на уређају.</translation>
 <translation id="8825562130641217944">Приступајте обележивачима, лозинкама и другом садржају.</translation>
 <translation id="8827154289515190290">Прегледач који волите сада и на iOS-у</translation>
 <translation id="8831208860914609320">Затвори све неактивне</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 0a00890..f79f1c8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} flik}other{{count} flikar}}</translation>
 <translation id="1084365883616172403">Inlägg på Facebook klart.</translation>
 <translation id="1085677983426914530">Det gick inte att öppna <ph name="FILENAME" />.</translation>
+<translation id="1086468407802688066">Kontot <ph name="USER_EMAIL" /> hanteras av <ph name="HOSTED_DOMAIN" />, som kan se viss information. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">Synkroniseringsinställningarna återställs utifrån den senaste säkerhetskopian. <ph name="BEGIN_LINK" />Se vad du kan synkronisera<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314">Översätt alltid <ph name="LANGUAGE" /></translation>
 <translation id="1108938384783527433">Synkronisera historiken</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">Välj position för adressfältet</translation>
 <translation id="1347468774581902829">Hantera aktivitet</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">Hanterat konto</translation>
 <translation id="1358214951266274152">Besök den kopierade länken</translation>
 <translation id="1360432990279830238">Logga ut och inaktivera synkronisering?</translation>
 <translation id="1363028406613469049">Spår</translation>
@@ -285,6 +287,7 @@
 <translation id="2214453882118345682">Köp, översätt och identifiera det du ser med kameran.</translation>
 <translation id="2220529011494928058">Rapportera ett problem</translation>
 <translation id="2223461067862937305">Skapa en QR-kod</translation>
+<translation id="2229345671837147090">Rutnät med fjärrflikar</translation>
 <translation id="2230173723195178503">Webbsidan har lästs in</translation>
 <translation id="2236949375853147973">Min aktivitet</translation>
 <translation id="2240256190924001613">Tillgänglig konfigurationsprofil</translation>
@@ -651,6 +654,7 @@
 <translation id="3992684624889376114">Om den här sidan</translation>
 <translation id="3994422733891749358">Välj vilka aviseringar du vill ta emot</translation>
 <translation id="3994522032746736727">Logga in som <ph name="EMAIL" /></translation>
+<translation id="3994911892367422121">OK</translation>
 <translation id="3995521777587992544">Förloppsindikator för inläsning av sidor, <ph name="EMAIL" /> har lästs in.</translation>
 <translation id="3997522473364371632">Lösenordsdelning har inaktiverats av administratören.</translation>
 <translation id="4002066346123236978">Titel</translation>
@@ -695,6 +699,7 @@
 <translation id="4183350924949589798">Vill du ha bättre säkerhet?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} svagt lösenord}other{{count} svaga lösenord}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{{count} objekt sparas endast på den här enheten. Om du vill använda det på dina andra enheter sparar du det i Google-kontot {email}.}other{{count} objekt sparas endast på den här enheten. Om du vill använda dem på dina andra enheter kan du spara dem i Google-kontot {email}.}}</translation>
+<translation id="4207873326995387292">Webbläsarinformation</translation>
 <translation id="421070604241073551">När detta är aktiverat sparas data i Google-kontot. När inställningen är inaktiverad sparas data endast på den här enheten.</translation>
 <translation id="4224534474590365556">Vill du stänga över 99 inaktiva flikar?</translation>
 <translation id="422474357428465195">Du har flera problem med lösenord som kan innebära en säkerhetsrisk.</translation>
@@ -762,6 +767,7 @@
 <translation id="4495516234578759322">Sök nästa</translation>
 <translation id="4502423230170890588">Ta bort från den här enheten</translation>
 <translation id="4508750114462689118">Stäng inloggningskampanj</translation>
+<translation id="4517684186578051919">Enhetsinformation</translation>
 <translation id="4520798012560649652">Läs mer om inkognitoläget</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} bokmärke}other{{count} bokmärken}}</translation>
 <translation id="4525629404718770519">Visa förhandsgranskning av länkar</translation>
@@ -798,6 +804,7 @@
 <translation id="4651927776207937667">{count,plural, =1{Dölj efter 1 minut}other{Dölj efter {count} minuter}}</translation>
 <translation id="4652817563047461855">Se till att dina lösenord är säkra, ta reda på om de har utsatts för intrång och få råd om hur du skyddar dig online. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="4658335131052370646">Sparad</translation>
+<translation id="466307903888586355">Att spara filer blockeras av organisationen</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="4669618761237477717">Organisationen kräver att du surfar privat. Flikgrupper synkroniseras inte i inkognitoläget.
 <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
@@ -969,6 +976,7 @@
 <translation id="5444892875087332195">Bokmärken</translation>
 <translation id="5452354193031718372">Använd ett starkt lösenord:</translation>
 <translation id="5454211924362324495">Hindra andra från att använda ditt lösenord genom att <ph name="BEGIN_LINK" />ändra det på <ph name="WEBSITE" /><ph name="END_LINK" /></translation>
+<translation id="5454723301413569630">Kontot <ph name="USER_EMAIL" /> hanteras av <ph name="HOSTED_DOMAIN" />, som kan se viss information, bland annat:</translation>
 <translation id="5457082343331641453">Lägg till i sökningen</translation>
 <translation id="5457226814769348910">Öppna offlineversion</translation>
 <translation id="5478327362747197944">Skapa kalenderhändelser direkt genom att klicka på ett datum på en webbsida.</translation>
@@ -1271,6 +1279,7 @@
 <translation id="6641465290890659327">Dela en kopia av ditt lösenord</translation>
 <translation id="6642362222295953972">Byt till befintlig flik</translation>
 <translation id="6644512095122093795">Erbjud att spara lösenord</translation>
+<translation id="664573288952458293">Rutnät med vanliga flikar</translation>
 <translation id="6645899968535965230">QR-kod: <ph name="PAGE_TITLE" /></translation>
 <translation id="6647441008198474441">Webbadresser som du besöker skickas till Google för att förutse vilka webbplatser du kanske vill besöka härnäst</translation>
 <translation id="6657585470893396449">Lösenord</translation>
@@ -1371,6 +1380,7 @@
 <translation id="7102005569666697658">Laddar ned … <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">Meny → Inställningar → Betalningsmetod</translation>
 <translation id="7108338896283013870">Dölj</translation>
+<translation id="7128693485119315539">Organisationen behöver kanske se och hantera webbinformation som är kopplad till ditt hanterade konto, till exempel webbhistorik och lösenord.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">Kameran är inte tillgänglig</translation>
 <translation id="7141960840225504692">Flikarna stängs och webbinformationen rensas</translation>
@@ -1661,6 +1671,7 @@
 <translation id="8407669440184693619">Inga lösenord hittades för webbplatsen</translation>
 <translation id="8407831512155324054">Lösenorden ser starka ut</translation>
 <translation id="842523302461531262">Använd som standard i Inställningar …</translation>
+<translation id="8425826545759040372">Rutnät med inkognitoflikar</translation>
 <translation id="8428045167754449968">Ort</translation>
 <translation id="8428213095426709021">Inställningar</translation>
 <translation id="8428634594422941299">Jag förstår</translation>
@@ -1764,6 +1775,7 @@
 <translation id="8813277370772331957">Påminn mig senare</translation>
 <translation id="8814719628147284151">Fortsätt</translation>
 <translation id="8820817407110198400">Bokmärken</translation>
+<translation id="8822421075653507124">Organisationen behöver kanske se information om operativsystem, webbläsare och inställningar samt vilken mjukvara som är installerad på enheten för att säkerställa att enheten kan användas på ett säkert sätt.</translation>
 <translation id="8825562130641217944">Få dina bokmärken, lösenord och mer.</translation>
 <translation id="8827154289515190290">Din favoritwebbläsare finns nu på iOS</translation>
 <translation id="8831208860914609320">Stäng alla inaktiva</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 4db73cea..e4673c56 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} ట్యాబ్}other{{count} ట్యాబ్‌లు}}</translation>
 <translation id="1084365883616172403">Facebook పోస్ట్ పూర్తయింది.</translation>
 <translation id="1085677983426914530"><ph name="FILENAME" />‌ను తెరవడం సాధ్యపడలేదు</translation>
+<translation id="1086468407802688066"><ph name="USER_EMAIL" /> ఖాతా <ph name="HOSTED_DOMAIN" /> ద్వారా మేనేజ్ చేయబడుతుంది, ఇది కొంత సమాచారాన్ని చూడగలదు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">మీ చివరి బ్యాకప్ ఆధారంగా మీ సింక్ సెట్టింగ్‌లు రీస్టోర్ చేయబడతాయి. <ph name="BEGIN_LINK" />మీరు వేటిని సింక్ చేయగలరో చూడండి<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314"><ph name="LANGUAGE" />‌ను ఎల్లప్పుడూ అనువదించండి</translation>
 <translation id="1108938384783527433">హిస్టరీ సింక్</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">అడ్రస్ బార్ పొజిషన్‌ను ఎంచుకోండి</translation>
 <translation id="1347468774581902829">యాక్టివిటీని మేనేజ్ చేయండి</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">మేనేజ్ చేయబడే ఖాతా</translation>
 <translation id="1358214951266274152">మీరు కాపీ చేసిన లింక్‌ను సందర్శించండి</translation>
 <translation id="1360432990279830238">సైన్ అవుట్ చేసి, సింక్‌ను ఆఫ్ చేయలా?</translation>
 <translation id="1363028406613469049">ట్రాక్ చేయండి</translation>
@@ -695,6 +697,7 @@
 <translation id="4183350924949589798">మరింత సెక్యూరిటీ కావాలా?</translation>
 <translation id="4184063163998877398">{count,plural, =1{{count} బలహీనమైన పాస్‌వర్డ్}other{{count} బలహీనమైన పాస్‌వర్డ్‌లు}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{ఈ పరికరంలో {count} ఐటెమ్ మాత్రమే సేవ్ చేయబడుతుంది. దీన్ని మీ ఇతర పరికరాలలో ఉపయోగించడానికి, మీ Google ఖాతా, {email}లో దీన్ని సేవ్ చేయండి.}other{ఈ పరికరంలో {count} ఐటెమ్‌లు మాత్రమే సేవ్ చేయబడతాయి. వాటిని మీ ఇతర పరికరాలలో ఉపయోగించడానికి, వాటిని మీ Google ఖాతా, {email}‌లో సేవ్ చేయండి.}}</translation>
+<translation id="4207873326995387292">బ్రౌజర్ సమాచారం</translation>
 <translation id="421070604241073551">ఆన్‌లో ఉన్నప్పుడు, మీ Google ఖాతాలో డేటా సేవ్ చేయబడుతుంది. ఆఫ్‌లో ఉన్నప్పుడు, డేటా ఈ పరికరంలో మాత్రమే సేవ్ చేయబడుతుంది.</translation>
 <translation id="4224534474590365556">99+ ఇన్‌యాక్టివ్ ట్యాబ్‌లను మూసివేయాలా?</translation>
 <translation id="422474357428465195">మీ సెక్యూరిటీని ప్రమాదంలో ఉంచే అనేక పాస్‌వర్డ్ సమస్యలు మీకు ఉన్నాయి.</translation>
@@ -762,6 +765,7 @@
 <translation id="4495516234578759322">తరువాతది కనుగొనండి</translation>
 <translation id="4502423230170890588">ఈ పరికరం నుండి తీసివేయండి</translation>
 <translation id="4508750114462689118">సైన్ ఇన్ ప్రోమోను మూసివేయండి</translation>
+<translation id="4517684186578051919">పరికర సమాచారం</translation>
 <translation id="4520798012560649652">అజ్ఞాత మోడ్ గురించి మరింత తెలుసుకోండి</translation>
 <translation id="452503091941773389">{count,plural, =1{{count} బుక్‌మార్క్}other{{count} బుక్‌మార్క్‌లు}}</translation>
 <translation id="4525629404718770519">లింక్ ప్రివ్యూలను చూడండి</translation>
@@ -969,6 +973,7 @@
 <translation id="5444892875087332195">బుక్‌మార్క్‌లు</translation>
 <translation id="5452354193031718372">శక్తివంతమైన పాస్‌వర్డ్‌ను ఉపయోగించండి:</translation>
 <translation id="5454211924362324495">ఇతరులు మీ పాస్‌వర్డ్‌ను ఉపయోగించకుండా ఆపడానికి, దాన్ని <ph name="BEGIN_LINK" /><ph name="WEBSITE" /><ph name="END_LINK" />‌లో మార్చండి</translation>
+<translation id="5454723301413569630"><ph name="USER_EMAIL" /> ఖాతా <ph name="HOSTED_DOMAIN" /> ద్వారా మేనేజ్ చేయబడుతుంది, ఇది కింద పేర్కొన్న అంశాలతో పాటు కొంత సమాచారాన్ని చూడగలదు</translation>
 <translation id="5457082343331641453">మీ సెర్చ్‌కు జోడించండి</translation>
 <translation id="5457226814769348910">ఆఫ్‌లైన్ వెర్షన్‌ను తెరవండి</translation>
 <translation id="5478327362747197944">వెబ్ పేజీలోని తేదీని క్లిక్ చేయడం ద్వారా నేరుగా క్యాలెండర్ ఈవెంట్‌లను క్రియేట్ చేయండి.</translation>
@@ -1371,6 +1376,7 @@
 <translation id="7102005569666697658">డౌన్‌లోడ్ చేస్తోంది… <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">మెనూ → సెట్టింగ్‌లు → పేమెంట్ ఆప్షన్‌లు</translation>
 <translation id="7108338896283013870">దాచిపెట్టు</translation>
+<translation id="7128693485119315539">మీ బ్రౌజింగ్ హిస్టరీ, పాస్‌వర్డ్‌ల వంటి మీ మేనేజ్ చేయబడే ఖాతాతో ముడిపడి ఉన్న బ్రౌజింగ్ డేటాను మీ సంస్థ చూడవలసి రావచ్చు, మేనేజ్ చేయవలసి రావచ్చు.</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">కెమెరా అందుబాటులో లేదు</translation>
 <translation id="7141960840225504692">మీ ట్యాబ్‌లు మూసివేయబడతాయి, ఇంకా బ్రౌజింగ్ డేటా తొలగించబడుతుంది</translation>
@@ -1764,6 +1770,7 @@
 <translation id="8813277370772331957">నాకు తర్వాత గుర్తు చేయి</translation>
 <translation id="8814719628147284151">కొనసాగించండి</translation>
 <translation id="8820817407110198400">బుక్‌మార్క్‌లు</translation>
+<translation id="8822421075653507124">ఈ పరికరాన్ని సురక్షితంగా వినియోగించవచ్చని నిర్ధారించుకోవడానికి, దాని ఆపరేటింగ్ సిస్టమ్, బ్రౌజర్, సెట్టింగ్‌ల గురించిన సమాచారాన్ని, పరికరంలో ఏ సాఫ్ట్‌వేర్ ఇన్‌స్టాల్ చేసి ఉంది అనే వాటిని మీ సంస్థ తెలుసుకోవాల్సి రావచ్చు.</translation>
 <translation id="8825562130641217944">మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు, అలాగే మరిన్నింటిని పొందండి.</translation>
 <translation id="8827154289515190290">మీరు ఇష్టపడే బ్రౌజర్ ఇప్పుడు iOSలో అందుబాటులో ఉంది</translation>
 <translation id="8831208860914609320">ఇన్‌యాక్టివ్ ట్యాబ్‌లన్నింటినీ మూసివేయండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index 8c88320..fab44f5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -25,6 +25,7 @@
 <translation id="1081932398873105675">{count,plural, =1{{count} แท็บ}other{{count} แท็บ}}</translation>
 <translation id="1084365883616172403">โพสต์ใน Facebook แล้ว</translation>
 <translation id="1085677983426914530">เปิด <ph name="FILENAME" /> ไม่ได้</translation>
+<translation id="1086468407802688066">บัญชี <ph name="USER_EMAIL" /> จัดการโดย <ph name="HOSTED_DOMAIN" /> ซึ่งสามารถดูข้อมูลบางอย่างได้ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
 <translation id="1096992026380844478">ระบบจะกู้คืนการตั้งค่าการซิงค์ตามการสำรองข้อมูลครั้งล่าสุด <ph name="BEGIN_LINK" />ดูสิ่งที่คุณซิงค์ได้<ph name="END_LINK" /></translation>
 <translation id="1103523840287552314">แปลภาษา<ph name="LANGUAGE" />ทุกครั้ง</translation>
 <translation id="1108938384783527433">ซิงค์ประวัติการเข้าชม</translation>
@@ -83,6 +84,7 @@
 <translation id="1335767868357998043">เลือกตำแหน่งของแถบที่อยู่</translation>
 <translation id="1347468774581902829">จัดการกิจกรรม</translation>
 <translation id="1348596747084433075">https://www.amazon.com/Wife-Gifts/s?k=for+Wife+Gifts</translation>
+<translation id="1358106883354237005">บัญชีที่มีการจัดการ</translation>
 <translation id="1358214951266274152">เข้าชมลิงก์ที่คุณคัดลอก</translation>
 <translation id="1360432990279830238">ออกจากระบบและปิดการซิงค์ไหม</translation>
 <translation id="1363028406613469049">ติดตาม</translation>
@@ -695,6 +697,7 @@
 <translation id="4183350924949589798">หากต้องการความปลอดภัยมากขึ้น</translation>
 <translation id="4184063163998877398">{count,plural, =1{มีรหัสผ่านที่ไม่รัดกุม {count} รายการ}other{มีรหัสผ่านที่ไม่รัดกุม {count} รายการ}}</translation>
 <translation id="4197456013861852807">{count,plural, =1{ข้อมูล {count} รายการจะบันทึกไว้ในอุปกรณ์นี้เท่านั้น หากต้องการใช้งานในอุปกรณ์อื่น ให้บันทึกไว้ในบัญชี Google {email}}other{ข้อมูล {count} รายการจะบันทึกไว้ในอุปกรณ์นี้เท่านั้น หากต้องการใช้งานในอุปกรณ์อื่น ให้บันทึกไว้ในบัญชี Google {email}}}</translation>
+<translation id="4207873326995387292">ข้อมูลเบราว์เซอร์</translation>
 <translation id="421070604241073551">เมื่อเปิดไว้ ระบบจะบันทึกข้อมูลในบัญชี Google ของคุณ เมื่อปิดไว้ ระบบจะบันทึกข้อมูลในอุปกรณ์เครื่องนี้เท่านั้น</translation>
 <translation id="4224534474590365556">ปิดแท็บที่ไม่ได้ใช้งานจำนวนกว่า 99 แท็บใช่ไหม</translation>
 <translation id="422474357428465195">คุณมีปัญหารหัสผ่านหลายรายการที่อาจทําให้การรักษาความปลอดภัยตกอยู่ในความเสี่ยง</translation>
@@ -762,6 +765,7 @@
 <translation id="4495516234578759322">ค้นหาถัดไป</translation>
 <translation id="4502423230170890588">นำออกจากอุปกรณ์นี้</translation>
 <translation id="4508750114462689118">ปิดโปรโมชันการลงชื่อเข้าใช้</translation>
+<translation id="4517684186578051919">ข้อมูลอุปกรณ์</translation>
 <translation id="4520798012560649652">ดูข้อมูลเพิ่มเติมเกี่ยวกับโหมดไม่ระบุตัวตน</translation>
 <translation id="452503091941773389">{count,plural, =1{บุ๊กมาร์ก {count} รายการ}other{บุ๊กมาร์ก {count} รายการ}}</translation>
 <translation id="4525629404718770519">แสดงตัวอย่างลิงก์</translation>
@@ -969,6 +973,7 @@
 <translation id="5444892875087332195">บุ๊กมาร์ก</translation>
 <translation id="5452354193031718372">ใช้รหัสผ่านที่รัดกุม</translation>
 <translation id="5454211924362324495">หากไม่ต้องการให้ผู้อื่นใช้รหัสผ่านของคุณ ให้<ph name="BEGIN_LINK" />เปลี่ยนรหัสผ่านใน <ph name="WEBSITE" /><ph name="END_LINK" /></translation>
+<translation id="5454723301413569630">บัญชี <ph name="USER_EMAIL" /> จัดการโดย <ph name="HOSTED_DOMAIN" /> ซึ่งสามารถดูข้อมูลบางอย่างได้ รวมถึง</translation>
 <translation id="5457082343331641453">เพิ่มไปยังการค้นหาของคุณ</translation>
 <translation id="5457226814769348910">เปิดเวอร์ชันออฟไลน์</translation>
 <translation id="5478327362747197944">สร้างกิจกรรมในปฏิทินโดยตรงด้วยการคลิกวันที่ในหน้าเว็บ</translation>
@@ -1371,6 +1376,7 @@
 <translation id="7102005569666697658">กำลังดาวน์โหลด… <ph name="FILE_SIZE" /></translation>
 <translation id="7104701424653979232">เมนู → การตั้งค่า → วิธีการชำระเงิน</translation>
 <translation id="7108338896283013870">ซ่อน</translation>
+<translation id="7128693485119315539">องค์กรของคุณอาจต้องดูและจัดการข้อมูลการท่องเว็บที่เชื่อมโยงกับบัญชีที่มีการจัดการ เช่น ประวัติการท่องเว็บและรหัสผ่าน</translation>
 <translation id="713215255510512027"><ph name="FILENAME" /> (<ph name="FILESIZE" />)</translation>
 <translation id="7136892417564438900">กล้องถ่ายรูปไม่พร้อมใช้งาน</translation>
 <translation id="7141960840225504692">แท็บจะปิดไป และข้อมูลการท่องเว็บจะถูกลบ</translation>
@@ -1764,6 +1770,7 @@
 <translation id="8813277370772331957">เตือนฉันภายหลัง</translation>
 <translation id="8814719628147284151">ดำเนินการต่อ</translation>
 <translation id="8820817407110198400">บุ๊กมาร์ก</translation>
+<translation id="8822421075653507124">องค์กรของคุณอาจต้องดูข้อมูลเกี่ยวกับระบบปฏิบัติการ เบราว์เซอร์ การตั้งค่า รวมทั้งซอฟต์แวร์ที่ติดตั้งในอุปกรณ์เพื่อให้ใช้อุปกรณ์นี้ได้อย่างปลอดภัย</translation>
 <translation id="8825562130641217944">รับบุ๊กมาร์ก รหัสผ่าน และอื่นๆ</translation>
 <translation id="8827154289515190290">เบราว์เซอร์ที่คุณชื่นชอบพร้อมให้ใช้งานใน iOS แล้ว</translation>
 <translation id="8831208860914609320">ปิดแท็บที่ไม่ได้ใช้งานทั้งหมด</translation>
diff --git a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator.mm
index f8db426..8d45544 100644
--- a/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/account_menu/account_menu_coordinator.mm
@@ -556,8 +556,7 @@
       completion();
     }
   };
-  if (base::FeatureList::IsEnabled(
-          kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+  if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
     [self stopChildrenAndViewControllerWithAction:action completion:nil];
     childrenCompletion();
   } else {
@@ -709,8 +708,7 @@
   _viewController = nil;
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss: {
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       if (completion) {
         completion();
diff --git a/ios/chrome/browser/authentication/ui_bundled/authentication_flow/authentication_flow.mm b/ios/chrome/browser/authentication/ui_bundled/authentication_flow/authentication_flow.mm
index bf45481..247cd261 100644
--- a/ios/chrome/browser/authentication/ui_bundled/authentication_flow/authentication_flow.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/authentication_flow/authentication_flow.mm
@@ -388,26 +388,10 @@
       [self fetchCapabilities];
       return;
     case COMPLETE_WITH_SUCCESS:
-      [self completeSignInWithResult:SigninCoordinatorResult::
-                                         SigninCoordinatorResultSuccess];
+      [self completeWithSuccessStep];
       return;
     case COMPLETE_WITH_FAILURE:
-      if (_didSignIn) {
-        [_performer signOutImmediatelyFromProfile:profile];
-      }
-      SigninCoordinatorResult result;
-      switch (_cancelationReason) {
-        case CancelationReason::kFailed:
-          result = SigninCoordinatorResult::SigninCoordinatorResultInterrupted;
-          break;
-        case CancelationReason::kUserCanceled:
-          result =
-              SigninCoordinatorResult::SigninCoordinatorResultCanceledByUser;
-          break;
-        case CancelationReason::kNotCanceled:
-          NOTREACHED();
-      }
-      [self completeSignInWithResult:result];
+      [self completeWithFailureStep];
       return;
     case CLEANUP_BEFORE_DONE: {
       // Clean up asynchronously to ensure that `self` does not die while
@@ -503,23 +487,18 @@
       })];
 }
 
-// Runs `_signInCompletion` asynchronously with `result` argument.
-- (void)completeSignInWithResult:(SigninCoordinatorResult)result {
+// Runs `_signInCompletion` asynchronously when the flow is successful.
+- (void)completeWithSuccessStep {
   DCHECK(_signInCompletion)
       << "`completeSignInWithResult` should not be called twice.";
-  if (result == SigninCoordinatorResult::SigninCoordinatorResultSuccess) {
-    base::UmaHistogramEnumeration("Signin.AccountType.SigninConsent",
-                                  _identityToSignInHostedDomain.length > 0
-                                      ? SigninAccountType::kManaged
-                                      : SigninAccountType::kRegular);
-  }
-  if (_signInCompletion) {
-    SigninCompletionCallback signInCompletion = _signInCompletion;
-    _signInCompletion = nil;
-    signInCompletion(result);
-  }
-  if (self.postSignInActions.Has(PostSignInAction::kShowSnackbar) &&
-      result == SigninCoordinatorResult::SigninCoordinatorResultSuccess) {
+  base::UmaHistogramEnumeration("Signin.AccountType.SigninConsent",
+                                _identityToSignInHostedDomain.length > 0
+                                    ? SigninAccountType::kManaged
+                                    : SigninAccountType::kRegular);
+  SigninCompletionCallback signInCompletion = _signInCompletion;
+  _signInCompletion = nil;
+  signInCompletion(SigninCoordinatorResult::SigninCoordinatorResultSuccess);
+  if (self.postSignInActions.Has(PostSignInAction::kShowSnackbar)) {
     [_performer completePostSignInActions:_postSignInActions
                              withIdentity:_identityToSignIn
                                   browser:_browser];
@@ -527,6 +506,31 @@
   [self continueFlow];
 }
 
+// Runs `_signInCompletion` asynchronously when the flow failed.
+- (void)completeWithFailureStep {
+  DCHECK(_signInCompletion)
+      << "`completeSignInWithResult` should not be called twice.";
+  if (_didSignIn) {
+    ProfileIOS* profile = [self originalProfile];
+    [_performer signOutImmediatelyFromProfile:profile];
+  }
+  SigninCoordinatorResult result;
+  switch (_cancelationReason) {
+    case CancelationReason::kFailed:
+      result = SigninCoordinatorResult::SigninCoordinatorResultInterrupted;
+      break;
+    case CancelationReason::kUserCanceled:
+      result = SigninCoordinatorResult::SigninCoordinatorResultCanceledByUser;
+      break;
+    case CancelationReason::kNotCanceled:
+      NOTREACHED();
+  }
+  SigninCompletionCallback signInCompletion = _signInCompletion;
+  _signInCompletion = nil;
+  signInCompletion(result);
+  [self continueFlow];
+}
+
 - (BOOL)canceled {
   return _cancelationReason != CancelationReason::kNotCanceled;
 }
diff --git a/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_popup_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_popup_coordinator.mm
index b2a7d0f..62d73bd 100644
--- a/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_popup_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/history_sync/history_sync_popup_coordinator.mm
@@ -124,8 +124,7 @@
     case SigninCoordinatorInterrupt::DismissWithoutAnimation: {
       BOOL animated =
           SigninCoordinatorInterrupt::DismissWithAnimation == action;
-      if (base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+      if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
         [_navigationController dismissViewControllerAnimated:animated
                                                   completion:nil];
         dismissCompletion();
@@ -136,8 +135,7 @@
       break;
     }
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss:
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       // The view should be ignored and leave it being presented.
       _navigationController.presentationController.delegate = nil;
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
index bf6a26e..94f98e5 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/add_account_signin/add_account_signin_manager.mm
@@ -97,8 +97,7 @@
   self.signinInterrupted = YES;
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss:
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       // IdentityInteractionManager doesn't support interrupt with no dismiss.
       // We need to stop with no animation to make sure dealloc are done with
@@ -131,8 +130,7 @@
           completion();
         }
       };
-      if (base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+      if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
         [self.identityInteractionManager cancelAuthActivityAnimated:animated
                                                          completion:nil];
         cancelCompletion();
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
index 4e60764..4097f16 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/consistency_promo_signin/consistency_promo_signin_coordinator.mm
@@ -203,8 +203,7 @@
   };
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss:
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       finishCompletionBlock();
       break;
@@ -212,8 +211,7 @@
     case SigninCoordinatorInterrupt::DismissWithAnimation: {
       BOOL animated =
           action == SigninCoordinatorInterrupt::DismissWithAnimation;
-      if (base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+      if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
         [self.navigationController.presentingViewController
             dismissViewControllerAnimated:animated
                                completion:nil];
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/forced_signin/forced_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/forced_signin/forced_signin_coordinator.mm
index c2b8d5e..b527fc9 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/forced_signin/forced_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/forced_signin/forced_signin_coordinator.mm
@@ -167,8 +167,7 @@
   BOOL animated = NO;
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss: {
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       [self.childCoordinator
           interruptWithAction:SigninCoordinatorInterrupt::UIShutdownNoDismiss
@@ -186,8 +185,7 @@
   }
 
   ProceduralBlock childCompletion = ^{
-    if (base::FeatureList::IsEnabled(
-            kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+    if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
       [weakSelf.navigationController.presentingViewController
           dismissViewControllerAnimated:animated
                              completion:nil];
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/instant_signin/instant_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/instant_signin/instant_signin_coordinator.mm
index dcbcf48..86accc9 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/instant_signin/instant_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/instant_signin/instant_signin_coordinator.mm
@@ -158,8 +158,7 @@
       completion();
     }
   } else if (action == SigninCoordinatorInterrupt::UIShutdownNoDismiss) {
-    CHECK(!base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorAlwaysDismissed),
+    CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
           base::NotFatalUntil::M136);
     // In case of `UIShutdownNoDismiss`, everything should be done
     // synchronously. So we should not wait for the mediator interruption to be
@@ -175,8 +174,7 @@
       completion();
     }
   } else {
-    if (base::FeatureList::IsEnabled(
-            kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+    if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
       [_mediator interruptWithAction:action completion:nil];
       if (completion) {
         completion();
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.h b/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.h
index d32dcd5..fc9ab003 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.h
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.h
@@ -10,6 +10,12 @@
 #import "ios/chrome/browser/authentication/ui_bundled/signin/signin_constants.h"
 #import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h"
 
+// Whether InterruptibleChromeCoordinator’s should always always be dismissed.
+BOOL IsInterruptibleCoordinatorAlwaysDismissedEnabled();
+
+// Whether InterruptibleChromeCoordinator should always stop synchronously.
+BOOL IsInterruptibleCoordinatorStoppedSynchronouslyEnabled();
+
 // If `kInterruptibleChromeAlwaysDismissed` is is disabled,
 // `UIShutdownNoDismiss` is returned. Otherwise `DismissWithoutAnimation`.
 SigninCoordinatorInterrupt SynchronousStopAction();
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.mm
index b49ee14..7fdef30a 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/interruptible_chrome_coordinator.mm
@@ -12,13 +12,21 @@
              "IOSInterruptibleCoordinatorStoppedSynchronously",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
+BOOL IsInterruptibleCoordinatorStoppedSynchronouslyEnabled() {
+  return base::FeatureList::IsEnabled(
+      kIOSInterruptibleCoordinatorStoppedSynchronously);
+}
+
+BOOL IsInterruptibleCoordinatorAlwaysDismissedEnabled() {
+  return base::FeatureList::IsEnabled(
+      kIOSInterruptibleCoordinatorAlwaysDismissed);
+}
+
 SigninCoordinatorInterrupt SynchronousStopAction() {
-  if (base::FeatureList::IsEnabled(
-          kIOSInterruptibleCoordinatorAlwaysDismissed)) {
+  if (IsInterruptibleCoordinatorAlwaysDismissedEnabled()) {
     // If the interruption is not synchronous, we must continue to send
     // UIShutdownNoDismiss.
-    CHECK(base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorStoppedSynchronously),
+    CHECK(IsInterruptibleCoordinatorStoppedSynchronouslyEnabled(),
           base::NotFatalUntil::M136);
     return SigninCoordinatorInterrupt::DismissWithoutAnimation;
   }
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator.mm
index 7bfa2cf..4253109c 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator.mm
@@ -82,8 +82,7 @@
   };
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss:
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       // TrustedVaultClientBackend doesn't support no dismiss. Therefore there
       // is nothing to do. It will be just deallocated when the service will
@@ -106,13 +105,11 @@
     [self stopErrorAlertCoordinator];
     // Checks that `cancelCompletion` is executed synchronously.
     CHECK(!self.signinCompletion, base::NotFatalUntil::M126);
-  } else if (base::FeatureList::IsEnabled(
-                 kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+  } else if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
     std::move(_dialogCancelCallback).Run(animated, nil);
     cancelCompletion();
   } else {
-    if (base::FeatureList::IsEnabled(
-            kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+    if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
       std::move(_dialogCancelCallback).Run(animated, nil);
       cancelCompletion();
     } else {
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator_unittest.mm b/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator_unittest.mm
index 2066799..e3911a7c 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator_unittest.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/trusted_vault_reauthentication/trusted_vault_reauthentication_coordinator_unittest.mm
@@ -176,8 +176,7 @@
                  EXPECT_TRUE(signin_completion_called);
                  interrupt_completion_called = true;
                }];
-  if (base::FeatureList::IsEnabled(
-          kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+  if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
     // Sign-in and interrupt completion blocks should be called synchronously.
     EXPECT_TRUE(signin_completion_called);
     EXPECT_TRUE(interrupt_completion_called);
diff --git a/ios/chrome/browser/authentication/ui_bundled/signin/two_screens_signin/two_screens_signin_coordinator.mm b/ios/chrome/browser/authentication/ui_bundled/signin/two_screens_signin/two_screens_signin_coordinator.mm
index f3286d6..e9449955 100644
--- a/ios/chrome/browser/authentication/ui_bundled/signin/two_screens_signin/two_screens_signin_coordinator.mm
+++ b/ios/chrome/browser/authentication/ui_bundled/signin/two_screens_signin/two_screens_signin_coordinator.mm
@@ -232,8 +232,7 @@
   BOOL animated = NO;
   switch (action) {
     case SigninCoordinatorInterrupt::UIShutdownNoDismiss: {
-      CHECK(!base::FeatureList::IsEnabled(
-                kIOSInterruptibleCoordinatorAlwaysDismissed),
+      CHECK(!IsInterruptibleCoordinatorAlwaysDismissedEnabled(),
             base::NotFatalUntil::M136);
       [_childCoordinator
           interruptWithAction:SigninCoordinatorInterrupt::UIShutdownNoDismiss
@@ -259,8 +258,7 @@
     UIViewController* presentingViewController =
         weakNavigationController.presentingViewController;
     if (presentingViewController) {
-      if (base::FeatureList::IsEnabled(
-              kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+      if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
         [presentingViewController dismissViewControllerAnimated:animated
                                                      completion:nil];
         finishCompletion();
diff --git a/ios/chrome/browser/first_run/ui_bundled/signin/signin_screen_coordinator.mm b/ios/chrome/browser/first_run/ui_bundled/signin/signin_screen_coordinator.mm
index 85b0cec..891e9bd 100644
--- a/ios/chrome/browser/first_run/ui_bundled/signin/signin_screen_coordinator.mm
+++ b/ios/chrome/browser/first_run/ui_bundled/signin/signin_screen_coordinator.mm
@@ -148,8 +148,7 @@
 - (void)interruptWithAction:(SigninCoordinatorInterrupt)action
                  completion:(ProceduralBlock)completion {
   if (self.addAccountSigninCoordinator) {
-    if (base::FeatureList::IsEnabled(
-            kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+    if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
       [self.addAccountSigninCoordinator interruptWithAction:action
                                                  completion:nil];
 
diff --git a/ios/chrome/browser/lens_overlay/coordinator/lens_overlay_mediator.mm b/ios/chrome/browser/lens_overlay/coordinator/lens_overlay_mediator.mm
index a4a2fbe..eeb9ef5 100644
--- a/ios/chrome/browser/lens_overlay/coordinator/lens_overlay_mediator.mm
+++ b/ios/chrome/browser/lens_overlay/coordinator/lens_overlay_mediator.mm
@@ -271,6 +271,21 @@
   [self.delegate lensOverlayMediatorOpenURLInNewTabRequsted:URL];
 }
 
+- (void)lensResultPageWillLoadNonLensSRP:(NSString*)query
+                                     url:(const GURL&)destinationURL {
+  [self.lensHandler resetSelectionAreaToInitialPosition:^{
+  }];
+  _navigationManager->RegisterRelatedSearchNavigation(
+      destinationURL, base::SysNSStringToUTF16(query));
+
+  [self.omniboxCoordinator setThumbnailImage:nil];
+  if (self.omniboxClient) {
+    [self setOmniboxSuggestSignals:nil];
+    self.omniboxClient->SetLensResultHasThumbnail(false);
+  }
+  [self updateOmniboxText:query];
+}
+
 #pragma mark - Private
 
 /// Updates the UI for lens `result`.
diff --git a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator.mm b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator.mm
index 5fb10a62..a96376d2 100644
--- a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator.mm
+++ b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator.mm
@@ -78,6 +78,33 @@
                                     &request_id);
 }
 
+// Related searches have the following properties:
+//  - It's a search URL (q=Foo+Bar)
+//  - It has lns_surface param
+//  - It has no vsrid param
+// This function identifies if it is a related search, and returns the query.
+// Otherwise returns std::nullopt.
+std::optional<std::string> ExtractQueryFromRelatedSearchURL(const GURL& URL) {
+  std::string search_term;
+  BOOL hasSearchTerms = net::GetValueForKeyInQuery(URL, "q", &search_term);
+
+  std::string lens_surface;
+  BOOL hasLensSurface = net::GetValueForKeyInQuery(
+      URL, lens::kLensSurfaceQueryParameter, &lens_surface);
+  LOG(WARNING) << lens_surface;
+
+  std::string request_id;
+  BOOL hasLensParam = net::GetValueForKeyInQuery(
+      URL, lens::kLensRequestQueryParameter, &request_id);
+
+  if (hasSearchTerms && hasLensSurface && !hasLensParam &&
+      lens_surface == "4") {
+    return search_term;
+  } else {
+    return std::nullopt;
+  }
+}
+
 /// Currently some websites don't render properly in the bottom sheet. Filter
 /// them out explicitly.
 GURL URLByRemovingLensSurfaceParamIfNecessary(const GURL& URL) {
@@ -300,6 +327,15 @@
                requestInfo:(web::WebStatePolicyDecider::RequestInfo)requestInfo
            decisionHandler:(PolicyDecisionHandler)decisionHandler {
   GURL URL = net::GURLWithNSURL(request.URL);
+
+  if (auto relatedSearchQuery = ExtractQueryFromRelatedSearchURL(URL)) {
+    [self.delegate lensResultPageWillLoadNonLensSRP:base::SysUTF8ToNSString(
+                                                        *relatedSearchQuery)
+                                                url:URL];
+    decisionHandler(web::WebStatePolicyDecider::PolicyDecision::Allow());
+    return;
+  }
+
   std::pair<BOOL, std::optional<GURL>> allowURL =
       IsValidURLToOpenInResultsPage(URL);
   URL = allowURL.second.value_or(URL);
diff --git a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_delegate.h b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_delegate.h
index 52c9225..de523aa 100644
--- a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_delegate.h
+++ b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_delegate.h
@@ -29,6 +29,11 @@
 /// Called when an URL needs to be opened in a new tab.
 - (void)lensResultPageOpenURLInNewTabRequsted:(GURL)URL;
 
+/// Called when a URL that is not an LRP is loaded in the bottom sheet.
+/// This can happen in cases like user pressing on a "related search" chip.
+- (void)lensResultPageWillLoadNonLensSRP:(NSString*)queryText
+                                     url:(const GURL&)destinationURL;
+
 @end
 
 #endif  // IOS_CHROME_BROWSER_LENS_OVERLAY_COORDINATOR_LENS_RESULT_PAGE_MEDIATOR_DELEGATE_H_
diff --git a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_unittest.mm b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_unittest.mm
index ac4e2d6..e87e4dc6 100644
--- a/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_unittest.mm
+++ b/ios/chrome/browser/lens_overlay/coordinator/lens_result_page_mediator_unittest.mm
@@ -56,6 +56,11 @@
   _openInNewTabRequested = YES;
 }
 
+- (void)lensResultPageWillLoadNonLensSRP:(NSString*)queryText
+                                     url:(const GURL&)destinationURL {
+  // NO-OP
+}
+
 @end
 
 @interface LensResultPageMediator (Testing)
diff --git a/ios/chrome/browser/lens_overlay/model/BUILD.gn b/ios/chrome/browser/lens_overlay/model/BUILD.gn
index fb405c9e..442e5b10 100644
--- a/ios/chrome/browser/lens_overlay/model/BUILD.gn
+++ b/ios/chrome/browser/lens_overlay/model/BUILD.gn
@@ -4,6 +4,8 @@
 
 source_set("model") {
   sources = [
+    "chrome_lens_overlay_result_impl.h",
+    "chrome_lens_overlay_result_impl.mm",
     "lens_overlay_navigation_manager.h",
     "lens_overlay_navigation_manager.mm",
     "lens_overlay_navigation_mutator.h",
diff --git a/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.h b/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.h
new file mode 100644
index 0000000..d5d519e
--- /dev/null
+++ b/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.h
@@ -0,0 +1,31 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_CHROME_BROWSER_LENS_OVERLAY_MODEL_CHROME_LENS_OVERLAY_RESULT_IMPL_H_
+#define IOS_CHROME_BROWSER_LENS_OVERLAY_MODEL_CHROME_LENS_OVERLAY_RESULT_IMPL_H_
+
+#import "ios/public/provider/chrome/browser/lens/lens_overlay_result.h"
+
+/// A simple implementation for ChromeLensOverlayResult that can be instantiated
+/// with static data.
+/// @discussion normally, ChromeLensOverlayResults are vended by the Lens SDK.
+/// However, sometimes it is convenient to create instances of a result without
+/// Lens SDK. When using ChromeLensOverlayResultImpl, careful to not pass them
+/// to Lens SDK by accident, as it expects instances of their internal
+/// implementation of this protocol.
+@interface ChromeLensOverlayResultImpl : NSObject <ChromeLensOverlayResult>
+
+- (instancetype)initWithResultURL:(GURL)searchResultURL
+                     previewImage:(UIImage*)previewImage
+                   suggestSignals:(NSData*)suggestSignals
+                  isTextSelection:(BOOL)isTextSelection
+                        queryText:(NSString*)queryText
+                    selectionRect:(CGRect)selectionRect
+    NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+#endif  // IOS_CHROME_BROWSER_LENS_OVERLAY_MODEL_CHROME_LENS_OVERLAY_RESULT_IMPL_H_
diff --git a/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.mm b/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.mm
new file mode 100644
index 0000000..b5738e1
--- /dev/null
+++ b/ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.mm
@@ -0,0 +1,35 @@
+// Copyright 2024 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.h"
+
+#import "url/gurl.h"
+
+@implementation ChromeLensOverlayResultImpl
+@synthesize searchResultURL = _searchResultURL;
+@synthesize selectionPreviewImage = _selectionPreviewImage;
+@synthesize suggestSignals = _suggestSignals;
+@synthesize isTextSelection = _isTextSelection;
+@synthesize queryText = _queryText;
+@synthesize selectionRect = _selectionRect;
+
+- (instancetype)initWithResultURL:(GURL)searchResultURL
+                     previewImage:(UIImage*)previewImage
+                   suggestSignals:(NSData*)suggestSignals
+                  isTextSelection:(BOOL)isTextSelection
+                        queryText:(NSString*)queryText
+                    selectionRect:(CGRect)selectionRect {
+  self = [super init];
+  if (self) {
+    _searchResultURL = searchResultURL;
+    _selectionPreviewImage = previewImage;
+    _suggestSignals = suggestSignals;
+    _isTextSelection = isTextSelection;
+    _queryText = queryText;
+    _selectionRect = selectionRect;
+  }
+  return self;
+}
+
+@end
diff --git a/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.h b/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.h
index c61542c..0d724f6 100644
--- a/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.h
+++ b/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.h
@@ -41,6 +41,12 @@
   void LoadUnimodalOmniboxNavigation(const GURL& destination_url,
                                      const std::u16string& omnibox_text);
 
+  /// Registers a navigation to a "related search", which is considered a
+  /// root-level navigation (as opposed to a subnavigation), but unlike a normal
+  /// "result" navigation it is associated with an empty image signal.
+  void RegisterRelatedSearchNavigation(const GURL& destination_url,
+                                       const std::u16string& query);
+
   /// Whether there is a previous navigation.
   bool CanGoBack() const;
   /// Go back to the previous navigation.
@@ -65,6 +71,7 @@
   class LensResultItem {
    public:
     explicit LensResultItem(id<ChromeLensOverlayResult> lens_result);
+
     LensResultItem(const LensResultItem& result_item) = delete;
     LensResultItem& operator=(const LensResultItem&) = delete;
     ~LensResultItem();
diff --git a/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.mm b/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.mm
index cac010fc..557a973 100644
--- a/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.mm
+++ b/ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_manager.mm
@@ -6,6 +6,7 @@
 
 #import "base/notreached.h"
 #import "base/strings/sys_string_conversions.h"
+#import "ios/chrome/browser/lens_overlay/model/chrome_lens_overlay_result_impl.h"
 #import "ios/chrome/browser/lens_overlay/model/lens_overlay_navigation_mutator.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/public/provider/chrome/browser/lens/lens_overlay_result.h"
@@ -78,6 +79,19 @@
   }
 }
 
+void LensOverlayNavigationManager::RegisterRelatedSearchNavigation(
+    const GURL& destination_url,
+    const std::u16string& omnibox_text) {
+  ChromeLensOverlayResultImpl* result = [[ChromeLensOverlayResultImpl alloc]
+      initWithResultURL:destination_url
+           previewImage:nil
+         suggestSignals:nil
+        isTextSelection:NO
+              queryText:base::SysUTF16ToNSString(omnibox_text)
+          selectionRect:CGRectZero];
+  lens_navigation_items_.push_back(std::make_unique<LensResultItem>(result));
+}
+
 void LensOverlayNavigationManager::LoadUnimodalOmniboxNavigation(
     const GURL& destination_url,
     const std::u16string& omnibox_text) {
diff --git a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.h b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.h
index 643fa8ff..d1e88d1 100644
--- a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.h
+++ b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.h
@@ -7,8 +7,6 @@
 
 #import <Foundation/Foundation.h>
 
-// Key for saving collapsed session state in the UserDefaults.
-extern NSString* const kCollapsedSectionsKey;
 // Accessibility identifier for the main view.
 extern NSString* const kRecentTabsTableViewControllerAccessibilityIdentifier;
 // Accessibility identifier for the "Show History" cell.
diff --git a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.mm b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.mm
index 06bae39..49de13b6 100644
--- a/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.mm
+++ b/ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.mm
@@ -4,7 +4,6 @@
 
 #import "ios/chrome/browser/recent_tabs/ui_bundled/recent_tabs_constants.h"
 
-NSString* const kCollapsedSectionsKey = @"ChromeRecentTabsCollapsedSections";
 NSString* const kRecentTabsTableViewControllerAccessibilityIdentifier =
     @"recent_tabs_view_controller";
 NSString* const kRecentTabsShowFullHistoryCellAccessibilityIdentifier =
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
index e3128fe..5b32168 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -1262,4 +1262,7 @@
 
   // Added 11/2024.
   [defaults removeObjectForKey:@"DisplaySwitchProfile"];
+
+  // Added 01/2025.
+  [defaults removeObjectForKey:@"ChromeRecentTabsCollapsedSections"];
 }
diff --git a/ios/chrome/browser/signin/model/fake_system_identity_interaction_manager.mm b/ios/chrome/browser/signin/model/fake_system_identity_interaction_manager.mm
index dc62aac..2fb74ff 100644
--- a/ios/chrome/browser/signin/model/fake_system_identity_interaction_manager.mm
+++ b/ios/chrome/browser/signin/model/fake_system_identity_interaction_manager.mm
@@ -175,8 +175,7 @@
 
 - (void)cancelAuthActivityAnimated:(BOOL)animated
                         completion:(ProceduralBlock)completion {
-  if (base::FeatureList::IsEnabled(
-          kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+  if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
     CHECK(!completion);
   }
   NSError* error = ios::provider::CreateUserCancelledSigninError();
@@ -231,8 +230,7 @@
                                     identity:identity
                                   completion:completion];
   };
-  if (base::FeatureList::IsEnabled(
-          kIOSInterruptibleCoordinatorStoppedSynchronously)) {
+  if (IsInterruptibleCoordinatorStoppedSynchronouslyEnabled()) {
     [_authActivityViewController.presentingViewController
         dismissViewControllerAnimated:animated
                            completion:nil];
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_tab_cell.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_tab_cell.mm
index 0d5b1a1..e5416c0 100644
--- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_tab_cell.mm
+++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_strip/ui/tab_strip_tab_cell.mm
@@ -62,8 +62,12 @@
 // Selected border background view constants.
 const CGFloat kSelectedBorderBackgroundViewWidth = 8;
 
-// Size of a blue dot on icon view.
-const CGFloat kBlueDotSize = 6;
+// The storke width around a blue dot view.
+constexpr CGFloat kBlueDotStrokeWidth = 2;
+
+// Size of a blue dot on icon view with considering the stroke width.
+constexpr CGFloat kBlueDotSize = 6 + kBlueDotStrokeWidth * 2;
+constexpr CGFloat kBlueDotInset = 1;
 
 // Returns the default favicon image.
 UIImage* DefaultFavicon() {
@@ -1201,6 +1205,8 @@
   _blueDotView = [[UIView alloc] init];
   _blueDotView.translatesAutoresizingMaskIntoConstraints = NO;
   _blueDotView.layer.cornerRadius = kBlueDotSize / 2;
+  _blueDotView.layer.borderWidth = kBlueDotStrokeWidth;
+  _blueDotView.layer.borderColor = TabStripHelper.cellBackgroundColor.CGColor;
   _blueDotView.backgroundColor = [UIColor colorNamed:kBlue600Color];
   [_accessibilityContainerView addSubview:_blueDotView];
 
@@ -1210,10 +1216,10 @@
     // Position the blue dot at right bottom corner of the favicon image.
     [_blueDotView.centerXAnchor
         constraintEqualToAnchor:_faviconView.centerXAnchor
-                       constant:kFaviconSize / 2],
+                       constant:kFaviconSize / 2 - kBlueDotInset],
     [_blueDotView.centerYAnchor
         constraintEqualToAnchor:_faviconView.centerYAnchor
-                       constant:kFaviconSize / 2],
+                       constant:kFaviconSize / 2 - kBlueDotInset],
   ]];
 }
 
diff --git a/ios/chrome/browser/tips_notifications/eg_test/tips_notifications_egtest.mm b/ios/chrome/browser/tips_notifications/eg_test/tips_notifications_egtest.mm
index 71182307..9c49a5da 100644
--- a/ios/chrome/browser/tips_notifications/eg_test/tips_notifications_egtest.mm
+++ b/ios/chrome/browser/tips_notifications/eg_test/tips_notifications_egtest.mm
@@ -198,6 +198,10 @@
 
 // Tests triggering and interacting with each of the Tips notifications.
 - (void)testTriggerNotifications {
+  if ([ChromeEarlGrey isIPhoneIdiom]) {
+    // TODO(crbug.com/387993700): Re-enable the test.
+    EARL_GREY_TEST_DISABLED(@"Flaky on iPad.");
+  }
   [SigninEarlGrey addFakeIdentity:[FakeSystemIdentity fakeIdentity1]];
   [ChromeEarlGreyUI waitForAppToIdle];
 
diff --git a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
index d49a4ba8..dd564a0 100644
--- a/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
+++ b/ios/chrome/browser/ui/content_suggestions/ntp_home_egtest.mm
@@ -199,7 +199,7 @@
     config.features_enabled.push_back(kIOSLargeFakebox);
   }
 
-  if ([self isRunningTest:@selector(testCollectionShortcuts)]) {
+  if ([self isRunningTest:@selector(DISABLED_testCollectionShortcuts)]) {
     // This ensures that the test will not fail when What's New is updated.
     config.additional_args.push_back(base::StringPrintf(
         "--disable-features=%s",
@@ -247,7 +247,8 @@
 }
 
 // Tests that the collections shortcut are displayed and working.
-- (void)testCollectionShortcuts {
+// TODO(crbug.com/387934031): Re-enable.
+- (void)DISABLED_testCollectionShortcuts {
   AppLaunchConfiguration config = self.appConfigurationForTestCase;
   config.relaunch_policy = ForceRelaunchByCleanShutdown;
   [[AppLaunchManager sharedManager] ensureAppLaunchedWithConfiguration:config];
@@ -310,7 +311,8 @@
 }
 
 // Tests that the collections shortcut are displayed and working.
-- (void)testCollectionShortcutsWithWhatsNew {
+// TODO(crbug.com/387934031): Re-enable.
+- (void)DISABLED_testCollectionShortcutsWithWhatsNew {
   AppLaunchConfiguration config = self.appConfigurationForTestCase;
   config.relaunch_policy = ForceRelaunchByCleanShutdown;
   // This ensures that the test will not fail when What's New has already been
diff --git a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
index d22b8696..4204a31 100644
--- a/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
+++ b/ios/chrome/credential_provider_extension/credential_provider_view_controller.mm
@@ -50,6 +50,16 @@
 }
 }
 
+enum class PasskeyCreationEligibility {
+  kCanCreate,
+  kCanCreateWithUserInteraction,
+  kPasswordSaveDisabledByUser,
+  kPasswordSaveDisabledByEnterprise,
+  kPasswordSyncDisabled,
+  kSignedOut,
+  kUnsupportedAlgorithm,
+};
+
 @interface CredentialProviderViewController () <
     ConfirmationAlertActionHandler,
     CredentialResponseHandler,
@@ -298,8 +308,23 @@
 // Only available in iOS 18.0+.
 - (void)performPasskeyRegistrationWithoutUserInteractionIfPossible:
     (ASPasskeyCredentialRequest*)registrationRequest API_AVAILABLE(ios(18.0)) {
+  PasskeyRequestDetails* passkeyRequestDetails =
+      [self passkeyDetailsFromRequest:registrationRequest];
+  NSString* gaia = [self gaia];
+  PasskeyCreationEligibility passkeyCreationEligibility =
+      [self passkeyCreationEligibilityForGaia:gaia
+                        passkeyRequestDetails:passkeyRequestDetails];
+
+  // For any other state than `kCanCreate`, either passkey creation is not
+  // allowed or user interaction is required, so exit immediately.
+  if (passkeyCreationEligibility != PasskeyCreationEligibility::kCanCreate) {
+    [self exitWithErrorCode:ASExtensionErrorCodeFailed];
+    return;
+  }
+
   // This function is called to silently create passkeys.
   // We're always allowed to return an error until we support this flow.
+  // TODO(crbug.com/355666571): Create a passkey here.
   [self exitWithErrorCode:ASExtensionErrorCodeFailed];
 }
 
@@ -310,26 +335,33 @@
     return;
   }
 
-  if (!IsPasswordCreationUserEnabled()) {
-    if (IsPasswordCreationManaged()) {
-      [self showSavingDisabledByEnterpriseAlert];
-    } else {
-      [self showSavingManuallyDisabledAlert];
-    }
-    return;
-  }
-
-  if (!IsPasswordSyncEnabled()) {
-    [self showSavingToAccountDisabledAlert];
-    return;
-  }
-
+  PasskeyRequestDetails* passkeyRequestDetails =
+      [self passkeyDetailsFromRequest:registrationRequest];
   NSString* gaia = [self gaia];
-  if ([gaia length] == 0) {
-    // If we don't have a gaia, either the user is signed out of Chrome or has
-    // never opened Chrome. Passkeys require the user to be signed in to Chrome.
-    [self showSignedOutUserAlert];
-    return;
+  PasskeyCreationEligibility passkeyCreationEligibility =
+      [self passkeyCreationEligibilityForGaia:gaia
+                        passkeyRequestDetails:passkeyRequestDetails];
+
+  switch (passkeyCreationEligibility) {
+    case PasskeyCreationEligibility::kPasswordSaveDisabledByUser:
+      [self showSavingManuallyDisabledAlert];
+      return;
+    case PasskeyCreationEligibility::kPasswordSaveDisabledByEnterprise:
+      [self showSavingDisabledByEnterpriseAlert];
+      return;
+    case PasskeyCreationEligibility::kPasswordSyncDisabled:
+      [self showSavingToAccountDisabledAlert];
+      return;
+    case PasskeyCreationEligibility::kSignedOut:
+      [self showSignedOutUserAlert];
+      return;
+    case PasskeyCreationEligibility::kUnsupportedAlgorithm:
+      [self exitWithErrorCode:ASExtensionErrorCodeFailed];
+      return;
+    case PasskeyCreationEligibility::kCanCreate:
+    case PasskeyCreationEligibility::kCanCreateWithUserInteraction:
+      // Passkey creation is allowed.
+      break;
   }
 
   __weak __typeof__(self) weakSelf = self;
@@ -338,7 +370,7 @@
       [weakSelf exitWithErrorCode:ASExtensionErrorCodeFailed];
       return;
     }
-    [weakSelf createPasskeyForRequest:registrationRequest gaia:gaia];
+    [weakSelf createPasskeyWithDetails:passkeyRequestDetails gaia:gaia];
   }];
 }
 
@@ -596,6 +628,37 @@
       isBiometricAuthenticationEnabled:[self isBiometricAuthenticationEnabled]];
 }
 
+- (PasskeyCreationEligibility)passkeyCreationEligibilityForGaia:(NSString*)gaia
+                                          passkeyRequestDetails:
+                                              (PasskeyRequestDetails*)
+                                                  passkeyRequestDetails {
+  if (!IsPasswordCreationUserEnabled()) {
+    if (IsPasswordCreationManaged()) {
+      return PasskeyCreationEligibility::kPasswordSaveDisabledByEnterprise;
+    } else {
+      return PasskeyCreationEligibility::kPasswordSaveDisabledByUser;
+    }
+  }
+
+  if (!IsPasswordSyncEnabled()) {
+    return PasskeyCreationEligibility::kPasswordSyncDisabled;
+  }
+
+  if ([gaia length] == 0) {
+    return PasskeyCreationEligibility::kSignedOut;
+  }
+
+  if (!passkeyRequestDetails.algorithmIsSupported) {
+    return PasskeyCreationEligibility::kUnsupportedAlgorithm;
+  }
+
+  if (passkeyRequestDetails.userVerificationRequired) {
+    return PasskeyCreationEligibility::kCanCreateWithUserInteraction;
+  }
+
+  return PasskeyCreationEligibility::kCanCreate;
+}
+
 // Asks user for hardware reauthentication if needed. `forPasskeys` indicates
 // whether the reauthentication is guarding an access to passkeys (when `YES`)
 // or an access to passwords (when `NO`).
@@ -691,20 +754,6 @@
   [self exitWithErrorCode:ASExtensionErrorCodeCredentialIdentityNotFound];
 }
 
-// Creates a passkey for the provided gaia ID.
-- (void)createPasskeyForRequest:(id<ASCredentialRequest>)registrationRequest
-                           gaia:(NSString*)gaia API_AVAILABLE(ios(17.0)) {
-  PasskeyRequestDetails* passkeyRequestDetails =
-      [self passkeyDetailsFromRequest:registrationRequest];
-
-  if (!passkeyRequestDetails.algorithmIsSupported) {
-    [self exitWithErrorCode:ASExtensionErrorCodeFailed];
-    return;
-  }
-
-  [self createPasskeyWithDetails:passkeyRequestDetails gaia:gaia];
-}
-
 // Shows a loading indicator,
 - (void)showLoadingIndicator {
   DCHECK(!self.activityIndicatorView);
diff --git a/ios/chrome/widget_kit_extension/quick_actions_widget.swift b/ios/chrome/widget_kit_extension/quick_actions_widget.swift
index 34bda809..be449ab 100644
--- a/ios/chrome/widget_kit_extension/quick_actions_widget.swift
+++ b/ios/chrome/widget_kit_extension/quick_actions_widget.swift
@@ -17,17 +17,6 @@
     ConfigureQuickActionsWidgetEntry(date: Date(), useLens: false, useColorLensAndVoiceIcons: false)
   }
 
-  func shouldUseColorLensAndVoiceIcons() -> Bool {
-    // On iOS 15, color icons are not supported in widget, always return false
-    // as no icon would be displayed.
-    // On iOS 16, color icons are displayed in monochrome, so still present
-    // the monochrome icon as it may be better adapted.
-    if #available(iOS 17, *) {
-      return shouldUseLens()
-    }
-    return false
-  }
-
   func getSnapshot(
     in context: Context,
     completion: @escaping (ConfigureQuickActionsWidgetEntry) -> Void
@@ -113,16 +102,6 @@
         date: Date(), useLens: false, useColorLensAndVoiceIcons: false)
     }
 
-    func shouldUseColorLensAndVoiceIcons() -> Bool {
-      guard shouldUseLens() else { return false }
-
-      let sharedDefaults: UserDefaults = AppGroupHelper.groupUserDefaults()
-      let useColorLensAndVoiceIcons: Bool =
-        sharedDefaults.bool(
-          forKey: WidgetConstants.QuickActionsWidget.enableColorLensAndVoiceIconsInWidgetKey)
-      return useColorLensAndVoiceIcons
-    }
-
     func snapshot(for configuration: SelectProfileIntent, in context: Context) async
       -> ConfigureQuickActionsWidgetEntry
     {
@@ -159,6 +138,17 @@
   return useLens
 }
 
+func shouldUseColorLensAndVoiceIcons() -> Bool {
+  // On iOS 15, color icons are not supported in widget, always return false
+  // as no icon would be displayed.
+  // On iOS 16, color icons are displayed in monochrome, so still present
+  // the monochrome icon as it may be better adapted.
+  if #available(iOS 17, *) {
+    return shouldUseLens()
+  }
+  return false
+}
+
 struct QuickActionsWidgetEntryView: View {
   var entry: ConfigureQuickActionsWidgetEntry
   @Environment(\.colorScheme) var colorScheme: ColorScheme
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
index 852f7c2fa..6dcb1b3 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-73e2fea879b6482b85223c6f02c436c4cbdbfff3
\ No newline at end of file
+c6c20e193f3bcfeaf3ee5aec28b55744bcedec91
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
index dab33baf..fd467e3 100644
--- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-b771af7c75beea215d6e2e691a5586e50c4310fa
\ No newline at end of file
+398bef7ee25e81bee172f1c4624eb8f8e46cf9ba
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
index 8e1b8e79..6bb24c0 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-d782da510ff360bd8f63f7e05ed7f95bc4ce182f
\ No newline at end of file
+41cd589a84f8a241c2f9bf7eac32bf5ee1115713
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
index 3fd4b6b..07ed38f7 100644
--- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-1e0613ef0082eb2817a02fafb34d020a9b9e8f01
\ No newline at end of file
+0dd1f9693c7efb17011d0ca323c56ad136738ef6
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
index 8ee9c66..0902cc2 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@
-f361b7c84410f3ff50ea6ec87e7d6435398a2187
\ No newline at end of file
+356d502a47342980903d6aa035d87ff763abe590
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
index 78c11d60..c5fe80f 100644
--- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@
-ceb2d311da178c029f214913d7adffb9b59986cd
\ No newline at end of file
+244e914efcc09c1beb0b1cd5a4f3491b81d69529
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
index 763a58d..1645ba9 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-48b2daf71d14c8aa2295f3d5f45de8d28ac29aed
\ No newline at end of file
+af8a9788341534585989eff69ffce617aa8e5b39
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
index 7445aec..2616436 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-b04860a88ca1a38cab9c410354b8dd96efeb11ab
\ No newline at end of file
+d30b150cf2305fbecd1237a32552bbc396ad40ba
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
index 5d08d61..a55da09 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-40b512f24523d81d44a31cf0f10d122a483e1ae9
\ No newline at end of file
+f04d1b19eb5f3bb4b57a595bdca3a877b97ccb51
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 4482204..c83de37 100644
--- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-1988b1d730db6d453a21c4159e89a7ad3dcc4099
\ No newline at end of file
+b240e0a1506de04cc457f58c5e09f5937d276334
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
index fafcd3b..0b99608 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-a7d2653719bc7ead5ecf0145710ede25c802f704
\ No newline at end of file
+8d7934ca1225244ff88e438a1443a508ab0a6bfd
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
index cb3f1f7..30814924 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-aad67313853c3c6f71b3a33ffed1e6a0e5a487a8
\ No newline at end of file
+913524931425b6b228026f612c93b1b670edfd52
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
index 3dc7702..14aec5ff 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-272de287eb5cb7ad683ba5ed3ad7b313c25b1fd8
\ No newline at end of file
+5288967e7d2c6b00b03d822245b00ab1c5d03494
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 79940112..96b684f1 100644
--- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-43df99c3ae445152cf41137714f2e045a6960d70
\ No newline at end of file
+0d76a03a9858092cc45fb4e0dcd89c19bfa12e88
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
index 86a6602..e73eb75 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-30dac3bc7bbb527cc54f7c11d8e67870a21ae90f
\ No newline at end of file
+e3aab78de4a29979d1022ec51704cfc9e1f028ae
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
index 2f4de1e..f77efca 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-1398b71501e1fce584882d2875c6796bf74a8579
\ No newline at end of file
+7e3156237c97502c8701fc3064058fda6851cf6e
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
index f0a745a42..c39aa568 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-5c7d309b526ee1125f676951e161f8e190fe5373
\ No newline at end of file
+82a962cf5d2925adc7285c699029cc0b181ac168
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 5e2abe8..af928f3 100644
--- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-442e8c245d9b84d0b66f3d792abb80ae68250f79
\ No newline at end of file
+a45fed0b0518a92431f463dbf91a06ab12217f61
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
index b630db39..cdf81b4 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-1c771913f9c3b54c3f7711e27aa158f34dd68833
\ No newline at end of file
+04fd43ee4283f9706373b942a6d782bb1b8b7a67
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
index 45521b5..6732afe 100644
--- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-ed2ec9ad273c2e058419316b708cdecb5d671d27
\ No newline at end of file
+2179182c64cf9508b9f9cc728a385f0400a984d1
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
index 3a040aaa..85a924f0 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-92e74ea7255545ef603780cceda71cecc860633e
\ No newline at end of file
+38925e075fff7ce45e48d842af1ab848c5353cd3
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
index 10b3accd..4574b091 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-85727c1cbe017c0877ba88755fcc3f9f73113f6b
\ No newline at end of file
+b9bf3bee06d56db2eb9b0b4f9fa1de22e666f02f
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
index 60f6fb4..9a86ccc 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-2420499fd95daf02dbcff2da9865be0decc79cf0
\ No newline at end of file
+518ec4dd33d262882507aa32e7a445e08515df4b
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
index 7bd45bf..32e635c 100644
--- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-ea7423292ae5d4b2e96c09b328187508b9c8fef2
\ No newline at end of file
+cd4cb8bb01b5ccc5d77fc8aea78b9abd50a806af
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
index 33a6914..e106b010 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@
-5ef4b573244f11893df396ce3017a37c948bfbe8
\ No newline at end of file
+6d12e09b1f0cb6bb9054f99b9d89c8504a6805ec
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
index e337f6e..4473cb10 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@
-bf6c78eb7e8a0349e2b6e99a8bdb65f8fdad60ca
\ No newline at end of file
+55a844c323c57418493f05764fcdae6c5fa0d467
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
index 68707d8..d40f955 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@
-26dcd6ba658e830c770a70e21e83e66bf59a58f5
\ No newline at end of file
+6316e5f48a24a9bfe18b48111f60330c1e11cd5c
\ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
index e600a9c..e51ffb87 100644
--- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
+++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@
-b3f0445d852ada59ee6d28aa8836a571c893fa43
\ No newline at end of file
+f90e8a8ee0a3c4709af9a3cb903ce132046fc5e5
\ No newline at end of file
diff --git a/ios/public/provider/chrome/browser/lens/lens_overlay_api.h b/ios/public/provider/chrome/browser/lens/lens_overlay_api.h
index 045dbb58b..81ac10ef 100644
--- a/ios/public/provider/chrome/browser/lens/lens_overlay_api.h
+++ b/ios/public/provider/chrome/browser/lens/lens_overlay_api.h
@@ -59,6 +59,9 @@
 - (void)start;
 
 // Reloads a previous result in the overlay.
+// Only accepts results that were returned by the Lens SDK through one of the
+// delegate methods. Calling this API with ChromeLensOverlayResultImpl or some
+// other object that implements ChromeLensOverlayResult is a no-op.
 - (void)reloadResult:(id<ChromeLensOverlayResult>)result;
 
 // Removes the current selection and optionally clears the query text.
diff --git a/ios/web/public/js_messaging/web_frame.h b/ios/web/public/js_messaging/web_frame.h
index d5739fd..b979266 100644
--- a/ios/web/public/js_messaging/web_frame.h
+++ b/ios/web/public/js_messaging/web_frame.h
@@ -34,7 +34,6 @@
   // application's lifetime.
   virtual std::string GetFrameId() const = 0;
   // Whether or not the receiver represents the main frame of the webpage.
-  // TODO(crbug.com/40216361): Rename IsMainFrame to IsAnyMainFrame
   virtual bool IsMainFrame() const = 0;
   // The security origin associated with this frame.
   virtual url::Origin GetSecurityOrigin() const = 0;
diff --git a/ios_internal b/ios_internal
index 5d0e918..2176f6f 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 5d0e91884d86fd282c91ecf82a87a83192703707
+Subproject commit 2176f6fa521b3b9a6920b35a5fad854711c883b9
diff --git a/media/base/media_content_type.h b/media/base/media_content_type.h
index ed1f9ae..3010805d 100644
--- a/media/base/media_content_type.h
+++ b/media/base/media_content_type.h
@@ -25,11 +25,8 @@
   // audio focus when the player joins but will not let it respond to audio
   // focus changes.
   kOneShot,
-  // Type indicating that a player that can be mixed with other types of audio,
-  // having no effect on other holders of audio focus.
-  kAmbient,
   // The maximum number of media content types.
-  kMax = kAmbient,
+  kMax = kOneShot,
 };
 
 // Utility function for deciding the MediaContentType of a player based on its
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc
index 65399ee5..953aaa862 100644
--- a/media/renderers/paint_canvas_video_renderer.cc
+++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -1890,9 +1890,7 @@
 
   // Kick off the GL work as well as the SharedImageInterface work, to ensure
   // the shared image memory is released in a timely fashion.
-  // TODO(crbug.com/343011436): Replace the FlushPendingWork with
-  // SharedImageInterface::Flush.
-  raster_context_provider->ContextSupport()->FlushPendingWork();
+  raster_context_provider->SharedImageInterface()->Flush();
   raster_context_provider.reset();
 }
 
diff --git a/testing/buildbot/filters/ios.content_browsertests.filter b/testing/buildbot/filters/ios.content_browsertests.filter
index b2ac23a..eab3b0a4 100644
--- a/testing/buildbot/filters/ios.content_browsertests.filter
+++ b/testing/buildbot/filters/ios.content_browsertests.filter
@@ -819,3 +819,10 @@
 
 # TODO(crbug.com/382316457): This test has been failing on the bot.
 -FormControlsBrowserTest.Meter
+
+# TODO(crbug.com/385300330): This test has been failing since
+# https://crrev.com/c/5953628.
+-All/CustomizableSelectDisabledDumpAccessibilityTreeTest.AccessibilitySelect/blink
+-All/CustomizableSelectDisabledDumpAccessibilityTreeTest.AccessibilitySelectOpen/blink
+-All/CustomizableSelectEnabledDumpAccessibilityTreeTest.AccessibilitySelectOpen/blink
+-All/CustomizableSelectEnabledDumpAccessibilityTreeTest.ENABLED_AccessibiltySelect/blink
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 994202ea..118b41c 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -5248,21 +5248,6 @@
             ]
         }
     ],
-    "ClassifyUrlOnProcessResponseEventChromeOs": [
-        {
-            "platforms": [
-                "chromeos"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "ClassifyUrlOnProcessResponseEvent"
-                    ]
-                }
-            ]
-        }
-    ],
     "ClayBlocking": [
         {
             "platforms": [
@@ -23345,6 +23330,7 @@
                     "name": "Enabled",
                     "enable_features": [
                         "AutofillRemovePaymentsButterDropdown",
+                        "ImprovedSettingsUIOnDesktop",
                         "ImprovedSigninUIOnDesktop",
                         "OutlineSilhouetteIcon"
                     ]
@@ -25345,21 +25331,6 @@
             ]
         }
     ],
-    "WebViewEnableADPF": [
-        {
-            "platforms": [
-                "android_webview"
-            ],
-            "experiments": [
-                {
-                    "name": "Enabled",
-                    "enable_features": [
-                        "WebViewEnableADPF"
-                    ]
-                }
-            ]
-        }
-    ],
     "WebViewEnableADPFGpuMain": [
         {
             "platforms": [
diff --git a/third_party/angle b/third_party/angle
index d65751b..fbaaeb7 160000
--- a/third_party/angle
+++ b/third_party/angle
@@ -1 +1 @@
-Subproject commit d65751b40f7e4441ca0e41210eadcc8a9cbccce5
+Subproject commit fbaaeb7b83bce2a6ec8519b4d7f990f0e2feb839
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
index 259fdcb..ed9b88e 100644
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -2327,6 +2327,13 @@
     returns
       array of string results
 
+  experimental command getLonghandProperties
+    parameters
+      string shorthandName
+      string value
+    returns
+      array of CSSProperty longhandProperties
+
   # Returns the styles defined inline (explicitly in the "style" attribute and implicitly, using DOM
   # attributes) for a DOM node identified by `nodeId`.
   command getInlineStylesForNode
diff --git a/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom
index 5c33d5a..d272ce1 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom
@@ -333,6 +333,7 @@
   kBeforeUnload = 275,
   kBfcacheBlockingReasons = 276,
   kLayoutInstability = 277,
+  kProfiler = 278,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
index 0f662dab..6d3f1102 100644
--- a/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_css_agent.cc
@@ -82,6 +82,7 @@
 #include "third_party/blink/renderer/core/css/properties/css_property.h"
 #include "third_party/blink/renderer/core/css/properties/css_property_ref.h"
 #include "third_party/blink/renderer/core/css/properties/longhands/custom_property.h"
+#include "third_party/blink/renderer/core/css/properties/shorthand.h"
 #include "third_party/blink/renderer/core/css/property_registry.h"
 #include "third_party/blink/renderer/core/css/resolver/scoped_style_resolver.h"
 #include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
@@ -118,6 +119,7 @@
 #include "third_party/blink/renderer/core/inspector/inspector_resource_container.h"
 #include "third_party/blink/renderer/core/inspector/inspector_resource_content_loader.h"
 #include "third_party/blink/renderer/core/inspector/inspector_style_resolver.h"
+#include "third_party/blink/renderer/core/inspector/inspector_style_sheet.h"
 #include "third_party/blink/renderer/core/inspector/protocol/css.h"
 #include "third_party/blink/renderer/core/layout/hit_test_result.h"
 #include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
@@ -2064,6 +2066,56 @@
   return protocol::Response::Success();
 }
 
+protocol::Response InspectorCSSAgent::getLonghandProperties(
+    const String& shorthand_name,
+    const String& value,
+    std::unique_ptr<protocol::Array<protocol::CSS::CSSProperty>>*
+        longhand_properties) {
+  protocol::Response response = AssertEnabled();
+  if (!response.IsSuccess()) {
+    return response;
+  }
+
+  CSSPropertyID property_id =
+      CssPropertyID(/*execution_context=*/nullptr, shorthand_name);
+  if (!IsValidCSSPropertyID(property_id)) {
+    return protocol::Response::ServerError("Invalid shorthandName");
+  }
+  const CSSProperty& property = CSSProperty::Get(property_id);
+
+  CSSParserTokenStream stream(value);
+
+  const CSSParserContext* parser_context =
+      MakeGarbageCollected<CSSParserContext>(kHTMLStandardMode,
+                                             SecureContextMode::kSecureContext);
+  const auto local_context =
+      CSSParserLocalContext().WithCurrentShorthand(property.PropertyID());
+
+  HeapVector<CSSPropertyValue, 64> css_longhand_properties;
+  const auto* shorthand = DynamicTo<Shorthand>(property);
+  if (!shorthand) {
+    return protocol::Response::ServerError("Invalid shorthandName");
+  }
+  bool res = shorthand->ParseShorthand(false, stream, *parser_context,
+                                       local_context, css_longhand_properties);
+  if (!res) {
+    return protocol::Response::ServerError("Error parsing shorthand.");
+  }
+
+  *longhand_properties =
+      std::make_unique<protocol::Array<protocol::CSS::CSSProperty>>();
+  for (auto longhand_property : css_longhand_properties) {
+    std::unique_ptr<protocol::CSS::CSSProperty> protocol_longhand =
+        protocol::CSS::CSSProperty::create()
+            .setName(longhand_property.Name().ToAtomicString())
+            .setValue(longhand_property.Value().CssText())
+            .build();
+    (*longhand_properties)->emplace_back(std::move(protocol_longhand));
+  }
+
+  return protocol::Response::Success();
+}
+
 void InspectorCSSAgent::CollectPlatformFontsForLayoutObject(
     LayoutObject* layout_object,
     HashMap<std::pair<int, String>, std::pair<int, String>>* font_stats,
diff --git a/third_party/blink/renderer/core/inspector/inspector_css_agent.h b/third_party/blink/renderer/core/inspector/inspector_css_agent.h
index 2c9d935a..52a67e9 100644
--- a/third_party/blink/renderer/core/inspector/inspector_css_agent.h
+++ b/third_party/blink/renderer/core/inspector/inspector_css_agent.h
@@ -199,6 +199,11 @@
       std::optional<protocol::DOM::PseudoType> pseudo_type,
       std::optional<String> pseudo_identifier,
       std::unique_ptr<protocol::Array<String>>* results) override;
+  protocol::Response getLonghandProperties(
+      const String& shorthand_name,
+      const String& value,
+      std::unique_ptr<protocol::Array<protocol::CSS::CSSProperty>>*
+          longhand_properties) override;
   protocol::Response getPlatformFontsForNode(
       int node_id,
       std::unique_ptr<protocol::Array<protocol::CSS::PlatformFontUsage>>* fonts)
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
index a3f13e8..e12bbfad 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -2512,6 +2512,59 @@
 }
 
 TEST_P(CanvasRenderingContext2DTestAccelerated,
+       DisablingAccelerationWhileHibernationIsPendingAbortsHibernation) {
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
+
+  CreateContext(kNonOpaque);
+  CanvasElement().GetOrCreateCanvasResourceProvider(RasterModeHint::kPreferGPU);
+  ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kGPU);
+
+  // Install a minimal delay for testing to ensure that the test remains fast
+  // to execute.
+  CanvasElement().GetHibernationHandler()->SetBeforeCompressionDelayForTesting(
+      base::Microseconds(10));
+
+  ASSERT_FALSE(CanvasElement().IsHibernating());
+
+  // Verify that going to the background triggers hibernation asynchronously.
+  {
+    base::HistogramTester histogram_tester;
+    GetDocument().GetPage()->SetVisibilityState(
+        mojom::blink::PageVisibilityState::kHidden,
+        /*is_initial_state=*/false);
+
+    histogram_tester.ExpectUniqueSample(
+        "Blink.Canvas.HibernationEvents",
+        CanvasHibernationHandler::HibernationEvent::kHibernationScheduled, 1);
+    ASSERT_FALSE(CanvasElement().IsHibernating());
+  }
+
+  CanvasElement().DisableAcceleration();
+  ASSERT_EQ(CanvasElement().GetRasterMode(), RasterMode::kCPU);
+
+  // Verify that running the hibernation task aborts hibernation as
+  // disabling acceleration has caused the hibernation handler to be destroyed.
+  {
+    base::HistogramTester histogram_tester;
+
+    // Run the task that initiates hibernation, which has been posted as an idle
+    // task.
+    ThreadScheduler::Current()
+        ->ToMainThreadScheduler()
+        ->StartIdlePeriodForTesting();
+    blink::test::RunPendingTasks();
+
+    histogram_tester.ExpectUniqueSample(
+        "Blink.Canvas.HibernationEvents",
+        CanvasHibernationHandler::HibernationEvent::
+            kHibernationAbortedDueToDestructionWhileHibernatePending,
+        1);
+    EXPECT_FALSE(CanvasElement().IsHibernating());
+  }
+}
+
+TEST_P(CanvasRenderingContext2DTestAccelerated,
        ForegroundingWhileHibernationIsPendingAbortsHibernation) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitWithFeatures({features::kCanvas2DHibernation}, {});
diff --git a/third_party/blink/renderer/modules/webaudio/DEPS b/third_party/blink/renderer/modules/webaudio/DEPS
index 1ec448c..420b1720 100644
--- a/third_party/blink/renderer/modules/webaudio/DEPS
+++ b/third_party/blink/renderer/modules/webaudio/DEPS
@@ -1,6 +1,5 @@
 include_rules = [
     "+media/base",
-    "+media/mojo",
     "+services/metrics/public/cpp/ukm_builders.h",
     "+services/metrics/public/cpp/ukm_recorder.h",
     "-third_party/blink/renderer/modules",
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
index 239f9f5..6fe6638e 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -9,7 +9,6 @@
 #include "build/build_config.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
-#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/common/mediastream/media_devices.h"
 #include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
@@ -43,7 +42,6 @@
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
-#include "third_party/blink/renderer/platform/media/player_id_generator.h"
 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
 #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
@@ -272,11 +270,7 @@
           !GetExecutionContext()->IsFeatureEnabled(
               mojom::blink::PermissionsPolicyFeature::
                   kMediaPlaybackWhileNotVisible,
-              ReportOptions::kDoNotReport)),
-      player_id_(GetNextMediaPlayerId()),
-      media_player_host_(&window),
-      media_player_receiver_(this, &window),
-      media_player_observer_(&window) {
+              ReportOptions::kDoNotReport)) {
   RecordAudioContextOperation(AudioContextOperation::kCreate);
   SendLogMessage(__func__, GetAudioContextLogString(latency_hint, sample_rate));
 
@@ -392,9 +386,6 @@
   visitor->Trace(media_device_service_);
   visitor->Trace(media_device_service_receiver_);
   visitor->Trace(v8_sink_id_);
-  visitor->Trace(media_player_host_);
-  visitor->Trace(media_player_receiver_);
-  visitor->Trace(media_player_observer_);
   BaseAudioContext::Trace(visitor);
   FrameVisibilityObserver::Trace(visitor);
 }
@@ -629,10 +620,6 @@
   }
 }
 
-void AudioContext::SetVolumeMultiplier(double multiplier) {
-  volume_multiplier_ = multiplier;
-}
-
 double AudioContext::baseLatency() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_);
   DCHECK(destination());
@@ -931,14 +918,6 @@
   if (audio_context_manager_.is_bound()) {
     audio_context_manager_->AudioContextAudiblePlaybackStarted(context_id_);
   }
-
-  EnsureMediaPlayerConnection();
-  if (media_player_observer_.is_bound()) {
-    media_player_observer_->OnMediaMetadataChanged(
-        /*has_audio=*/true, /*has_video=*/false,
-        media::MediaContentType::kAmbient);
-    media_player_observer_->OnMediaPlaying();
-  }
 }
 
 void AudioContext::HandlePostRenderTasks() {
@@ -987,12 +966,6 @@
   }
 }
 
-void AudioContext::HandleVolumeMultiplier(AudioBus* destination_bus) {
-  if (volume_multiplier_ != 1.0) {
-    destination_bus->Scale(volume_multiplier_);
-  }
-}
-
 void AudioContext::ResolvePromisesForUnpause() {
   // This runs inside the BaseAudioContext's lock when handling pre-render
   // tasks.
@@ -1019,13 +992,6 @@
   if (audio_context_manager_.is_bound()) {
     audio_context_manager_->AudioContextAudiblePlaybackStopped(context_id_);
   }
-
-  EnsureMediaPlayerConnection();
-  if (media_player_observer_.is_bound()) {
-    media_player_observer_->OnMediaMetadataChanged(
-        /*has_audio=*/false, /*has_video=*/false,
-        media::MediaContentType::kAmbient);
-  }
 }
 
 void AudioContext::EnsureAudioContextManagerService() {
@@ -1455,33 +1421,4 @@
   return window->GetFrame();
 }
 
-void AudioContext::EnsureMediaPlayerConnection() {
-  if (media_player_host_.is_bound() || !GetWindow()) {
-    return;
-  }
-
-  GetWindow()
-      ->GetFrame()
-      ->GetRemoteNavigationAssociatedInterfaces()
-      ->GetInterface(media_player_host_.BindNewEndpointAndPassReceiver(
-          GetWindow()->GetTaskRunner(TaskType::kInternalMedia)));
-  media_player_host_.set_disconnect_handler(WTF::BindOnce(
-      &AudioContext::OnMediaPlayerDisconnect, WrapWeakPersistent(this)));
-
-  media_player_host_->OnMediaPlayerAdded(
-      media_player_receiver_.BindNewEndpointAndPassRemote(
-          GetWindow()->GetTaskRunner(TaskType::kInternalMedia)),
-      media_player_observer_.BindNewEndpointAndPassReceiver(
-          GetWindow()->GetTaskRunner(TaskType::kInternalMedia)),
-      player_id_);
-  media_player_observer_.set_disconnect_handler(WTF::BindOnce(
-      &AudioContext::OnMediaPlayerDisconnect, WrapWeakPersistent(this)));
-}
-
-void AudioContext::OnMediaPlayerDisconnect() {
-  media_player_host_.reset();
-  media_player_observer_.reset();
-  volume_multiplier_ = 1.0;
-}
-
 }  // namespace blink
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.h b/third_party/blink/renderer/modules/webaudio/audio_context.h
index 2b309088..cbaab8d 100644
--- a/third_party/blink/renderer/modules/webaudio/audio_context.h
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.h
@@ -7,7 +7,6 @@
 
 #include "base/gtest_prod_util.h"
 #include "base/time/time.h"
-#include "media/mojo/mojom/media_player.mojom-blink.h"
 #include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
 #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
 #include "third_party/blink/public/mojom/webaudio/audio_context_manager.mojom-blink.h"
@@ -25,8 +24,6 @@
 #include "third_party/blink/renderer/platform/heap/collection_support/heap_deque.h"
 #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
 #include "third_party/blink/renderer/platform/heap/self_keep_alive.h"
-#include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_receiver.h"
-#include "third_party/blink/renderer/platform/mojo/heap_mojo_associated_remote.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
 #include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
 #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
@@ -54,8 +51,7 @@
     : public BaseAudioContext,
       public mojom::blink::PermissionObserver,
       public mojom::blink::MediaDevicesListener,
-      public FrameVisibilityObserver,
-      public media::mojom::blink::MediaPlayer {
+      public FrameVisibilityObserver {
   DEFINE_WRAPPERTYPEINFO();
 
  public:
@@ -109,23 +105,6 @@
   void FrameVisibilityChanged(
       mojom::blink::FrameVisibility frame_visibility) override;
 
-  // media::mojom::MediaPlayer  implementation.
-  void RequestPlay() override {}
-  void RequestPause(bool triggered_by_user) override {}
-  void RequestSeekForward(base::TimeDelta seek_time) override {}
-  void RequestSeekBackward(base::TimeDelta seek_time) override {}
-  void RequestSeekTo(base::TimeDelta seek_time) override {}
-  void RequestEnterPictureInPicture() override {}
-  void RequestMute(bool mute) override {}
-  void SetVolumeMultiplier(double multiplier) override;
-  void SetPersistentState(bool persistent) override {}
-  void SetPowerExperimentState(bool enabled) override {}
-  void SetAudioSinkId(const String&) override {}
-  void SuspendForFrameClosed() override {}
-  void RequestMediaRemoting() override {}
-  void RequestVisibility(
-      RequestVisibilityCallback request_visibility_cb) override {}
-
   // https://webaudio.github.io/web-audio-api/#AudioContext
   double baseLatency() const;
   double outputLatency() const;
@@ -154,10 +133,6 @@
 
   void HandleAudibility(AudioBus* destination_bus);
 
-  // Adjusts the output volume of the rendered audio in case we are being
-  // ducked.
-  void HandleVolumeMultiplier(AudioBus* destination_bus);
-
   AudioCallbackMetric GetCallbackMetric() const;
 
   // Returns the audio buffer duration of the output driving playout of
@@ -311,12 +286,6 @@
 
   LocalFrame* GetLocalFrame() const;
 
-  // Connects to the MediaPlayerHost to register as a media player.
-  void EnsureMediaPlayerConnection();
-
-  // Handles a disconnection from the MediaPlayerHost.
-  void OnMediaPlayerDisconnect();
-
   // https://webaudio.github.io/web-audio-api/#dom-audiocontext-suspended-by-user-slot
   bool suspended_by_user_ = false;
 
@@ -442,20 +411,6 @@
   int pending_device_list_updates_
       GUARDED_BY_CONTEXT(main_thread_sequence_checker_) = 0;
 
-  // ID used for mojo communication with the MediaPlayerHost.
-  const int player_id_;
-
-  // Volume multiplier applied to audio output. Used to duck audio when the
-  // MediaPlayerHost requests ducking.
-  double volume_multiplier_ = 1.0;
-
-  HeapMojoAssociatedRemote<media::mojom::blink::MediaPlayerHost>
-      media_player_host_;
-  HeapMojoAssociatedReceiver<media::mojom::blink::MediaPlayer, AudioContext>
-      media_player_receiver_;
-  HeapMojoAssociatedRemote<media::mojom::blink::MediaPlayerObserver>
-      media_player_observer_;
-
   SEQUENCE_CHECKER(main_thread_sequence_checker_);
 };
 
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_audio_destination_handler.cc b/third_party/blink/renderer/modules/webaudio/realtime_audio_destination_handler.cc
index def09a6..e2fe11c 100644
--- a/third_party/blink/renderer/modules/webaudio/realtime_audio_destination_handler.cc
+++ b/third_party/blink/renderer/modules/webaudio/realtime_audio_destination_handler.cc
@@ -263,8 +263,6 @@
 
   context->HandlePostRenderTasks();
 
-  context->HandleVolumeMultiplier(destination_bus);
-
   context->HandleAudibility(destination_bus);
 
   // Advances the current sample-frame.
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_queue.cc b/third_party/blink/renderer/modules/webgpu/gpu_queue.cc
index 62bf2977..5164e7a 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_queue.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_queue.cc
@@ -259,15 +259,27 @@
 
   // TODO(crbug.com/1471372): It would be better if GetSourceImageForCanvas()
   // would always return a StaticBitmapImage.
+  sk_sp<SkImage> sk_image = nullptr;
+  bool image_is_default_orientation = image_for_canvas->HasDefaultOrientation();
   if (auto* image = DynamicTo<StaticBitmapImage>(image_for_canvas.get())) {
-    external_source.image = image;
+    if (image_is_default_orientation) {
+      external_source.image = image;
+    } else {
+      // Handle non default orientation for StaticBitmapImage and ensure
+      // it is not texture backed.
+      sk_image = image->PaintImageForCurrentFrame().GetSwSkImage();
+
+      if (!sk_image) {
+        return external_source;
+      }
+    }
   } else {
     // HTMLImageElement input
     ImageExtractor image_extractor(image_for_canvas.get(),
                                    external_image_dst_info.premultiplied_alpha,
                                    PredefinedColorSpaceToSkColorSpace(
                                        external_image_dst_info.color_space));
-    auto sk_image = image_extractor.GetSkImage();
+    sk_image = image_extractor.GetSkImage();
 
     if (!sk_image) {
       return external_source;
@@ -283,10 +295,36 @@
 
       sk_image = SkImages::RasterFromBitmap(bitmap);
     }
-
-    external_source.image = UnacceleratedStaticBitmapImage::Create(
-        std::move(sk_image), image_for_canvas->CurrentFrameOrientation());
   }
+
+  if (sk_image) {
+    CHECK(!external_source.image);
+
+    // Create UnacceleratedStaticBitmapImage to create a most suitable
+    // PaintImageBuilder. Use the builder to create PaintImage internally.
+    // Store the orientation metadata but no transforms apply to the content.
+    auto image = UnacceleratedStaticBitmapImage::Create(
+        std::move(sk_image), image_for_canvas->CurrentFrameOrientation());
+
+    // Recruit Image::ResizeAndOrientImage() to apply transformation based on
+    // orientation metadata. This API helps rotate contents based on orientation
+    // metadata. After the transformation, reading content in default
+    // orientation get the transformed results. Recreate unaccelerated static
+    // bitmap with the transformed content with default orientation for post
+    // processing.
+    if (!image_is_default_orientation) {
+      PaintImage paint_image = image->PaintImageForCurrentFrame();
+      paint_image = Image::ResizeAndOrientImage(
+          paint_image, image_for_canvas->CurrentFrameOrientation(),
+          gfx::Vector2dF(1, 1), 1, kInterpolationNone);
+
+      // Have default orientation now.
+      image = UnacceleratedStaticBitmapImage::Create(std::move(paint_image));
+    }
+
+    external_source.image = image;
+  }
+
   external_source.width = static_cast<uint32_t>(external_source.image->width());
   external_source.height =
       static_cast<uint32_t>(external_source.image->height());
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 d3c7c59d..78a2850 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
+++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
@@ -549,9 +549,9 @@
   return true;
 }
 
-bool DrawingBuffer::FinishPrepareTransferableResourceGpu(
-    viz::TransferableResource* out_resource,
-    scoped_refptr<gpu::ClientSharedImage>* client_si,
+scoped_refptr<gpu::ClientSharedImage>
+DrawingBuffer::ExportSharedImageFromBackBuffer(
+    gpu::SyncToken& sync_token,
     viz::ReleaseCallback* out_release_callback) {
   DCHECK(state_restorer_);
   if (webgl_version_ > kWebGL1) {
@@ -570,7 +570,7 @@
     back_color_buffer_ = CreateOrRecycleColorBuffer();
     if (!back_color_buffer_) {
       // Context is likely lost.
-      return false;
+      return nullptr;
     }
     AttachColorBufferToReadFramebuffer();
 
@@ -593,7 +593,7 @@
     color_buffer_for_mailbox = CreateOrRecycleColorBuffer();
     if (!color_buffer_for_mailbox) {
       // Context is likely lost.
-      return false;
+      return nullptr;
     }
     gl_->CopySubTextureCHROMIUM(
         back_color_buffer_->texture_id(), 0,
@@ -616,6 +616,7 @@
     // there are implicit flushes between contexts at the lowest level.
     color_buffer_for_mailbox->produce_sync_token =
         color_buffer_for_mailbox->EndAccess();
+    sync_token = color_buffer_for_mailbox->produce_sync_token;
 #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_ANDROID)
     // Needed for GPU back-pressure on macOS and Android. Used to be in the
     // middle of the commands above; try to move it to the bottom to allow them
@@ -624,12 +625,8 @@
 #endif
   }
 
-  // Populate the output SharedImage and callback.
+  // Populate the output callback.
   {
-    if (client_si) {
-      *client_si = color_buffer_for_mailbox->shared_image;
-    }
-
     // This holds a ref on the DrawingBuffer that will keep it alive until the
     // mailbox is released (and while the release callback is running).
     auto func = base::BindOnce(&DrawingBuffer::NotifyMailboxReleasedGpu,
@@ -646,19 +643,33 @@
     SetBufferClearNeeded(true);
   }
 
+  return color_buffer_for_mailbox->shared_image;
+}
+
+bool DrawingBuffer::FinishPrepareTransferableResourceGpu(
+    viz::TransferableResource* out_resource,
+    scoped_refptr<gpu::ClientSharedImage>* client_si,
+    viz::ReleaseCallback* out_release_callback) {
+  gpu::SyncToken sync_token;
+  auto shared_image =
+      ExportSharedImageFromBackBuffer(sync_token, out_release_callback);
+  if (!shared_image) {
+    return false;
+  }
+
+  if (client_si) {
+    *client_si = shared_image;
+  }
+
   // Populate the output TransferableResource.
   *out_resource = viz::TransferableResource::MakeGpu(
-      front_color_buffer_->shared_image,
-      front_color_buffer_->shared_image->GetTextureTarget(),
-      front_color_buffer_->produce_sync_token,
-      front_color_buffer_->shared_image->size(),
-      front_color_buffer_->shared_image->format(),
-      front_color_buffer_->shared_image->usage().Has(
-          gpu::SHARED_IMAGE_USAGE_SCANOUT),
+      shared_image, shared_image->GetTextureTarget(), sync_token,
+      shared_image->size(), shared_image->format(),
+      shared_image->usage().Has(gpu::SHARED_IMAGE_USAGE_SCANOUT),
       viz::TransferableResource::ResourceSource::kDrawingBuffer);
-  out_resource->color_space = front_color_buffer_->shared_image->color_space();
+  out_resource->color_space = shared_image->color_space();
   out_resource->hdr_metadata = hdr_metadata_;
-  out_resource->origin = front_color_buffer_->shared_image->surface_origin();
+  out_resource->origin = shared_image->surface_origin();
 
   return true;
 }
@@ -748,10 +759,10 @@
     return UnacceleratedStaticBitmapImage::Create(black_image);
   }
 
-  DCHECK(release_callback);
-  DCHECK_EQ(size_.width(), transferable_resource.size.width());
-  DCHECK_EQ(size_.height(), transferable_resource.size.height());
   CHECK(client_si);
+  DCHECK(release_callback);
+  DCHECK_EQ(size_.width(), client_si->size().width());
+  DCHECK_EQ(size_.height(), client_si->size().height());
 
   // Use the sync token generated after producing the mailbox. Waiting for this
   // before trying to use the mailbox with some other context will ensure it is
@@ -761,7 +772,7 @@
   const auto& sk_image_sync_token = transferable_resource.sync_token();
 
   auto sk_color_type = viz::ToClosestSkColorType(
-      /*gpu_compositing=*/true, transferable_resource.format);
+      /*gpu_compositing=*/true, client_si->format());
 
   const SkImageInfo sk_image_info = SkImageInfo::Make(
       size_.width(), size_.height(), sk_color_type, kPremul_SkAlphaType);
@@ -769,14 +780,15 @@
   // TODO(xidachen): Create a small pool of recycled textures from
   // ImageBitmapRenderingContext's transferFromImageBitmap, and try to use them
   // in DrawingBuffer.
+  bool is_overlay_candidate =
+      client_si->usage().Has(gpu::SHARED_IMAGE_USAGE_SCANOUT);
   return AcceleratedStaticBitmapImage::CreateFromCanvasSharedImage(
       std::move(client_si), sk_image_sync_token,
       /* shared_image_texture_id = */ 0, sk_image_info,
       context_provider_->GetWeakPtr(), base::PlatformThread::CurrentRef(),
       ThreadScheduler::Current()->CleanupTaskRunner(),
       std::move(release_callback),
-      /*supports_display_compositing=*/true,
-      transferable_resource.is_overlay_candidate);
+      /*supports_display_compositing=*/true, is_overlay_candidate);
 }
 
 scoped_refptr<DrawingBuffer::ColorBuffer>
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
index d4f33bda..42afe36 100644
--- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
+++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h
@@ -513,7 +513,26 @@
   CheckForDestructionResult CheckForDestructionAndChangeAndResolveIfNeeded(
       DiscardBehavior discardBehavior);
 
-  // Helper functions to be called only by PrepareTransferableResourceInternal.
+  // Helper functions to be called when exporting the backbuffer's contents to
+  // other APIs/use cases.
+  //
+  // Exports a SharedImage holding the backbuffer's contents for external
+  // usage:
+  // * Ensures that the backbuffer's contents are up-to-date.
+  // * If the backbuffer's contents need to be preserved, copies the
+  //   backbuffer's contents into a newly allocated/recycled buffer and
+  //   exports the SharedImage from that buffer. Otherwise exports the
+  //   backbuffer's SharedImage directly and allocates/recycles a new
+  //   buffer to serve as the backbuffer.
+  // * Ends DrawingBuffer's GL access on the SharedImage of the buffer being
+  //   exported.
+  // * Changes `front_color_buffer_` to point to the buffer being exported.
+  // * Saves a ref on the buffer being exported in `out_release_callback`,
+  //   which should be invoked when the buffer's SharedImage is available for
+  //   reuse by WebGL after the external usage finishes.
+  scoped_refptr<gpu::ClientSharedImage> ExportSharedImageFromBackBuffer(
+      gpu::SyncToken& sync_token,
+      viz::ReleaseCallback* out_release_callback);
   bool FinishPrepareTransferableResourceGpu(
       viz::TransferableResource* out_resource,
       scoped_refptr<gpu::ClientSharedImage>* client_si,
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 8696aab..afb953f 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -215,20 +215,11 @@
     "platforms": ["Linux", "Mac", "Win"],
     "bases": ["http/tests/inspector-protocol/attribution-reporting"],
     "exclusive_tests": "ALL",
-    "args": ["--enable-features=KeepAliveInBrowserMigration,AttributionReportingInBrowserMigration,AttributionScopes"],
+    "args": ["--enable-features=KeepAliveInBrowserMigration,AttributionReportingInBrowserMigration"],
     "owners": ["linnan@chromium.org"],
     "expires": "Jul 2, 2025"
   },
   {
-    "prefix": "attribution-reporting-attribution-scopes",
-    "platforms": ["Linux", "Mac", "Win"],
-    "bases": ["http/tests/inspector-protocol/attribution-reporting"],
-    "exclusive_tests": "ALL",
-    "args": ["--enable-features=AttributionScopes"],
-    "owners": ["tquintanilla@chromium.org"],
-    "expires": "Jul 2, 2025"
-  },
-  {
     "prefix": "attribution-reporting-debug-mode",
     "owners": ["johnidel@chromium.org"],
     "platforms": ["Linux", "Mac", "Win"],
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-size-adjust-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-size-adjust-valid-expected.txt
index 6ee62c44..ff4ac01 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-size-adjust-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-size-adjust-valid-expected.txt
@@ -2,3 +2,4 @@
 [FAIL] e.style['font-size-adjust'] = "cap-height calc(10 + (sign(20cqw - 10px) * 5))" should set the property value
   assert_equals: serialization should be canonical expected "cap-height calc(10 + (5 * sign(20cqw - 10px)))" but got "cap-height calc(10 + sign(20cqw - 10px) * 5)"
 Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-stretch-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-stretch-valid-expected.txt
index f9cbe94..7395d93 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-stretch-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-stretch-valid-expected.txt
@@ -2,3 +2,4 @@
 [FAIL] e.style['font-stretch'] = "calc(100% + (sign(20cqw - 10px) * 5%))" should set the property value
   assert_equals: serialization should be canonical expected "calc(100% + (5% * sign(20cqw - 10px)))" but got "calc(100% + sign(20cqw - 10px) * 5%)"
 Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-computed-expected.txt
index c700aa89..7ac9365 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-computed-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-computed-expected.txt
@@ -4,3 +4,4 @@
 [FAIL] Property font-style value 'oblique 0deg'
   assert_equals: expected "oblique 0deg" but got "normal"
 Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-valid-expected.txt
index c7d93284..47def606 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-style-valid-expected.txt
@@ -6,3 +6,4 @@
 [FAIL] e.style['font-style'] = "oblique calc(30deg + (sign(2cqw - 10px) * 5deg))" should set the property value
   assert_equals: serialization should be canonical expected "oblique calc(30deg + (5deg * sign(2cqw - 10px)))" but got "oblique calc(30deg + sign(2cqw - 10px) * 5deg)"
 Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-valid-expected.txt
index ea11eae..acb0215 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-weight-valid-expected.txt
@@ -2,3 +2,4 @@
 [FAIL] e.style['font-weight'] = "calc(100 + (sign(20cqw - 10px) * 5))" should set the property value
   assert_equals: serialization should be canonical expected "calc(100 + (5 * sign(20cqw - 10px)))" but got "calc(100 + sign(20cqw - 10px) * 5)"
 Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties-expected.txt b/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties-expected.txt
new file mode 100644
index 0000000..548ddbde
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties-expected.txt
@@ -0,0 +1,83 @@
+Test css.getLonghandProperties method
+
+Running test: testInvalidProperty
+Test getLonghandPropertiesFont for non-existing property
+marg: 10px 50px 20px 0
+Resolved longands:
+{"code":-32000,"message":"Invalid shorthandName"}
+
+Running test: testInvalidValue
+Test getLonghandPropertiesFont for invalid value
+font: italic small cursive
+Resolved longands:
+font-style: italic
+font-variant-caps: normal
+font-variant-ligatures: normal
+font-variant-numeric: normal
+font-variant-east-asian: normal
+font-variant-alternates: normal
+font-size-adjust: none
+font-kerning: auto
+font-optical-sizing: auto
+font-feature-settings: normal
+font-variation-settings: normal
+font-variant-position: normal
+font-variant-emoji: normal
+font-weight: normal
+font-stretch: normal
+font-size: small
+line-height: normal
+font-family: cursive
+
+Running test: testLonghandValue
+Test getLonghandPropertiesFont for longhand property
+font-style: italic
+Resolved longands:
+{"code":-32000,"message":"Invalid shorthandName"}
+
+Running test: testFontProperty
+Test getLonghandPropertiesFont for font property
+font: italic small-caps bold 16px/2 cursive
+Resolved longands:
+font-style: italic
+font-variant-caps: small-caps
+font-variant-ligatures: normal
+font-variant-numeric: normal
+font-variant-east-asian: normal
+font-variant-alternates: normal
+font-size-adjust: none
+font-kerning: auto
+font-optical-sizing: auto
+font-feature-settings: normal
+font-variation-settings: normal
+font-variant-position: normal
+font-variant-emoji: normal
+font-weight: bold
+font-stretch: normal
+font-size: 16px
+line-height: 2
+font-family: cursive
+
+Running test: testMarginProperty
+Test getLonghandPropertiesFont for margin property
+margin: 10px 50px 20px 0
+Resolved longands:
+margin-top: 10px
+margin-right: 50px
+margin-bottom: 20px
+margin-left: 0px
+
+Running test: testBackgroundProperty
+Test getLonghandPropertiesFont for background property
+background: center / contain no-repeat url("../../media/examples/firefox-logo.svg"), #eee 35% url("../../media/examples/lizard.png")
+Resolved longands:
+background-image: url("../../media/examples/firefox-logo.svg"), url("../../media/examples/lizard.png")
+background-position-x: center, 35%
+background-position-y: center, center
+background-size: contain, initial
+background-repeat: no-repeat, initial
+background-attachment: initial, initial
+background-origin: initial, initial
+background-clip: initial, initial
+background-color: rgb(238, 238, 238)
+
diff --git a/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties.js b/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties.js
new file mode 100644
index 0000000..d2296058
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/css/css-get-longhand-properties.js
@@ -0,0 +1,51 @@
+(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
+
+  var {page, session, dp} = await testRunner.startHTML(`<div></div>`, 'Test css.getLonghandProperties method');
+
+  await dp.DOM.enable();
+  await dp.CSS.enable();
+
+  function print(shorthandName, value, response) {
+    testRunner.log(shorthandName + ": " + value);
+    testRunner.log("Resolved longands:");
+    if (response.error) {
+      testRunner.log(JSON.stringify(response.error));
+    } else {
+      response.result.longhandProperties.forEach((longhandProperty) => {
+        testRunner.log(longhandProperty["name"] + ": " + longhandProperty["value"]);
+      });
+    }
+  }
+
+  async function testGetLonghandProperties(value, shorthandName) {
+    var response = await dp.CSS.getLonghandProperties({shorthandName: shorthandName, value: value});
+    print(shorthandName, value, response);
+  }
+
+  testRunner.runTestSuite([
+    async function testInvalidProperty() {
+      testRunner.log('Test getLonghandPropertiesFont for non-existing property');
+      await testGetLonghandProperties('10px 50px 20px 0', 'marg');
+    },
+    async function testInvalidValue() {
+      testRunner.log('Test getLonghandPropertiesFont for invalid value');
+      await testGetLonghandProperties('italic small cursive', 'font');
+    },
+    async function testLonghandValue() {
+      testRunner.log('Test getLonghandPropertiesFont for longhand property');
+      await testGetLonghandProperties('italic', 'font-style');
+    },
+    async function testFontProperty() {
+      testRunner.log('Test getLonghandPropertiesFont for font property');
+      await testGetLonghandProperties('italic small-caps bold 16px/2 cursive', 'font');
+    },
+    async function testMarginProperty() {
+      testRunner.log('Test getLonghandPropertiesFont for margin property');
+      await testGetLonghandProperties('10px 50px 20px 0', 'margin');
+    },
+    async function testBackgroundProperty() {
+      testRunner.log('Test getLonghandPropertiesFont for background property');
+      await testGetLonghandProperties('center / contain no-repeat url("../../media/examples/firefox-logo.svg"), #eee 35% url("../../media/examples/lizard.png")', 'background');
+    },
+  ]);
+});
\ No newline at end of file
diff --git a/third_party/blink/web_tests/virtual/attribution-reporting-attribution-scopes/README.md b/third_party/blink/web_tests/virtual/attribution-reporting-attribution-scopes/README.md
deleted file mode 100644
index b0550cc..0000000
--- a/third_party/blink/web_tests/virtual/attribution-reporting-attribution-scopes/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Tests for Attribution Reporting APIs with attribution scopes enabled
-
-This virtual test suite covers a subset of Attribution Reporting APIs tests with
-the `AttributionScopes` flag enabled.
-
-This flag enables a new flow where attribution registrations can include fields
-pertaining to attribution scopes, allowing for more finely-grained
-pre-attribution source filtering.
-
-The suite only covers tests related to DevTools reporting.
diff --git a/third_party/cronet_android_mainline_clang/3pp/3pp.pb b/third_party/cronet_android_mainline_clang/3pp/3pp.pb
index 0df3903..b0ec7c8 100644
--- a/third_party/cronet_android_mainline_clang/3pp/3pp.pb
+++ b/third_party/cronet_android_mainline_clang/3pp/3pp.pb
@@ -1,8 +1,8 @@
 create {
   source {
     url {
-      download_url: "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/main/clang-r522817.tar.gz"
-      version: "clang-r522817"
+      download_url: "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/main/clang-r536225.tar.gz"
+      version: "clang-r536225"
       extension: ".gz"
     }
     patch_version: "cr1"
diff --git a/third_party/cronet_android_mainline_clang/README.chromium b/third_party/cronet_android_mainline_clang/README.chromium
index d49bee4c..dc0a24de 100644
--- a/third_party/cronet_android_mainline_clang/README.chromium
+++ b/third_party/cronet_android_mainline_clang/README.chromium
@@ -1,6 +1,6 @@
 Name: cronet_android_mainline_clang
 URL: https://clang.llvm.org/
-Version: clang-r522817
+Version: clang-r536225
 License: Apache 2.0
 License File: LICENSE
 Security Critical: no
diff --git a/third_party/dawn b/third_party/dawn
index 3f908f3..6b0812e 160000
--- a/third_party/dawn
+++ b/third_party/dawn
@@ -1 +1 @@
-Subproject commit 3f908f3907e532481e4c91d3b814b46869405fe8
+Subproject commit 6b0812ec42b723b52efa7a8294a841c0299e8de8
diff --git a/third_party/leveldatabase/src b/third_party/leveldatabase/src
index 23e35d7..578eeb7 160000
--- a/third_party/leveldatabase/src
+++ b/third_party/leveldatabase/src
@@ -1 +1 @@
-Subproject commit 23e35d792b9154f922b8b575b12596a4d8664c65
+Subproject commit 578eeb702ec0fbb6b9780f3d4147b1076630d633
diff --git a/third_party/llvm-libc/src b/third_party/llvm-libc/src
index d7c6ddd..b0c04a4 160000
--- a/third_party/llvm-libc/src
+++ b/third_party/llvm-libc/src
@@ -1 +1 @@
-Subproject commit d7c6dddc045ba4080880d43c34a2d9c2ce5c600f
+Subproject commit b0c04a4ce44caf3bcb5dffc315d7cc58c20f4ba7
diff --git a/third_party/nyx-packer/README.chromium b/third_party/nyx-packer/README.chromium
index 499eb45d..4468728 100644
--- a/third_party/nyx-packer/README.chromium
+++ b/third_party/nyx-packer/README.chromium
@@ -1,7 +1,7 @@
 Name: Nyx Packer
 Short Name: nyx-packer
 URL: https://github.com/nyx-fuzz/packer
-Version: 0
+Version: N/A
 Date: 2022-08-05
 Revision: a2403befd860415725d0b6d64df69fd000aca541
 License: MIT
diff --git a/third_party/perfetto b/third_party/perfetto
index 522ede1..aa33545 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit 522ede17aa6880e302642a4147b9f511d15ddd8e
+Subproject commit aa335456a8b3c7fb70ec60f6c6f4c455c7efdcf3
diff --git a/third_party/qcms/BUILD.gn b/third_party/qcms/BUILD.gn
deleted file mode 100644
index b4b54fd..0000000
--- a/third_party/qcms/BUILD.gn
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 2014 The Chromium Authors
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//testing/libfuzzer/fuzzer_test.gni")
-
-config("qcms_config") {
-  include_dirs = [ "src" ]
-}
-
-disable_qcms = false
-
-static_library("qcms") {
-  if (disable_qcms) {
-    sources = [ "src/empty.c" ]
-  } else {
-    sources = [
-      "src/chain.c",
-      "src/chain.h",
-      "src/iccread.c",
-      "src/matrix.c",
-      "src/matrix.h",
-      "src/qcms.h",
-      "src/qcms_util.c",
-      "src/qcmsint.h",
-      "src/qcmstypes.h",
-      "src/transform.c",
-      "src/transform_util.c",
-      "src/transform_util.h",
-    ]
-
-    defines = []
-
-    if (current_cpu == "x86" || current_cpu == "x64") {
-      defines += [ "SSE2_ENABLE" ]
-      sources += [ "src/transform-sse2.c" ]
-    }
-
-    if (use_fuzzing_engine) {
-      defines += [ "USE_LIBFUZZER" ]
-    }
-  }
-
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  public_configs = [ ":qcms_config" ]
-
-  if (is_win) {
-    cflags = [
-      "/wd4018",  # Signed/unsigned mismatch in comparison.
-      "/wd4056",  # Overflow in floating-point constant arithmetic (INFINITY).
-      "/wd4756",  # Overflow in constant arithmetic (INFINITY).
-    ]
-  }
-}
-
-# fuzzers BUILD depends on this target. Needed for package discovery
-group("fuzzers") {
-}
-
-fuzzer_test("qcms_color_space_fuzzer") {
-  sources = [
-    "//testing/libfuzzer/fuzzers/color_space_data.h",
-    "qcms_color_space_fuzzer.cc",
-  ]
-  deps = [
-    ":qcms",
-    "//base",
-  ]
-  dict = "//testing/libfuzzer/fuzzers/dicts/icc.dict"
-  libfuzzer_options = [ "max_len=4194304" ]
-}
-
-if (!disable_qcms) {
-  executable("qcms_tests") {
-    if (current_cpu == "x86" || current_cpu == "x64") {
-      defines = [ "SSE2_ENABLE" ]
-    }
-    sources = [
-      "src/tests/qcms_test_internal_srgb.c",
-      "src/tests/qcms_test_main.c",
-      "src/tests/qcms_test_munsell.c",
-      "src/tests/qcms_test_ntsc_gamut.c",
-      "src/tests/qcms_test_output_trc.c",
-      "src/tests/qcms_test_tetra_clut_rgba.c",
-      "src/tests/qcms_test_util.c",
-    ]
-
-    deps = [
-      "//build/win:default_exe_manifest",
-      "//third_party/qcms",
-    ]
-
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    public_configs = [ ":qcms_config" ]
-  }
-}
diff --git a/third_party/qcms/DEPS b/third_party/qcms/DEPS
deleted file mode 100644
index 9fedf4a..0000000
--- a/third_party/qcms/DEPS
+++ /dev/null
@@ -1,6 +0,0 @@
-specific_include_rules = {
-  "qcms_color_space_fuzzer\.cc": [
-    "+base",
-    "+testing/libfuzzer/fuzzers",
-  ],
-}
diff --git a/third_party/qcms/DIR_METADATA b/third_party/qcms/DIR_METADATA
deleted file mode 100644
index 8498ced..0000000
--- a/third_party/qcms/DIR_METADATA
+++ /dev/null
@@ -1,7 +0,0 @@
-monorail: {
-  component: "Internals>GPU>Internals"
-}
-team_email: "graphics-dev@chromium.org"
-buganizer_public: {
-  component_id: 1456523
-}
diff --git a/third_party/qcms/OWNERS b/third_party/qcms/OWNERS
deleted file mode 100644
index 4eb0cb4..0000000
--- a/third_party/qcms/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-ccameron@chromium.org
diff --git a/third_party/qcms/README.chromium b/third_party/qcms/README.chromium
deleted file mode 100644
index 789edb0..0000000
--- a/third_party/qcms/README.chromium
+++ /dev/null
@@ -1,175 +0,0 @@
-Name: Quick Color Management System
-Short Name: qcms
-URL: https://github.com/jrmuizel/qcms/tree/v4
-Version: v4
-Date: 2012-03-13
-License: MIT
-License File: src/COPYING
-Security Critical: yes
-Shipped: yes
-
-Description:
-Contains support for applying an ICC color profile to an image.  The code is
-originally based on tinycms, re-written by Mozilla for better security and
-performance.  This copy is a source-drop from Mozilla on March 13, 2012.
-
-Local Modifications:
-Some files only have license headers in the master branch.
- - Added the same license headers to the versions brought down from the 'v4'
-   branch src URL qcms/tree/v4
-The following changes have been made since qcms was imported:
- - Add bgra output support.
- - Use HAVE_POSIX_MEMALIGN instead of HAS_POSIX_MEMALIG
-   (https://bugzilla.mozilla.org/show_bug.cgi?id=692922)
- - Applied upstream patch:
-   - https://bug752254.bugzilla.mozilla.org/attachment.cgi?id=626102
- - Applied upstream patch for sanitizing gamma table:
-   - Expanded gamma clamp range to allow 1.0.
- - Do not short-circuit bogus profile check for A2B0 or B2A0 unless v4 enabled.
- - Only reference code from transform-sse1.c and transform-sse2.c when SSE is
-   enabled.
- - Limit the use an x86-only attribute to 32-bit x86 builds.
-   - https://code.google.com/p/chromium/issues/detail?id=490016
- - Fix integer truncation warning/errors on Win64 build.
- - Apply upstream thread safety (fix) patch from
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=853169
- - Apply upstream fix for qcms_profile_from_memory from
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=969226
- - Apply upstream simplification of qcmstypes.h
-   - https://hg.mozilla.org/mozilla-central/rev/b5be94737a83
- - Check for unused tag_len in read_nested_curveType()
- - Apply qcms_transform_precacheLUT_float does not properly free dest buffer
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=701348
- - Add qcms_profile_match api
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - Add qcms_profile_get_description api
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - Convert MLUC profile description embedded nulls to '.'
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - [APPLE port] Use en-localized profile description names
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - [APPLE port] Use mmod data for profile descriptions
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - Minor variable name change: description -> description_offset
-   - https://code.google.com/p/chromium/issues/detail?id=401971
- - Avoid divisions creating sample points in the float cube LUT builder
-   - https://code.google.com/p/chromium/issues/detail?id=443863
- - Add bgra (z,y,x) sampled transform lookup table api
-   - https://code.google.com/p/chromium/issues/detail?id=443863
- - Apply upstream fix reject invalid sizes from
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=1132468
- - lut_inverse_interp16: remove odd whitespace formatting
-   - https://code.google.com/p/chromium/issues/detail?id=458024
- - lut_inverse_interp16: better handle degenerate TRC curves
-   - https://code.google.com/p/chromium/issues/detail?id=458024
- - Add vcgt tag reader and API to read its RGB gamma data
-   - https://code.google.com/p/chromium/issues/detail?id=471749
- - Consolidate loop over channels and elements in VCGT parser
-   - https://code.google.com/p/chromium/issues/detail?id=471749
- - Limit vcgt table to a maximum of 1024 entries
-   - https://code.google.com/p/chromium/issues/detail?id=471749
- - Add float to half float conversion routine
-   - https://code.google.com/p/chromium/issues/detail?id=491784
- - Use half float conversion tables (not functions)
-   - https://code.google.com/p/chromium/issues/detail?id=491784
- - Add matrix transform flag and matrix extraction api
-   - https://code.google.com/p/chromium/issues/detail?id=491826
- - Add tone reproduction curve (TRC) extraction api
-   - https://code.google.com/p/chromium/issues/detail?id=491826
- - lut_inverse_interp16: interpolate degenerate zeros in TRC curves
-   - https://code.google.com/p/chromium/issues/detail?id=458024
- - Make half float code self-contained: add halffloat.h
-   - https://code.google.com/p/chromium/issues/detail?id=491784
- - lut_inverse_interp16: fix black level inversion error
-   - https://code.google.com/p/chromium/issues/detail?id=504681
- - Apply upstream fix of uninitialized value
-   - https://github.com/jrmuizel/qcms/commit/0edb697
- - Apply Keep the output of the TRC between 0 and 1
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=764181
- - Drop SSE1 code as Chromium mandates SSE2 as a minimum requirement
-   - https://code.google.com/p/chromium/issues/detail?id=506856
- - Apply Fix potential leaks in qcms_transform_create
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=1168480
- - Apply fix for crash in qcms_transform_data_rgb_out_lut_sse1
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=1163740
- - Add SSE2 code for qcms_transform_data_rgba_out_lut_sse2
-   - https://code.google.com/p/chromium/issues/detail?id=506607
- - Turbo charge SSE2 qcms_transform_data_rgba_out_lut_sse2
-   - https://code.google.com/p/chromium/issues/detail?id=506607
- - Check matrix transforms have the same PCS
-   - https://code.google.com/p/chromium/issues/detail?id=510682
- - Apply Don't reject valid profiles with no CLUT offset
-   - https://bugzilla.mozilla.org/show_bug.cgi?id=1176551
- - Runtime detect qcms_transform_data_tetra_clut_rgba_sse2 use
-   - https://code.google.com/p/chromium/issues/detail?id=506607
- - LUT8/16 profiles with an empty CLUT are invalid
-   - https://code.google.com/p/chromium/issues/detail?id=487284
- - Caching transform prelude to save computation in V4 profiles
-   - https://code.google.com/p/chromium/issues/detail?id=506607
- - Use the caching transform prelude for non-SSE code in transform.c
-   - https://code.google.com/p/chromium/issues/detail?id=506607
- - Expand QCMS tests. Add Munsell test for transform accuracy
-   - https://code.google.com/p/chromium/issues/detail?id=532910
- - Compute RMS error from color error dE in the Munsell test
-   - https://code.google.com/p/chromium/issues/detail?id=532910
- - Store color profile version and add a version read API
-   - https://code.google.com/p/chromium/issues/detail?id=532258
- - Add support for VCGT tag formula gamma
-   - https://code.google.com/p/chromium/issues/detail?id=551568
- - Minimize transform RMS in qcms_transform_data_rgb(a)_out_lut
-   - https://code.google.com/p/chromium/issues/detail?id=532910
- - Allow negative XYZ for display profiles on the APPLE port
-   - https://code.google.com/p/chromium/issues/detail?id=562951
- - Add a color profile white point transform api
-   - https://code.google.com/p/chromium/issues/detail?id=564355
- - Compute the pole and zero values needed by lut_inverse_interp16 once
-   - https://code.google.com/p/chromium/issues/detail?id=505793
- - Store the profile media white point during iccread.c
-   - https://code.google.com/p/chromium/issues/detail?id=565222
- - Add an API to check for profile media white point
-   - https://code.google.com/p/chromium/issues/detail?id=565222
- - Add a qcms_profile_get_white_point() api
-   - https://code.google.com/p/chromium/issues/detail?id=565222
- - Set the media white point of the sRGB profile
-   - https://code.google.com/p/chromium/issues/detail?id=565222
- - Don't build QCMS on Android and iOS
-   - https://code.google.com/p/chromium/issues/detail?id=577155
- - Fix para curve tag interval paramater use
-   - https://code.google.com/p/chromium/issues/detail?id=580920
- - Verify internal sRGB profile tristimulus match the standard sRGB profile
-   - https://code.google.com/p/chromium/issues/detail?id=580917
- - Expose unsigned short version of TRC curve
-   - https://code.google.com/p/chromium/issues/detail?id=495196
- - Add qcms_profile_ntsc_relative_gamut_size api
-   - https://code.google.com/p/chromium/issues/detail?id=582870
- - Fix build issue of qcms_tests for MIPS Linux
-   - https://code.google.com/p/chromium/issues/detail?id=590227
- - Update primaries used to build internal sRGB profile
-   - https://code.google.com/p/chromium/issues/detail?id=580917
- - Update internal sRGB profile test report output
-   - https://code.google.com/p/chromium/issues/detail?id=580917
- - Add more internal sRGB profile tests
-   - https://code.google.com/p/chromium/issues/detail?id=580917
- - Fix build_output_lut to return correct data for parametric curves
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
- - Make build_output_lut output 4096 points for parametric curves
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
- - Use a static table in build_output_lut to invert para curves
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
- - Make qcms_test_output_trc handle normal gamma curves
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=600338
- - Add API to output parametric gamma curve data
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=615667
- - Fix an unitialized read in gamma curve data.
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=635042
- - Only accept valid input ranges when reading VCGT formula
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=708145
- - Fix overflow when reading parametric gamma curves
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=708143
- - Disable some asserts when running in libfuzzer
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=711418
- - Fix integer overflow in lut_inverse_interp16
-   - https://bugs.chromium.org/p/chromium/issues/detail?id=711751
-
-For the Chromium changes, since the import, in a patch format run:
-  git diff b8456f38 src
diff --git a/third_party/qcms/qcms_color_space_fuzzer.cc b/third_party/qcms/qcms_color_space_fuzzer.cc
deleted file mode 100644
index b5dcde2..0000000
--- a/third_party/qcms/qcms_color_space_fuzzer.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <cstddef>
-#include <cstdint>
-#include <iterator>
-#include <random>
-
-#include "testing/libfuzzer/fuzzers/color_space_data.h"
-#include "third_party/qcms/src/qcms.h"
-
-static constexpr size_t kPixels = 2048 / 4;
-
-static uint32_t pixels[kPixels];
-
-static void GeneratePixels(size_t hash) {
-  static std::uniform_int_distribution<uint32_t> uniform(0u, ~0u);
-
-  std::mt19937_64 random(hash);
-  for (size_t i = 0; i < std::size(pixels); ++i)
-    pixels[i] = uniform(random);
-}
-
-static qcms_profile* test;
-static qcms_profile* srgb;
-
-static void ColorTransform(bool input) {
-  if (!test)
-    return;
-
-  const qcms_intent intent = QCMS_INTENT_DEFAULT;
-  const qcms_data_type format = QCMS_DATA_RGBA_8;
-
-  auto* transform =
-      input ? qcms_transform_create(test, format, srgb, format, intent)
-            : qcms_transform_create(srgb, format, test, format, intent);
-  if (!transform)
-    return;
-
-  static uint32_t output[kPixels];
-
-  qcms_transform_data(transform, pixels, output, kPixels);
-  qcms_transform_release(transform);
-}
-
-static qcms_profile* SelectProfile(size_t hash) {
-  static qcms_profile* profiles[4] = {
-      qcms_profile_from_memory(kSRGBData, std::size(kSRGBData)),
-      qcms_profile_from_memory(kSRGBPara, std::size(kSRGBPara)),
-      qcms_profile_from_memory(kAdobeData, std::size(kAdobeData)),
-      qcms_profile_sRGB(),
-  };
-
-  return profiles[hash & 3];
-}
-
-inline size_t Hash(const char* data, size_t size, size_t hash = ~0) {
-  for (size_t i = 0; i < size; ++i)
-    hash = hash * 131 + *data++;
-  return hash;
-}
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  constexpr size_t kSizeLimit = 4 * 1024 * 1024;
-  if (size < 128 || size > kSizeLimit)
-    return 0;
-
-  test = qcms_profile_from_memory(data, size);
-  if (!test)
-    return 0;
-
-  const size_t hash = Hash(reinterpret_cast<const char*>(data), size);
-  srgb = SelectProfile(hash);
-  GeneratePixels(hash);
-
-  qcms_profile_precache_output_transform(srgb);
-  ColorTransform(true);
-
-  qcms_profile_precache_output_transform(test);
-  ColorTransform(false);
-
-  qcms_profile_release(test);
-  return 0;
-}
diff --git a/third_party/qcms/src/COPYING b/third_party/qcms/src/COPYING
deleted file mode 100644
index 76b303b..0000000
--- a/third_party/qcms/src/COPYING
+++ /dev/null
@@ -1,21 +0,0 @@
-qcms
-Copyright (C) 2009 Mozilla Corporation
-Copyright (C) 1998-2007 Marti Maria
-
-Permission is hereby granted, free of charge, to any person obtaining 
-a copy of this software and associated documentation files (the "Software"), 
-to deal in the Software without restriction, including without limitation 
-the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-and/or sell copies of the Software, and to permit persons to whom the Software 
-is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in 
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/third_party/qcms/src/README b/third_party/qcms/src/README
deleted file mode 100644
index e3d95a37..0000000
--- a/third_party/qcms/src/README
+++ /dev/null
@@ -1,9 +0,0 @@
-qcms
-====
-
-Quick color management.
-
-Current limitations
------------
-- Only supports RGB and Gray colorspaces. e.g. no support for CMYK yet.
-- Only packed RGB and RGBA, K, and KA.
diff --git a/third_party/qcms/src/chain.c b/third_party/qcms/src/chain.c
deleted file mode 100644
index 46143cc..0000000
--- a/third_party/qcms/src/chain.c
+++ /dev/null
@@ -1,1032 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Corporation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include <stdlib.h>
-#include <math.h>
-#include <assert.h>
-#include <string.h> //memcpy
-#include "qcmsint.h"
-#include "transform_util.h"
-#include "matrix.h"
-
-#ifdef USE_LIBFUZZER
-#define ASSERT(x)
-#else
-#define ASSERT(x) assert(x)
-#endif
-
-static struct matrix build_lut_matrix(struct lutType *lut)
-{
-	struct matrix result;
-	if (lut) {
-		result.m[0][0] = s15Fixed16Number_to_float(lut->e00);
-		result.m[0][1] = s15Fixed16Number_to_float(lut->e01);
-		result.m[0][2] = s15Fixed16Number_to_float(lut->e02);
-		result.m[1][0] = s15Fixed16Number_to_float(lut->e10);
-		result.m[1][1] = s15Fixed16Number_to_float(lut->e11);
-		result.m[1][2] = s15Fixed16Number_to_float(lut->e12);
-		result.m[2][0] = s15Fixed16Number_to_float(lut->e20);
-		result.m[2][1] = s15Fixed16Number_to_float(lut->e21);
-		result.m[2][2] = s15Fixed16Number_to_float(lut->e22);
-		result.invalid = false;
-	} else {
-		memset(&result, 0, sizeof(struct matrix));
-		result.invalid = true;
-	}
-	return result;
-}
-
-static struct matrix build_mAB_matrix(struct lutmABType *lut)
-{
-	struct matrix result;
-	if (lut) {
-		result.m[0][0] = s15Fixed16Number_to_float(lut->e00);
-		result.m[0][1] = s15Fixed16Number_to_float(lut->e01);
-		result.m[0][2] = s15Fixed16Number_to_float(lut->e02);
-		result.m[1][0] = s15Fixed16Number_to_float(lut->e10);
-		result.m[1][1] = s15Fixed16Number_to_float(lut->e11);
-		result.m[1][2] = s15Fixed16Number_to_float(lut->e12);
-		result.m[2][0] = s15Fixed16Number_to_float(lut->e20);
-		result.m[2][1] = s15Fixed16Number_to_float(lut->e21);
-		result.m[2][2] = s15Fixed16Number_to_float(lut->e22);
-		result.invalid = false;
-	} else {
-		memset(&result, 0, sizeof(struct matrix));
-		result.invalid = true;
-	}
-	return result;
-}
-
-//Based on lcms cmsLab2XYZ
-#define f(t) (t <= (24.0f/116.0f)*(24.0f/116.0f)*(24.0f/116.0f)) ? ((841.0/108.0) * t + (16.0/116.0)) : pow(t,1.0/3.0)
-#define f_1(t) (t <= (24.0f/116.0f)) ? ((108.0/841.0) * (t - (16.0/116.0))) : (t * t * t)
-static void qcms_transform_module_LAB_to_XYZ(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	// lcms: D50 XYZ values
-	float WhitePointX = 0.9642f;
-	float WhitePointY = 1.0f;
-	float WhitePointZ = 0.8249f;
-	for (i = 0; i < length; i++) {
-		float device_L = *src++ * 100.0f;
-		float device_a = *src++ * 255.0f - 128.0f;
-		float device_b = *src++ * 255.0f - 128.0f;
-		float y = (device_L + 16.0f) / 116.0f;
-
-		float X = f_1((y + 0.002f * device_a)) * WhitePointX;
-		float Y = f_1(y) * WhitePointY;
-		float Z = f_1((y - 0.005f * device_b)) * WhitePointZ;
-		*dest++ = X / (1.0 + 32767.0/32768.0);
-		*dest++ = Y / (1.0 + 32767.0/32768.0);
-		*dest++ = Z / (1.0 + 32767.0/32768.0);
-	}
-}
-
-//Based on lcms cmsXYZ2Lab
-static void qcms_transform_module_XYZ_to_LAB(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-        // lcms: D50 XYZ values
-        float WhitePointX = 0.9642f;
-        float WhitePointY = 1.0f;
-        float WhitePointZ = 0.8249f;
-        for (i = 0; i < length; i++) {
-                float device_x = *src++ * (1.0 + 32767.0/32768.0) / WhitePointX;
-                float device_y = *src++ * (1.0 + 32767.0/32768.0) / WhitePointY;
-                float device_z = *src++ * (1.0 + 32767.0/32768.0) / WhitePointZ;
-
-		float fx = f(device_x);
-		float fy = f(device_y);
-		float fz = f(device_z);
-
-                float L = 116.0f*fy - 16.0f;
-                float a = 500.0f*(fx - fy);
-                float b = 200.0f*(fy - fz);
-                *dest++ = L / 100.0f;
-                *dest++ = (a+128.0f) / 255.0f;
-                *dest++ = (b+128.0f) / 255.0f;
-        }
-
-}
-
-static void qcms_transform_module_clut_only(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-
-	assert(transform->grid_size >= 1);
-
-	for (i = 0; i < length; i++) {
-		float linear_r = *src++;
-		float linear_g = *src++;
-		float linear_b = *src++;
-
-		int x = floor(linear_r * (transform->grid_size-1));
-		int y = floor(linear_g * (transform->grid_size-1));
-		int z = floor(linear_b * (transform->grid_size-1));
-		int x_n = ceil(linear_r * (transform->grid_size-1));
-		int y_n = ceil(linear_g * (transform->grid_size-1));
-		int z_n = ceil(linear_b * (transform->grid_size-1));
-		float x_d = linear_r * (transform->grid_size-1) - x;
-		float y_d = linear_g * (transform->grid_size-1) - y;
-		float z_d = linear_b * (transform->grid_size-1) - z;
-
-		float r_x1 = lerp(CLU(r_table,x,y,z), CLU(r_table,x_n,y,z), x_d);
-		float r_x2 = lerp(CLU(r_table,x,y_n,z), CLU(r_table,x_n,y_n,z), x_d);
-		float r_y1 = lerp(r_x1, r_x2, y_d);
-		float r_x3 = lerp(CLU(r_table,x,y,z_n), CLU(r_table,x_n,y,z_n), x_d);
-		float r_x4 = lerp(CLU(r_table,x,y_n,z_n), CLU(r_table,x_n,y_n,z_n), x_d);
-		float r_y2 = lerp(r_x3, r_x4, y_d);
-		float clut_r = lerp(r_y1, r_y2, z_d);
-
-		float g_x1 = lerp(CLU(g_table,x,y,z), CLU(g_table,x_n,y,z), x_d);
-		float g_x2 = lerp(CLU(g_table,x,y_n,z), CLU(g_table,x_n,y_n,z), x_d);
-		float g_y1 = lerp(g_x1, g_x2, y_d);
-		float g_x3 = lerp(CLU(g_table,x,y,z_n), CLU(g_table,x_n,y,z_n), x_d);
-		float g_x4 = lerp(CLU(g_table,x,y_n,z_n), CLU(g_table,x_n,y_n,z_n), x_d);
-		float g_y2 = lerp(g_x3, g_x4, y_d);
-		float clut_g = lerp(g_y1, g_y2, z_d);
-
-		float b_x1 = lerp(CLU(b_table,x,y,z), CLU(b_table,x_n,y,z), x_d);
-		float b_x2 = lerp(CLU(b_table,x,y_n,z), CLU(b_table,x_n,y_n,z), x_d);
-		float b_y1 = lerp(b_x1, b_x2, y_d);
-		float b_x3 = lerp(CLU(b_table,x,y,z_n), CLU(b_table,x_n,y,z_n), x_d);
-		float b_x4 = lerp(CLU(b_table,x,y_n,z_n), CLU(b_table,x_n,y_n,z_n), x_d);
-		float b_y2 = lerp(b_x3, b_x4, y_d);
-		float clut_b = lerp(b_y1, b_y2, z_d);
-
-		*dest++ = clamp_float(clut_r);
-		*dest++ = clamp_float(clut_g);
-		*dest++ = clamp_float(clut_b);
-	}
-}
-
-static void qcms_transform_module_clut(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-
-	assert(transform->grid_size >= 1);
-
-	for (i = 0; i < length; i++) {
-		float device_r = *src++;
-		float device_g = *src++;
-		float device_b = *src++;
-		float linear_r = lut_interp_linear_float(device_r,
-				transform->input_clut_table_r, transform->input_clut_table_length);
-		float linear_g = lut_interp_linear_float(device_g,
-				transform->input_clut_table_g, transform->input_clut_table_length);
-		float linear_b = lut_interp_linear_float(device_b,
-				transform->input_clut_table_b, transform->input_clut_table_length);
-
-		int x = floor(linear_r * (transform->grid_size-1));
-		int y = floor(linear_g * (transform->grid_size-1));
-		int z = floor(linear_b * (transform->grid_size-1));
-		int x_n = ceil(linear_r * (transform->grid_size-1));
-		int y_n = ceil(linear_g * (transform->grid_size-1));
-		int z_n = ceil(linear_b * (transform->grid_size-1));
-		float x_d = linear_r * (transform->grid_size-1) - x;
-		float y_d = linear_g * (transform->grid_size-1) - y;
-		float z_d = linear_b * (transform->grid_size-1) - z;
-
-		float r_x1 = lerp(CLU(r_table,x,y,z), CLU(r_table,x_n,y,z), x_d);
-		float r_x2 = lerp(CLU(r_table,x,y_n,z), CLU(r_table,x_n,y_n,z), x_d);
-		float r_y1 = lerp(r_x1, r_x2, y_d);
-		float r_x3 = lerp(CLU(r_table,x,y,z_n), CLU(r_table,x_n,y,z_n), x_d);
-		float r_x4 = lerp(CLU(r_table,x,y_n,z_n), CLU(r_table,x_n,y_n,z_n), x_d);
-		float r_y2 = lerp(r_x3, r_x4, y_d);
-		float clut_r = lerp(r_y1, r_y2, z_d);
-
-		float g_x1 = lerp(CLU(g_table,x,y,z), CLU(g_table,x_n,y,z), x_d);
-		float g_x2 = lerp(CLU(g_table,x,y_n,z), CLU(g_table,x_n,y_n,z), x_d);
-		float g_y1 = lerp(g_x1, g_x2, y_d);
-		float g_x3 = lerp(CLU(g_table,x,y,z_n), CLU(g_table,x_n,y,z_n), x_d);
-		float g_x4 = lerp(CLU(g_table,x,y_n,z_n), CLU(g_table,x_n,y_n,z_n), x_d);
-		float g_y2 = lerp(g_x3, g_x4, y_d);
-		float clut_g = lerp(g_y1, g_y2, z_d);
-
-		float b_x1 = lerp(CLU(b_table,x,y,z), CLU(b_table,x_n,y,z), x_d);
-		float b_x2 = lerp(CLU(b_table,x,y_n,z), CLU(b_table,x_n,y_n,z), x_d);
-		float b_y1 = lerp(b_x1, b_x2, y_d);
-		float b_x3 = lerp(CLU(b_table,x,y,z_n), CLU(b_table,x_n,y,z_n), x_d);
-		float b_x4 = lerp(CLU(b_table,x,y_n,z_n), CLU(b_table,x_n,y_n,z_n), x_d);
-		float b_y2 = lerp(b_x3, b_x4, y_d);
-		float clut_b = lerp(b_y1, b_y2, z_d);
-
-		float pcs_r = lut_interp_linear_float(clut_r,
-				transform->output_clut_table_r, transform->output_clut_table_length);
-		float pcs_g = lut_interp_linear_float(clut_g,
-				transform->output_clut_table_g, transform->output_clut_table_length);
-		float pcs_b = lut_interp_linear_float(clut_b,
-				transform->output_clut_table_b, transform->output_clut_table_length);
-
-		*dest++ = clamp_float(pcs_r);
-		*dest++ = clamp_float(pcs_g);
-		*dest++ = clamp_float(pcs_b);
-	}
-}
-
-/* NOT USED
-static void qcms_transform_module_tetra_clut(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-	float c0_r, c1_r, c2_r, c3_r;
-	float c0_g, c1_g, c2_g, c3_g;
-	float c0_b, c1_b, c2_b, c3_b;
-	float clut_r, clut_g, clut_b;
-	float pcs_r, pcs_g, pcs_b;
-	for (i = 0; i < length; i++) {
-		float device_r = *src++;
-		float device_g = *src++;
-		float device_b = *src++;
-		float linear_r = lut_interp_linear_float(device_r,
-				transform->input_clut_table_r, transform->input_clut_table_length);
-		float linear_g = lut_interp_linear_float(device_g,
-				transform->input_clut_table_g, transform->input_clut_table_length);
-		float linear_b = lut_interp_linear_float(device_b,
-				transform->input_clut_table_b, transform->input_clut_table_length);
-
-		int x = floor(linear_r * (transform->grid_size-1));
-		int y = floor(linear_g * (transform->grid_size-1));
-		int z = floor(linear_b * (transform->grid_size-1));
-		int x_n = ceil(linear_r * (transform->grid_size-1));
-		int y_n = ceil(linear_g * (transform->grid_size-1));
-		int z_n = ceil(linear_b * (transform->grid_size-1));
-		float rx = linear_r * (transform->grid_size-1) - x;
-		float ry = linear_g * (transform->grid_size-1) - y;
-		float rz = linear_b * (transform->grid_size-1) - z;
-
-		c0_r = CLU(r_table, x, y, z);
-		c0_g = CLU(g_table, x, y, z);
-		c0_b = CLU(b_table, x, y, z);
-		if( rx >= ry ) {
-			if (ry >= rz) { //rx >= ry && ry >= rz
-				c1_r = CLU(r_table, x_n, y, z) - c0_r;
-				c2_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x_n, y, z);
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y, z) - c0_g;
-				c2_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x_n, y, z);
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y, z) - c0_b;
-				c2_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x_n, y, z);
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else {
-				if (rx >= rz) { //rx >= rz && rz >= ry
-					c1_r = CLU(r_table, x_n, y, z) - c0_r;
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x_n, y, z);
-					c1_g = CLU(g_table, x_n, y, z) - c0_g;
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x_n, y, z);
-					c1_b = CLU(b_table, x_n, y, z) - c0_b;
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x_n, y, z);
-				} else { //rz > rx && rx >= ry
-					c1_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x, y, z_n);
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x, y, z_n) - c0_r;
-					c1_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x, y, z_n);
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x, y, z_n) - c0_g;
-					c1_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x, y, z_n);
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x, y, z_n) - c0_b;
-				}
-			}
-		} else {
-			if (rx >= rz) { //ry > rx && rx >= rz
-				c1_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x, y_n, z);
-				c2_r = CLU(r_table, x_n, y_n, z) - c0_r;
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x, y_n, z);
-				c2_g = CLU(g_table, x_n, y_n, z) - c0_g;
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x, y_n, z);
-				c2_b = CLU(b_table, x_n, y_n, z) - c0_b;
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else {
-				if (ry >= rz) { //ry >= rz && rz > rx 
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z) - c0_r;
-					c3_r = CLU(r_table, x, y_n, z_n) - CLU(r_table, x, y_n, z);
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z) - c0_g;
-					c3_g = CLU(g_table, x, y_n, z_n) - CLU(g_table, x, y_n, z);
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z) - c0_b;
-					c3_b = CLU(b_table, x, y_n, z_n) - CLU(b_table, x, y_n, z);
-				} else { //rz > ry && ry > rx
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z) - c0_r;
-					c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z) - c0_g;
-					c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z) - c0_b;
-					c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-				}
-			}
-		}
-
-		clut_r = c0_r + c1_r*rx + c2_r*ry + c3_r*rz;
-		clut_g = c0_g + c1_g*rx + c2_g*ry + c3_g*rz;
-		clut_b = c0_b + c1_b*rx + c2_b*ry + c3_b*rz;
-
-		pcs_r = lut_interp_linear_float(clut_r,
-				transform->output_clut_table_r, transform->output_clut_table_length);
-		pcs_g = lut_interp_linear_float(clut_g,
-				transform->output_clut_table_g, transform->output_clut_table_length);
-		pcs_b = lut_interp_linear_float(clut_b,
-				transform->output_clut_table_b, transform->output_clut_table_length);
-		*dest++ = clamp_float(pcs_r);
-		*dest++ = clamp_float(pcs_g);
-		*dest++ = clamp_float(pcs_b);
-	}
-}
-*/
-
-static void qcms_transform_module_gamma_table(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	float out_r, out_g, out_b;
-	for (i = 0; i < length; i++) {
-		float in_r = *src++;
-		float in_g = *src++;
-		float in_b = *src++;
-
-		out_r = lut_interp_linear_float(in_r, transform->input_clut_table_r, 256);
-		out_g = lut_interp_linear_float(in_g, transform->input_clut_table_g, 256);
-		out_b = lut_interp_linear_float(in_b, transform->input_clut_table_b, 256);
-
-		*dest++ = clamp_float(out_r);
-		*dest++ = clamp_float(out_g);
-		*dest++ = clamp_float(out_b);
-	}
-}
-
-static void qcms_transform_module_gamma_lut(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	float out_r, out_g, out_b;
-	for (i = 0; i < length; i++) {
-		float in_r = *src++;
-		float in_g = *src++;
-		float in_b = *src++;
-
-		out_r = lut_interp_linear(in_r,
-				transform->output_gamma_lut_r, transform->output_gamma_lut_r_length);
-		out_g = lut_interp_linear(in_g,
-				transform->output_gamma_lut_g, transform->output_gamma_lut_g_length);
-		out_b = lut_interp_linear(in_b,
-				transform->output_gamma_lut_b, transform->output_gamma_lut_b_length);
-
-		*dest++ = clamp_float(out_r);
-		*dest++ = clamp_float(out_g);
-		*dest++ = clamp_float(out_b);
-	}
-}
-
-static void qcms_transform_module_matrix_translate(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	struct matrix mat;
-
-	/* store the results in column major mode
-	 * this makes doing the multiplication with sse easier */
-	mat.m[0][0] = transform->matrix.m[0][0];
-	mat.m[1][0] = transform->matrix.m[0][1];
-	mat.m[2][0] = transform->matrix.m[0][2];
-	mat.m[0][1] = transform->matrix.m[1][0];
-	mat.m[1][1] = transform->matrix.m[1][1];
-	mat.m[2][1] = transform->matrix.m[1][2];
-	mat.m[0][2] = transform->matrix.m[2][0];
-	mat.m[1][2] = transform->matrix.m[2][1];
-	mat.m[2][2] = transform->matrix.m[2][2];
-
-	for (i = 0; i < length; i++) {
-		float in_r = *src++;
-		float in_g = *src++;
-		float in_b = *src++;
-
-		float out_r = mat.m[0][0]*in_r + mat.m[1][0]*in_g + mat.m[2][0]*in_b + transform->tx;
-		float out_g = mat.m[0][1]*in_r + mat.m[1][1]*in_g + mat.m[2][1]*in_b + transform->ty;
-		float out_b = mat.m[0][2]*in_r + mat.m[1][2]*in_g + mat.m[2][2]*in_b + transform->tz;
-
-		*dest++ = clamp_float(out_r);
-		*dest++ = clamp_float(out_g);
-		*dest++ = clamp_float(out_b);
-	}
-}
-
-static void qcms_transform_module_matrix(struct qcms_modular_transform *transform, float *src, float *dest, size_t length)
-{
-	size_t i;
-	struct matrix mat;
-
-	/* store the results in column major mode
-	 * this makes doing the multiplication with sse easier */
-	mat.m[0][0] = transform->matrix.m[0][0];
-	mat.m[1][0] = transform->matrix.m[0][1];
-	mat.m[2][0] = transform->matrix.m[0][2];
-	mat.m[0][1] = transform->matrix.m[1][0];
-	mat.m[1][1] = transform->matrix.m[1][1];
-	mat.m[2][1] = transform->matrix.m[1][2];
-	mat.m[0][2] = transform->matrix.m[2][0];
-	mat.m[1][2] = transform->matrix.m[2][1];
-	mat.m[2][2] = transform->matrix.m[2][2];
-
-	for (i = 0; i < length; i++) {
-		float in_r = *src++;
-		float in_g = *src++;
-		float in_b = *src++;
-
-		float out_r = mat.m[0][0]*in_r + mat.m[1][0]*in_g + mat.m[2][0]*in_b;
-		float out_g = mat.m[0][1]*in_r + mat.m[1][1]*in_g + mat.m[2][1]*in_b;
-		float out_b = mat.m[0][2]*in_r + mat.m[1][2]*in_g + mat.m[2][2]*in_b;
-
-		*dest++ = clamp_float(out_r);
-		*dest++ = clamp_float(out_g);
-		*dest++ = clamp_float(out_b);
-	}
-}
-
-static struct qcms_modular_transform* qcms_modular_transform_alloc() {
-	return calloc(1, sizeof(struct qcms_modular_transform));
-}
-
-static void qcms_modular_transform_release(struct qcms_modular_transform *transform)
-{
-	struct qcms_modular_transform *next_transform;
-	while (transform != NULL) {
-		next_transform = transform->next_transform;
-		// clut may use a single block of memory.
-		// Perhaps we should remove this to simply the code.
-		if (transform->input_clut_table_r + transform->input_clut_table_length == transform->input_clut_table_g && transform->input_clut_table_g + transform->input_clut_table_length == transform->input_clut_table_b) {
-			if (transform->input_clut_table_r) free(transform->input_clut_table_r);
-		} else {
-			if (transform->input_clut_table_r) free(transform->input_clut_table_r);
-			if (transform->input_clut_table_g) free(transform->input_clut_table_g);
-			if (transform->input_clut_table_b) free(transform->input_clut_table_b);
-		}
-		if (transform->r_clut + 1 == transform->g_clut && transform->g_clut + 1 == transform->b_clut) {
-			if (transform->r_clut) free(transform->r_clut);
-		} else {
-			if (transform->r_clut) free(transform->r_clut);
-			if (transform->g_clut) free(transform->g_clut);
-			if (transform->b_clut) free(transform->b_clut);
-		}
-		if (transform->output_clut_table_r + transform->output_clut_table_length == transform->output_clut_table_g && transform->output_clut_table_g+ transform->output_clut_table_length == transform->output_clut_table_b) {
-			if (transform->output_clut_table_r) free(transform->output_clut_table_r);
-		} else {
-			if (transform->output_clut_table_r) free(transform->output_clut_table_r);
-			if (transform->output_clut_table_g) free(transform->output_clut_table_g);
-			if (transform->output_clut_table_b) free(transform->output_clut_table_b);
-		}
-		if (transform->output_gamma_lut_r) free(transform->output_gamma_lut_r);
-		if (transform->output_gamma_lut_g) free(transform->output_gamma_lut_g);
-		if (transform->output_gamma_lut_b) free(transform->output_gamma_lut_b);
-		free(transform);
-		transform = next_transform;
-	}
-}
-
-/* Set transform to be the next element in the linked list. */
-static void append_transform(struct qcms_modular_transform *transform, struct qcms_modular_transform ***next_transform)
-{
-	**next_transform = transform;
-	while (transform) {
-		*next_transform = &(transform->next_transform);
-		transform = transform->next_transform;
-	}
-}
-
-/* reverse the transformation list (used by mBA) */
-static struct qcms_modular_transform* reverse_transform(struct qcms_modular_transform *transform) 
-{
-	struct qcms_modular_transform *prev_transform = NULL;
-	while (transform != NULL) {
-		struct qcms_modular_transform *next_transform = transform->next_transform;
-		transform->next_transform = prev_transform;
-		prev_transform = transform;
-		transform = next_transform;
-	}
-	
-	return prev_transform;
-}
-
-#define EMPTY_TRANSFORM_LIST NULL
-static struct qcms_modular_transform* qcms_modular_transform_create_mAB(struct lutmABType *lut)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform **next_transform = &first_transform;
-	struct qcms_modular_transform *transform = NULL;
-
-	if (lut->a_curves[0] != NULL) {
-		size_t clut_length;
-		float *clut;
-
-		// If the A curve is present this also implies the 
-		// presence of a CLUT.
-		if (!lut->clut_table) 
-			goto fail;
-
-		// Prepare A curve.
-		transform = qcms_modular_transform_alloc();
-		if (!transform)
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->input_clut_table_r = build_input_gamma_table(lut->a_curves[0]);
-		transform->input_clut_table_g = build_input_gamma_table(lut->a_curves[1]);
-		transform->input_clut_table_b = build_input_gamma_table(lut->a_curves[2]);
-		transform->transform_module_fn = qcms_transform_module_gamma_table;
-		if (lut->num_grid_points[0] != lut->num_grid_points[1] ||
-			lut->num_grid_points[1] != lut->num_grid_points[2] ) {
-			//XXX: We don't currently support clut that are not squared!
-			goto fail;
-		}
-
-		// Prepare CLUT
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		clut_length = sizeof(float)*pow(lut->num_grid_points[0], 3)*3;
-		clut = malloc(clut_length);
-		if (!clut)
-			goto fail;
-		memcpy(clut, lut->clut_table, clut_length);
-		transform->r_clut = clut + 0;
-		transform->g_clut = clut + 1;
-		transform->b_clut = clut + 2;
-		transform->grid_size = lut->num_grid_points[0];
-		transform->transform_module_fn = qcms_transform_module_clut_only;
-	}
-	if (lut->m_curves[0] != NULL) {
-		// M curve imples the presence of a Matrix
-
-		// Prepare M curve
-		transform = qcms_modular_transform_alloc();
-		if (!transform)
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->input_clut_table_r = build_input_gamma_table(lut->m_curves[0]);
-		transform->input_clut_table_g = build_input_gamma_table(lut->m_curves[1]);
-		transform->input_clut_table_b = build_input_gamma_table(lut->m_curves[2]);
-		transform->transform_module_fn = qcms_transform_module_gamma_table;
-
-		// Prepare Matrix
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->matrix = build_mAB_matrix(lut);
-		if (transform->matrix.invalid)
-			goto fail;
-		transform->tx = s15Fixed16Number_to_float(lut->e03);
-		transform->ty = s15Fixed16Number_to_float(lut->e13);
-		transform->tz = s15Fixed16Number_to_float(lut->e23);
-		transform->transform_module_fn = qcms_transform_module_matrix_translate;
-	}
-	if (lut->b_curves[0] != NULL) {
-		// Prepare B curve
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->input_clut_table_r = build_input_gamma_table(lut->b_curves[0]);
-		transform->input_clut_table_g = build_input_gamma_table(lut->b_curves[1]);
-		transform->input_clut_table_b = build_input_gamma_table(lut->b_curves[2]);
-		transform->transform_module_fn = qcms_transform_module_gamma_table;
-	} else {
-		// B curve is mandatory
-		goto fail;
-	}
-
-	if (lut->reversed) {
-		// mBA are identical to mAB except that the transformation order
-		// is reversed
-		first_transform = reverse_transform(first_transform);
-	}
-
-	return first_transform;
-fail:
-	qcms_modular_transform_release(first_transform);
-	return NULL;
-}
-
-static struct qcms_modular_transform* qcms_modular_transform_create_lut(struct lutType *lut)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform **next_transform = &first_transform;
-	struct qcms_modular_transform *transform = NULL;
-
-	size_t in_curve_len, clut_length, out_curve_len;
-	float *in_curves, *clut, *out_curves;
-
-	// Prepare Matrix
-	transform = qcms_modular_transform_alloc();
-	if (!transform) 
-		goto fail;
-	append_transform(transform, &next_transform);
-	transform->matrix = build_lut_matrix(lut);
-	if (transform->matrix.invalid)
-		goto fail;
-	transform->transform_module_fn = qcms_transform_module_matrix;
-
-	// Prepare input curves
-	transform = qcms_modular_transform_alloc();
-	if (!transform) 
-		goto fail;
-	append_transform(transform, &next_transform);
-	in_curve_len = sizeof(float)*lut->num_input_table_entries * 3;
-	in_curves = malloc(in_curve_len);
-	if (!in_curves) 
-		goto fail;
-	memcpy(in_curves, lut->input_table, in_curve_len);
-	transform->input_clut_table_r = in_curves + lut->num_input_table_entries * 0;
-	transform->input_clut_table_g = in_curves + lut->num_input_table_entries * 1;
-	transform->input_clut_table_b = in_curves + lut->num_input_table_entries * 2;
-	transform->input_clut_table_length = lut->num_input_table_entries;
-
-	// Prepare table
-	clut_length = sizeof(float)*pow(lut->num_clut_grid_points, 3)*3;
-	clut = malloc(clut_length);
-	if (!clut) 
-		goto fail;
-	memcpy(clut, lut->clut_table, clut_length);
-	transform->r_clut = clut + 0;
-	transform->g_clut = clut + 1;
-	transform->b_clut = clut + 2;
-	transform->grid_size = lut->num_clut_grid_points;
-
-	// Prepare output curves
-	out_curve_len = sizeof(float) * lut->num_output_table_entries * 3;
-	out_curves = malloc(out_curve_len);
-	if (!out_curves) 
-		goto fail;
-	memcpy(out_curves, lut->output_table, out_curve_len);
-	transform->output_clut_table_r = out_curves + lut->num_output_table_entries * 0;
-	transform->output_clut_table_g = out_curves + lut->num_output_table_entries * 1;
-	transform->output_clut_table_b = out_curves + lut->num_output_table_entries * 2;
-	transform->output_clut_table_length = lut->num_output_table_entries;
-	transform->transform_module_fn = qcms_transform_module_clut;
-
-	return first_transform;
-fail:
-	qcms_modular_transform_release(first_transform);
-	return NULL;
-}
-
-struct qcms_modular_transform* qcms_modular_transform_create_input(qcms_profile *in)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform **next_transform = &first_transform;
-
-	if (in->A2B0) {
-		struct qcms_modular_transform *lut_transform;
-		lut_transform = qcms_modular_transform_create_lut(in->A2B0);
-		if (!lut_transform)
-			goto fail;
-		append_transform(lut_transform, &next_transform);
-	} else if (in->mAB && in->mAB->num_in_channels == 3 && in->mAB->num_out_channels == 3) {
-		struct qcms_modular_transform *mAB_transform;
-		mAB_transform = qcms_modular_transform_create_mAB(in->mAB);
-		if (!mAB_transform)
-			goto fail;
-		append_transform(mAB_transform, &next_transform);
-
-	} else {
-		struct qcms_modular_transform *transform;
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform)
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->input_clut_table_r = build_input_gamma_table(in->redTRC);
-		transform->input_clut_table_g = build_input_gamma_table(in->greenTRC);
-		transform->input_clut_table_b = build_input_gamma_table(in->blueTRC);
-		transform->transform_module_fn = qcms_transform_module_gamma_table;
-		if (!transform->input_clut_table_r || !transform->input_clut_table_g ||
-				!transform->input_clut_table_b) {
-			goto fail;
-		}
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->matrix.m[0][0] = 1/1.999969482421875f;
-		transform->matrix.m[0][1] = 0.f;
-		transform->matrix.m[0][2] = 0.f;
-		transform->matrix.m[1][0] = 0.f;
-		transform->matrix.m[1][1] = 1/1.999969482421875f;
-		transform->matrix.m[1][2] = 0.f;
-		transform->matrix.m[2][0] = 0.f;
-		transform->matrix.m[2][1] = 0.f;
-		transform->matrix.m[2][2] = 1/1.999969482421875f;
-		transform->matrix.invalid = false;
-		transform->transform_module_fn = qcms_transform_module_matrix;
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->matrix = build_colorant_matrix(in);
-		transform->transform_module_fn = qcms_transform_module_matrix;
-	}
-
-	return first_transform;
-fail:
-	qcms_modular_transform_release(first_transform);
-	return EMPTY_TRANSFORM_LIST;
-}
-static struct qcms_modular_transform* qcms_modular_transform_create_output(qcms_profile *out)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform **next_transform = &first_transform;
-
-	if (out->B2A0) {
-		struct qcms_modular_transform *lut_transform;
-		lut_transform = qcms_modular_transform_create_lut(out->B2A0);
-		if (!lut_transform) 
-			goto fail;
-		append_transform(lut_transform, &next_transform);
-	} else if (out->mBA && out->mBA->num_in_channels == 3 && out->mBA->num_out_channels == 3) {
-		struct qcms_modular_transform *lut_transform;
-		lut_transform = qcms_modular_transform_create_mAB(out->mBA);
-		if (!lut_transform) 
-			goto fail;
-		append_transform(lut_transform, &next_transform);
-	} else if (out->redTRC && out->greenTRC && out->blueTRC) {
-		struct qcms_modular_transform *transform;
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->matrix = matrix_invert(build_colorant_matrix(out));
-		transform->transform_module_fn = qcms_transform_module_matrix;
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		transform->matrix.m[0][0] = 1.999969482421875f;
-		transform->matrix.m[0][1] = 0.f;
-		transform->matrix.m[0][2] = 0.f;
-		transform->matrix.m[1][0] = 0.f;
-		transform->matrix.m[1][1] = 1.999969482421875f;
-		transform->matrix.m[1][2] = 0.f;
-		transform->matrix.m[2][0] = 0.f;
-		transform->matrix.m[2][1] = 0.f;
-		transform->matrix.m[2][2] = 1.999969482421875f;
-		transform->matrix.invalid = false;
-		transform->transform_module_fn = qcms_transform_module_matrix;
-
-		transform = qcms_modular_transform_alloc();
-		if (!transform) 
-			goto fail;
-		append_transform(transform, &next_transform);
-		build_output_lut(out->redTRC, &transform->output_gamma_lut_r,
-			&transform->output_gamma_lut_r_length);
-		build_output_lut(out->greenTRC, &transform->output_gamma_lut_g,
-			&transform->output_gamma_lut_g_length);
-		build_output_lut(out->blueTRC, &transform->output_gamma_lut_b,
-			&transform->output_gamma_lut_b_length);
-		transform->transform_module_fn = qcms_transform_module_gamma_lut;
-
-		if (!transform->output_gamma_lut_r || !transform->output_gamma_lut_g ||
-				!transform->output_gamma_lut_b) {
-			goto fail;
-		}
-	} else {
-		ASSERT(0 && "Unsupported output profile workflow.");
-		return NULL;
-	}
-
-	return first_transform;
-fail:
-	qcms_modular_transform_release(first_transform);
-	return EMPTY_TRANSFORM_LIST;
-}
-
-/* Not Completed
-// Simplify the transformation chain to an equivalent transformation chain
-static struct qcms_modular_transform* qcms_modular_transform_reduce(struct qcms_modular_transform *transform)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform *curr_trans = transform;
-	struct qcms_modular_transform *prev_trans = NULL;
-	while (curr_trans) {
-		struct qcms_modular_transform *next_trans = curr_trans->next_transform;
-		if (curr_trans->transform_module_fn == qcms_transform_module_matrix) {
-			if (next_trans && next_trans->transform_module_fn == qcms_transform_module_matrix) {
-				curr_trans->matrix = matrix_multiply(curr_trans->matrix, next_trans->matrix);
-				goto remove_next;	
-			}
-		}
-		if (curr_trans->transform_module_fn == qcms_transform_module_gamma_table) {
-			bool isLinear = true;
-			uint16_t i;
-			for (i = 0; isLinear && i < 256; i++) {
-				isLinear &= (int)(curr_trans->input_clut_table_r[i] * 255) == i;
-				isLinear &= (int)(curr_trans->input_clut_table_g[i] * 255) == i;
-				isLinear &= (int)(curr_trans->input_clut_table_b[i] * 255) == i;
-			}
-			goto remove_current;
-		}
-		
-next_transform:
-		if (!next_trans) break;
-		prev_trans = curr_trans;
-		curr_trans = next_trans;
-		continue;
-remove_current:
-		if (curr_trans == transform) {
-			//Update head
-			transform = next_trans;
-		} else {
-			prev_trans->next_transform = next_trans;
-		}
-		curr_trans->next_transform = NULL;
-		qcms_modular_transform_release(curr_trans);
-		//return transform;
-		return qcms_modular_transform_reduce(transform);
-remove_next:
-		curr_trans->next_transform = next_trans->next_transform;
-		next_trans->next_transform = NULL;
-		qcms_modular_transform_release(next_trans);
-		continue;
-	}
-	return transform;
-}
-*/
-
-static struct qcms_modular_transform* qcms_modular_transform_create(qcms_profile *in, qcms_profile *out)
-{
-	struct qcms_modular_transform *first_transform = NULL;
-	struct qcms_modular_transform **next_transform = &first_transform;
-	qcms_bool transform_to_pcs_xyz_only = (out == NULL);
-
-	if (in->color_space == RGB_SIGNATURE) {
-		struct qcms_modular_transform* rgb_to_pcs;
-		rgb_to_pcs = qcms_modular_transform_create_input(in);
-		if (!rgb_to_pcs) 
-			goto fail;
-		append_transform(rgb_to_pcs, &next_transform);
-	} else {
-		ASSERT(0 && "input color space not supported");
-		goto fail;
-	}
-
-	if (in->pcs == LAB_SIGNATURE && (transform_to_pcs_xyz_only || out->pcs == XYZ_SIGNATURE)) {
-		struct qcms_modular_transform* lab_to_pcs;
-		lab_to_pcs = qcms_modular_transform_alloc();
-		if (!lab_to_pcs) 
-			goto fail;
-		append_transform(lab_to_pcs, &next_transform);
-		lab_to_pcs->transform_module_fn = qcms_transform_module_LAB_to_XYZ;
-	}
-
-	if (transform_to_pcs_xyz_only)
-		return first_transform;
-
-	// This does not improve accuracy in practice, something is wrong here.
-	//if (in->chromaticAdaption.invalid == false) {
-	//	struct qcms_modular_transform* chromaticAdaption;
-	//	chromaticAdaption = qcms_modular_transform_alloc();
-	//	if (!chromaticAdaption) 
-	//		goto fail;
-	//	append_transform(chromaticAdaption, &next_transform);
-	//	chromaticAdaption->matrix = matrix_invert(in->chromaticAdaption);
-	//	chromaticAdaption->transform_module_fn = qcms_transform_module_matrix;
-	//}
-
-        if (in->pcs == XYZ_SIGNATURE && out->pcs == LAB_SIGNATURE) {
-		struct qcms_modular_transform* pcs_to_lab;
-		pcs_to_lab = qcms_modular_transform_alloc();
-		if (!pcs_to_lab) 
-			goto fail;
-		append_transform(pcs_to_lab, &next_transform);
-		pcs_to_lab->transform_module_fn = qcms_transform_module_XYZ_to_LAB;
-	}
-
-	if (out->color_space == RGB_SIGNATURE) {
-		struct qcms_modular_transform* pcs_to_rgb;
-		pcs_to_rgb = qcms_modular_transform_create_output(out);
-		if (!pcs_to_rgb) 
-			goto fail;
-		append_transform(pcs_to_rgb, &next_transform);
-	} else {
-		ASSERT(0 && "output color space not supported");
-		goto fail;
-	}
-	// Not Completed
-	//return qcms_modular_transform_reduce(first_transform);
-	return first_transform;
-fail:
-	qcms_modular_transform_release(first_transform);
-	return EMPTY_TRANSFORM_LIST;
-}
-
-static float* qcms_modular_transform_data(struct qcms_modular_transform *transform, float *src, float *dest, size_t len)
-{
-        while (transform != NULL) {
-                // Keep swaping src/dest when performing a transform to use less memory.
-                float *new_src = dest;
-		const transform_module_fn_t transform_fn = transform->transform_module_fn;
-		if (transform_fn != qcms_transform_module_gamma_table &&
-		    transform_fn != qcms_transform_module_gamma_lut &&
-		    transform_fn != qcms_transform_module_clut &&
-		    transform_fn != qcms_transform_module_clut_only &&
-		    transform_fn != qcms_transform_module_matrix &&
-		    transform_fn != qcms_transform_module_matrix_translate &&
-		    transform_fn != qcms_transform_module_LAB_to_XYZ &&
-		    transform_fn != qcms_transform_module_XYZ_to_LAB) {
-			assert(0 && "Unsupported transform module");
-			return NULL;
-		}
-                transform->transform_module_fn(transform,src,dest,len);
-                dest = src;
-                src = new_src;
-                transform = transform->next_transform;
-        }
-        // The results end up in the src buffer because of the switching
-        return src;
-}
-
-float* qcms_chain_transform(qcms_profile *in, qcms_profile *out, float *src, float *dest, size_t lutSize)
-{
-	struct qcms_modular_transform *transform_list = qcms_modular_transform_create(in, out);
-	if (transform_list != NULL) {
-		float *lut = qcms_modular_transform_data(transform_list, src, dest, lutSize/3);
-		qcms_modular_transform_release(transform_list);
-		return lut;
-	}
-	return NULL;
-}
-
-qcms_bool qcms_profile_white_transform(qcms_profile *profile, float XYZ[3])
-{
-	const float inverse_internal_scale = 1.999969482421875f;
-
-	// Set the output profile to NULL to request a color transform to PCS XYZ only.
-	struct qcms_modular_transform *transform_list = qcms_modular_transform_create(profile, NULL);
-
-	// Now calculate how the profile transforms white input color to PCS XYZ space.
-	if (transform_list != NULL) {
-		XYZ[0] = XYZ[1] = XYZ[2] = 1.0f; // white input
-		qcms_modular_transform_data(transform_list, XYZ, XYZ, 1);
-		// qcms_modular_transform_create internally scales input by 1/1.999969482421875f
-		// but no qcms changelog describes why / how that number was choosen. junov@ "it
-		// might be related to the epsilon of the fixed-point type 2*(1-1/(2^16)), but
-		// there is no explanation, which is disconcerting." Meanwhile, undo the internal
-		// scaling so we return a normalized CIEXYZ value viz., where Y is scaled to 1.0.
-		// A properly created color profile should produce Y=~1.0 in PCS XYZ with white
-		// input (the D50 test). If it does not, then the profile is likely bogus.
-		XYZ[0] *= inverse_internal_scale;
-		XYZ[1] *= inverse_internal_scale;
-		XYZ[2] *= inverse_internal_scale;
-		qcms_modular_transform_release(transform_list);
-		return true;
-	}
-
-	return false;
-}
diff --git a/third_party/qcms/src/chain.h b/third_party/qcms/src/chain.h
deleted file mode 100644
index bdc6c88..0000000
--- a/third_party/qcms/src/chain.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef _QCMS_CHAIN_H
-#define _QCMS_CHAIN_H
-
-// Generates and returns a 3D LUT with lutSize^3 samples using the provided src/dest.
-float* qcms_chain_transform(qcms_profile *in, qcms_profile *out, float *src, float *dest, size_t lutSize);
-
-#endif
diff --git a/third_party/qcms/src/empty.c b/third_party/qcms/src/empty.c
deleted file mode 100644
index 63a666f8..0000000
--- a/third_party/qcms/src/empty.c
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-/*
- * qcms is not built on this port: see http://crbug.com/577155
- */
diff --git a/third_party/qcms/src/halffloat.h b/third_party/qcms/src/halffloat.h
deleted file mode 100644
index 35c7250..0000000
--- a/third_party/qcms/src/halffloat.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef _QCMS_HALFFLOAT_H
-#define _QCMS_HALFFLOAT_H
-
-const unsigned short qcms_half_float_base_table[512] = {
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,
-        0,      0,      0,      0,      0,      0,      0,      1,      2,      4,      8,      16,     32,     64,     128,    256,
-        512,    1024,   2048,   3072,   4096,   5120,   6144,   7168,   8192,   9216,   10240,  11264,  12288,  13312,  14336,  15360,
-        16384,  17408,  18432,  19456,  20480,  21504,  22528,  23552,  24576,  25600,  26624,  27648,  28672,  29696,  30720,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,  31744,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,  32768,
-        32768,  32768,  32768,  32768,  32768,  32768,  32768,  32769,  32770,  32772,  32776,  32784,  32800,  32832,  32896,  33024,
-        33280,  33792,  34816,  35840,  36864,  37888,  38912,  39936,  40960,  41984,  43008,  44032,  45056,  46080,  47104,  48128,
-        49152,  50176,  51200,  52224,  53248,  54272,  55296,  56320,  57344,  58368,  59392,  60416,  61440,  62464,  63488,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,
-        64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512,  64512
-};
-
-const unsigned char qcms_half_float_shift_table[512] = {
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     23,     22,     21,     20,     19,     18,     17,     16,     15,
-        14,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,
-        13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     13,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     23,     22,     21,     20,     19,     18,     17,     16,     15,
-        14,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,
-        13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     13,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,
-        24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     24,     13
-};
-
-static inline unsigned short float_to_half_float(float f)
-{
-	// See Blink::Source/platform/graphics/gpu/WebGLImageConversion.cpp::convertFloatToHalfFloat() and http://crbug.com/491784
-
-	unsigned temp = *((unsigned *)(&f));
-	unsigned signexp = (temp >> 23) & 0x1ff;
-	return qcms_half_float_base_table[signexp] + ((temp & 0x007fffff) >> qcms_half_float_shift_table[signexp]);
-}
-
-#endif
diff --git a/third_party/qcms/src/iccread.c b/third_party/qcms/src/iccread.c
deleted file mode 100644
index 11c1d76..0000000
--- a/third_party/qcms/src/iccread.c
+++ /dev/null
@@ -1,1651 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include <math.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h> //memset
-#include "qcmsint.h"
-
-/* It might be worth having a unified limit on content controlled
- * allocation per profile. This would remove the need for many
- * of the arbitrary limits that we used */
-
-typedef uint32_t be32;
-typedef uint16_t be16;
-
-#if 0
-not used yet
-/* __builtin_bswap isn't available in older gccs
- * so open code it for now */
-static be32 cpu_to_be32(int32_t v)
-{
-#ifdef IS_LITTLE_ENDIAN
-	return ((v & 0xff) << 24) | ((v & 0xff00) << 8) | ((v & 0xff0000) >> 8) | ((v & 0xff000000) >> 24);
-	//return __builtin_bswap32(v);
-	return v;
-#endif
-}
-#endif
-
-static uint32_t be32_to_cpu(be32 v)
-{
-#ifdef IS_LITTLE_ENDIAN
-	return ((v & 0xff) << 24) | ((v & 0xff00) << 8) | ((v & 0xff0000) >> 8) | ((v & 0xff000000) >> 24);
-	//return __builtin_bswap32(v);
-#else
-	return v;
-#endif
-}
-
-static uint16_t be16_to_cpu(be16 v)
-{
-#ifdef IS_LITTLE_ENDIAN
-	return ((v & 0xff) << 8) | ((v & 0xff00) >> 8);
-#else
-	return v;
-#endif
-}
-
-/* a wrapper around the memory that we are going to parse
- * into a qcms_profile */
-struct mem_source
-{
-	const unsigned char *buf;
-	size_t size;
-	qcms_bool valid;
-	const char *invalid_reason;
-};
-
-static void invalid_source(struct mem_source *mem, const char *reason)
-{
-	mem->valid = false;
-	mem->invalid_reason = reason;
-}
-
-static uint32_t read_u32(struct mem_source *mem, size_t offset)
-{
-	/* Subtract from mem->size instead of the more intuitive adding to offset.
-	 * This avoids overflowing offset. The subtraction is safe because
-	 * mem->size is guaranteed to be > 4 */
-	if (offset > mem->size - 4) {
-		invalid_source(mem, "Invalid offset");
-		return 0;
-	} else {
-		be32 k;
-		memcpy(&k, mem->buf + offset, sizeof(k));
-		return be32_to_cpu(k);
-	}
-}
-
-static uint16_t read_u16(struct mem_source *mem, size_t offset)
-{
-	if (offset > mem->size - 2) {
-		invalid_source(mem, "Invalid offset");
-		return 0;
-	} else {
-		be16 k;
-		memcpy(&k, mem->buf + offset, sizeof(k));
-		return be16_to_cpu(k);
-	}
-}
-
-static uint8_t read_u8(struct mem_source *mem, size_t offset)
-{
-	if (offset > mem->size - 1) {
-		invalid_source(mem, "Invalid offset");
-		return 0;
-	} else {
-		return *(uint8_t*)(mem->buf + offset);
-	}
-}
-
-static s15Fixed16Number read_s15Fixed16Number(struct mem_source *mem, size_t offset)
-{
-	return read_u32(mem, offset);
-}
-
-static uInt8Number read_uInt8Number(struct mem_source *mem, size_t offset)
-{
-	return read_u8(mem, offset);
-}
-
-static uInt16Number read_uInt16Number(struct mem_source *mem, size_t offset)
-{
-	return read_u16(mem, offset);
-}
-
-#define BAD_VALUE_PROFILE NULL
-#define INVALID_PROFILE NULL
-#define NO_MEM_PROFILE NULL
-
-/* An arbitrary 4MB limit on profile size */
-#define MAX_PROFILE_SIZE 1024*1024*4
-#define MAX_TAG_COUNT 1024
-
-static void check_CMM_type_signature(struct mem_source *src)
-{
-	//uint32_t CMM_type_signature = read_u32(src, 4);
-}
-
-static void read_profile_version(qcms_profile *profile, struct mem_source *src)
-{
-	uint8_t major_revision = read_u8(src, 8 + 0);
-	uint8_t minor_revision = read_u8(src, 8 + 1);
-	uint8_t reserved_byte1 = read_u8(src, 8 + 2);
-	uint8_t reserved_byte2 = read_u8(src, 8 + 3);
-
-	profile->icc_version = major_revision << 8 | minor_revision;
-
-	if (reserved_byte1 || reserved_byte2) {
-		invalid_source(src, "Invalid reserved bytes");
-		return;
-	}
-
-	if (major_revision == 2)
-		return; // ICC V2.X color profile
-	if (major_revision == 4 && qcms_supports_iccv4)
-		return; // ICC V4.X color profile
-
-	/* Checking the version doesn't buy us anything: permit any
-	   version without failure for now */
-	// invalid_source(src, "Unsupported ICC revision");
-	return;
-}
-
-#define INPUT_DEVICE_PROFILE   0x73636e72 // 'scnr'
-#define DISPLAY_DEVICE_PROFILE 0x6d6e7472 // 'mntr'
-#define OUTPUT_DEVICE_PROFILE  0x70727472 // 'prtr'
-#define DEVICE_LINK_PROFILE    0x6c696e6b // 'link'
-#define COLOR_SPACE_PROFILE    0x73706163 // 'spac'
-#define ABSTRACT_PROFILE       0x61627374 // 'abst'
-#define NAMED_COLOR_PROFILE    0x6e6d636c // 'nmcl'
-
-static void read_class_signature(qcms_profile *profile, struct mem_source *mem)
-{
-	profile->class = read_u32(mem, 12);
-	switch (profile->class) {
-		case DISPLAY_DEVICE_PROFILE:
-		case INPUT_DEVICE_PROFILE:
-		case OUTPUT_DEVICE_PROFILE:
-		case COLOR_SPACE_PROFILE:
-			break;
-		default:
-			invalid_source(mem, "Invalid  Profile/Device Class signature");
-	}
-}
-
-static void read_color_space(qcms_profile *profile, struct mem_source *mem)
-{
-	profile->color_space = read_u32(mem, 16);
-	switch (profile->color_space) {
-		case RGB_SIGNATURE:
-		case GRAY_SIGNATURE:
-			break;
-		default:
-			invalid_source(mem, "Unsupported colorspace");
-	}
-}
-
-static void read_pcs(qcms_profile *profile, struct mem_source *mem)
-{
-	profile->pcs = read_u32(mem, 20);
-	switch (profile->pcs) {
-		case XYZ_SIGNATURE:
-		case LAB_SIGNATURE:
-			break;
-		default:
-			invalid_source(mem, "Unsupported pcs");
-	}
-}
-
-struct tag {
-	uint32_t signature;
-	uint32_t offset;
-	uint32_t size;
-};
-
-struct tag_index {
-	uint32_t count;
-	struct tag *tags;
-};
-
-static struct tag_index read_tag_table(qcms_profile *profile, struct mem_source *mem)
-{
-	struct tag_index index = {0, NULL};
-	unsigned int i;
-
-	index.count = read_u32(mem, 128);
-	if (index.count > MAX_TAG_COUNT) {
-		invalid_source(mem, "max number of tags exceeded");
-		return index;
-	}
-
-	index.tags = malloc(sizeof(struct tag)*index.count);
-	if (index.tags) {
-		for (i = 0; i < index.count; i++) {
-			index.tags[i].signature = read_u32(mem, 128 + 4 + 4*i*3);
-			index.tags[i].offset    = read_u32(mem, 128 + 4 + 4*i*3 + 4);
-			index.tags[i].size      = read_u32(mem, 128 + 4 + 4*i*3 + 8);
-		}
-	}
-
-	return index;
-}
-
-/* Checks a profile for obvious inconsistencies and return true if the
- * profile looks bogus and should probably be ignored.
- */
-qcms_bool qcms_profile_is_bogus(qcms_profile *profile)
-{
-    float rX, rY, rZ, gX, gY, gZ, bX, bY, bZ;
-    float target[3], tolerance[3], sum[3];
-    unsigned i;
-
-    // We currently only check the bogosity of RGB profiles.
-    if (profile->color_space != RGB_SIGNATURE)
-        return false;
-
-    if (qcms_supports_iccv4 && (profile->A2B0 || profile->B2A0))
-        return false;
-
-    rX = s15Fixed16Number_to_float(profile->redColorant.X);
-    rY = s15Fixed16Number_to_float(profile->redColorant.Y);
-    rZ = s15Fixed16Number_to_float(profile->redColorant.Z);
-
-    gX = s15Fixed16Number_to_float(profile->greenColorant.X);
-    gY = s15Fixed16Number_to_float(profile->greenColorant.Y);
-    gZ = s15Fixed16Number_to_float(profile->greenColorant.Z);
-
-    bX = s15Fixed16Number_to_float(profile->blueColorant.X);
-    bY = s15Fixed16Number_to_float(profile->blueColorant.Y);
-    bZ = s15Fixed16Number_to_float(profile->blueColorant.Z);
-
-    // Build our target vector: CIE D50 white. See also mozilla bug 460629,
-    // and http://www.color.org/whyd50.xalter "Why is the media white point
-    // of a display profile always D50?"
-
-    target[0] = (float) 0.96420;
-    target[1] = (float) 1.00000;
-    target[2] = (float) 0.82491;
-
-    // Our tolerance vector - Recommended by Chris Murphy [1] based on
-    // conversion from the L*a*b space criterion of no more than 3 in any
-    // one channel. This is similar to, but slightly more tolerant than
-    // Adobe's criterion. [1] https://bugzil.la/460629#c10
-
-    tolerance[0] = (float) 0.02;
-    tolerance[1] = (float) 0.02;
-    tolerance[2] = (float) 0.04;
-
-    // Sum the XYZ values: they should add to D50 white, within tolerance.
-
-    // FIXME: this test assumes the TRC RGB curves equal 1.0 for the white
-    // input (255,255,255) RGB test color. For user display profiles, that
-    // is the normal case. Profiles with abnormal TRC exist. A better test
-    // would transform 255,255,255 white through the profile to either XYZ
-    // or L*a*b color and compare the result to D50 in XYZ or L*a*b color.
-
-    sum[0] = rX + gX + bX;
-    sum[1] = rY + gY + bY;
-    sum[2] = rZ + gZ + bZ;
-
-    for (i = 0; i < 3; ++i) {
-        if (!(((sum[i] - tolerance[i]) <= target[i]) &&
-              ((sum[i] + tolerance[i]) >= target[i]))) {
-            return true; // out of tolerance: bogus
-        }
-    }
-
-#ifndef __APPLE__
-    // Check if any of the XYZ values are negative (see mozilla bug 498245)
-    // CIEXYZ tristimulus values cannot be negative according to the spec.
-
-    bool negative =
-        (rX < 0) || (rY < 0) || (rZ < 0) ||
-        (gX < 0) || (gY < 0) || (gZ < 0) ||
-        (bX < 0) || (bY < 0) || (bZ < 0);
-
-    if (negative)
-        return true; // bogus
-#else
-    // Chromatic adaption to D50 can result in negative XYZ, but the white
-    // point D50 tolerance test has passed. Accept negative values herein.
-    // See https://bugzilla.mozilla.org/show_bug.cgi?id=498245#c18 onwards
-    // for discussion about whether profile XYZ can or cannot be negative,
-    // per the spec. Also the https://bugzil.la/450923 user report.
-
-    // FIXME: allow this relaxation on all ports?
-#endif
-    // All good.
-    return false;
-}
-
-qcms_bool qcms_profile_has_white_point(qcms_profile *profile)
-{
-    struct XYZNumber wp = profile->mediaWhitePoint;
-
-    return (wp.X != 0) && (wp.Y != 0) && (wp.Z != 0);
-}
-
-qcms_xyz_float qcms_profile_get_white_point(qcms_profile *profile)
-{
-    qcms_xyz_float wp = { 0.0f, 0.0f, 0.0f };
-
-    if (qcms_profile_has_white_point(profile)) {
-        wp.X = s15Fixed16Number_to_float(profile->mediaWhitePoint.X);
-        wp.Y = s15Fixed16Number_to_float(profile->mediaWhitePoint.Y);
-        wp.Z = s15Fixed16Number_to_float(profile->mediaWhitePoint.Z);
-    }
-
-    return wp;
-}
-
-#define TAG_bXYZ 0x6258595a
-#define TAG_gXYZ 0x6758595a
-#define TAG_rXYZ 0x7258595a
-#define TAG_rTRC 0x72545243
-#define TAG_bTRC 0x62545243
-#define TAG_gTRC 0x67545243
-#define TAG_kTRC 0x6b545243
-#define TAG_A2B0 0x41324230
-#define TAG_B2A0 0x42324130
-#define TAG_CHAD 0x63686164
-#define TAG_desc 0x64657363
-#define TAG_vcgt 0x76636774
-#define TAG_wtpt 0x77747074
-
-static struct tag *find_tag(struct tag_index index, uint32_t tag_id)
-{
-	unsigned int i;
-
-	for (i = 0; i < index.count; i++) {
-		if (index.tags[i].signature == tag_id)
-			return &index.tags[i];
-	}
-
-	return NULL;
-}
-
-#define DESC_TYPE 0x64657363 // 'desc'
-#define MLUC_TYPE 0x6d6c7563 // 'mluc'
-#define MMOD_TYPE 0x6D6D6F64 // 'mmod'
-#define VCGT_TYPE 0x76636774 // 'vcgt'
-
-enum {
-	VCGT_TYPE_TABLE,
-	VCGT_TYPE_FORMULA,
-	VCGT_TYPE_LAST = VCGT_TYPE_FORMULA
-};
-
-static qcms_bool read_tag_vcgtType(qcms_profile *profile, struct mem_source *src, struct tag_index index)
-{
-	size_t tag_offset = find_tag(index, TAG_vcgt)->offset;
-	uint32_t tag_type = read_u32(src, tag_offset);
-	uint32_t vcgt_type = read_u32(src, tag_offset + 8);
-
-	if (!src->valid || tag_type != VCGT_TYPE)
-		goto invalid_vcgt_tag;
-
-	// Only support table and equation types.
-	if (vcgt_type > VCGT_TYPE_LAST)
-		return true;
-
-	if (vcgt_type == VCGT_TYPE_TABLE) {
-		uint16_t channels = read_u16(src, tag_offset + 12);
-		uint16_t elements = read_u16(src, tag_offset + 14);
-		uint16_t byte_depth = read_u16(src, tag_offset + 16);
-		size_t table_offset = tag_offset + 18;
-		uint32_t i;
-		uint16_t *dest;
-
-		if (!src->valid)
-			goto invalid_vcgt_tag;
-
-		// Only support 3 channels.
-		if (channels != 3)
-			return true;
-		// Only support single or double byte values.
-		if (byte_depth != 1 && byte_depth != 2)
-			return true;
-		// Limit the table to a sensible size; 10-bit gamma is a reasonable
-		// maximum for hardware correction.
-		if (elements > 1024)
-			return true;
-
-		// Empty table is invalid.
-		if (!elements)
-			goto invalid_vcgt_tag;
-
-		profile->vcgt.length = elements;
-		profile->vcgt.data = malloc(3 * elements * sizeof(uint16_t));
-		if (!profile->vcgt.data)
-			return false;
-
-		dest = profile->vcgt.data;
-
-		for (i = 0; i < 3 * elements; ++i) {
-			if (byte_depth == 1) {
-				*dest++ = read_u8(src, table_offset) * 256;
-			} else {
-				*dest++ = read_u16(src, table_offset);
-			}
-
-			table_offset += byte_depth;
-
-			if (!src->valid)
-				goto invalid_vcgt_tag;
-		}
-	} else {
-		size_t formula_offset = tag_offset + 12;
-		int i, j;
-		uint16_t *dest;
-
-		// For formula always provide an 8-bit lut.
-		profile->vcgt.length = 256;
-		profile->vcgt.data = malloc(3 * profile->vcgt.length * sizeof(uint16_t));
-		if (!profile->vcgt.data)
-			return false;
-
-		dest = profile->vcgt.data;
-		for (i = 0; i < 3; ++i) {
-			float gamma = s15Fixed16Number_to_float(
-					read_s15Fixed16Number(src, formula_offset + 12 * i));
-			float min = s15Fixed16Number_to_float(
-					read_s15Fixed16Number(src, formula_offset + 4 + 12 * i));
-			float max = s15Fixed16Number_to_float(
-					read_s15Fixed16Number(src, formula_offset + 8 + 12 * i));
-			float range = max - min;
-
-			if (!src->valid)
-				goto invalid_vcgt_tag;
-			if (gamma <= 0)
-				goto invalid_vcgt_tag;
-			if (min <= 0 || min > 1.f)
-				goto invalid_vcgt_tag;
-			if (max <= 0 || max > 1.f || min > max)
-				goto invalid_vcgt_tag;
-
-			for (j = 0; j < profile->vcgt.length; ++j) {
-				*dest++ = 65535.f *
-					(min + range * pow((float)j / (profile->vcgt.length - 1), gamma));
-			}
-		}
-	}
-
-	return true;
-
-invalid_vcgt_tag:
-	invalid_source(src, "invalid vcgt tag");
-	return false;
-}
-
-static bool read_tag_descType(qcms_profile *profile, struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct tag *tag = find_tag(index, tag_id);
-	if (tag) {
-		const uint32_t limit = sizeof profile->description;
-		uint32_t offset = tag->offset;
-		uint32_t type = read_u32(src, offset);
-		uint32_t length = read_u32(src, offset+8);
-		uint32_t i, description_offset;
-		bool mluc = false;
-		if (length && type == MLUC_TYPE) {
-			length = read_u32(src, offset+20);
-			if (!length || (length & 1) || (read_u32(src, offset+12) != 12))
-				goto invalid_desc_tag;
-			description_offset = offset + read_u32(src, offset+24);
-			if (!src->valid)
-				goto invalid_desc_tag;
-			mluc = true;
-		} else if (length && type == DESC_TYPE) {
-			description_offset = offset + 12;
-		} else {
-			goto invalid_desc_tag;
-		}
-		if (length >= limit)
-			length = limit - 1;
-		for (i = 0; i < length; ++i) {
-			uint8_t value = read_u8(src, description_offset + i);
-			if (!src->valid)
-				goto invalid_desc_tag;
-			if (mluc && !value)
-				value = '.';
-			profile->description[i] = value;
-		}
-		profile->description[length] = 0;
-	} else {
-		goto invalid_desc_tag;
-	}
-
-	if (src->valid)
-		return true;
-
-invalid_desc_tag:
-	invalid_source(src, "invalid description");
-	return false;
-}
-
-#if defined(__APPLE__)
-
-// Use the dscm tag to change profile description "Display" to its more specific en-localized monitor name, if any.
-
-#define TAG_dscm  0x6473636D // 'dscm'
-
-static bool read_tag_dscmType(qcms_profile *profile, struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	if (strcmp(profile->description, "Display") != 0)
-		return true;
-
-	struct tag *tag = find_tag(index, tag_id);
-	if (tag) {
-		uint32_t offset = tag->offset;
-		uint32_t type = read_u32(src, offset);
-		uint32_t records = read_u32(src, offset+8);
-
-		if (!src->valid || !records || type != MLUC_TYPE)
-			goto invalid_dscm_tag;
-		if (read_u32(src, offset+12) != 12) // MLUC record size: bytes
-			goto invalid_dscm_tag;
-
-		for (uint32_t i = 0; i < records; ++i) {
-			const uint32_t limit = sizeof profile->description;
-			const uint16_t isoen = 0x656E; // ISO-3166-1 language 'en'
-
-			uint16_t language = read_u16(src, offset + 16 + (i * 12) + 0);
-			uint32_t length = read_u32(src, offset + 16 + (i * 12) + 4);
-			uint32_t description_offset = read_u32(src, offset + 16 + (i * 12) + 8);
-
-			if (!src->valid || !length || (length & 1))
-				goto invalid_dscm_tag;
-			if (language != isoen)
-				continue;
-
-			// Use a prefix to identify the display description source
-			strcpy(profile->description, "dscm:");
-			length += 5;
-
-			if (length >= limit)
-				length = limit - 1;
-			for (uint32_t j = 5; j < length; ++j) {
-				uint8_t value = read_u8(src, offset + description_offset + j - 5);
-				if (!src->valid)
-					goto invalid_dscm_tag;
-				profile->description[j] = value ? value : '.';
-			}
-			profile->description[length] = 0;
-			break;
-		}
-	}
-
-	if (src->valid)
-		return true;
-
-invalid_dscm_tag:
-	invalid_source(src, "invalid dscm tag");
-	return false;
-}
-
-// Use the mmod tag to change profile description "Display" to its specific mmod maker model data, if any.
-
-#define TAG_mmod  0x6D6D6F64 // 'mmod'
-
-static bool read_tag_mmodType(qcms_profile *profile, struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	if (strcmp(profile->description, "Display") != 0)
-		return true;
-
-	struct tag *tag = find_tag(index, tag_id);
-	if (tag) {
-		const uint8_t length = 4 * 4; // Four 4-byte fields: 'mmod', 0, maker, model.
-
-		uint32_t offset = tag->offset;
-		if (tag->size < 40 || read_u32(src, offset) != MMOD_TYPE)
-			goto invalid_mmod_tag;
-
-		for (uint8_t i = 0; i < length; ++i) {
-			uint8_t value = read_u8(src, offset + i);
-			if (!src->valid)
-				goto invalid_mmod_tag;
-			profile->description[i] = value ? value : '.';
-		}
-		profile->description[length] = 0;
-	}
-
-	if (src->valid)
-		return true;
-
-invalid_mmod_tag:
-	invalid_source(src, "invalid mmod tag");
-	return false;
-}
-
-#endif // __APPLE__
-
-#define XYZ_TYPE		0x58595a20 // 'XYZ '
-#define CURVE_TYPE		0x63757276 // 'curv'
-#define PARAMETRIC_CURVE_TYPE	0x70617261 // 'para'
-#define LUT16_TYPE		0x6d667432 // 'mft2'
-#define LUT8_TYPE		0x6d667431 // 'mft1'
-#define LUT_MAB_TYPE		0x6d414220 // 'mAB '
-#define LUT_MBA_TYPE		0x6d424120 // 'mBA '
-#define CHROMATIC_TYPE		0x73663332 // 'sf32'
-
-static struct matrix read_tag_s15Fixed16ArrayType(struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct tag *tag = find_tag(index, tag_id);
-	struct matrix matrix;
-	if (tag) {
-		uint8_t i;
-		uint32_t offset = tag->offset;
-		uint32_t type = read_u32(src, offset);
-
-		// Check mandatory type signature for s16Fixed16ArrayType
-		if (type != CHROMATIC_TYPE) {
-			invalid_source(src, "unexpected type, expected 'sf32'");
-		}
-
-		for (i = 0; i < 9; i++) {
-			matrix.m[i/3][i%3] = s15Fixed16Number_to_float(read_s15Fixed16Number(src, offset+8+i*4));
-		}
-		matrix.invalid = false;
-	} else {
-		matrix.invalid = true;
-		invalid_source(src, "missing sf32tag");
-	}
-	return matrix;
-}
-
-static struct XYZNumber read_tag_XYZType(struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct XYZNumber num = {0, 0, 0};
-	struct tag *tag = find_tag(index, tag_id);
-	if (tag) {
-		uint32_t offset = tag->offset;
-
-		uint32_t type = read_u32(src, offset);
-		if (type != XYZ_TYPE)
-			invalid_source(src, "unexpected type, expected XYZ");
-		num.X = read_s15Fixed16Number(src, offset+8);
-		num.Y = read_s15Fixed16Number(src, offset+12);
-		num.Z = read_s15Fixed16Number(src, offset+16);
-	} else {
-		invalid_source(src, "missing xyztag");
-	}
-	return num;
-}
-
-// Read the tag at a given offset rather then the tag_index. 
-// This method is used when reading mAB tags where nested curveType are
-// present that are not part of the tag_index.
-static struct curveType *read_curveType(struct mem_source *src, uint32_t offset, uint32_t *len)
-{
-	static const uint32_t COUNT_TO_LENGTH[5] = {1, 3, 4, 5, 7};
-	struct curveType *curve = NULL;
-	uint32_t type = read_u32(src, offset);
-	uint32_t count;
-	int i;
-
-	if (type != CURVE_TYPE && type != PARAMETRIC_CURVE_TYPE) {
-		invalid_source(src, "unexpected type, expected CURV or PARA");
-		return NULL;
-	}
-
-	if (type == CURVE_TYPE) {
-		count = read_u32(src, offset+8);
-
-#define MAX_CURVE_ENTRIES 40000 //arbitrary
-		if (count > MAX_CURVE_ENTRIES) {
-			invalid_source(src, "curve size too large");
-			return NULL;
-		}
-		curve = malloc(sizeof(struct curveType) + sizeof(uInt16Number)*count);
-		if (!curve)
-			return NULL;
-
-		curve->count = count;
-		curve->type = type;
-
-		for (i=0; i<count; i++) {
-			curve->data[i] = read_u16(src, offset + 12 + i*2);
-		}
-		*len = 12 + count * 2;
-	} else { //PARAMETRIC_CURVE_TYPE
-		count = read_u16(src, offset+8);
-
-		if (count > 4) {
-			invalid_source(src, "parametric function type not supported.");
-			return NULL;
-		}
-
-		curve = malloc(sizeof(struct curveType));
-		if (!curve)
-			return NULL;
-
-		curve->count = count;
-		curve->type = type;
-
-		for (i=0; i < COUNT_TO_LENGTH[count]; i++) {
-			curve->parameter[i] = s15Fixed16Number_to_float(read_s15Fixed16Number(src, offset + 12 + i*4));	
-		}
-		*len = 12 + COUNT_TO_LENGTH[count] * 4;
-
-		if ((count == 1 || count == 2)) {
-			/* we have a type 1 or type 2 function that has a division by 'a' */
-			float a = curve->parameter[1];
-			if (a == 0.f)
-				invalid_source(src, "parametricCurve definition causes division by zero.");
-		}
-	}
-
-	return curve;
-}
-
-static struct curveType *read_tag_curveType(struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct tag *tag = find_tag(index, tag_id);
-	struct curveType *curve = NULL;
-	if (tag) {
-		uint32_t len;
-		return read_curveType(src, tag->offset, &len);
-	} else {
-		invalid_source(src, "missing curvetag");
-	}
-
-	return curve;
-}
-
-#define MAX_CLUT_SIZE 500000 // arbitrary
-#define MAX_CHANNELS 10 // arbitrary
-static void read_nested_curveType(struct mem_source *src, struct curveType *(*curveArray)[MAX_CHANNELS], uint8_t num_channels, uint32_t curve_offset)
-{
-	uint32_t channel_offset = 0;
-	int i;
-	for (i = 0; i < num_channels; i++) {
-		uint32_t tag_len = ~0;
-
-		(*curveArray)[i] = read_curveType(src, curve_offset + channel_offset, &tag_len);
-		if (!(*curveArray)[i]) {
-			invalid_source(src, "invalid nested curveType curve");
-		}
-
-		if (tag_len == ~0) {
-			invalid_source(src, "invalid nested curveType tag length");
-			return;
-		}
-
-		channel_offset += tag_len;
-		// 4 byte aligned
-		if ((tag_len % 4) != 0)
-			channel_offset += 4 - (tag_len % 4);
-	}
-}
-
-static void mAB_release(struct lutmABType *lut)
-{
-	uint8_t i;
-
-	for (i = 0; i < lut->num_in_channels; i++){
-		free(lut->a_curves[i]);
-	}
-	for (i = 0; i < lut->num_out_channels; i++){
-		free(lut->b_curves[i]);
-		free(lut->m_curves[i]);
-	}
-	free(lut);
-}
-
-/* See section 10.10 for specs */
-static struct lutmABType *read_tag_lutmABType(struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct tag *tag = find_tag(index, tag_id);
-	uint32_t offset = tag->offset;
-	uint32_t a_curve_offset, b_curve_offset, m_curve_offset;
-	uint32_t matrix_offset;
-	uint32_t clut_offset;
-	uint32_t clut_size = 1;
-	uint8_t clut_precision;
-	uint32_t type = read_u32(src, offset);
-	uint8_t num_in_channels, num_out_channels;
-	struct lutmABType *lut;
-	int i;
-
-	if (type != LUT_MAB_TYPE && type != LUT_MBA_TYPE) {
-		return NULL;
-	}
-
-	num_in_channels = read_u8(src, offset + 8);
-	num_out_channels = read_u8(src, offset + 8);
-	if (num_in_channels > MAX_CHANNELS || num_out_channels > MAX_CHANNELS)
-		return NULL;
-
-	// We require 3in/out channels since we only support RGB->XYZ (or RGB->LAB)
-	// XXX: If we remove this restriction make sure that the number of channels
-	//      is less or equal to the maximum number of mAB curves in qcmsint.h
-	//      also check for clut_size overflow. Also make sure it's != 0
-	if (num_in_channels != 3 || num_out_channels != 3)
-		return NULL;
-
-	// some of this data is optional and is denoted by a zero offset
-	// we also use this to track their existance
-	a_curve_offset = read_u32(src, offset + 28);
-	clut_offset = read_u32(src, offset + 24);
-	m_curve_offset = read_u32(src, offset + 20);
-	matrix_offset = read_u32(src, offset + 16);
-	b_curve_offset = read_u32(src, offset + 12);
-
-	// Convert offsets relative to the tag to relative to the profile
-	// preserve zero for optional fields
-	if (a_curve_offset)
-		a_curve_offset += offset;
-	if (clut_offset)
-		clut_offset += offset;
-	if (m_curve_offset)
-		m_curve_offset += offset;
-	if (matrix_offset)
-		matrix_offset += offset;
-	if (b_curve_offset)
-		b_curve_offset += offset;
-
-	if (clut_offset) {
-		assert (num_in_channels == 3);
-		// clut_size can not overflow since lg(256^num_in_channels) = 24 bits.
-		for (i = 0; i < num_in_channels; i++) {
-			clut_size *= read_u8(src, clut_offset + i);
-			if (clut_size == 0) {
-				invalid_source(src, "bad clut_size");
-			}
-		}
-	} else {
-		clut_size = 0;
-	}
-
-	// 24bits * 3 won't overflow either
-	clut_size = clut_size * num_out_channels;
-
-	if (clut_size > MAX_CLUT_SIZE)
-		return NULL;
-
-	lut = malloc(sizeof(struct lutmABType) + (clut_size) * sizeof(float));
-	if (!lut)
-		return NULL;
-	// we'll fill in the rest below
-	memset(lut, 0, sizeof(struct lutmABType));
-	lut->clut_table   = &lut->clut_table_data[0];
-
-	if (clut_offset) {
-		for (i = 0; i < num_in_channels; i++) {
-			lut->num_grid_points[i] = read_u8(src, clut_offset + i);
-			if (lut->num_grid_points[i] == 0) {
-				invalid_source(src, "bad grid_points");
-			}
-		}
-	}
-
-	// Reverse the processing of transformation elements for mBA type.
-	lut->reversed = (type == LUT_MBA_TYPE);
-
-	lut->num_in_channels = num_in_channels;
-	lut->num_out_channels = num_out_channels;
-
-	if (matrix_offset) {
-		// read the matrix if we have it
-		lut->e00 = read_s15Fixed16Number(src, matrix_offset+4*0);
-		lut->e01 = read_s15Fixed16Number(src, matrix_offset+4*1);
-		lut->e02 = read_s15Fixed16Number(src, matrix_offset+4*2);
-		lut->e10 = read_s15Fixed16Number(src, matrix_offset+4*3);
-		lut->e11 = read_s15Fixed16Number(src, matrix_offset+4*4);
-		lut->e12 = read_s15Fixed16Number(src, matrix_offset+4*5);
-		lut->e20 = read_s15Fixed16Number(src, matrix_offset+4*6);
-		lut->e21 = read_s15Fixed16Number(src, matrix_offset+4*7);
-		lut->e22 = read_s15Fixed16Number(src, matrix_offset+4*8);
-		lut->e03 = read_s15Fixed16Number(src, matrix_offset+4*9);
-		lut->e13 = read_s15Fixed16Number(src, matrix_offset+4*10);
-		lut->e23 = read_s15Fixed16Number(src, matrix_offset+4*11);
-	}
-
-	if (a_curve_offset) {
-		read_nested_curveType(src, &lut->a_curves, num_in_channels, a_curve_offset);
-	}
-	if (m_curve_offset) {
-		read_nested_curveType(src, &lut->m_curves, num_out_channels, m_curve_offset);
-	}
-	if (b_curve_offset) {
-		read_nested_curveType(src, &lut->b_curves, num_out_channels, b_curve_offset);
-	} else {
-		invalid_source(src, "B curves required");
-	}
-
-	if (clut_offset) {
-		clut_precision = read_u8(src, clut_offset + 16);
-		if (clut_precision == 1) {
-			for (i = 0; i < clut_size; i++) {
-				lut->clut_table[i] = uInt8Number_to_float(read_uInt8Number(src, clut_offset + 20 + i*1));
-			}
-		} else if (clut_precision == 2) {
-			for (i = 0; i < clut_size; i++) {
-				lut->clut_table[i] = uInt16Number_to_float(read_uInt16Number(src, clut_offset + 20 + i*2));
-			}
-		} else {
-			invalid_source(src, "Invalid clut precision");
-		}
-	}
-
-	if (!src->valid) {
-		mAB_release(lut);
-		return NULL;
-	}
-
-	return lut;
-}
-
-static struct lutType *read_tag_lutType(struct mem_source *src, struct tag_index index, uint32_t tag_id)
-{
-	struct tag *tag = find_tag(index, tag_id);
-	uint32_t offset = tag->offset;
-	uint32_t type = read_u32(src, offset);
-	uint16_t num_input_table_entries;
-	uint16_t num_output_table_entries;
-	uint8_t in_chan, grid_points, out_chan;
-	size_t clut_offset, output_offset;
-	uint32_t clut_size;
-	size_t entry_size;
-	struct lutType *lut;
-	int i;
-
-	/* I'm not sure why the spec specifies a fixed number of entries for LUT8 tables even though
-	 * they have room for the num_entries fields */
-	if (type == LUT8_TYPE) {
-		num_input_table_entries = 256;
-		num_output_table_entries = 256;
-		entry_size = 1;
-	} else if (type == LUT16_TYPE) {
-		num_input_table_entries  = read_u16(src, offset + 48);
-		num_output_table_entries = read_u16(src, offset + 50);
-		if (num_input_table_entries == 0 || num_output_table_entries == 0) {
-			invalid_source(src, "Bad channel count");
-			return NULL;
-		}
-		entry_size = 2;
-	} else {
-		assert(0); // the caller checks that this doesn't happen
-		invalid_source(src, "Unexpected lut type");
-		return NULL;
-	}
-
-	in_chan     = read_u8(src, offset + 8);
-	out_chan    = read_u8(src, offset + 9);
-	grid_points = read_u8(src, offset + 10);
-
-	clut_size = pow(grid_points, in_chan);
-	if (clut_size > MAX_CLUT_SIZE) {
-		invalid_source(src, "CLUT too large");
-		return NULL;
-	}
-
-	if (clut_size <= 0) {
-		invalid_source(src, "CLUT must not be empty.");
-		return NULL;
-	}
-
-	if (in_chan != 3 || out_chan != 3) {
-		invalid_source(src, "CLUT only supports RGB");
-		return NULL;
-	}
-
-	lut = malloc(sizeof(struct lutType) + (num_input_table_entries * in_chan + clut_size*out_chan + num_output_table_entries * out_chan)*sizeof(float));
-	if (!lut) {
-		invalid_source(src, "CLUT too large");
-		return NULL;
-	}
-
-	/* compute the offsets of tables */
-	lut->input_table  = &lut->table_data[0];
-	lut->clut_table   = &lut->table_data[in_chan*num_input_table_entries];
-	lut->output_table = &lut->table_data[in_chan*num_input_table_entries + clut_size*out_chan];
-
-	lut->num_input_table_entries  = num_input_table_entries;
-	lut->num_output_table_entries = num_output_table_entries;
-	lut->num_input_channels   = in_chan;
-	lut->num_output_channels  = out_chan;
-	lut->num_clut_grid_points = grid_points;
-	lut->e00 = read_s15Fixed16Number(src, offset+12);
-	lut->e01 = read_s15Fixed16Number(src, offset+16);
-	lut->e02 = read_s15Fixed16Number(src, offset+20);
-	lut->e10 = read_s15Fixed16Number(src, offset+24);
-	lut->e11 = read_s15Fixed16Number(src, offset+28);
-	lut->e12 = read_s15Fixed16Number(src, offset+32);
-	lut->e20 = read_s15Fixed16Number(src, offset+36);
-	lut->e21 = read_s15Fixed16Number(src, offset+40);
-	lut->e22 = read_s15Fixed16Number(src, offset+44);
-
-	for (i = 0; i < lut->num_input_table_entries * in_chan; i++) {
-		if (type == LUT8_TYPE) {
-			lut->input_table[i] = uInt8Number_to_float(read_uInt8Number(src, offset + 52 + i * entry_size));
-		} else {
-			lut->input_table[i] = uInt16Number_to_float(read_uInt16Number(src, offset + 52 + i * entry_size));
-		}
-	}
-
-	clut_offset = offset + 52 + lut->num_input_table_entries * in_chan * entry_size;
-	for (i = 0; i < clut_size * out_chan; i+=3) {
-		if (type == LUT8_TYPE) {
-			lut->clut_table[i+0] = uInt8Number_to_float(read_uInt8Number(src, clut_offset + i*entry_size + 0));
-			lut->clut_table[i+1] = uInt8Number_to_float(read_uInt8Number(src, clut_offset + i*entry_size + 1));
-			lut->clut_table[i+2] = uInt8Number_to_float(read_uInt8Number(src, clut_offset + i*entry_size + 2));
-		} else {
-			lut->clut_table[i+0] = uInt16Number_to_float(read_uInt16Number(src, clut_offset + i*entry_size + 0));
-			lut->clut_table[i+1] = uInt16Number_to_float(read_uInt16Number(src, clut_offset + i*entry_size + 2));
-			lut->clut_table[i+2] = uInt16Number_to_float(read_uInt16Number(src, clut_offset + i*entry_size + 4));
-		}
-	}
-
-	output_offset = clut_offset + clut_size * out_chan * entry_size;
-	for (i = 0; i < lut->num_output_table_entries * out_chan; i++) {
-		if (type == LUT8_TYPE) {
-			lut->output_table[i] = uInt8Number_to_float(read_uInt8Number(src, output_offset + i*entry_size));
-		} else {
-			lut->output_table[i] = uInt16Number_to_float(read_uInt16Number(src, output_offset + i*entry_size));
-		}
-	}
-
-	return lut;
-}
-
-static void read_rendering_intent(qcms_profile *profile, struct mem_source *src)
-{
-	profile->rendering_intent = read_u32(src, 64);
-	switch (profile->rendering_intent) {
-		case QCMS_INTENT_PERCEPTUAL:
-		case QCMS_INTENT_SATURATION:
-		case QCMS_INTENT_RELATIVE_COLORIMETRIC:
-		case QCMS_INTENT_ABSOLUTE_COLORIMETRIC:
-			break;
-		default:
-			invalid_source(src, "unknown rendering intent");
-	}
-}
-
-qcms_profile *qcms_profile_create(void)
-{
-	return calloc(sizeof(qcms_profile), 1);
-}
-
-
-
-/* build sRGB gamma table */
-/* based on cmsBuildParametricGamma() */
-static uint16_t *build_sRGB_gamma_table(int num_entries)
-{
-	int i;
-	/* taken from lcms: Build_sRGBGamma() */
-	double gamma = 2.4;
-	double a = 1./1.055;
-	double b = 0.055/1.055;
-	double c = 1./12.92;
-	double d = 0.04045;
-
-	uint16_t *table = malloc(sizeof(uint16_t) * num_entries);
-	if (!table)
-		return NULL;
-
-	for (i=0; i<num_entries; i++) {
-		double x = (double)i / (num_entries-1);
-		double y, output;
-		// IEC 61966-2.1 (sRGB)
-		// Y = (aX + b)^Gamma | X >= d
-		// Y = cX             | X < d
-		if (x >= d) {
-			double e = (a*x + b);
-			if (e > 0)
-				y = pow(e, gamma);
-			else
-				y = 0;
-		} else {
-			y = c*x;
-		}
-
-		// Saturate -- this could likely move to a separate function
-		output = y * 65535. + .5;
-		if (output > 65535.)
-			output = 65535;
-		if (output < 0)
-			output = 0;
-		table[i] = (uint16_t)floor(output);
-	}
-	return table;
-}
-
-static struct curveType *curve_from_table(uint16_t *table, int num_entries)
-{
-	struct curveType *curve;
-	int i;
-	curve = malloc(sizeof(struct curveType) + sizeof(uInt16Number)*num_entries);
-	if (!curve)
-		return NULL;
-	curve->type = CURVE_TYPE;
-	curve->count = num_entries;
-	for (i = 0; i < num_entries; i++) {
-		curve->data[i] = table[i];
-	}
-	return curve;
-}
-
-static uint16_t float_to_u8Fixed8Number(float a)
-{
-	if (a > (255.f + 255.f/256))
-		return 0xffff;
-	else if (a < 0.f)
-		return 0;
-	else
-		return floor(a*256.f + .5f);
-}
-
-static struct curveType *curve_from_gamma(float gamma)
-{
-	struct curveType *curve;
-	int num_entries = 1;
-	curve = malloc(sizeof(struct curveType) + sizeof(uInt16Number)*num_entries);
-	if (!curve)
-		return NULL;
-	curve->type = CURVE_TYPE;
-	curve->count = num_entries;
-	curve->data[0] = float_to_u8Fixed8Number(gamma);
-	return curve;
-}
-
-
-//XXX: it would be nice if we had a way of ensuring
-// everything in a profile was initialized regardless of how it was created
-
-//XXX: should this also be taking a black_point?
-/* similar to CGColorSpaceCreateCalibratedRGB */
-qcms_profile* qcms_profile_create_rgb_with_gamma(
-		qcms_CIE_xyY white_point,
-		qcms_CIE_xyYTRIPLE primaries,
-		float gamma)
-{
-	qcms_profile* profile = qcms_profile_create();
-	if (!profile)
-		return NO_MEM_PROFILE;
-
-	if (!set_rgb_colorants(profile, white_point, primaries)) {
-		qcms_profile_release(profile);
-		return INVALID_PROFILE;
-	}
-
-	profile->redTRC = curve_from_gamma(gamma);
-	profile->blueTRC = curve_from_gamma(gamma);
-	profile->greenTRC = curve_from_gamma(gamma);
-
-	if (!profile->redTRC || !profile->blueTRC || !profile->greenTRC) {
-		qcms_profile_release(profile);
-		return NO_MEM_PROFILE;
-	}
-
-	profile->class = DISPLAY_DEVICE_PROFILE;
-	profile->rendering_intent = QCMS_INTENT_PERCEPTUAL;
-	profile->color_space = RGB_SIGNATURE;
-	profile->pcs = XYZ_SIGNATURE;
-	return profile;
-}
-
-qcms_profile* qcms_profile_create_rgb_with_table(
-		qcms_CIE_xyY white_point,
-		qcms_CIE_xyYTRIPLE primaries,
-		uint16_t *table, int num_entries)
-{
-	qcms_profile* profile = qcms_profile_create();
-	if (!profile)
-		return NO_MEM_PROFILE;
-
-	if (!set_rgb_colorants(profile, white_point, primaries)) {
-		qcms_profile_release(profile);
-		return INVALID_PROFILE;
-	}
-
-	profile->redTRC = curve_from_table(table, num_entries);
-	profile->blueTRC = curve_from_table(table, num_entries);
-	profile->greenTRC = curve_from_table(table, num_entries);
-
-	if (!profile->redTRC || !profile->blueTRC || !profile->greenTRC) {
-		qcms_profile_release(profile);
-		return NO_MEM_PROFILE;
-	}
-
-	profile->class = DISPLAY_DEVICE_PROFILE;
-	profile->rendering_intent = QCMS_INTENT_PERCEPTUAL;
-	profile->color_space = RGB_SIGNATURE;
-	profile->pcs = XYZ_SIGNATURE;
-	return profile;
-}
-
-/* from lcms: cmsWhitePointFromTemp */
-/* tempK must be >= 4000. and <= 25000.
- * Invalid values of tempK will return
- * (x,y,Y) = (-1.0, -1.0, -1.0)
- * similar to argyll: icx_DTEMP2XYZ() */
-qcms_CIE_xyY white_point_from_temp(int temp_K)
-{
-	qcms_CIE_xyY white_point;
-	double x, y;
-	double T, T2, T3;
-	// double M1, M2;
-
-	// No optimization provided.
-	T = temp_K;
-	T2 = T*T;            // Square
-	T3 = T2*T;           // Cube
-
-	// For correlated color temperature (T) between 4000K and 7000K:
-	if (T >= 4000. && T <= 7000.) {
-		x = -4.6070*(1E9/T3) + 2.9678*(1E6/T2) + 0.09911*(1E3/T) + 0.244063;
-	} else {
-		// or for correlated color temperature (T) between 7000K and 25000K:
-		if (T > 7000.0 && T <= 25000.0) {
-			x = -2.0064*(1E9/T3) + 1.9018*(1E6/T2) + 0.24748*(1E3/T) + 0.237040;
-		} else {
-			// Invalid tempK
-			white_point.x = -1.0;
-			white_point.y = -1.0;
-			white_point.Y = -1.0;
-
-			assert(0 && "invalid temp");
-			return white_point;
-		}
-	}
-
-	// Obtain y(x)
-
-	y = -3.000*(x*x) + 2.870*x - 0.275;
-
-	// wave factors (not used, but here for futures extensions)
-
-	// M1 = (-1.3515 - 1.7703*x + 5.9114 *y)/(0.0241 + 0.2562*x - 0.7341*y);
-	// M2 = (0.0300 - 31.4424*x + 30.0717*y)/(0.0241 + 0.2562*x - 0.7341*y);
-
-	// Fill white_point struct
-	white_point.x = x;
-	white_point.y = y;
-	white_point.Y = 1.0;
-
-	return white_point;
-}
-
-qcms_profile* qcms_profile_sRGB(void)
-{
-	qcms_profile *profile;
-	uint16_t *table;
-
-	// Standard Illuminant D65 in XYZ coordinates, which is the standard
-	// sRGB IEC61966-2.1 / Rec.709 profile reference media white point.
-	struct XYZNumber D65 = {
-		0xf351, 0x10000, 0x116cc // ( 0.950455, 1.000000, 1.089050 )
-	};
-
-	// sRGB IEC61966-2.1 / Rec.709 color profile primaries, chromatically
-	// adapted (via Bradford procedures) to D50 white point.
-	// For details, refer to crbug/580917
-#if 0
-	// lindbloom: ASTM E308-01 D50 White point.
-	s15Fixed16Number primaries[3][3] = {
-		{ 0x06fa3, 0x06294, 0x024a1 }, // ( 0.436081, 0.385071, 0.143082 )
-		{ 0x038f6, 0x0b785, 0x00f85 }, // ( 0.222504, 0.716873, 0.060623 )
-		{ 0x00391, 0x018dc, 0x0b6d4 }, // ( 0.013931, 0.097107, 0.714172 )
-	};
-#else
-	// ninedegreesbelow: ICC D50 White point.
-	s15Fixed16Number primaries[3][3] = {
-		{ 0x06fa0, 0x06296, 0x024a0 }, // ( 0.436035, 0.385101, 0.143066 )
-		{ 0x038f2, 0x0b789, 0x00f85 }, // ( 0.222443, 0.716934, 0.060623 )
-		{ 0x0038f, 0x018da, 0x0b6c4 }, // ( 0.013901, 0.097076, 0.713928 )
-	};
-#endif
-
-	table = build_sRGB_gamma_table(1024);
-
-	if (!table)
-		return NO_MEM_PROFILE;
-
-	profile = qcms_profile_create();
-
-	if (!profile) {
-		free(table);
-		return NO_MEM_PROFILE;
-	}
-
-	profile->redTRC = curve_from_table(table, 1024);
-	profile->blueTRC = curve_from_table(table, 1024);
-	profile->greenTRC = curve_from_table(table, 1024);
-
-	if (!profile->redTRC || !profile->blueTRC || !profile->greenTRC) {
-		qcms_profile_release(profile);
-		free(table);
-		return NO_MEM_PROFILE;
-	}
-
-	profile->redColorant.X = primaries[0][0];
-	profile->redColorant.Y = primaries[1][0];
-	profile->redColorant.Z = primaries[2][0];
-
-	profile->greenColorant.X = primaries[0][1];
-	profile->greenColorant.Y = primaries[1][1];
-	profile->greenColorant.Z = primaries[2][1];
-
-	profile->blueColorant.X = primaries[0][2];
-	profile->blueColorant.Y = primaries[1][2];
-	profile->blueColorant.Z = primaries[2][2];
-
-	profile->mediaWhitePoint.X = D65.X;
-	profile->mediaWhitePoint.Y = D65.Y;
-	profile->mediaWhitePoint.Z = D65.Z;
-
-	profile->class = DISPLAY_DEVICE_PROFILE;
-	profile->rendering_intent = QCMS_INTENT_PERCEPTUAL;
-	profile->color_space = RGB_SIGNATURE;
-	profile->pcs = XYZ_SIGNATURE;
-
-	strcpy(profile->description, "sRGB IEC61966-2.1");
-
-	free(table);
-
-	return profile;
-}
-
-/* qcms_profile_from_memory does not hold a reference to the memory passed in */
-qcms_profile* qcms_profile_from_memory(const void *mem, size_t size)
-{
-	uint32_t length;
-	struct mem_source source;
-	struct mem_source *src = &source;
-	struct tag_index index;
-	qcms_profile *profile;
-
-	source.buf = mem;
-	source.size = size;
-	source.valid = true;
-
-	if (size < 4)
-		return INVALID_PROFILE;
-
-	length = read_u32(src, 0);
-	if (length <= size) {
-		// shrink the area that we can read if appropriate
-		source.size = length;
-	} else {
-		return INVALID_PROFILE;
-	}
-
-	/* ensure that the profile size is sane so it's easier to reason about */
-	if (source.size <= 64 || source.size >= MAX_PROFILE_SIZE)
-		return INVALID_PROFILE;
-
-	profile = qcms_profile_create();
-	if (!profile)
-		return NO_MEM_PROFILE;
-
-	check_CMM_type_signature(src);
-	read_profile_version(profile, src);
-	read_class_signature(profile, src);
-	read_rendering_intent(profile, src);
-	read_color_space(profile, src);
-	read_pcs(profile, src);
-	//TODO read rest of profile stuff
-
-	if (!src->valid)
-		goto invalid_profile;
-
-	index = read_tag_table(profile, src);
-	if (!src->valid || !index.tags)
-		goto invalid_tag_table;
-
-	if (!read_tag_descType(profile, src, index, TAG_desc))
-		goto invalid_tag_table;
-#if defined(__APPLE__)
-	if (!read_tag_dscmType(profile, src, index, TAG_dscm))
-		goto invalid_tag_table;
-	if (!read_tag_mmodType(profile, src, index, TAG_mmod))
-		goto invalid_tag_table;
-#endif // __APPLE__
-
-	if (find_tag(index, TAG_CHAD)) {
-		profile->chromaticAdaption = read_tag_s15Fixed16ArrayType(src, index, TAG_CHAD);
-	} else {
-		profile->chromaticAdaption.invalid = true; //Signal the data is not present
-	}
-
-	if (find_tag(index, TAG_vcgt)) {
-		if (!read_tag_vcgtType(profile, src, index))
-			goto invalid_tag_table;
-	}
-
-	if (profile->class == DISPLAY_DEVICE_PROFILE || profile->class == INPUT_DEVICE_PROFILE ||
-            profile->class == OUTPUT_DEVICE_PROFILE  || profile->class == COLOR_SPACE_PROFILE) {
-		if (profile->color_space == RGB_SIGNATURE) {
-			if (find_tag(index, TAG_A2B0)) {
-				if (read_u32(src, find_tag(index, TAG_A2B0)->offset) == LUT8_TYPE ||
-				    read_u32(src, find_tag(index, TAG_A2B0)->offset) == LUT16_TYPE) {
-					profile->A2B0 = read_tag_lutType(src, index, TAG_A2B0);
-				} else if (read_u32(src, find_tag(index, TAG_A2B0)->offset) == LUT_MAB_TYPE) {
-					profile->mAB = read_tag_lutmABType(src, index, TAG_A2B0);
-				}
-			}
-			if (find_tag(index, TAG_B2A0)) {
-				if (read_u32(src, find_tag(index, TAG_B2A0)->offset) == LUT8_TYPE ||
-				    read_u32(src, find_tag(index, TAG_B2A0)->offset) == LUT16_TYPE) {
-					profile->B2A0 = read_tag_lutType(src, index, TAG_B2A0);
-				} else if (read_u32(src, find_tag(index, TAG_B2A0)->offset) == LUT_MBA_TYPE) {
-					profile->mBA = read_tag_lutmABType(src, index, TAG_B2A0);
-				}
-			}
-			if (find_tag(index, TAG_rXYZ) || !qcms_supports_iccv4) {
-				profile->redColorant = read_tag_XYZType(src, index, TAG_rXYZ);
-				profile->greenColorant = read_tag_XYZType(src, index, TAG_gXYZ);
-				profile->blueColorant = read_tag_XYZType(src, index, TAG_bXYZ);
-			}
-
-			if (!src->valid)
-				goto invalid_tag_table;
-
-			if (find_tag(index, TAG_rTRC) || !qcms_supports_iccv4) {
-				profile->redTRC = read_tag_curveType(src, index, TAG_rTRC);
-				profile->greenTRC = read_tag_curveType(src, index, TAG_gTRC);
-				profile->blueTRC = read_tag_curveType(src, index, TAG_bTRC);
-
-				if (!profile->redTRC || !profile->blueTRC || !profile->greenTRC)
-					goto invalid_tag_table;
-			}
-		} else if (profile->color_space == GRAY_SIGNATURE) {
-
-			profile->grayTRC = read_tag_curveType(src, index, TAG_kTRC);
-			if (!profile->grayTRC)
-				goto invalid_tag_table;
-
-		} else {
-			assert(0 && "read_color_space protects against entering here");
-			goto invalid_tag_table;
-		}
-	} else {
-		goto invalid_tag_table;
-	}
-
-	// Profiles other than DeviceLink should have a media white point.
-	// Here we read it if present.
-	if (find_tag(index, TAG_wtpt)) {
-		profile->mediaWhitePoint = read_tag_XYZType(src, index, TAG_wtpt);
-	}
-
-	if (!src->valid)
-		goto invalid_tag_table;
-
-	free(index.tags);
-	return profile;
-
-invalid_tag_table:
-	if (index.tags)
-		free(index.tags);
-invalid_profile:
-	qcms_profile_release(profile);
-	return INVALID_PROFILE;
-}
-
-qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2)
-{
-	return memcmp(p1->description, p2->description, sizeof p1->description) == 0;
-}
-
-const char* qcms_profile_get_description(qcms_profile *profile)
-{
-	return profile->description;
-}
-
-qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile)
-{
-	return profile->rendering_intent;
-}
-
-qcms_color_space qcms_profile_get_color_space(qcms_profile *profile)
-{
-	return profile->color_space;
-}
-
-unsigned qcms_profile_get_version(qcms_profile *profile)
-{
-	return profile->icc_version & 0xffff;
-}
-
-size_t qcms_profile_get_vcgt_channel_length(qcms_profile *profile)
-{
-	return profile->vcgt.length;
-}
-
-// Check unsigned short is uint16_t.
-typedef char assert_short_not_16b[(sizeof(unsigned short) == sizeof(uint16_t)) ? 1 : -1];
-
-qcms_bool qcms_profile_get_vcgt_rgb_channels(qcms_profile *profile, unsigned short *data)
-{
-	size_t vcgt_channel_bytes = qcms_profile_get_vcgt_channel_length(profile) * sizeof(uint16_t);
-
-	if (!vcgt_channel_bytes || !data)
-		return false;
-
-	memcpy(data, profile->vcgt.data, 3 * vcgt_channel_bytes);
-	return true;
-}
-
-static void lut_release(struct lutType *lut)
-{
-	free(lut);
-}
-
-void qcms_profile_release(qcms_profile *profile)
-{
-	if (profile->output_table_r)
-		precache_release(profile->output_table_r);
-	if (profile->output_table_g)
-		precache_release(profile->output_table_g);
-	if (profile->output_table_b)
-		precache_release(profile->output_table_b);
-
-	if (profile->A2B0)
-		lut_release(profile->A2B0);
-	if (profile->B2A0)
-		lut_release(profile->B2A0);
-
-	if (profile->mAB)
-		mAB_release(profile->mAB);
-	if (profile->mBA)
-		mAB_release(profile->mBA);
-
-	if (profile->vcgt.data)
-		free(profile->vcgt.data);
-
-	free(profile->redTRC);
-	free(profile->blueTRC);
-	free(profile->greenTRC);
-	free(profile->grayTRC);
-	free(profile);
-}
-
-#include <stdio.h>
-
-qcms_profile* qcms_profile_from_file(FILE *file)
-{
-	uint32_t length, remaining_length;
-	qcms_profile *profile;
-	size_t read_length;
-	be32 length_be;
-	void *data;
-
-	if (fread(&length_be, 1, sizeof(length_be), file) != sizeof(length_be))
-		return BAD_VALUE_PROFILE;
-
-	length = be32_to_cpu(length_be);
-	if (length > MAX_PROFILE_SIZE || length < sizeof(length_be))
-		return BAD_VALUE_PROFILE;
-
-	/* allocate room for the entire profile */
-	data = malloc(length);
-	if (!data)
-		return NO_MEM_PROFILE;
-
-	/* copy in length to the front so that the buffer will contain the entire profile */
-	*((be32*)data) = length_be;
-	remaining_length = length - sizeof(length_be);
-
-	/* read the rest profile */
-	read_length = fread((unsigned char*)data + sizeof(length_be), 1, remaining_length, file);
-	if (read_length != remaining_length) {
-		free(data);
-		return INVALID_PROFILE;
-	}
-
-	profile = qcms_profile_from_memory(data, length);
-	free(data);
-	return profile;
-}
-
-qcms_profile* qcms_profile_from_path(const char *path)
-{
-	qcms_profile *profile = NULL;
-	FILE *file = fopen(path, "rb");
-	if (file) {
-		profile = qcms_profile_from_file(file);
-		fclose(file);
-	}
-	return profile;
-}
-
-#ifdef _WIN32
-/* Unicode path version */
-qcms_profile* qcms_profile_from_unicode_path(const wchar_t *path)
-{
-	qcms_profile *profile = NULL;
-	FILE *file = _wfopen(path, L"rb");
-	if (file) {
-		profile = qcms_profile_from_file(file);
-		fclose(file);
-	}
-	return profile;
-}
-#endif
diff --git a/third_party/qcms/src/matrix.c b/third_party/qcms/src/matrix.c
deleted file mode 100644
index 0ce5bd6..0000000
--- a/third_party/qcms/src/matrix.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include <stdlib.h>
-#include "qcmsint.h"
-#include "matrix.h"
-
-struct vector matrix_eval(struct matrix mat, struct vector v)
-{
-	struct vector result;
-	result.v[0] = mat.m[0][0]*v.v[0] + mat.m[0][1]*v.v[1] + mat.m[0][2]*v.v[2];
-	result.v[1] = mat.m[1][0]*v.v[0] + mat.m[1][1]*v.v[1] + mat.m[1][2]*v.v[2];
-	result.v[2] = mat.m[2][0]*v.v[0] + mat.m[2][1]*v.v[1] + mat.m[2][2]*v.v[2];
-	return result;
-}
-
-//XXX: should probably pass by reference and we could
-//probably reuse this computation in matrix_invert
-float matrix_det(struct matrix mat)
-{
-	float det;
-	det = mat.m[0][0]*mat.m[1][1]*mat.m[2][2] +
-		mat.m[0][1]*mat.m[1][2]*mat.m[2][0] +
-		mat.m[0][2]*mat.m[1][0]*mat.m[2][1] -
-		mat.m[0][0]*mat.m[1][2]*mat.m[2][1] -
-		mat.m[0][1]*mat.m[1][0]*mat.m[2][2] -
-		mat.m[0][2]*mat.m[1][1]*mat.m[2][0];
-	return det;
-}
-
-/* from pixman and cairo and Mathematics for Game Programmers */
-/* lcms uses gauss-jordan elimination with partial pivoting which is
- * less efficient and not as numerically stable. See Mathematics for
- * Game Programmers. */
-struct matrix matrix_invert(struct matrix mat)
-{
-	struct matrix dest_mat;
-	int i,j;
-	static int a[3] = { 2, 2, 1 };
-	static int b[3] = { 1, 0, 0 };
-
-	/* inv  (A) = 1/det (A) * adj (A) */
-	float det = matrix_det(mat);
-
-	if (det == 0) {
-		dest_mat.invalid = true;
-	} else {
-		dest_mat.invalid = false;
-	}
-
-	det = 1/det;
-
-	for (j = 0; j < 3; j++) {
-		for (i = 0; i < 3; i++) {
-			double p;
-			int ai = a[i];
-			int aj = a[j];
-			int bi = b[i];
-			int bj = b[j];
-
-			p = mat.m[ai][aj] * mat.m[bi][bj] -
-				mat.m[ai][bj] * mat.m[bi][aj];
-			if (((i + j) & 1) != 0)
-				p = -p;
-
-			dest_mat.m[j][i] = det * p;
-		}
-	}
-	return dest_mat;
-}
-
-struct matrix matrix_identity(void)
-{
-	struct matrix i;
-	i.m[0][0] = 1;
-	i.m[0][1] = 0;
-	i.m[0][2] = 0;
-	i.m[1][0] = 0;
-	i.m[1][1] = 1;
-	i.m[1][2] = 0;
-	i.m[2][0] = 0;
-	i.m[2][1] = 0;
-	i.m[2][2] = 1;
-	i.invalid = false;
-	return i;
-}
-
-struct matrix matrix_invalid(void)
-{
-	struct matrix inv = matrix_identity();
-	inv.invalid = true;
-	return inv;
-}
-
-
-/* from pixman */
-/* MAT3per... */
-struct matrix matrix_multiply(struct matrix a, struct matrix b)
-{
-	struct matrix result;
-	int dx, dy;
-	int o;
-	for (dy = 0; dy < 3; dy++) {
-		for (dx = 0; dx < 3; dx++) {
-			double v = 0;
-			for (o = 0; o < 3; o++) {
-				v += a.m[dy][o] * b.m[o][dx];
-			}
-			result.m[dy][dx] = v;
-		}
-	}
-	result.invalid = a.invalid || b.invalid;
-	return result;
-}
-
-
diff --git a/third_party/qcms/src/matrix.h b/third_party/qcms/src/matrix.h
deleted file mode 100644
index 5011988..0000000
--- a/third_party/qcms/src/matrix.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef _QCMS_MATRIX_H
-#define _QCMS_MATRIX_H
-
-struct vector {
-        float v[3];
-};
-
-struct vector matrix_eval(struct matrix mat, struct vector v);
-float matrix_det(struct matrix mat);
-struct matrix matrix_identity(void);
-struct matrix matrix_multiply(struct matrix a, struct matrix b);
-struct matrix matrix_invert(struct matrix mat);
-
-struct matrix matrix_invalid(void);
-
-#endif
diff --git a/third_party/qcms/src/qcms.h b/third_party/qcms/src/qcms.h
deleted file mode 100644
index a5b3317d..0000000
--- a/third_party/qcms/src/qcms.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef QCMS_H
-#define QCMS_H
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-
-struct _qcms_profile;
-typedef struct _qcms_profile qcms_profile;
-
-struct _qcms_transform;
-typedef struct _qcms_transform qcms_transform;
-
-typedef int qcms_bool;
-
-/* ICC Section 6.1.5 Color Space Signatures (abridged) */
-typedef enum {
-	XYZData		/* ‘XYZ ’ */ = 0x58595A20,
-	labData		/* ‘Lab ’ */ = 0x4C616220,
-	luvData		/* ‘Luv ’ */ = 0x4C757620,
-	YCbCrData	/* ‘YCbr' */ = 0x59436272,
-	YxyData		/* ‘Yxy ’ */ = 0x59787920,
-	rgbData		/* ‘RGB ’ */ = 0x52474220,
-	grayData	/* ‘GRAY’ */ = 0x47524159,
-	hsvData		/* ‘HSV ’ */ = 0x48535620,
-	hlsData		/* ‘HLS ’ */ = 0x484C5320,
-	cmykData	/* ‘CMYK’ */ = 0x434D594B,
-	cmyData		/* ‘CMY ’ */ = 0x434D5920,
-} qcms_color_space;
-
-/* ICC Section 6.1.11 Rendering Intents */
-typedef enum {
-	QCMS_INTENT_DEFAULT = 0,
-	QCMS_INTENT_PERCEPTUAL = 0,
-	QCMS_INTENT_RELATIVE_COLORIMETRIC = 1,
-	QCMS_INTENT_SATURATION = 2,
-	QCMS_INTENT_ABSOLUTE_COLORIMETRIC = 3
-} qcms_intent;
-
-/* Input data formats */
-typedef enum {
-	QCMS_DATA_RGB_8,
-	QCMS_DATA_RGBA_8,
-	QCMS_DATA_GRAY_8,
-	QCMS_DATA_GRAYA_8
-} qcms_data_type;
-
-/* Output data format for qcms_transform_data_type() */
-typedef enum {
-	QCMS_OUTPUT_RGBX,
-	QCMS_OUTPUT_BGRX
-} qcms_output_type;
-
-/* Output data format for qcms_transform_get_input|output_trc_rgba() */
-typedef enum {
-	QCMS_TRC_PARAMETRIC, // Not implemented.
-	QCMS_TRC_FLOAT,      // Not implemented.
-	QCMS_TRC_HALF_FLOAT, // IEE754: binary16.
-	QCMS_TRC_USHORT,     // 0.16 fixed point.
-} qcms_trc_type;
-
-/* Output data of specific channel curve for qcms_profile_get_parametric_curve() */
-typedef enum {
-	QCMS_TRC_RED,
-	QCMS_TRC_GREEN,
-	QCMS_TRC_BLUE,
-} qcms_trc_channel;
-
-typedef struct {
-	double x;
-	double y;
-	double Y;
-} qcms_CIE_xyY;
-
-typedef struct {
-	qcms_CIE_xyY red;
-	qcms_CIE_xyY green;
-	qcms_CIE_xyY blue;
-} qcms_CIE_xyYTRIPLE;
-
-typedef struct {
-	float X;
-	float Y;
-	float Z;
-} qcms_xyz_float;
-
-qcms_profile* qcms_profile_create_rgb_with_gamma(
-		qcms_CIE_xyY white_point,
-		qcms_CIE_xyYTRIPLE primaries,
-		float gamma);
-
-qcms_profile* qcms_profile_from_memory(const void *mem, size_t size);
-
-qcms_profile* qcms_profile_from_file(FILE *file);
-qcms_profile* qcms_profile_from_path(const char *path);
-#ifdef _WIN32
-qcms_profile* qcms_profile_from_unicode_path(const wchar_t *path);
-#endif
-qcms_profile* qcms_profile_sRGB(void);
-void qcms_profile_release(qcms_profile *profile);
-
-qcms_bool qcms_profile_is_bogus(qcms_profile *profile);
-qcms_bool qcms_profile_has_white_point(qcms_profile *profile);
-qcms_xyz_float qcms_profile_get_white_point(qcms_profile *profile);
-qcms_intent qcms_profile_get_rendering_intent(qcms_profile *profile);
-qcms_color_space qcms_profile_get_color_space(qcms_profile *profile);
-unsigned qcms_profile_get_version(qcms_profile *profile);
-qcms_bool qcms_profile_white_transform(qcms_profile *profile, float XYZ[3]);
-
-qcms_bool qcms_profile_match(qcms_profile *p1, qcms_profile *p2);
-const char* qcms_profile_get_description(qcms_profile *profile);
-
-void qcms_profile_precache_output_transform(qcms_profile *profile);
-
-size_t qcms_profile_get_vcgt_channel_length(qcms_profile *profile);
-qcms_bool qcms_profile_get_vcgt_rgb_channels(qcms_profile *profile, unsigned short *data);
-
-float qcms_profile_ntsc_relative_gamut_size(qcms_profile *profile);
-
-size_t qcms_profile_get_parametric_curve(qcms_profile *profile, qcms_trc_channel channel, float data[7]);
-
-qcms_transform* qcms_transform_create(
-		qcms_profile *in, qcms_data_type in_type,
-		qcms_profile *out, qcms_data_type out_type,
-		qcms_intent intent);
-
-size_t qcms_transform_get_input_trc_rgba(
-		qcms_transform *transform, qcms_profile *in, qcms_trc_type type, unsigned short *data);
-size_t qcms_transform_get_output_trc_rgba(
-		qcms_transform *transform, qcms_profile *out, qcms_trc_type type, unsigned short *data);
-
-qcms_bool qcms_transform_is_matrix(qcms_transform *transform);
-float qcms_transform_get_matrix(qcms_transform *transform, unsigned i, unsigned j);
-
-qcms_bool qcms_transform_create_LUT_zyx_bgra(
-		qcms_profile *in, qcms_profile *out, qcms_intent intent,
-		int samples, unsigned char* lut);
-
-void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size_t length);
-void qcms_transform_data_type(qcms_transform *transform, void *src, void *dest, size_t length, qcms_output_type type);
-
-void qcms_transform_release(qcms_transform *);
-
-void qcms_enable_iccv4();
-
-#ifdef  __cplusplus
-}
-#endif
-
-/*
- * In general, QCMS is not threadsafe. However, it should be safe to create
- * profile and transformation objects on different threads, so long as you
- * don't use the same objects on different threads at the same time.
- */
-
-#endif
diff --git a/third_party/qcms/src/qcms_util.c b/third_party/qcms/src/qcms_util.c
deleted file mode 100644
index 6684ae3..0000000
--- a/third_party/qcms/src/qcms_util.c
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcmsint.h"
-
-#include <math.h>
-
-typedef struct _qcms_coords {
-    float x;
-    float y;
-} qcms_coords;
-
-typedef struct _qcms_triangle {
-    qcms_coords verticies[3];
-} qcms_triangle;
-
-#define NTSC_1953_GAMUT_SIZE    0.1582
-
-static qcms_triangle get_profile_triangle(qcms_profile *profile)
-{
-    float sumRed = s15Fixed16Number_to_float(profile->redColorant.X) +
-                   s15Fixed16Number_to_float(profile->redColorant.Y) +
-                   s15Fixed16Number_to_float(profile->redColorant.Z);
-    float xRed = s15Fixed16Number_to_float(profile->redColorant.X) / sumRed;
-    float yRed = s15Fixed16Number_to_float(profile->redColorant.Y) / sumRed;
-
-    float sumGreen = s15Fixed16Number_to_float(profile->greenColorant.X) +
-                     s15Fixed16Number_to_float(profile->greenColorant.Y) +
-                     s15Fixed16Number_to_float(profile->greenColorant.Z);
-    float xGreen = s15Fixed16Number_to_float(profile->greenColorant.X) / sumGreen;
-    float yGreen = s15Fixed16Number_to_float(profile->greenColorant.Y) / sumGreen;
-
-    float sumBlue = s15Fixed16Number_to_float(profile->blueColorant.X) +
-                    s15Fixed16Number_to_float(profile->blueColorant.Y) +
-                    s15Fixed16Number_to_float(profile->blueColorant.Z);
-    float xBlue = s15Fixed16Number_to_float(profile->blueColorant.X) / sumBlue;
-    float yBlue = s15Fixed16Number_to_float(profile->blueColorant.Y) / sumBlue;
-
-    qcms_triangle triangle = {{{xRed, yRed}, {xGreen, yGreen}, {xBlue, yBlue}}};
-    return triangle;
-}
-
-static float get_triangle_area(const qcms_triangle candidate)
-{
-    float xRed = candidate.verticies[0].x;
-    float yRed = candidate.verticies[0].y;
-    float xGreen = candidate.verticies[1].x;
-    float yGreen = candidate.verticies[1].y;
-    float xBlue = candidate.verticies[2].x;
-    float yBlue = candidate.verticies[2].y;
-
-    float area = fabs((xRed - xBlue) * (yGreen - yBlue) - (xGreen - xBlue) * (yRed - yBlue)) / 2;
-    return area;
-}
-
-static float get_ntsc_gamut_metric_area(const qcms_triangle candidate)
-{
-    float area = get_triangle_area(candidate);
-    return area * 100 / NTSC_1953_GAMUT_SIZE;
-}
-
-float qcms_profile_ntsc_relative_gamut_size(qcms_profile *profile)
-{
-    qcms_triangle triangle = get_profile_triangle(profile);
-    return get_ntsc_gamut_metric_area(triangle);
-}
-
-
diff --git a/third_party/qcms/src/qcmsint.h b/third_party/qcms/src/qcmsint.h
deleted file mode 100644
index 005b08975..0000000
--- a/third_party/qcms/src/qcmsint.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include "qcms.h"
-#include "qcmstypes.h"
-
-/* used as a lookup table for the output transformation.
- * we refcount them so we only need to have one around per output
- * profile, instead of duplicating them per transform */
-struct precache_output
-{
-	int ref_count;
-	/* We previously used a count of 65536 here but that seems like more
-	 * precision than we actually need.  By reducing the size we can
-	 * improve startup performance and reduce memory usage. ColorSync on
-	 * 10.5 uses 4097 which is perhaps because they use a fixed point
-	 * representation where 1. is represented by 0x1000. */
-#define PRECACHE_OUTPUT_SIZE 8192
-#define PRECACHE_OUTPUT_MAX (PRECACHE_OUTPUT_SIZE-1)
-	uint8_t data[PRECACHE_OUTPUT_SIZE];
-};
-
-#ifdef _MSC_VER
-#define ALIGN __declspec(align(16))
-#else
-#define ALIGN __attribute__(( aligned (16) ))
-#endif
-
-typedef struct _qcms_format_type {
-	int r;
-	int b;
-} qcms_format_type;
-
-struct _qcms_transform {
-	float ALIGN matrix[3][4];
-	float *input_gamma_table_r;
-	float *input_gamma_table_g;
-	float *input_gamma_table_b;
-
-	float *input_clut_table_r;
-	float *input_clut_table_g;
-	float *input_clut_table_b;
-	uint16_t input_clut_table_length;
-	float *r_clut;
-	float *g_clut;
-	float *b_clut;
-	uint16_t grid_size;
-	float *output_clut_table_r;
-	float *output_clut_table_g;
-	float *output_clut_table_b;
-	uint16_t output_clut_table_length;
- 
-	float *input_gamma_table_gray;
-
-	float out_gamma_r;
-	float out_gamma_g;
-	float out_gamma_b;
-
-	float out_gamma_gray;
-
-	uint16_t *output_gamma_lut_r;
-	uint16_t *output_gamma_lut_g;
-	uint16_t *output_gamma_lut_b;
-
-	uint16_t *output_gamma_lut_gray;
-
-	size_t output_gamma_lut_r_length;
-	size_t output_gamma_lut_g_length;
-	size_t output_gamma_lut_b_length;
-
-	size_t output_gamma_lut_gray_length;
-
-	struct precache_output *output_table_r;
-	struct precache_output *output_table_g;
-	struct precache_output *output_table_b;
-
-	void (*transform_fn)(struct _qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, struct _qcms_format_type output_format);
-
-	unsigned char floor_cache[256];
-	unsigned char ceil_cache[256];
-	float r_cache[256];
-
-#define TRANSFORM_FLAG_MATRIX		0x0001
-#define TRANSFORM_FLAG_CLUT_CACHE	0x0002
-
-	uint16_t transform_flags;
-};
-
-struct matrix {
-	float m[3][3];
-	bool invalid;
-};
-
-struct qcms_modular_transform;
-
-typedef void (*transform_module_fn_t)(struct qcms_modular_transform *transform, float *src, float *dest, size_t length);
-
-struct qcms_modular_transform {
-	struct matrix matrix;
-	float tx, ty, tz;
-
-	float *input_clut_table_r;
-	float *input_clut_table_g;
-	float *input_clut_table_b;
-	uint16_t input_clut_table_length;
-	float *r_clut;
-	float *g_clut;
-	float *b_clut;
-	uint16_t grid_size;
-	float *output_clut_table_r;
-	float *output_clut_table_g;
-	float *output_clut_table_b;
-	uint16_t output_clut_table_length;
- 
-	uint16_t *output_gamma_lut_r;
-	uint16_t *output_gamma_lut_g;
-	uint16_t *output_gamma_lut_b;
-
-	size_t output_gamma_lut_r_length;
-	size_t output_gamma_lut_g_length;
-	size_t output_gamma_lut_b_length;
-
-	transform_module_fn_t transform_module_fn;
-	struct qcms_modular_transform *next_transform;
-};
-
-typedef int32_t s15Fixed16Number;
-typedef uint16_t uInt16Number;
-typedef uint8_t uInt8Number;
-
-struct XYZNumber {
-	s15Fixed16Number X;
-	s15Fixed16Number Y;
-	s15Fixed16Number Z;
-};
-
-struct curveType {
-	uint32_t type;
-	uint32_t count;
-	float parameter[7];
-	uInt16Number data[];
-};
-
-struct lutmABType {
-	uint8_t num_in_channels;
-	uint8_t num_out_channels;
-	// 16 is the upperbound, actual is 0..num_in_channels.
-	uint8_t num_grid_points[16];
-
-	s15Fixed16Number e00;
-	s15Fixed16Number e01;
-	s15Fixed16Number e02;
-	s15Fixed16Number e03;
-	s15Fixed16Number e10;
-	s15Fixed16Number e11;
-	s15Fixed16Number e12;
-	s15Fixed16Number e13;
-	s15Fixed16Number e20;
-	s15Fixed16Number e21;
-	s15Fixed16Number e22;
-	s15Fixed16Number e23;
-
-	// reversed elements (for mBA)
-	bool reversed;
-
-	float *clut_table;
-	struct curveType *a_curves[10];
-	struct curveType *b_curves[10];
-	struct curveType *m_curves[10];
-	float clut_table_data[];
-};
-
-/* should lut8Type and lut16Type be different types? */
-struct lutType { // used by lut8Type/lut16Type (mft2) only
-	uint8_t num_input_channels;
-	uint8_t num_output_channels;
-	uint8_t num_clut_grid_points;
-
-	s15Fixed16Number e00;
-	s15Fixed16Number e01;
-	s15Fixed16Number e02;
-	s15Fixed16Number e10;
-	s15Fixed16Number e11;
-	s15Fixed16Number e12;
-	s15Fixed16Number e20;
-	s15Fixed16Number e21;
-	s15Fixed16Number e22;
-
-	uint16_t num_input_table_entries;
-	uint16_t num_output_table_entries;
-
-	float *input_table;
-	float *clut_table;
-	float *output_table;
-
-	float table_data[];
-};
-
-struct vcgtType {
-	/* data contains three gamma channels: R[length], then G[length], then
-	 * B[length]. */
-	uint16_t *data;
-	size_t length;
-};
-
-#if 0
-/* this is from an intial idea of having the struct correspond to the data in
- * the file. I decided that it wasn't a good idea.
- */
-struct tag_value {
-	uint32_t type;
-	union {
-		struct {
-			uint32_t reserved;
-			struct {
-				s15Fixed16Number X;
-				s15Fixed16Number Y;
-				s15Fixed16Number Z;
-			} XYZNumber;
-		} XYZType;
-	};
-}; // I guess we need to pack this?
-#endif
-
-#define RGB_SIGNATURE  0x52474220
-#define GRAY_SIGNATURE 0x47524159
-#define XYZ_SIGNATURE  0x58595A20
-#define LAB_SIGNATURE  0x4C616220
-
-struct _qcms_profile {
-	uint32_t icc_version;
-	char description[64];
-	uint32_t class;
-	uint32_t color_space;
-	uint32_t pcs;
-	qcms_intent rendering_intent;
-	struct XYZNumber mediaWhitePoint;
-	struct XYZNumber redColorant;
-	struct XYZNumber blueColorant;
-	struct XYZNumber greenColorant;
-	struct curveType *redTRC;
-	struct curveType *blueTRC;
-	struct curveType *greenTRC;
-	struct curveType *grayTRC;
-	struct lutType *A2B0;
-	struct lutType *B2A0;
-	struct lutmABType *mAB;
-	struct lutmABType *mBA;
-	struct matrix chromaticAdaption;
-	struct vcgtType vcgt;
-
-	struct precache_output *output_table_r;
-	struct precache_output *output_table_g;
-	struct precache_output *output_table_b;
-};
-
-#ifdef _MSC_VER
-#define inline _inline
-#endif
-
-/* produces the nearest float to 'a' with a maximum error
- * of 1/1024 which happens for large values like 0x40000040 */
-static inline float s15Fixed16Number_to_float(s15Fixed16Number a)
-{
-	return ((int32_t)a)/65536.f;
-}
-
-static inline s15Fixed16Number double_to_s15Fixed16Number(double v)
-{
-	return (int32_t)(v*65536);
-}
-
-static inline float uInt8Number_to_float(uInt8Number a)
-{
-	return ((int32_t)a)/255.f;
-}
-
-static inline float uInt16Number_to_float(uInt16Number a)
-{
-	return ((int32_t)a)/65535.f;
-}
-
-
-void precache_release(struct precache_output *p);
-qcms_bool set_rgb_colorants(qcms_profile *profile, qcms_CIE_xyY white_point, qcms_CIE_xyYTRIPLE primaries);
-
-void qcms_transform_data_rgb_out_lut_sse2(qcms_transform *transform,
-                                          unsigned char *src,
-                                          unsigned char *dest,
-                                          size_t length,
-                                          qcms_format_type output_format);
-void qcms_transform_data_rgba_out_lut_sse2(qcms_transform *transform,
-                                          unsigned char *src,
-                                          unsigned char *dest,
-                                          size_t length,
-                                          qcms_format_type output_format);
-void qcms_transform_data_tetra_clut_rgba_sse2(qcms_transform* transform,
-                                              unsigned char* src,
-                                              unsigned char* dest,
-                                              size_t length,
-                                              qcms_format_type output_format);
-
-void qcms_transform_build_clut_cache(qcms_transform* transform);
-
-extern qcms_bool qcms_supports_iccv4;
-
-
-#ifdef _MSC_VER
-
-long __cdecl _InterlockedIncrement(long volatile *);
-long __cdecl _InterlockedDecrement(long volatile *);
-#pragma intrinsic(_InterlockedIncrement)
-#pragma intrinsic(_InterlockedDecrement)
-
-#define qcms_atomic_increment(x) _InterlockedIncrement((long volatile *)&x)
-#define qcms_atomic_decrement(x) _InterlockedDecrement((long volatile*)&x)
-
-#else
-
-#define qcms_atomic_increment(x) __sync_add_and_fetch(&x, 1)
-#define qcms_atomic_decrement(x) __sync_sub_and_fetch(&x, 1)
-
-#endif
diff --git a/third_party/qcms/src/qcmstypes.h b/third_party/qcms/src/qcmstypes.h
deleted file mode 100644
index d58f691..0000000
--- a/third_party/qcms/src/qcmstypes.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef QCMS_TYPES_H
-#define QCMS_TYPES_H
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define IS_LITTLE_ENDIAN
-#elif BYTE_ORDER == BIG_ENDIAN
-#define IS_BIG_ENDIAN
-#endif
-
-/* all of the platforms that we use _MSC_VER on are little endian
- * so this is sufficient for now */
-#ifdef _MSC_VER
-#define IS_LITTLE_ENDIAN
-#endif
-
-#ifdef __OS2__
-#define IS_LITTLE_ENDIAN
-#endif
-
-#if !defined(IS_LITTLE_ENDIAN) && !defined(IS_BIG_ENDIAN)
-#error Unknown endianess
-#endif
-
-#if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || defined (_sgi) || defined (__sun) || defined (sun) || defined (__digital__)
-#  include <inttypes.h>
-#elif defined (_MSC_VER) && _MSC_VER < 1600
-typedef __int8 int8_t;
-typedef unsigned __int8 uint8_t;
-typedef __int16 int16_t;
-typedef unsigned __int16 uint16_t;
-typedef __int32 int32_t;
-typedef unsigned __int32 uint32_t;
-typedef __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-#ifdef _WIN64
-typedef unsigned __int64 uintptr_t;
-#else
-#pragma warning(push)
-/* Disable benign redefinition of type warning 4142 */
-#pragma warning(disable:4142)
-typedef unsigned long uintptr_t;
-/* Restore warnings */
-#pragma warning(pop)
-#endif
-
-#elif defined (_AIX)
-#  include <sys/inttypes.h>
-#else
-#  include <stdint.h>
-#endif
-
-typedef qcms_bool bool;
-#define true 1
-#define false 0
-
-#endif
diff --git a/third_party/qcms/src/tests/Makefile b/third_party/qcms/src/tests/Makefile
deleted file mode 100644
index 4adb7e21..0000000
--- a/third_party/qcms/src/tests/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-CC=gcc
-INCLUDE=-I../
-WALL=-Wall
-CFLAGS=-O2 -msse2 $(WALL) -DSSE2_ENABLE
-LDFLAGS=-lm
-
-QCMS=../transform.c ../transform-sse2.c ../transform_util.c ../matrix.c ../iccread.c ../chain.c ../qcms_util.c
-OBJS=$(QCMS:.c=.o)
-
-all: qcms_tests
-
-qcms_tests: qcms_test_*.c $(OBJS)
-	$(CC) $(CFLAGS) $(INCLUDE) $^ -o $@ $(LDFLAGS)
-
-clean:
-	rm -rf qcms_tests *.o $(OBJS)
diff --git a/third_party/qcms/src/tests/qcms_test_internal_srgb.c b/third_party/qcms/src/tests/qcms_test_internal_srgb.c
deleted file mode 100644
index 9aa5d658..0000000
--- a/third_party/qcms/src/tests/qcms_test_internal_srgb.c
+++ /dev/null
@@ -1,155 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms.h"
-#include "qcms_test_util.h"
-
-#include <assert.h>
-#include <math.h> // sqrt
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-#ifndef DISPLAY_DEVICE_PROFILE
-#define DISPLAY_DEVICE_PROFILE 0x6d6e7472 // 'mntr'
-#endif
-
-// D50 adapted color primaries of the internal sRGB color profile.
-static s15Fixed16Number sRGB_reference[3][3] = {
-    { 0x06fa0, 0x06296, 0x024a0 }, // ( 0.436035, 0.385101, 0.143066 )
-    { 0x038f2, 0x0b789, 0x00f85 }, // ( 0.222443, 0.716934, 0.060623 )
-    { 0x0038f, 0x018da, 0x0b6c4 }, // ( 0.013901, 0.097076, 0.713928 )
-};
-
-// Reference media white point of the sRGB IEC61966-2.1 color profile.
-static struct XYZNumber D65 = {
-    0xf351, 0x10000, 0x116cc // ( 0.950455, 1.000000, 1.089050 )
-};
-
-static void check_profile_description(qcms_profile *profile)
-{
-    printf("Test profile description:\n");
-
-    const char* description = qcms_profile_get_description(profile);
-    printf("description=[%s]\n\n", description);
-}
-
-static void check_profile_pcs_white_point(const qcms_profile *profile)
-{
-    float rX = s15Fixed16Number_to_float(profile->redColorant.X);
-    float gX = s15Fixed16Number_to_float(profile->greenColorant.X);
-    float bX = s15Fixed16Number_to_float(profile->blueColorant.X);
-    float rY = s15Fixed16Number_to_float(profile->redColorant.Y);
-    float gY = s15Fixed16Number_to_float(profile->greenColorant.Y);
-    float bY = s15Fixed16Number_to_float(profile->blueColorant.Y);
-    float rZ = s15Fixed16Number_to_float(profile->redColorant.Z);
-    float gZ = s15Fixed16Number_to_float(profile->greenColorant.Z);
-    float bZ = s15Fixed16Number_to_float(profile->blueColorant.Z);
-
-    printf("Test PCS white point against expected D50 XYZ values\n");
-
-    float X = rX + gX + bX;
-    float Y = rY + gY + bY;
-    float Z = rZ + gZ + bZ;
-
-    float x = X / (X + Y + Z);
-    float y = Y / (X + Y + Z);
-
-    printf("Computed profile D50 White point xyY = [%.6f %.6f %.6f]\n", x, y, Y);
-
-    float xerr = x - 0.345702915; // Compute error to ICC spec D50 xyY.
-    float yerr = y - 0.358538597;
-    float Yerr = Y - 1.000000000;
-
-    printf("D50 white point error = %.6f\n\n", (float)
-           sqrt((xerr * xerr) + (yerr * yerr) + (Yerr * Yerr)));
-}
-
-static void check_profile_media_white_point(const qcms_profile *profile)
-{
-    int errX = profile->mediaWhitePoint.X - D65.X;
-    int errY = profile->mediaWhitePoint.Y - D65.Y;
-    int errZ = profile->mediaWhitePoint.Z - D65.Z;
-
-    printf("Test media white point against expected D65 XYZ values\n");
-    printf("Internal profile D65 values = [0x%X, 0x%X, 0x%X]\n",
-           profile->mediaWhitePoint.X, profile->mediaWhitePoint.Y, profile->mediaWhitePoint.Z);
-    printf("D65 media white point error = [%d, %d, %d]\n\n", errX, errY, errZ);
-}
-
-static s15Fixed16Number check_profile_primaries(const qcms_profile *profile)
-{
-    s15Fixed16Number sRGB_internal[3][3];
-    s15Fixed16Number primary_error;
-    int i, j;
-
-    printf("Test qcms internal sRGB color primaries\n");
-
-    sRGB_internal[0][0] = profile->redColorant.X;
-    sRGB_internal[1][0] = profile->redColorant.Y;
-    sRGB_internal[2][0] = profile->redColorant.Z;
-    sRGB_internal[0][1] = profile->greenColorant.X;
-    sRGB_internal[1][1] = profile->greenColorant.Y;
-    sRGB_internal[2][1] = profile->greenColorant.Z;
-    sRGB_internal[0][2] = profile->blueColorant.X;
-    sRGB_internal[1][2] = profile->blueColorant.Y;
-    sRGB_internal[2][2] = profile->blueColorant.Z;
-
-    primary_error = 0;
-    for (i = 0; i < 3; i++) {
-        for (j = 0; j < 3; j++) {
-            s15Fixed16Number tmp = sRGB_internal[i][j] - sRGB_reference[i][j];
-            printf(" %d", tmp);
-            primary_error += abs(tmp);
-        }
-        printf("\n");
-    }
-
-    return primary_error;
-}
-
-static int qcms_test_internal_srgb(size_t width,
-        size_t height,
-        int iterations,
-        const char *in_path,
-        const char *out_path,
-        const int force_software)
-{
-    s15Fixed16Number primary_error;
-
-    qcms_profile *profile = qcms_profile_sRGB();
-
-    assert(profile->class == DISPLAY_DEVICE_PROFILE);
-    assert(profile->rendering_intent == QCMS_INTENT_PERCEPTUAL);
-    assert(profile->color_space == RGB_SIGNATURE);
-    assert(profile->pcs == XYZ_SIGNATURE);
-
-    if (qcms_profile_is_bogus(profile)) {
-        fprintf(stderr, "Failure: the internal sRGB profile failed the bogus profile check\n");
-        qcms_profile_release(profile);
-        return -1;
-    }
-
-    // Compute tristimulus matrix error.
-    primary_error = check_profile_primaries(profile);
-    printf("Total primary error = 0x%x [%.6f]\n\n", primary_error, primary_error / 65536.0);
-
-    // Verify media white point correctness.
-    check_profile_media_white_point(profile);
-
-    // Verify PCS white point correctness.
-    check_profile_pcs_white_point(profile);
-
-    // Output profile description.
-    check_profile_description(profile);
-
-    qcms_profile_release(profile);
-    return primary_error;
-}
-
-struct qcms_test_case qcms_test_internal_srgb_info = {
-        "qcms_test_internal_srgb",
-        qcms_test_internal_srgb,
-        QCMS_TEST_DISABLED
-};
diff --git a/third_party/qcms/src/tests/qcms_test_main.c b/third_party/qcms/src/tests/qcms_test_main.c
deleted file mode 100644
index f7f0a9a..0000000
--- a/third_party/qcms/src/tests/qcms_test_main.c
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms.h"
-#include "qcms_test_util.h"
-#include "timing.h"
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// Manually update the items below to add more tests.
-extern struct qcms_test_case qcms_test_tetra_clut_rgba_info;
-extern struct qcms_test_case qcms_test_munsell_info;
-extern struct qcms_test_case qcms_test_internal_srgb_info;
-extern struct qcms_test_case qcms_test_ntsc_gamut_info;
-extern struct qcms_test_case qcms_test_output_trc_info;
-
-struct qcms_test_case qcms_test[5];
-#define TEST_CASES    (sizeof(qcms_test) / sizeof(qcms_test[0]))
-
-static void initialize_tests()
-{
-    qcms_test[0] = qcms_test_tetra_clut_rgba_info;
-    qcms_test[1] = qcms_test_munsell_info;
-    qcms_test[2] = qcms_test_internal_srgb_info;
-    qcms_test[3] = qcms_test_ntsc_gamut_info;
-    qcms_test[4] = qcms_test_output_trc_info;
-}
-
-static void list_tests()
-{
-    int i;
-    printf("Available qcms tests:\n");
-
-    for (i = 0; i < TEST_CASES; ++i) {
-        printf("\t%s\n", qcms_test[i].test_name);
-    }
-
-    exit(EXIT_FAILURE);
-}
-
-static void print_usage()
-{
-    printf("Usage:\n\tqcms_test -w WIDTH -h HEIGHT -n ITERATIONS -t TEST\n");
-    printf("\t-w INT\t\ttest image width\n");
-    printf("\t-h INT\t\ttest image height\n");
-    printf("\t-n INT\t\tnumber of iterations for each test\n");
-    printf("\t-a\t\trun all tests\n");
-    printf("\t-l\t\tlist available tests\n");
-    printf("\t-s \t\tforce software(non-sse) transform function, where available\n");
-    printf("\t-i STRING\tspecify input icc color profile\n");
-    printf("\t-o STRING\tspecify output icc color profile\n");
-    printf("\t-t STRING\trun specific test - use \"-l\" to list possible values\n");
-    printf("\n");
-    exit(1);
-}
-
-int enable_test(const char *args)
-{
-    int i;
-
-    if (!args)
-        return 0;
-        
-    for (i = 0; i < TEST_CASES; ++i) {
-        if (strcmp(qcms_test[i].test_name, args) == 0) {
-            qcms_test[i].status = QCMS_TEST_ENABLED;
-            return 1;
-        }
-    }
-
-    return 0;
-}
-
-int main(int argc, const char **argv)
-{
-    int iterations = 1;
-    size_t height = 2000;
-    size_t width = 2000;
-    int run_all = 0;
-    const char *in = NULL, *out = NULL;
-    int force_software = 0;
-    int exit_status;
-    int enabled_tests = 0;
-    int i;
-
-    initialize_tests();
-    seconds();
-
-    if (argc == 1) {
-        print_usage();
-    }
-
-    while (argc > 1) {
-        if (strcmp(argv[1], "-n") == 0)
-            iterations = abs(atoi(argv[2]));
-        else if (strcmp(argv[1], "-w") == 0)
-            width = (size_t) abs(atoi(argv[2]));
-        else if (strcmp(argv[1], "-h") == 0)
-            height = (size_t) abs(atoi(argv[2]));
-        else if (strcmp(argv[1], "-l") == 0)
-            list_tests();
-        else if (strcmp(argv[1], "-t") == 0)
-            enabled_tests += enable_test(argv[2]);
-        else if (strcmp(argv[1], "-a") == 0)
-            run_all = 1;
-        else if (strcmp(argv[1], "-i") == 0)
-            in = argv[2];
-        else if (strcmp(argv[1], "-o") == 0)
-            out = argv[2];
-        else if (strcmp(argv[1], "-s") == 0)
-            force_software = 1;
-        (--argc, ++argv);
-    }
-
-    if (!run_all && !enabled_tests) {
-        print_usage();
-    }
-
-    exit_status = 0;
-
-    for (i = 0; i < TEST_CASES; ++i) {
-        if (run_all || QCMS_TEST_ENABLED == qcms_test[i].status)
-            exit_status += qcms_test[i].test_fn(width, height, iterations, in, out, force_software);
-    }
-
-    return exit_status;
-}
diff --git a/third_party/qcms/src/tests/qcms_test_munsell.c b/third_party/qcms/src/tests/qcms_test_munsell.c
deleted file mode 100644
index cc621da..0000000
--- a/third_party/qcms/src/tests/qcms_test_munsell.c
+++ /dev/null
@@ -1,217 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms.h"
-#include "qcms_test_util.h"
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-struct color_checker_chart {
-    char* name;
-    unsigned char r;
-    unsigned char g;
-    unsigned char b;
-    unsigned char a;
-};
-
-struct color_checker_chart adobe_munsell[24] = {
-        { "Dark Skin", 106, 81, 67, 255 },
-        { "Light Skin", 182, 149, 130, 255 },
-        { "Blue Sky", 103, 122, 154, 255 },
-        { "Foliage", 95, 108, 69, 255 },
-        { "Blue Flower", 129, 128, 174, 255 },
-        { "Bluish Green", 133, 189, 170, 255 },
-        { "Orange", 194, 121, 48, 255 },
-        { "Purplish Blue", 79, 91, 162, 255 },
-        { "Moderate Red", 170, 85, 97, 255 },
-        { "Purple", 84, 62, 105, 255 },
-        { "Yellow Green", 167, 186, 73, 255 },
-        { "Orange Yellow", 213, 162, 57, 255 },
-        { "Blue", 54, 62, 149, 255 },
-        { "Green", 101, 148, 76, 255 },
-        { "Red", 152, 48, 58, 255 },
-        { "Yellow", 228, 199, 55, 255 },
-        { "Magenta", 164, 83, 144, 255 },
-        { "Cyan", 63, 134, 163, 255 },
-        { "White", 242, 241, 236, 255 },
-        { "Neutral 8", 200, 200, 199, 255 },
-        { "Neutral 6.5", 159, 160, 159, 255 },
-        { "Neutral 5", 122, 121, 120, 255 },
-        { "Neutral 3.5", 84, 84, 84, 255 },
-        { "Black", 53, 53, 53, 255 },
-};
-
-struct color_checker_chart srgb_munsell[24] = {
-        { "Dark Skin", 115, 80, 64, 255 },
-        { "Light Skin", 195, 151, 130, 255 },
-        { "Blue Sky", 94, 123, 156, 255 },
-        { "Foliage", 88, 108, 65, 255 },
-        { "Blue Flower", 130, 129, 177, 255 },
-        { "Bluish Green", 100, 190, 171, 255 },
-        { "Orange", 217, 122, 37, 255 },
-        { "Purplish Blue", 72, 91, 165, 255 },
-        { "Moderate Red", 194, 84, 98, 255 },
-        { "Purple", 91, 59, 107, 255 },
-        { "Yellow Green", 160, 188, 60, 255 },
-        { "Orange Yellow", 230, 163, 42, 255 },
-        { "Blue", 46, 60, 153, 255 },
-        { "Green", 71, 150, 69, 255 },
-        { "Red", 177, 44, 56, 255 },
-        { "Yellow", 238, 200, 27, 255 },
-        { "Magenta", 187, 82, 148, 255 },
-        { "Cyan", /* -49 */ 0, 135, 166, 255 },
-        { "White", 243, 242, 237, 255 },
-        { "Neutral 8",201, 201, 201, 255 },
-        { "Neutral 6.5", 161, 161, 161, 255 },
-        { "Neutral 5",122, 122, 121, 255 },
-        { "Neutral 3.5", 83, 83, 83, 255 },
-        { "Black", 50, 49, 50, 255 },
-};
-
-extern void qcms_transform_data_rgba_out_lut_precache(qcms_transform *transform,
-        unsigned char *src,
-        unsigned char *dest,
-        size_t length,
-        qcms_format_type output_format);
-
-static qcms_bool invalid_rgb_color_profile(qcms_profile *profile)
-{
-    return rgbData != qcms_profile_get_color_space(profile) || qcms_profile_is_bogus(profile);
-}
-
-static int color_error(struct color_checker_chart cx, struct color_checker_chart cy)
-{
-    int dr = cx.r - cy.r;
-    int dg = cx.g - cy.g;
-    int db = cx.b - cy.b;
-
-    return round(sqrt((dr * dr) + (dg * dg) + (db * db)));
-}
-
-static qcms_profile* open_profile_from_path(const char *path)
-{
-    if (strcmp(path, "internal-srgb") != 0)
-        return qcms_profile_from_path(path);
-    return qcms_profile_sRGB();
-}
-
-static int qcms_test_munsell(size_t width,
-        size_t height,
-        int iterations,
-        const char *in_path,
-        const char *out_path,
-        const int force_software)
-{
-    qcms_profile *in_profile = NULL;
-    qcms_profile *out_profile = NULL;
-    qcms_format_type format = {0, 2}; // RGBA
-    qcms_transform *transform;
-
-    struct color_checker_chart *source_munsell = NULL;
-    struct color_checker_chart *reference_munsell = NULL;
-    struct color_checker_chart destination_munsell[24];
-
-    char file_name[256];
-    FILE *output;
-    int dE[24];
-    float rmse;
-
-    int i;
-
-    printf("Test qcms data transform accuracy using Munsell colors\n");
-    fflush(stdout);
-
-    if (in_path == NULL || out_path == NULL) {
-        fprintf(stderr, "%s: please provide valid ICC profiles via -i/o options\n", __FUNCTION__);
-        return EXIT_FAILURE;
-    }
-
-    in_profile = open_profile_from_path(in_path);
-    if (!in_profile || invalid_rgb_color_profile(in_profile)) {
-        fprintf(stderr, "Invalid input profile\n");
-        return EXIT_FAILURE;
-    }
-
-    source_munsell = srgb_munsell;
-    if (strstr(in_profile->description, "Adobe") != NULL) {
-        source_munsell = adobe_munsell;
-    }
-
-    printf("Input profile %s\n", in_profile->description);
-
-    out_profile = open_profile_from_path(out_path);
-    if (!out_profile || invalid_rgb_color_profile(out_profile)) {
-        fprintf(stderr, "Invalid output profile\n");
-        return EXIT_FAILURE;
-    }
-
-    reference_munsell = srgb_munsell;
-    if (strstr(out_profile->description, "Adobe") != NULL) {
-        reference_munsell = adobe_munsell;
-    }
-
-    printf("Output profile %s (using qcms precache)\n", out_profile->description);
-    qcms_profile_precache_output_transform(out_profile);
-
-    transform = qcms_transform_create(in_profile, QCMS_DATA_RGBA_8, out_profile, QCMS_DATA_RGBA_8, QCMS_INTENT_DEFAULT);
-    if (!transform) {
-        fprintf(stderr, "Failed to create color transform\n");
-        return EXIT_FAILURE;
-    } else if (force_software) {
-        transform->transform_fn = qcms_transform_data_rgba_out_lut_precache;
-    }
-
-    if (qcms_profile_match(in_profile, out_profile)) {
-        printf("Note: input / output profiles match\n");
-    }
-
-    rmse = 0.0f;
-
-    for (i = 0; i < 24; i++) {
-        transform->transform_fn(transform, &source_munsell[i].r, &destination_munsell[i].r, 1, format);
-        dE[i] = color_error(reference_munsell[i], destination_munsell[i]);
-        rmse += dE[i] * dE[i];
-    }
-
-    rmse = sqrt(rmse / 24);
-    printf("RMS color error %.2f\n", rmse);
-
-    // Name and open test result file.
-    sprintf(file_name, "qcms-test-%ld-munsell-%s-to-%s-rms-%.3f.csv", (long int)time(NULL), in_profile->description, out_profile->description, rmse);
-    // FIXME: remove spaces from the file name?
-    output = fopen(file_name, "w");
-
-    // Print headers.
-    if (force_software)
-        fprintf(output, "Report for: qcms_transform_data_rgba_out_lut_precache\n\n");
-    else
-        fprintf(output, "Report for: qcms_transform_data_rgba_out_lut_sse2\n\n");
-
-    fprintf(output, "%14s,\t%s,\t%s,\t%s\n\n", "Color,", "Actual,,", "Expected,", "dE");
-
-    // Print results.
-    for (i = 0; i < 24; i++) {
-        fprintf(output, "%14s,\t%d,%d,%d,\t%d,%d,%d,\t%d\n",
-                source_munsell[i].name,
-                destination_munsell[i].r, destination_munsell[i].g, destination_munsell[i].b,
-                reference_munsell[i].r, reference_munsell[i].g, reference_munsell[i].b,
-                dE[i]);
-    }
-
-    fprintf(output, "\nRMS color error = %.2f\n", rmse);
-    fclose(output);
-
-    printf("Output written to %s\n", file_name);
-    return rmse > 0.000001f;
-}
-
-struct qcms_test_case qcms_test_munsell_info = {
-        "qcms_test_munsell",
-        qcms_test_munsell,
-        QCMS_TEST_DISABLED
-};
diff --git a/third_party/qcms/src/tests/qcms_test_ntsc_gamut.c b/third_party/qcms/src/tests/qcms_test_ntsc_gamut.c
deleted file mode 100644
index 5f79b4aa..0000000
--- a/third_party/qcms/src/tests/qcms_test_ntsc_gamut.c
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms_test_util.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-static qcms_bool invalid_rgb_color_profile(qcms_profile *profile)
-{
-    return rgbData != qcms_profile_get_color_space(profile) || qcms_profile_is_bogus(profile);
-}
-
-static int qcms_test_ntsc_gamut(size_t width,
-        size_t height,
-        int iterations,
-        const char *input_path,
-        const char *referece_path,
-        const int force_software)
-{
-    qcms_profile *input_profile;
-    qcms_profile *reference_profile = qcms_profile_sRGB();
-    qcms_transform *transform;
-    float input_gamut_metric, reference_gamut_metric;
-
-    if (!input_path) {
-        fprintf(stderr, "%s: please provide valid ICC profiles via -i/o options\n", __FUNCTION__);
-        return EXIT_FAILURE;
-    }
-
-    input_profile = qcms_profile_from_path(input_path);
-    if (!input_profile || invalid_rgb_color_profile(input_profile)) {
-        fprintf(stderr, "Invalid input profile\n");
-        return EXIT_FAILURE;
-    }
-
-    transform = qcms_transform_create(input_profile, QCMS_DATA_RGBA_8, reference_profile, QCMS_DATA_RGBA_8, QCMS_INTENT_DEFAULT);
-    if (!transform) {
-        fprintf(stderr, "Could not create transform\n");
-        return EXIT_FAILURE;
-    }
-
-    if (!(transform->transform_flags & TRANSFORM_FLAG_MATRIX)) {
-        fprintf(stderr, "Transform is not matrix\n");
-        qcms_transform_release(transform);
-        qcms_profile_release(input_profile);
-        qcms_profile_release(reference_profile);
-        return EXIT_FAILURE;
-    }
-
-    printf("NTSC 1953 relative gamut area test\n");
-
-    input_gamut_metric = qcms_profile_ntsc_relative_gamut_size(input_profile);
-    printf("Input profile\n\tDescription: %s\n\tNTSC relative gamut area: %.3f %%\n",
-            input_profile->description, input_gamut_metric);
-
-    reference_gamut_metric = qcms_profile_ntsc_relative_gamut_size(reference_profile);
-    printf("Internal reference profile\n\tDescription: %s\n\tNTSC relative gamut area: %.3f %%\n",
-            reference_profile->description, reference_gamut_metric);
-
-    qcms_transform_release(transform);
-    qcms_profile_release(input_profile);
-    qcms_profile_release(reference_profile);
-
-    return 0;
-}
-
-struct qcms_test_case qcms_test_ntsc_gamut_info = {
-        "qcms_test_ntsc_gamut",
-        qcms_test_ntsc_gamut,
-        QCMS_TEST_DISABLED
-};
diff --git a/third_party/qcms/src/tests/qcms_test_output_trc.c b/third_party/qcms/src/tests/qcms_test_output_trc.c
deleted file mode 100644
index a7ac1503..0000000
--- a/third_party/qcms/src/tests/qcms_test_output_trc.c
+++ /dev/null
@@ -1,255 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms.h"
-#include "qcms_test_util.h"
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-#define PARAMETRIC_CURVE_TYPE 0x70617261 // 'para'
-
-static const float inverse65535 = (float) (1.0 / 65535.0);
-
-extern float clamp_float(float a);
-
-static int get_output_gamma_table(const char *profile_path, uint16_t **table, size_t *size)
-{
-    qcms_transform *transform;
-    qcms_profile *sRGB;
-    qcms_profile *target;
-
-    target = qcms_profile_from_path(profile_path);
-    if (!target) {
-        fprintf(stderr, "Invalid input profile\n");
-        return EXIT_FAILURE;
-    }
-
-    sRGB = qcms_profile_sRGB();
-
-    transform = qcms_transform_create(sRGB, QCMS_DATA_RGBA_8, target, QCMS_DATA_RGBA_8, QCMS_INTENT_DEFAULT);
-    if (!transform) {
-        fprintf(stderr, "Failed to create colour transform\n");
-        qcms_profile_release(sRGB);
-        qcms_profile_release(target);
-        return EXIT_FAILURE;
-    }
-
-    *size = qcms_transform_get_output_trc_rgba(transform, target, QCMS_TRC_USHORT, NULL);
-    assert(*size >= 256);
-
-    *table = malloc(*size * sizeof(uint16_t) * 4);
-    qcms_transform_get_output_trc_rgba(transform, target, QCMS_TRC_USHORT, *table);
-
-    qcms_transform_release(transform);
-    qcms_profile_release(sRGB);
-    qcms_profile_release(target);
-
-    return 0;
-}
-
-static int get_input_gamma_table(const char *profile_path, uint16_t **table, size_t *size)
-{
-    qcms_transform *transform;
-    qcms_profile *source;
-    qcms_profile *sRGB;
-
-    source = qcms_profile_from_path(profile_path);
-    if (!source) {
-        fprintf(stderr, "Invalid input profile\n");
-        return EXIT_FAILURE;
-    }
-
-    sRGB = qcms_profile_sRGB();
-
-    transform = qcms_transform_create(source, QCMS_DATA_RGBA_8, sRGB, QCMS_DATA_RGBA_8, QCMS_INTENT_DEFAULT);
-    if (!transform) {
-        fprintf(stderr, "Failed to create colour transform\n");
-        qcms_profile_release(sRGB);
-        qcms_profile_release(source);
-        return EXIT_FAILURE;
-    }
-
-    *size = qcms_transform_get_input_trc_rgba(transform, source, QCMS_TRC_USHORT, NULL);
-    assert(*size >= 256);
-
-    *table = calloc(*size, sizeof(uint16_t) * 4);
-    qcms_transform_get_input_trc_rgba(transform, source, QCMS_TRC_USHORT, *table);
-
-    qcms_transform_release(transform);
-    qcms_profile_release(sRGB);
-    qcms_profile_release(source);
-
-    return 0;
-}
-
-static int qcms_test_output_trc(size_t width,
-        size_t height,
-        int iterations,
-        const char *in_path,
-        const char *out_path,
-        const int force_software)
-{
-    uint16_t *gamma_table_out = NULL;
-    size_t output_size = 0;
-    qcms_profile *profile;
-    long time_stamp = (long)time(NULL);
-    char output_file_name[1024];
-    float scale_factor;
-    size_t i;
-
-    if (!in_path) {
-        fprintf(stderr, "%s: please provide valid ICC profiles via -i option\n", __FUNCTION__);
-        return EXIT_FAILURE;
-    }
-
-    printf("Test color profile gamma curves\n");
-    fflush(stdout);
-
-    if (get_output_gamma_table(in_path, &gamma_table_out, &output_size) != 0) {
-        fprintf(stderr, "Unable to extract output gamma table\n");
-        return EXIT_FAILURE;
-    }
-
-    printf("Output gamma table size = %zu\n", output_size);
-
-    profile = qcms_profile_from_path(in_path);
-    if (!profile) {
-        fprintf(stderr, "Invalid input profile\n");
-        free(gamma_table_out);
-        return EXIT_FAILURE;
-    }
-
-    if (profile->redTRC->type == PARAMETRIC_CURVE_TYPE) {
-        // Check the red TRC curve only for now.
-        int type = - (int)(profile->redTRC->count + 1);
-        uint16_t *gamma_table_in = NULL;
-        size_t input_size = 0;
-        FILE *output_file;
-
-        printf("Detected parametric curve type = %d\n", profile->redTRC->count);
-
-        if (get_input_gamma_table(in_path, &gamma_table_in, &input_size) != 0) {
-            fprintf(stderr, "Failed to compute input gamma table\n");
-            qcms_profile_release(profile);
-            free(gamma_table_out);
-            return EXIT_FAILURE;
-        }
-
-        // Write output to stdout and tables into a csv file.
-        sprintf(output_file_name, "qcms-test-%ld-parametric-gamma-output-%s.csv",
-                time_stamp, profile->description);
-        printf("Writing output gamma tables to %s\n", output_file_name);
-        output_file = fopen(output_file_name, "w");
-
-        printf("Parametric gamma values for profile %s description [%s]\n",
-               in_path, profile->description);
-        fprintf(output_file, "Parametric gamma values for profile %s description [%s]\n",
-                in_path, profile->description);
-
-        printf("gamma = %.6f, a = %.6f, b = %.6f, c = %.6f, d = %.6f, e = %.6f, f = %.6f\n",
-                profile->redTRC->parameter[0], profile->redTRC->parameter[1], profile->redTRC->parameter[2],
-                profile->redTRC->parameter[3], profile->redTRC->parameter[4], profile->redTRC->parameter[5],
-                profile->redTRC->parameter[6]);
-
-        fprintf(output_file, "gamma, a, b, c, d, e, f\n");
-        fprintf(output_file, "%.6f, %.6f, %.6f, %.6f, %.6f, %.6f, %.6f\n",
-                profile->redTRC->parameter[0], profile->redTRC->parameter[1], profile->redTRC->parameter[2],
-                profile->redTRC->parameter[3], profile->redTRC->parameter[4], profile->redTRC->parameter[5],
-                profile->redTRC->parameter[6]);
-
-        fprintf(output_file, "\nInput curve size: %zu", input_size);
-        fprintf(output_file, "\nOutput curve size: %zu", output_size);
-
-        fprintf(output_file, "\n\nInput gamma, Output gamma, LCMS Output gamma, Output gamma error\n");
-        // Output gamma curve down-sample factor.
-        scale_factor = (float)(output_size - 1) / (input_size - 1);
-
-        for (i = 0; i < input_size; ++i) {
-            float input = gamma_table_in[i * 4] * inverse65535;
-            size_t out_index = (size_t)floor(i * scale_factor + 0.5);
-            float output = gamma_table_out[out_index * 4] * inverse65535;
-            float x = out_index / (float)(output_size - 1);
-            float reference = clamp_float(evaluate_parametric_curve(type, profile->redTRC->parameter, x));
-            float difference = fabs(output - reference);
-
-            fprintf(output_file, "%.6f, %.6f, %6f, %6f\n", input, output, reference, difference);
-        }
-
-        fprintf(output_file, "\nNote: the output gamma curves are down-sampled by a factor of %zu / %zu\n",
-                output_size, input_size);
-
-        fclose(output_file);
-        free(gamma_table_in);
-    } else {
-        uint16_t *gamma_table_in = NULL;
-        size_t input_size = 0;
-        FILE *output_file;
-
-        if (get_input_gamma_table(in_path, &gamma_table_in, &input_size) != 0) {
-            fprintf(stderr, "Failed to compute input gamma table\n");
-            qcms_profile_release(profile);
-            free(gamma_table_out);
-            return EXIT_FAILURE;
-        }
-
-        // Write output to stdout and tables into a csv file.
-        sprintf(output_file_name, "qcms-test-%ld-gamma-output-%s.csv",
-                time_stamp, profile->description);
-        printf("Writing gamma tables to %s\n", output_file_name);
-        output_file = fopen(output_file_name, "w");
-
-        printf("Gamma values for profile %s description [%s]\n",
-               in_path, profile->description);
-        fprintf(output_file, "Gamma values for profile %s description [%s]\n",
-                in_path, profile->description);
-
-        if (profile->redTRC->count == 0) {
-            printf("Gamma LUT type 0: linear gamma\n");
-            fprintf(output_file, "Gamma LUT type 0: linear gamma\n");
-        } else if (profile->redTRC->count == 1) {
-            float gamma = profile->redTRC->data[0] / 256.0f;
-            printf("Gamma LUT type 1: gamma = %.6f\n", gamma);
-            fprintf(output_file, "Gamma LUT type 1: gamma = %.6f\n", gamma);
-        } else {
-            printf("Gamma LUT table size = %u\n", profile->redTRC->count);
-            fprintf(output_file, "Gamma LUT table size = %u\n", profile->redTRC->count);
-        }
-
-        fprintf(output_file, "\nInput curve size: %zu", input_size);
-        fprintf(output_file, "\nOutput curve size: %zu", output_size);
-
-        fprintf(output_file, "\n\nInput gamma, Output gamma\n");
-        // Output gamma curve down-sample factor.
-        scale_factor = (float)(output_size - 1) / (input_size - 1);
-
-        for (i = 0; i < input_size; ++i) {
-            float input = gamma_table_in[i * 4] * inverse65535;
-            size_t out_index = (size_t)floor(i * scale_factor + 0.5);
-            float output = gamma_table_out[out_index * 4] * inverse65535;
-
-            fprintf(output_file, "%.6f, %.6f\n", input, output);
-        }
-
-        fprintf(output_file, "\nNote: the output gamma curves are down-sampled by a factor of %zu / %zu\n",
-                output_size, input_size);
-
-        fclose(output_file);
-        free(gamma_table_in);
-    }
-
-    qcms_profile_release(profile);
-    free(gamma_table_out);
-
-    return 0;
-}
-
-struct qcms_test_case qcms_test_output_trc_info = {
-        "qcms_test_output_trc",
-        qcms_test_output_trc,
-        QCMS_TEST_DISABLED
-};
diff --git a/third_party/qcms/src/tests/qcms_test_tetra_clut_rgba.c b/third_party/qcms/src/tests/qcms_test_tetra_clut_rgba.c
deleted file mode 100644
index cc7fb40c..0000000
--- a/third_party/qcms/src/tests/qcms_test_tetra_clut_rgba.c
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms.h"
-#include "qcms_test_util.h"
-#include "timing.h"
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// External qcms tetra clut interpolators.
-
-extern void qcms_transform_data_tetra_clut_rgba(qcms_transform *transform,
-                                                unsigned char *src,
-                                                unsigned char *dest,
-                                                size_t length,
-                                                qcms_format_type output_format);
-
-#ifdef SSE2_ENABLE
-extern void qcms_transform_data_tetra_clut_rgba_sse2(qcms_transform *transform,
-                                                     unsigned char *src,
-                                                     unsigned char *dest,
-                                                     size_t length,
-                                                     qcms_format_type output_format);
-#else
-void qcms_transform_data_tetra_clut_rgba_dummy(qcms_transform *transform,
-                                               unsigned char *src,
-                                               unsigned char *dest,
-                                               size_t length,
-                                               qcms_format_type output_format)
-{
-    (void)(transform);
-    (void)(src);
-    (void)(dest);
-    (void)(length);
-    (void)(output_format);
-}
-#endif
-
-static float *create_lut(size_t lutSize)
-{
-    float *lut = malloc(lutSize * sizeof(float));
-    size_t i;
-
-    for (i = 0; i < lutSize; ++i) {
-        lut[i] = (rand() & 255) * (1.0f / 255.0f);
-    }
-
-    return lut;
-}
-
-static int diffs;
-
-static int validate(unsigned char *dst0, unsigned char *dst1, size_t length, int limit, const size_t pixel_size)
-{
-    size_t bytes = length * pixel_size;
-    size_t i;
-
-    // Compare dst0/dst0 byte-by-byte, allowing for minor differences due
-    // to SSE rounding modes (controlled by the limit argument).
-
-    if (limit < 0)
-        limit = 255; // Ignore all differences.
-
-    for (diffs = 0, i = 0; i < bytes; ++i) {
-        if (abs((int)dst0[i] - (int)dst1[i]) > limit) {
-            ++diffs;
-        }
-    }
-
-    return !diffs;
-}
-
-static int qcms_test_tetra_clut_rgba(size_t width,
-        size_t height,
-        int iterations,
-        const char *in_profile,
-        const char *out_profile,
-        const int force_software)
-{
-    qcms_transform transform0, transform1;
-    qcms_format_type format = {2, 0};
-    uint16_t samples = 33;
-    size_t lutSize;
-    float *lut0, *lut1;
-
-    const size_t length = width * height;
-    const size_t pixel_size = 4;
-
-    double time0, time1;
-    int i;
-
-    printf("Test qcms clut transforms for %d iterations\n", iterations);
-    printf("Test image size %u x %u pixels\n", (unsigned) width, (unsigned) height);
-    fflush(stdout);
-
-    srand(0);
-    seconds();
-
-    memset(&transform0, 0, sizeof(transform0));
-    memset(&transform1, 0, sizeof(transform1));
-
-    transform0.grid_size = samples;
-    transform1.grid_size = samples;
-
-    transform0.transform_flags = 0;
-    transform1.transform_flags = 0;
-
-    lutSize = 3 * samples * samples * samples;
-    lut0 = create_lut(lutSize);
-    lut1 = (float *)malloc(lutSize * sizeof(float));
-    memcpy(lut1, lut0, lutSize * sizeof(float));
-
-    transform0.r_clut = &lut0[0];
-    transform0.g_clut = &lut0[1];
-    transform0.b_clut = &lut0[2];
-
-    transform1.r_clut = &lut1[0];
-    transform1.g_clut = &lut1[1];
-    transform1.b_clut = &lut1[2];
-
-    // Re-generate and use different data sources during the iteration loop
-    // to avoid compiler / cache optimizations that may affect performance.
-
-    time0 = 0.0;
-    time1 = 0.0;
-
-    for (i = 0; i < iterations; ++i) {
-        unsigned char *src0 = (unsigned char *)calloc(length, pixel_size);
-        unsigned char *src1 = (unsigned char *)calloc(length, pixel_size);
-        unsigned char *dst0 = (unsigned char *)calloc(length, pixel_size);
-        unsigned char *dst1 = (unsigned char *)calloc(length, pixel_size);
-
-        generate_source_uint8_t(src0, length, pixel_size);
-        memcpy(src1, src0, length * pixel_size);
-
-#define TRANSFORM_TEST0 qcms_transform_data_tetra_clut_rgba
-#ifdef SSE2_ENABLE
-#define TRANSFORM_TEST1 qcms_transform_data_tetra_clut_rgba_sse2
-#else
-#define TRANSFORM_TEST1 qcms_transform_data_tetra_clut_rgba_dummy
-#endif
-
-        TIME(TRANSFORM_TEST0(&transform0, src0, dst0, length, format), &time0);
-        TIME(TRANSFORM_TEST1(&transform1, src1, dst1, length, format), &time1);
-
-        if (!validate(dst0, dst1, length, 0, pixel_size)) {
-            fprintf(stderr, "Invalid transform output: %d diffs\n", diffs);
-        }
-
-        free(src0);
-        free(src1);
-        free(dst0);
-        free(dst1);
-    }
-
-#define STRINGIZE(s) #s
-#define STRING(s) STRINGIZE(s)
-
-    printf("%.6lf (avg %.6lf) seconds " STRING(TRANSFORM_TEST0) "\n",
-            time0, time0 / iterations);
-    printf("%.6lf (avg %.6lf) seconds " STRING(TRANSFORM_TEST1) "\n",
-            time1, time1 / iterations);
-    printf("%.6lf speedup after %d iterations\n\n",
-            time0 / time1, iterations);
-
-    free(lut0);
-    free(lut1);
-
-    return diffs;
-}
-
-struct qcms_test_case qcms_test_tetra_clut_rgba_info = {
-        "qcms_test_tetra_clut_rgba",
-        qcms_test_tetra_clut_rgba,
-        QCMS_TEST_DISABLED
-};
diff --git a/third_party/qcms/src/tests/qcms_test_util.c b/third_party/qcms/src/tests/qcms_test_util.c
deleted file mode 100644
index c03cbf8..0000000
--- a/third_party/qcms/src/tests/qcms_test_util.c
+++ /dev/null
@@ -1,280 +0,0 @@
-// Copyright 2016 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcms_test_util.h"
-
-#include <math.h>
-#include <stdlib.h>
-
-#define MAX_FLOAT_ERROR 0.000001f
-
-// Store random pixel data in the source.
-void generate_source_uint8_t(unsigned char *src, const size_t length, const size_t pixel_size)
-{
-    size_t bytes = length * pixel_size;
-    size_t i;
-
-    for (i = 0; i < bytes; ++i) {
-        *src++ = rand() & 255;
-    }
-}
-
-// Parametric Fn using floating point <from lcms/src/cmsgamma.c>: DefaultEvalParametricFn
-float evaluate_parametric_curve(int type, const float params[], float r)
-{
-    float e, val, disc;
-
-    switch (type) {
-
-    // X = Y ^ Gamma
-    case 1:
-        if (r < 0) {
-
-            if (fabs(params[0] - 1.0) < MAX_FLOAT_ERROR)
-                val = r;
-            else
-                val = 0;
-        }
-        else
-            val = pow(r, params[0]);
-        break;
-
-        // Type 1 Reversed: X = Y ^1/gamma
-    case -1:
-        if (r < 0) {
-
-            if (fabs(params[0] - 1.0) < MAX_FLOAT_ERROR)
-                val = r;
-            else
-                val = 0;
-        }
-        else
-            val = pow(r, 1/params[0]);
-        break;
-
-        // CIE 122-1966
-        // Y = (aX + b)^Gamma  | X >= -b/a
-        // Y = 0               | else
-    case 2:
-        disc = -params[2] / params[1];
-
-        if (r >= disc ) {
-
-            e = params[1]*r + params[2];
-
-            if (e > 0)
-                val = pow(e, params[0]);
-            else
-                val = 0;
-        }
-        else
-            val = 0;
-        break;
-
-        // Type 2 Reversed
-        // X = (Y ^1/g  - b) / a
-    case -2:
-        if (r < 0)
-            val = 0;
-        else
-            val = (pow(r, 1.0/params[0]) - params[2]) / params[1];
-
-        if (val < 0)
-            val = 0;
-        break;
-
-
-        // IEC 61966-3
-        // Y = (aX + b)^Gamma | X <= -b/a
-        // Y = c              | else
-    case 3:
-        disc = -params[2] / params[1];
-        if (disc < 0)
-            disc = 0;
-
-        if (r >= disc) {
-
-            e = params[1]*r + params[2];
-
-            if (e > 0)
-                val = pow(e, params[0]) + params[3];
-            else
-                val = 0;
-        }
-        else
-            val = params[3];
-        break;
-
-
-        // Type 3 reversed
-        // X=((Y-c)^1/g - b)/a      | (Y>=c)
-        // X=-b/a                   | (Y<c)
-    case -3:
-        if (r >= params[3])  {
-
-            e = r - params[3];
-
-            if (e > 0)
-                val = (pow(e, 1/params[0]) - params[2]) / params[1];
-            else
-                val = 0;
-        }
-        else {
-            val = -params[2] / params[1];
-        }
-        break;
-
-
-        // IEC 61966-2.1 (sRGB)
-            // Y = (aX + b)^Gamma | X >= d
-            // Y = cX             | X < d
-    case 4:
-        if (r >= params[4]) {
-
-            e = params[1]*r + params[2];
-
-            if (e > 0)
-                val = pow(e, params[0]);
-            else
-                val = 0;
-        }
-        else
-            val = r * params[3];
-        break;
-
-        // Type 4 reversed
-        // X=((Y^1/g-b)/a)    | Y >= (ad+b)^g
-        // X=Y/c              | Y< (ad+b)^g
-    case -4:
-        e = params[1] * params[4] + params[2];
-        if (e < 0)
-            disc = 0;
-        else
-            disc = pow(e, params[0]);
-
-        if (r >= disc) {
-
-            val = (pow(r, 1.0/params[0]) - params[2]) / params[1];
-        }
-        else {
-            val = r / params[3];
-        }
-        break;
-
-
-        // Y = (aX + b)^Gamma + e | X >= d
-                // Y = cX + f             | X < d
-    case 5:
-        if (r >= params[4]) {
-
-            e = params[1]*r + params[2];
-
-            if (e > 0)
-                val = pow(e, params[0]) + params[5];
-            else
-                val = params[5];
-        }
-        else
-            val = r*params[3] + params[6];
-        break;
-
-
-        // Reversed type 5
-        // X=((Y-e)1/g-b)/a   | Y >=(ad+b)^g+e), cd+f
-        // X=(Y-f)/c          | else
-    case -5:
-
-        disc = params[3] * params[4] + params[6];
-        if (r >= disc) {
-
-            e = r - params[5];
-            if (e < 0)
-                val = 0;
-            else
-                val = (pow(e, 1.0/params[0]) - params[2]) / params[1];
-        }
-        else {
-            val = (r - params[6]) / params[3];
-        }
-        break;
-
-
-        // Types 6,7,8 comes from segmented curves as described in ICCSpecRevision_02_11_06_Float.pdf
-        // Type 6 is basically identical to type 5 without d
-
-        // Y = (a * X + b) ^ Gamma + c
-    case 6:
-        e = params[1]*r + params[2];
-
-        if (e < 0)
-            val = params[3];
-        else
-            val = pow(e, params[0]) + params[3];
-        break;
-
-        // ((Y - c) ^1/Gamma - b) / a
-    case -6:
-        e = r - params[3];
-        if (e < 0)
-            val = 0;
-        else
-            val = (pow(e, 1.0/params[0]) - params[2]) / params[1];
-        break;
-
-
-        // Y = a * log (b * X^Gamma + c) + d
-    case 7:
-
-        e = params[2] * pow(r, params[0]) + params[3];
-        if (e <= 0)
-            val = params[4];
-        else
-            val = params[1]*log10(e) + params[4];
-        break;
-
-        // (Y - d) / a = log(b * X ^Gamma + c)
-        // pow(10, (Y-d) / a) = b * X ^Gamma + c
-        // pow((pow(10, (Y-d) / a) - c) / b, 1/g) = X
-    case -7:
-        val = pow((pow(10.0, (r-params[4]) / params[1]) - params[3]) / params[2], 1.0 / params[0]);
-        break;
-
-
-        //Y = a * b^(c*X+d) + e
-    case 8:
-        val = (params[0] * pow(params[1], params[2] * r + params[3]) + params[4]);
-        break;
-
-
-        // Y = (log((y-e) / a) / log(b) - d ) / c
-        // a=0, b=1, c=2, d=3, e=4,
-    case -8:
-
-        disc = r - params[4];
-        if (disc < 0) val = 0;
-        else
-            val = (log(disc / params[0]) / log(params[1]) - params[3]) / params[2];
-        break;
-
-        // S-Shaped: (1 - (1-x)^1/g)^1/g
-    case 108:
-        val = pow(1.0 - pow(1 - r, 1/params[0]), 1/params[0]);
-        break;
-
-        // y = (1 - (1-x)^1/g)^1/g
-        // y^g = (1 - (1-x)^1/g)
-        // 1 - y^g = (1-x)^1/g
-        // (1 - y^g)^g = 1 - x
-        // 1 - (1 - y^g)^g
-    case -108:
-        val = 1 - pow(1 - pow(r, params[0]), params[0]);
-        break;
-
-    default:
-        // Unsupported parametric curve. Should never reach here
-        return 0;
-    }
-
-    return val;
-}
diff --git a/third_party/qcms/src/tests/qcms_test_util.h b/third_party/qcms/src/tests/qcms_test_util.h
deleted file mode 100644
index 64d3e74..0000000
--- a/third_party/qcms/src/tests/qcms_test_util.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "qcmsint.h"
-#include "qcmstypes.h"
-
-typedef int (*qcms_test_function)(size_t width,
-        size_t height,
-        int iterations,
-        const char *in_profile,
-        const char *out_profile,
-        const int force_software);
-
-enum QCMS_TEST_STATUS {
-    QCMS_TEST_DISABLED = 0,
-    QCMS_TEST_ENABLED = 1,
-};
-
-struct qcms_test_case {
-    char test_name[256];
-    qcms_test_function test_fn;
-    enum QCMS_TEST_STATUS status;
-};
-
-void generate_source_uint8_t(unsigned char *src, const size_t length, const size_t pixel_size);
-float evaluate_parametric_curve(int type, const float params[], float r);
diff --git a/third_party/qcms/src/tests/timing.h b/third_party/qcms/src/tests/timing.h
deleted file mode 100644
index 2133fda4..0000000
--- a/third_party/qcms/src/tests/timing.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2015 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef TESTS_TIMING_H
-#define TESTS_TIMING_H
-
-#include <assert.h>
-#if defined(_WIN32)
-#include <windows.h>
-#else
-#include <sys/time.h>
-#endif
-#include <time.h>
-
-#if defined(_WIN32)
-
-static double seconds()
-{
-    static double clock_frequency;
-    static bool have_frequency;
-
-    LARGE_INTEGER qpc;
-    QueryPerformanceCounter(&qpc);
-    if (have_frequency)
-        return qpc.QuadPart * clock_frequency;
-
-    have_frequency = true;
-    QueryPerformanceFrequency(&qpc);
-    clock_frequency = 1.0 / (double) qpc.QuadPart;
-    return seconds();
-}
-
-#else
-
-static double seconds()
-{
-    struct timeval now;
-    gettimeofday(&now, 0);
-    return now.tv_sec + now.tv_usec * (1.0 / 1000000.0);
-}
-
-#endif
-
-#define TIME(function, time) do {  \
-    double start = seconds();      \
-    (function);                    \
-    *time += seconds() - start;    \
-} while (0)
-
-#endif // TESTS_TIMING_H
diff --git a/third_party/qcms/src/transform-sse2.c b/third_party/qcms/src/transform-sse2.c
deleted file mode 100644
index c06db69..0000000
--- a/third_party/qcms/src/transform-sse2.c
+++ /dev/null
@@ -1,458 +0,0 @@
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 2015 Intel Corporation
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include <emmintrin.h>
-
-#include "qcmsint.h"
-
-/* pre-shuffled: just load these into XMM reg instead of load-scalar/shufps sequence */
-#define FLOATSCALE  (float)(PRECACHE_OUTPUT_SIZE - 1)
-#define CLAMPMAXVAL 1.0f
-
-static const ALIGN float floatScaleX4[4] =
-    { FLOATSCALE, FLOATSCALE, FLOATSCALE, FLOATSCALE};
-static const ALIGN float clampMaxValueX4[4] =
-    { CLAMPMAXVAL, CLAMPMAXVAL, CLAMPMAXVAL, CLAMPMAXVAL};
-
-void qcms_transform_data_rgb_out_lut_sse2(qcms_transform *transform,
-                                          unsigned char *src,
-                                          unsigned char *dest,
-                                          size_t length,
-                                          qcms_format_type output_format)
-{
-    unsigned int i;
-    float (*mat)[4] = transform->matrix;
-    char input_back[32];
-    /* Ensure we have a buffer that's 16 byte aligned regardless of the original
-     * stack alignment. We can't use __attribute__((aligned(16))) or __declspec(align(32))
-     * because they don't work on stack variables. gcc 4.4 does do the right thing
-     * on x86 but that's too new for us right now. For more info: gcc bug #16660 */
-    float const * input = (float*)(((uintptr_t)&input_back[16]) & ~0xf);
-    /* share input and output locations to save having to keep the
-     * locations in separate registers */
-    uint32_t const * output = (uint32_t*)input;
-
-    /* deref *transform now to avoid it in loop */
-    const float *igtbl_r = transform->input_gamma_table_r;
-    const float *igtbl_g = transform->input_gamma_table_g;
-    const float *igtbl_b = transform->input_gamma_table_b;
-
-    /* deref *transform now to avoid it in loop */
-    const uint8_t *otdata_r = &transform->output_table_r->data[0];
-    const uint8_t *otdata_g = &transform->output_table_g->data[0];
-    const uint8_t *otdata_b = &transform->output_table_b->data[0];
-
-    /* input matrix values never change */
-    const __m128 mat0  = _mm_load_ps(mat[0]);
-    const __m128 mat1  = _mm_load_ps(mat[1]);
-    const __m128 mat2  = _mm_load_ps(mat[2]);
-
-    /* these values don't change, either */
-    const __m128 max   = _mm_load_ps(clampMaxValueX4);
-    const __m128 min   = _mm_setzero_ps();
-    const __m128 scale = _mm_load_ps(floatScaleX4);
-
-    /* working variables */
-    __m128 vec_r, vec_g, vec_b, result;
-    const int r_out = output_format.r;
-    const int b_out = output_format.b;
-
-    /* CYA */
-    if (!length)
-        return;
-
-    /* one pixel is handled outside of the loop */
-    length--;
-
-    /* setup for transforming 1st pixel */
-    vec_r = _mm_load_ss(&igtbl_r[src[0]]);
-    vec_g = _mm_load_ss(&igtbl_g[src[1]]);
-    vec_b = _mm_load_ss(&igtbl_b[src[2]]);
-    src += 3;
-
-    /* transform all but final pixel */
-
-    for (i=0; i<length; i++)
-    {
-        /* position values from gamma tables */
-        vec_r = _mm_shuffle_ps(vec_r, vec_r, 0);
-        vec_g = _mm_shuffle_ps(vec_g, vec_g, 0);
-        vec_b = _mm_shuffle_ps(vec_b, vec_b, 0);
-
-        /* gamma * matrix */
-        vec_r = _mm_mul_ps(vec_r, mat0);
-        vec_g = _mm_mul_ps(vec_g, mat1);
-        vec_b = _mm_mul_ps(vec_b, mat2);
-
-        /* crunch, crunch, crunch */
-        vec_r  = _mm_add_ps(vec_g, _mm_add_ps(vec_r, vec_b));
-        vec_r  = _mm_max_ps(min, vec_r);
-        vec_r  = _mm_min_ps(max, vec_r);
-        result = _mm_mul_ps(vec_r, scale);
-
-        /* store calc'd output tables indices */
-        _mm_store_si128((__m128i*)output, _mm_cvtps_epi32(result));
-
-        /* load for next loop while store completes */
-        vec_r = _mm_load_ss(&igtbl_r[src[0]]);
-        vec_g = _mm_load_ss(&igtbl_g[src[1]]);
-        vec_b = _mm_load_ss(&igtbl_b[src[2]]);
-        src += 3;
-
-        /* use calc'd indices to output RGB values */
-        dest[r_out] = otdata_r[output[0]];
-        dest[1]     = otdata_g[output[1]];
-        dest[b_out] = otdata_b[output[2]];
-        dest += 3;
-    }
-
-    /* handle final (maybe only) pixel */
-
-    vec_r = _mm_shuffle_ps(vec_r, vec_r, 0);
-    vec_g = _mm_shuffle_ps(vec_g, vec_g, 0);
-    vec_b = _mm_shuffle_ps(vec_b, vec_b, 0);
-
-    vec_r = _mm_mul_ps(vec_r, mat0);
-    vec_g = _mm_mul_ps(vec_g, mat1);
-    vec_b = _mm_mul_ps(vec_b, mat2);
-
-    vec_r  = _mm_add_ps(vec_g, _mm_add_ps(vec_r, vec_b));
-    vec_r  = _mm_max_ps(min, vec_r);
-    vec_r  = _mm_min_ps(max, vec_r);
-    result = _mm_mul_ps(vec_r, scale);
-
-    _mm_store_si128((__m128i*)output, _mm_cvtps_epi32(result));
-
-    dest[r_out] = otdata_r[output[0]];
-    dest[1]     = otdata_g[output[1]];
-    dest[b_out] = otdata_b[output[2]];
-}
-
-void qcms_transform_data_rgba_out_lut_sse2(qcms_transform *transform,
-                                           unsigned char *src,
-                                           unsigned char *dest,
-                                           size_t length,
-                                           qcms_format_type output_format)
-{
-    unsigned int i;
-    float (*mat)[4] = transform->matrix;
-    char input_back[32];
-    /* Ensure we have a buffer that's 16 byte aligned regardless of the original
-     * stack alignment. We can't use __attribute__((aligned(16))) or __declspec(align(32))
-     * because they don't work on stack variables. gcc 4.4 does do the right thing
-     * on x86 but that's too new for us right now. For more info: gcc bug #16660 */
-    float const * input = (float*)(((uintptr_t)&input_back[16]) & ~0xf);
-    /* share input and output locations to save having to keep the
-     * locations in separate registers */
-    uint32_t const * output = (uint32_t*)input;
-
-    /* deref *transform now to avoid it in loop */
-    const float *igtbl_r = transform->input_gamma_table_r;
-    const float *igtbl_g = transform->input_gamma_table_g;
-    const float *igtbl_b = transform->input_gamma_table_b;
-
-    /* deref *transform now to avoid it in loop */
-    const uint8_t *otdata_r = &transform->output_table_r->data[0];
-    const uint8_t *otdata_g = &transform->output_table_g->data[0];
-    const uint8_t *otdata_b = &transform->output_table_b->data[0];
-
-    /* input matrix values never change */
-    const __m128 mat0  = _mm_load_ps(mat[0]);
-    const __m128 mat1  = _mm_load_ps(mat[1]);
-    const __m128 mat2  = _mm_load_ps(mat[2]);
-
-    /* these values don't change, either */
-    const __m128 max   = _mm_load_ps(clampMaxValueX4);
-    const __m128 min   = _mm_setzero_ps();
-    const __m128 scale = _mm_load_ps(floatScaleX4);
-
-    /* working variables */
-    __m128 vec_r, vec_g, vec_b, result;
-    const int r_out = output_format.r;
-    const int b_out = output_format.b;
-    unsigned char alpha;
-
-    /* CYA */
-    if (!length)
-        return;
-
-    /* one pixel is handled outside of the loop */
-    length--;
-
-    /* setup for transforming 1st pixel */
-    vec_r = _mm_load_ss(&igtbl_r[src[0]]);
-    vec_g = _mm_load_ss(&igtbl_g[src[1]]);
-    vec_b = _mm_load_ss(&igtbl_b[src[2]]);
-    alpha = src[3];
-    src += 4;
-
-    /* transform all but final pixel */
-
-    for (i=0; i<length; i++)
-    {
-        /* position values from gamma tables */
-        vec_r = _mm_shuffle_ps(vec_r, vec_r, 0);
-        vec_g = _mm_shuffle_ps(vec_g, vec_g, 0);
-        vec_b = _mm_shuffle_ps(vec_b, vec_b, 0);
-
-        /* gamma * matrix */
-        vec_r = _mm_mul_ps(vec_r, mat0);
-        vec_g = _mm_mul_ps(vec_g, mat1);
-        vec_b = _mm_mul_ps(vec_b, mat2);
-
-        /* store alpha for this pixel; load alpha for next */
-        dest[3] = alpha;
-        alpha   = src[3];
-
-        /* crunch, crunch, crunch */
-        vec_r  = _mm_add_ps(vec_g, _mm_add_ps(vec_r, vec_b));
-        vec_r  = _mm_max_ps(min, vec_r);
-        vec_r  = _mm_min_ps(max, vec_r);
-        result = _mm_mul_ps(vec_r, scale);
-
-        /* store calc'd output tables indices */
-        _mm_store_si128((__m128i*)output, _mm_cvtps_epi32(result));
-
-        /* load gamma values for next loop while store completes */
-        vec_r = _mm_load_ss(&igtbl_r[src[0]]);
-        vec_g = _mm_load_ss(&igtbl_g[src[1]]);
-        vec_b = _mm_load_ss(&igtbl_b[src[2]]);
-        src += 4;
-
-        /* use calc'd indices to output RGB values */
-        dest[r_out] = otdata_r[output[0]];
-        dest[1]     = otdata_g[output[1]];
-        dest[b_out] = otdata_b[output[2]];
-        dest += 4;
-    }
-
-    /* handle final (maybe only) pixel */
-
-    vec_r = _mm_shuffle_ps(vec_r, vec_r, 0);
-    vec_g = _mm_shuffle_ps(vec_g, vec_g, 0);
-    vec_b = _mm_shuffle_ps(vec_b, vec_b, 0);
-
-    vec_r = _mm_mul_ps(vec_r, mat0);
-    vec_g = _mm_mul_ps(vec_g, mat1);
-    vec_b = _mm_mul_ps(vec_b, mat2);
-
-    dest[3] = alpha;
-
-    vec_r  = _mm_add_ps(vec_g, _mm_add_ps(vec_r, vec_b));
-    vec_r  = _mm_max_ps(min, vec_r);
-    vec_r  = _mm_min_ps(max, vec_r);
-    result = _mm_mul_ps(vec_r, scale);
-
-    _mm_store_si128((__m128i*)output, _mm_cvtps_epi32(result));
-
-    dest[r_out] = otdata_r[output[0]];
-    dest[1]     = otdata_g[output[1]];
-    dest[b_out] = otdata_b[output[2]];
-}
-
-static inline __m128i __mm_swizzle_epi32(__m128i value, int bgra)
-{
-    return bgra ? _mm_shuffle_epi32(value, _MM_SHUFFLE(0, 1, 2, 3)) :
-                  _mm_shuffle_epi32(value, _MM_SHUFFLE(0, 3, 2, 1)) ;
-}
-
-void qcms_transform_data_tetra_clut_rgba_sse2(qcms_transform *transform,
-                                              unsigned char *src,
-                                              unsigned char *dest,
-                                              size_t length,
-                                              qcms_format_type output_format)
-{
-    const int bgra = output_format.r;
-
-    size_t i;
-
-    const int xy_len_3 = 3 * 1;
-    const int x_len_3 = 3 * transform->grid_size;
-    const int len_3 = x_len_3 * transform->grid_size;
-
-    const __m128 __255 = _mm_set1_ps(255.0f);
-    const __m128 __one = _mm_set1_ps(1.0f);
-    const __m128 __000 = _mm_setzero_ps();
-
-    const float* r_table = transform->r_clut;
-    const float* g_table = transform->g_clut;
-    const float* b_table = transform->b_clut;
-
-    int i3, i2, i1, i0;
-
-    __m128 c3;
-    __m128 c2;
-    __m128 c1;
-    __m128 c0;
-
-    if (!(transform->transform_flags & TRANSFORM_FLAG_CLUT_CACHE))
-        qcms_transform_build_clut_cache(transform);
-
-    for (i = 0; i < length; ++i) {
-        unsigned char in_r = *src++;
-        unsigned char in_g = *src++;
-        unsigned char in_b = *src++;
-
-        // initialize the output result with the alpha channel only
-
-        __m128i result = _mm_setr_epi32(*src++, 0, 0, 0);
-
-        // get the input point r.xyz relative to the subcube origin
-
-        float rx = transform->r_cache[in_r];
-        float ry = transform->r_cache[in_g];
-        float rz = transform->r_cache[in_b];
-
-        // load and LUT scale the subcube maximum vertex
-
-        int xn = transform->ceil_cache[in_r] * len_3;
-        int yn = transform->ceil_cache[in_g] * x_len_3;
-        int zn = transform->ceil_cache[in_b] * xy_len_3;
-
-        // load and LUT scale the subcube origin vertex
-
-        int x0 = transform->floor_cache[in_r] * len_3;
-        int y0 = transform->floor_cache[in_g] * x_len_3;
-        int z0 = transform->floor_cache[in_b] * xy_len_3;
-
-        // tetrahedral interpolate the input color r.xyz
-
-#define TETRA_LOOKUP_CLUT(i3, i2, i1, i0) \
-        c0 = _mm_set_ps(b_table[i0], g_table[i0], r_table[i0], 0.f), \
-        c1 = _mm_set_ps(b_table[i1], g_table[i1], r_table[i1], 0.f), \
-        c2 = _mm_set_ps(b_table[i2], g_table[i2], r_table[i2], 0.f), \
-        c3 = _mm_set_ps(b_table[i3], g_table[i3], r_table[i3], 0.f)
-
-        i0 = x0 + y0 + z0;
-
-        if (rx >= ry) {
-
-            if (ry >= rz) {         // rx >= ry && ry >= rz
-
-                i3 = yn + (i1 = xn);
-                i1 += i0 - x0;
-                i2 = i3 + z0;
-                i3 += zn;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c3 = _mm_sub_ps(c3, c2);
-                c2 = _mm_sub_ps(c2, c1);
-                c1 = _mm_sub_ps(c1, c0);
-
-            } else if (rx >= rz) {  // rx >= rz && rz >= ry
-
-                i3 = zn + (i1 = xn);
-                i1 += i0 - x0;
-                i2 = i3 + yn;
-                i3 += y0;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c2 = _mm_sub_ps(c2, c3);
-                c3 = _mm_sub_ps(c3, c1);
-                c1 = _mm_sub_ps(c1, c0);
-
-            } else {                // rz > rx && rx >= ry
-
-                i2 = xn + (i3 = zn);
-                i3 += i0 - z0;
-                i1 = i2 + y0;
-                i2 += yn;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c2 = _mm_sub_ps(c2, c1);
-                c1 = _mm_sub_ps(c1, c3);
-                c3 = _mm_sub_ps(c3, c0);
-            }
-        } else {
-
-            if (rx >= rz) {         // ry > rx && rx >= rz
-
-                i3 = xn + (i2 = yn);
-                i2 += i0 - y0;
-                i1 = i3 + z0;
-                i3 += zn;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c3 = _mm_sub_ps(c3, c1);
-                c1 = _mm_sub_ps(c1, c2);
-                c2 = _mm_sub_ps(c2, c0);
-
-            } else if (ry >= rz) {  // ry >= rz && rz > rx
-
-                i3 = zn + (i2 = yn);
-                i2 += i0 - y0;
-                i1 = i3 + xn;
-                i3 += x0;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c1 = _mm_sub_ps(c1, c3);
-                c3 = _mm_sub_ps(c3, c2);
-                c2 = _mm_sub_ps(c2, c0);
-
-            } else {                // rz > ry && ry > rx
-
-                i2 = yn + (i3 = zn);
-                i3 += i0 - z0;
-                i1 = i2 + xn;
-                i2 += x0;
-
-                TETRA_LOOKUP_CLUT(i3, i2, i1, i0);
-
-                c1 = _mm_sub_ps(c1, c2);
-                c2 = _mm_sub_ps(c2, c3);
-                c3 = _mm_sub_ps(c3, c0);
-            }
-        }
-
-        // output.xyz = column_matrix(c1, c2, c3) x r.xyz + c0.xyz
-
-        c0 = _mm_add_ps(c0, _mm_mul_ps(c1, _mm_set1_ps(rx)));
-        c0 = _mm_add_ps(c0, _mm_mul_ps(c2, _mm_set1_ps(ry)));
-        c0 = _mm_add_ps(c0, _mm_mul_ps(c3, _mm_set1_ps(rz)));
-
-        // clamp to [0.0..1.0], then scale by 255
-
-        c0 = _mm_max_ps(c0, __000);
-        c0 = _mm_min_ps(c0, __one);
-        c0 = _mm_mul_ps(c0, __255);
-
-        // int(c0) with float rounding, add alpha
-
-        result = _mm_add_epi32(result, _mm_cvtps_epi32(c0));
-
-        // swizzle and repack in result low bytes
-
-        result = __mm_swizzle_epi32(result, bgra);
-        result = _mm_packus_epi16(result, result);
-        result = _mm_packus_epi16(result, result);
-
-        // store into uint32_t* pixel destination
-
-        *(uint32_t *)dest = _mm_cvtsi128_si32(result);
-        dest += 4;
-    }
-}
diff --git a/third_party/qcms/src/transform.c b/third_party/qcms/src/transform.c
deleted file mode 100644
index b20a39c..0000000
--- a/third_party/qcms/src/transform.c
+++ /dev/null
@@ -1,1647 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Corporation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#include <stdlib.h>
-#include <math.h>
-#include <assert.h>
-#include <string.h> //memcpy
-#include "qcmsint.h"
-#include "chain.h"
-#include "halffloat.h"
-#include "matrix.h"
-#include "transform_util.h"
-
-#ifdef USE_LIBFUZZER
-#define ASSERT(x)
-#else
-#define ASSERT(x) assert(x)
-#endif
-
-/* for MSVC, GCC, Intel, and Sun compilers */
-#if defined(_M_IX86) || defined(__i386__) || defined(__i386) || defined(_M_AMD64) || defined(__x86_64__) || defined(__x86_64)
-#define X86
-#endif /* _M_IX86 || __i386__ || __i386 || _M_AMD64 || __x86_64__ || __x86_64 */
-
-// Build a White point, primary chromas transfer matrix from RGB to CIE XYZ
-// This is just an approximation, I am not handling all the non-linear
-// aspects of the RGB to XYZ process, and assumming that the gamma correction
-// has transitive property in the tranformation chain.
-//
-// the alghoritm:
-//
-//            - First I build the absolute conversion matrix using
-//              primaries in XYZ. This matrix is next inverted
-//            - Then I eval the source white point across this matrix
-//              obtaining the coeficients of the transformation
-//            - Then, I apply these coeficients to the original matrix
-static struct matrix build_RGB_to_XYZ_transfer_matrix(qcms_CIE_xyY white, qcms_CIE_xyYTRIPLE primrs)
-{
-	struct matrix primaries;
-	struct matrix primaries_invert;
-	struct matrix result;
-	struct vector white_point;
-	struct vector coefs;
-
-	double xn, yn;
-	double xr, yr;
-	double xg, yg;
-	double xb, yb;
-
-	xn = white.x;
-	yn = white.y;
-
-	if (yn == 0.0)
-		return matrix_invalid();
-
-	xr = primrs.red.x;
-	yr = primrs.red.y;
-	xg = primrs.green.x;
-	yg = primrs.green.y;
-	xb = primrs.blue.x;
-	yb = primrs.blue.y;
-
-	primaries.m[0][0] = xr;
-	primaries.m[0][1] = xg;
-	primaries.m[0][2] = xb;
-
-	primaries.m[1][0] = yr;
-	primaries.m[1][1] = yg;
-	primaries.m[1][2] = yb;
-
-	primaries.m[2][0] = 1 - xr - yr;
-	primaries.m[2][1] = 1 - xg - yg;
-	primaries.m[2][2] = 1 - xb - yb;
-	primaries.invalid = false;
-
-	white_point.v[0] = xn/yn;
-	white_point.v[1] = 1.;
-	white_point.v[2] = (1.0-xn-yn)/yn;
-
-	primaries_invert = matrix_invert(primaries);
-
-	coefs = matrix_eval(primaries_invert, white_point);
-
-	result.m[0][0] = coefs.v[0]*xr;
-	result.m[0][1] = coefs.v[1]*xg;
-	result.m[0][2] = coefs.v[2]*xb;
-
-	result.m[1][0] = coefs.v[0]*yr;
-	result.m[1][1] = coefs.v[1]*yg;
-	result.m[1][2] = coefs.v[2]*yb;
-
-	result.m[2][0] = coefs.v[0]*(1.-xr-yr);
-	result.m[2][1] = coefs.v[1]*(1.-xg-yg);
-	result.m[2][2] = coefs.v[2]*(1.-xb-yb);
-	result.invalid = primaries_invert.invalid;
-
-	return result;
-}
-
-struct CIE_XYZ {
-	double X;
-	double Y;
-	double Z;
-};
-
-/* CIE Illuminant D50 */
-static const struct CIE_XYZ D50_XYZ = {
-	0.9642,
-	1.0000,
-	0.8249
-};
-
-/* from lcms: xyY2XYZ()
- * corresponds to argyll: icmYxy2XYZ() */
-static struct CIE_XYZ xyY2XYZ(qcms_CIE_xyY source)
-{
-	struct CIE_XYZ dest;
-	dest.X = (source.x / source.y) * source.Y;
-	dest.Y = source.Y;
-	dest.Z = ((1 - source.x - source.y) / source.y) * source.Y;
-	return dest;
-}
-
-/* from lcms: ComputeChromaticAdaption */
-// Compute chromatic adaption matrix using chad as cone matrix
-static struct matrix
-compute_chromatic_adaption(struct CIE_XYZ source_white_point,
-                           struct CIE_XYZ dest_white_point,
-                           struct matrix chad)
-{
-	struct matrix chad_inv;
-	struct vector cone_source_XYZ, cone_source_rgb;
-	struct vector cone_dest_XYZ, cone_dest_rgb;
-	struct matrix cone, tmp;
-
-	tmp = chad;
-	chad_inv = matrix_invert(tmp);
-
-	cone_source_XYZ.v[0] = source_white_point.X;
-	cone_source_XYZ.v[1] = source_white_point.Y;
-	cone_source_XYZ.v[2] = source_white_point.Z;
-
-	cone_dest_XYZ.v[0] = dest_white_point.X;
-	cone_dest_XYZ.v[1] = dest_white_point.Y;
-	cone_dest_XYZ.v[2] = dest_white_point.Z;
-
-	cone_source_rgb = matrix_eval(chad, cone_source_XYZ);
-	cone_dest_rgb   = matrix_eval(chad, cone_dest_XYZ);
-
-	cone.m[0][0] = cone_dest_rgb.v[0]/cone_source_rgb.v[0];
-	cone.m[0][1] = 0;
-	cone.m[0][2] = 0;
-	cone.m[1][0] = 0;
-	cone.m[1][1] = cone_dest_rgb.v[1]/cone_source_rgb.v[1];
-	cone.m[1][2] = 0;
-	cone.m[2][0] = 0;
-	cone.m[2][1] = 0;
-	cone.m[2][2] = cone_dest_rgb.v[2]/cone_source_rgb.v[2];
-	cone.invalid = false;
-
-	// Normalize
-	return matrix_multiply(chad_inv, matrix_multiply(cone, chad));
-}
-
-/* from lcms: cmsAdaptionMatrix */
-// Returns the final chrmatic adaptation from illuminant FromIll to Illuminant ToIll
-// Bradford is assumed
-static struct matrix
-adaption_matrix(struct CIE_XYZ source_illumination, struct CIE_XYZ target_illumination)
-{
-#if defined (_MSC_VER)
-#pragma warning(push)
-/* Disable double to float truncation warning 4305 */
-#pragma warning(disable:4305)
-#endif
-	struct matrix lam_rigg = {{ // Bradford matrix
-	                         {  0.8951,  0.2664, -0.1614 },
-	                         { -0.7502,  1.7135,  0.0367 },
-	                         {  0.0389, -0.0685,  1.0296 }
-	                         }};
-#if defined (_MSC_VER)
-/* Restore warnings */
-#pragma warning(pop)
-#endif
-	return compute_chromatic_adaption(source_illumination, target_illumination, lam_rigg);
-}
-
-/* from lcms: cmsAdaptMatrixToD50 */
-static struct matrix adapt_matrix_to_D50(struct matrix r, qcms_CIE_xyY source_white_point)
-{
-	struct CIE_XYZ DNN_XYZ;
-	struct matrix Bradford;
-
-	if (source_white_point.y == 0.0)
-		return matrix_invalid();
-
-	DNN_XYZ = xyY2XYZ(source_white_point);
-
-	Bradford = adaption_matrix(DNN_XYZ, D50_XYZ);
-
-	return matrix_multiply(Bradford, r);
-}
-
-qcms_bool set_rgb_colorants(qcms_profile *profile, qcms_CIE_xyY white_point, qcms_CIE_xyYTRIPLE primaries)
-{
-	struct CIE_XYZ source_white;
-	struct matrix colorants;
-
-	colorants = build_RGB_to_XYZ_transfer_matrix(white_point, primaries);
-	colorants = adapt_matrix_to_D50(colorants, white_point);
-
-	if (colorants.invalid)
-		return false;
-
-	/* note: there's a transpose type of operation going on here */
-	profile->redColorant.X = double_to_s15Fixed16Number(colorants.m[0][0]);
-	profile->redColorant.Y = double_to_s15Fixed16Number(colorants.m[1][0]);
-	profile->redColorant.Z = double_to_s15Fixed16Number(colorants.m[2][0]);
-
-	profile->greenColorant.X = double_to_s15Fixed16Number(colorants.m[0][1]);
-	profile->greenColorant.Y = double_to_s15Fixed16Number(colorants.m[1][1]);
-	profile->greenColorant.Z = double_to_s15Fixed16Number(colorants.m[2][1]);
-
-	profile->blueColorant.X = double_to_s15Fixed16Number(colorants.m[0][2]);
-	profile->blueColorant.Y = double_to_s15Fixed16Number(colorants.m[1][2]);
-	profile->blueColorant.Z = double_to_s15Fixed16Number(colorants.m[2][2]);
-
-	/* Store the media white point */
-	source_white = xyY2XYZ(white_point);
-	profile->mediaWhitePoint.X = double_to_s15Fixed16Number(source_white.X);
-	profile->mediaWhitePoint.Y = double_to_s15Fixed16Number(source_white.Y);
-	profile->mediaWhitePoint.Z = double_to_s15Fixed16Number(source_white.Z);
-
-	return true;
-}
-
-#if 0
-static void qcms_transform_data_rgb_out_pow(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	int i;
-	float (*mat)[4] = transform->matrix;
-	for (i=0; i<length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		float out_device_r = pow(out_linear_r, transform->out_gamma_r);
-		float out_device_g = pow(out_linear_g, transform->out_gamma_g);
-		float out_device_b = pow(out_linear_b, transform->out_gamma_b);
-
-		dest[r_out] = clamp_u8(out_device_r*255);
-		dest[1]     = clamp_u8(out_device_g*255);
-		dest[b_out] = clamp_u8(out_device_b*255);
-		dest += 3;
-	}
-}
-#endif
-
-static void qcms_transform_data_gray_out_lut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	for (i = 0; i < length; i++) {
-		float out_device_r, out_device_g, out_device_b;
-		unsigned char device = *src++;
-
-		float linear = transform->input_gamma_table_gray[device];
-
-		out_device_r = lut_interp_linear(linear, transform->output_gamma_lut_r, transform->output_gamma_lut_r_length);
-		out_device_g = lut_interp_linear(linear, transform->output_gamma_lut_g, transform->output_gamma_lut_g_length);
-		out_device_b = lut_interp_linear(linear, transform->output_gamma_lut_b, transform->output_gamma_lut_b_length);
-
-		dest[r_out] = clamp_u8(out_device_r*255);
-		dest[1]     = clamp_u8(out_device_g*255);
-		dest[b_out] = clamp_u8(out_device_b*255);
-		dest += 3;
-	}
-}
-
-/* Alpha is not corrected.
-   A rationale for this is found in Alvy Ray's "Should Alpha Be Nonlinear If
-   RGB Is?" Tech Memo 17 (December 14, 1998).
-	See: ftp://ftp.alvyray.com/Acrobat/17_Nonln.pdf
-*/
-
-static void qcms_transform_data_graya_out_lut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	for (i = 0; i < length; i++) {
-		float out_device_r, out_device_g, out_device_b;
-		unsigned char device = *src++;
-		unsigned char alpha = *src++;
-
-		float linear = transform->input_gamma_table_gray[device];
-
-		out_device_r = lut_interp_linear(linear, transform->output_gamma_lut_r, transform->output_gamma_lut_r_length);
-		out_device_g = lut_interp_linear(linear, transform->output_gamma_lut_g, transform->output_gamma_lut_g_length);
-		out_device_b = lut_interp_linear(linear, transform->output_gamma_lut_b, transform->output_gamma_lut_b_length);
-
-		dest[r_out] = clamp_u8(out_device_r*255);
-		dest[1]     = clamp_u8(out_device_g*255);
-		dest[b_out] = clamp_u8(out_device_b*255);
-		dest[3]     = alpha;
-		dest += 4;
-	}
-}
-
-
-static void qcms_transform_data_gray_out_precache(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	for (i = 0; i < length; i++) {
-		unsigned char device = *src++;
-		uint16_t gray;
-
-		float linear = transform->input_gamma_table_gray[device];
-
-		/* we could round here... */
-		gray = linear * PRECACHE_OUTPUT_MAX;
-
-		dest[r_out] = transform->output_table_r->data[gray];
-		dest[1]     = transform->output_table_g->data[gray];
-		dest[b_out] = transform->output_table_b->data[gray];
-		dest += 3;
-	}
-}
-
-
-static void qcms_transform_data_graya_out_precache(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	for (i = 0; i < length; i++) {
-		unsigned char device = *src++;
-		unsigned char alpha = *src++;
-		uint16_t gray;
-
-		float linear = transform->input_gamma_table_gray[device];
-
-		/* we could round here... */
-		gray = linear * PRECACHE_OUTPUT_MAX;
-
-		dest[r_out] = transform->output_table_r->data[gray];
-		dest[1]     = transform->output_table_g->data[gray];
-		dest[b_out] = transform->output_table_b->data[gray];
-		dest[3]     = alpha;
-		dest += 4;
-	}
-}
-
-static void qcms_transform_data_rgb_out_lut_precache(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	float (*mat)[4] = transform->matrix;
-	for (i = 0; i < length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-		uint16_t r, g, b;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		out_linear_r = clamp_float(out_linear_r);
-		out_linear_g = clamp_float(out_linear_g);
-		out_linear_b = clamp_float(out_linear_b);
-
-		/* we could round here... */
-		r = out_linear_r * PRECACHE_OUTPUT_MAX;
-		g = out_linear_g * PRECACHE_OUTPUT_MAX;
-		b = out_linear_b * PRECACHE_OUTPUT_MAX;
-
-		dest[r_out] = transform->output_table_r->data[r];
-		dest[1]     = transform->output_table_g->data[g];
-		dest[b_out] = transform->output_table_b->data[b];
-		dest += 3;
-	}
-}
-
-void qcms_transform_data_rgba_out_lut_precache(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	float (*mat)[4] = transform->matrix;
-	for (i = 0; i < length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-		unsigned char alpha = *src++;
-		uint16_t r, g, b;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		out_linear_r = clamp_float(out_linear_r);
-		out_linear_g = clamp_float(out_linear_g);
-		out_linear_b = clamp_float(out_linear_b);
-
-		/* we could round here... */
-		r = out_linear_r * PRECACHE_OUTPUT_MAX;
-		g = out_linear_g * PRECACHE_OUTPUT_MAX;
-		b = out_linear_b * PRECACHE_OUTPUT_MAX;
-
-		dest[r_out] = transform->output_table_r->data[r];
-		dest[1]     = transform->output_table_g->data[g];
-		dest[b_out] = transform->output_table_b->data[b];
-		dest[3]     = alpha;
-		dest += 4;
-	}
-}
-
-// Not used
-/* 
-static void qcms_transform_data_clut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-  
-	for (i = 0; i < length; i++) {
-		unsigned char in_r = *src++;
-		unsigned char in_g = *src++;
-		unsigned char in_b = *src++;
-		float linear_r = in_r/255.0f, linear_g=in_g/255.0f, linear_b = in_b/255.0f;
-
-		int x = floor(linear_r * (transform->grid_size-1));
-		int y = floor(linear_g * (transform->grid_size-1));
-		int z = floor(linear_b * (transform->grid_size-1));
-		int x_n = ceil(linear_r * (transform->grid_size-1));
-		int y_n = ceil(linear_g * (transform->grid_size-1));
-		int z_n = ceil(linear_b * (transform->grid_size-1));
-		float x_d = linear_r * (transform->grid_size-1) - x; 
-		float y_d = linear_g * (transform->grid_size-1) - y;
-		float z_d = linear_b * (transform->grid_size-1) - z; 
-
-		float r_x1 = lerp(CLU(r_table,x,y,z), CLU(r_table,x_n,y,z), x_d);
-		float r_x2 = lerp(CLU(r_table,x,y_n,z), CLU(r_table,x_n,y_n,z), x_d);
-		float r_y1 = lerp(r_x1, r_x2, y_d);
-		float r_x3 = lerp(CLU(r_table,x,y,z_n), CLU(r_table,x_n,y,z_n), x_d);
-		float r_x4 = lerp(CLU(r_table,x,y_n,z_n), CLU(r_table,x_n,y_n,z_n), x_d);
-		float r_y2 = lerp(r_x3, r_x4, y_d);
-		float clut_r = lerp(r_y1, r_y2, z_d);
-
-		float g_x1 = lerp(CLU(g_table,x,y,z), CLU(g_table,x_n,y,z), x_d);
-		float g_x2 = lerp(CLU(g_table,x,y_n,z), CLU(g_table,x_n,y_n,z), x_d);
-		float g_y1 = lerp(g_x1, g_x2, y_d);
-		float g_x3 = lerp(CLU(g_table,x,y,z_n), CLU(g_table,x_n,y,z_n), x_d);
-		float g_x4 = lerp(CLU(g_table,x,y_n,z_n), CLU(g_table,x_n,y_n,z_n), x_d);
-		float g_y2 = lerp(g_x3, g_x4, y_d);
-		float clut_g = lerp(g_y1, g_y2, z_d);
-
-		float b_x1 = lerp(CLU(b_table,x,y,z), CLU(b_table,x_n,y,z), x_d);
-		float b_x2 = lerp(CLU(b_table,x,y_n,z), CLU(b_table,x_n,y_n,z), x_d);
-		float b_y1 = lerp(b_x1, b_x2, y_d);
-		float b_x3 = lerp(CLU(b_table,x,y,z_n), CLU(b_table,x_n,y,z_n), x_d);
-		float b_x4 = lerp(CLU(b_table,x,y_n,z_n), CLU(b_table,x_n,y_n,z_n), x_d);
-		float b_y2 = lerp(b_x3, b_x4, y_d);
-		float clut_b = lerp(b_y1, b_y2, z_d);
-
-		dest[r_out] = clamp_u8(clut_r*255.0f);
-		dest[1]     = clamp_u8(clut_g*255.0f);
-		dest[b_out] = clamp_u8(clut_b*255.0f);
-		dest += 3;
-	}
-}
-*/
-
-// Using lcms' tetra interpolation algorithm.
-void qcms_transform_data_tetra_clut_rgba(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-	float c0_r, c1_r, c2_r, c3_r;
-	float c0_g, c1_g, c2_g, c3_g;
-	float c0_b, c1_b, c2_b, c3_b;
-	float clut_r, clut_g, clut_b;
-
-	if (!(transform->transform_flags & TRANSFORM_FLAG_CLUT_CACHE))
-		qcms_transform_build_clut_cache(transform);
-
-	for (i = 0; i < length; i++) {
-		unsigned char in_r = *src++;
-		unsigned char in_g = *src++;
-		unsigned char in_b = *src++;
-		unsigned char in_a = *src++;
-
-		int x = transform->floor_cache[in_r];
-		int y = transform->floor_cache[in_g];
-		int z = transform->floor_cache[in_b];
-
-		int x_n = transform->ceil_cache[in_r];
-		int y_n = transform->ceil_cache[in_g];
-		int z_n = transform->ceil_cache[in_b];
-
-		float rx = transform->r_cache[in_r];
-		float ry = transform->r_cache[in_g];
-		float rz = transform->r_cache[in_b];
-
-		c0_r = CLU(r_table, x, y, z);
-		c0_g = CLU(g_table, x, y, z);
-		c0_b = CLU(b_table, x, y, z);
-
-		if( rx >= ry ) {
-			if (ry >= rz) { //rx >= ry && ry >= rz
-				c1_r = CLU(r_table, x_n, y, z) - c0_r;
-				c2_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x_n, y, z);
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y, z) - c0_g;
-				c2_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x_n, y, z);
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y, z) - c0_b;
-				c2_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x_n, y, z);
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else { 
-				if (rx >= rz) { //rx >= rz && rz >= ry
-					c1_r = CLU(r_table, x_n, y, z) - c0_r;
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x_n, y, z);
-					c1_g = CLU(g_table, x_n, y, z) - c0_g;
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x_n, y, z);
-					c1_b = CLU(b_table, x_n, y, z) - c0_b;
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x_n, y, z);
-				} else { //rz > rx && rx >= ry
-					c1_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x, y, z_n);
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x, y, z_n) - c0_r;
-					c1_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x, y, z_n);
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x, y, z_n) - c0_g;
-					c1_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x, y, z_n);
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x, y, z_n) - c0_b;
-				}
-			}
-		} else {
-			if (rx >= rz) { //ry > rx && rx >= rz
-				c1_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x, y_n, z);
-				c2_r = CLU(r_table, x, y_n, z) - c0_r;
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x, y_n, z);
-				c2_g = CLU(g_table, x, y_n, z) - c0_g;
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x, y_n, z);
-				c2_b = CLU(b_table, x, y_n, z) - c0_b;
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else {
-				if (ry >= rz) { //ry >= rz && rz > rx 
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z) - c0_r;
-					c3_r = CLU(r_table, x, y_n, z_n) - CLU(r_table, x, y_n, z);
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z) - c0_g;
-					c3_g = CLU(g_table, x, y_n, z_n) - CLU(g_table, x, y_n, z);
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z) - c0_b;
-					c3_b = CLU(b_table, x, y_n, z_n) - CLU(b_table, x, y_n, z);
-				} else { //rz > ry && ry > rx
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z_n) - CLU(r_table, x, y, z_n);
-					c3_r = CLU(r_table, x, y, z_n) - c0_r;
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z_n) - CLU(g_table, x, y, z_n);
-					c3_g = CLU(g_table, x, y, z_n) - c0_g;
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z_n) - CLU(b_table, x, y, z_n);
-					c3_b = CLU(b_table, x, y, z_n) - c0_b;
-				}
-			}
-		}
-				
-		clut_r = c0_r + c1_r*rx + c2_r*ry + c3_r*rz;
-		clut_g = c0_g + c1_g*rx + c2_g*ry + c3_g*rz;
-		clut_b = c0_b + c1_b*rx + c2_b*ry + c3_b*rz;
-
-		dest[r_out] = clamp_u8(clut_r*255.0f);
-		dest[1]     = clamp_u8(clut_g*255.0f);
-		dest[b_out] = clamp_u8(clut_b*255.0f);
-		dest[3]     = in_a;
-		dest += 4;
-	}
-}
-
-// Using lcms' tetra interpolation code.
-static void qcms_transform_data_tetra_clut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	int xy_len = 1;
-	int x_len = transform->grid_size;
-	int len = x_len * x_len;
-	float* r_table = transform->r_clut;
-	float* g_table = transform->g_clut;
-	float* b_table = transform->b_clut;
-	float c0_r, c1_r, c2_r, c3_r;
-	float c0_g, c1_g, c2_g, c3_g;
-	float c0_b, c1_b, c2_b, c3_b;
-	float clut_r, clut_g, clut_b;
-
-	if (!(transform->transform_flags & TRANSFORM_FLAG_CLUT_CACHE))
-		qcms_transform_build_clut_cache(transform);
-
-	for (i = 0; i < length; i++) {
-		unsigned char in_r = *src++;
-		unsigned char in_g = *src++;
-		unsigned char in_b = *src++;
-
-		int x = transform->floor_cache[in_r];
-		int y = transform->floor_cache[in_g];
-		int z = transform->floor_cache[in_b];
-
-		int x_n = transform->ceil_cache[in_r];
-		int y_n = transform->ceil_cache[in_g];
-		int z_n = transform->ceil_cache[in_b];
-
-		float rx = transform->r_cache[in_r];
-		float ry = transform->r_cache[in_g];
-		float rz = transform->r_cache[in_b];
-
-		c0_r = CLU(r_table, x, y, z);
-		c0_g = CLU(g_table, x, y, z);
-		c0_b = CLU(b_table, x, y, z);
-
-		if( rx >= ry ) {
-			if (ry >= rz) { //rx >= ry && ry >= rz
-				c1_r = CLU(r_table, x_n, y, z) - c0_r;
-				c2_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x_n, y, z);
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y, z) - c0_g;
-				c2_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x_n, y, z);
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y, z) - c0_b;
-				c2_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x_n, y, z);
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else { 
-				if (rx >= rz) { //rx >= rz && rz >= ry
-					c1_r = CLU(r_table, x_n, y, z) - c0_r;
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x_n, y, z);
-					c1_g = CLU(g_table, x_n, y, z) - c0_g;
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x_n, y, z);
-					c1_b = CLU(b_table, x_n, y, z) - c0_b;
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x_n, y, z);
-				} else { //rz > rx && rx >= ry
-					c1_r = CLU(r_table, x_n, y, z_n) - CLU(r_table, x, y, z_n);
-					c2_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y, z_n);
-					c3_r = CLU(r_table, x, y, z_n) - c0_r;
-					c1_g = CLU(g_table, x_n, y, z_n) - CLU(g_table, x, y, z_n);
-					c2_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y, z_n);
-					c3_g = CLU(g_table, x, y, z_n) - c0_g;
-					c1_b = CLU(b_table, x_n, y, z_n) - CLU(b_table, x, y, z_n);
-					c2_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y, z_n);
-					c3_b = CLU(b_table, x, y, z_n) - c0_b;
-				}
-			}
-		} else {
-			if (rx >= rz) { //ry > rx && rx >= rz
-				c1_r = CLU(r_table, x_n, y_n, z) - CLU(r_table, x, y_n, z);
-				c2_r = CLU(r_table, x, y_n, z) - c0_r;
-				c3_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x_n, y_n, z);
-				c1_g = CLU(g_table, x_n, y_n, z) - CLU(g_table, x, y_n, z);
-				c2_g = CLU(g_table, x, y_n, z) - c0_g;
-				c3_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x_n, y_n, z);
-				c1_b = CLU(b_table, x_n, y_n, z) - CLU(b_table, x, y_n, z);
-				c2_b = CLU(b_table, x, y_n, z) - c0_b;
-				c3_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x_n, y_n, z);
-			} else {
-				if (ry >= rz) { //ry >= rz && rz > rx 
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z) - c0_r;
-					c3_r = CLU(r_table, x, y_n, z_n) - CLU(r_table, x, y_n, z);
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z) - c0_g;
-					c3_g = CLU(g_table, x, y_n, z_n) - CLU(g_table, x, y_n, z);
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z) - c0_b;
-					c3_b = CLU(b_table, x, y_n, z_n) - CLU(b_table, x, y_n, z);
-				} else { //rz > ry && ry > rx
-					c1_r = CLU(r_table, x_n, y_n, z_n) - CLU(r_table, x, y_n, z_n);
-					c2_r = CLU(r_table, x, y_n, z_n) - CLU(r_table, x, y, z_n);
-					c3_r = CLU(r_table, x, y, z_n) - c0_r;
-					c1_g = CLU(g_table, x_n, y_n, z_n) - CLU(g_table, x, y_n, z_n);
-					c2_g = CLU(g_table, x, y_n, z_n) - CLU(g_table, x, y, z_n);
-					c3_g = CLU(g_table, x, y, z_n) - c0_g;
-					c1_b = CLU(b_table, x_n, y_n, z_n) - CLU(b_table, x, y_n, z_n);
-					c2_b = CLU(b_table, x, y_n, z_n) - CLU(b_table, x, y, z_n);
-					c3_b = CLU(b_table, x, y, z_n) - c0_b;
-				}
-			}
-		}
-				
-		clut_r = c0_r + c1_r*rx + c2_r*ry + c3_r*rz;
-		clut_g = c0_g + c1_g*rx + c2_g*ry + c3_g*rz;
-		clut_b = c0_b + c1_b*rx + c2_b*ry + c3_b*rz;
-
-		dest[r_out] = clamp_u8(clut_r*255.0f);
-		dest[1]     = clamp_u8(clut_g*255.0f);
-		dest[b_out] = clamp_u8(clut_b*255.0f);
-		dest += 3;
-	}
-}
-
-static void qcms_transform_data_rgb_out_lut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	float (*mat)[4] = transform->matrix;
-	for (i = 0; i < length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-		float out_device_r, out_device_g, out_device_b;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		out_linear_r = clamp_float(out_linear_r);
-		out_linear_g = clamp_float(out_linear_g);
-		out_linear_b = clamp_float(out_linear_b);
-
-		out_device_r = lut_interp_linear(out_linear_r, 
-				transform->output_gamma_lut_r, transform->output_gamma_lut_r_length);
-		out_device_g = lut_interp_linear(out_linear_g, 
-				transform->output_gamma_lut_g, transform->output_gamma_lut_g_length);
-		out_device_b = lut_interp_linear(out_linear_b, 
-				transform->output_gamma_lut_b, transform->output_gamma_lut_b_length);
-
-		dest[r_out] = clamp_u8(out_device_r*255);
-		dest[1]     = clamp_u8(out_device_g*255);
-		dest[b_out] = clamp_u8(out_device_b*255);
-		dest += 3;
-	}
-}
-
-static void qcms_transform_data_rgba_out_lut(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	unsigned int i;
-	float (*mat)[4] = transform->matrix;
-	for (i = 0; i < length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-		unsigned char alpha = *src++;
-		float out_device_r, out_device_g, out_device_b;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		out_linear_r = clamp_float(out_linear_r);
-		out_linear_g = clamp_float(out_linear_g);
-		out_linear_b = clamp_float(out_linear_b);
-
-		out_device_r = lut_interp_linear(out_linear_r, 
-				transform->output_gamma_lut_r, transform->output_gamma_lut_r_length);
-		out_device_g = lut_interp_linear(out_linear_g, 
-				transform->output_gamma_lut_g, transform->output_gamma_lut_g_length);
-		out_device_b = lut_interp_linear(out_linear_b, 
-				transform->output_gamma_lut_b, transform->output_gamma_lut_b_length);
-
-		dest[r_out] = clamp_u8(out_device_r*255);
-		dest[1]     = clamp_u8(out_device_g*255);
-		dest[b_out] = clamp_u8(out_device_b*255);
-		dest[3]     = alpha;
-		dest += 4;
-	}
-}
-
-#if 0
-static void qcms_transform_data_rgb_out_linear(qcms_transform *transform, unsigned char *src, unsigned char *dest, size_t length, qcms_format_type output_format)
-{
-	const int r_out = output_format.r;
-	const int b_out = output_format.b;
-
-	int i;
-	float (*mat)[4] = transform->matrix;
-	for (i = 0; i < length; i++) {
-		unsigned char device_r = *src++;
-		unsigned char device_g = *src++;
-		unsigned char device_b = *src++;
-
-		float linear_r = transform->input_gamma_table_r[device_r];
-		float linear_g = transform->input_gamma_table_g[device_g];
-		float linear_b = transform->input_gamma_table_b[device_b];
-
-		float out_linear_r = mat[0][0]*linear_r + mat[1][0]*linear_g + mat[2][0]*linear_b;
-		float out_linear_g = mat[0][1]*linear_r + mat[1][1]*linear_g + mat[2][1]*linear_b;
-		float out_linear_b = mat[0][2]*linear_r + mat[1][2]*linear_g + mat[2][2]*linear_b;
-
-		dest[r_out] = clamp_u8(out_linear_r*255);
-		dest[1]     = clamp_u8(out_linear_g*255);
-		dest[b_out] = clamp_u8(out_linear_b*255);
-		dest += 3;
-	}
-}
-#endif
-
-/*
- * If users create and destroy objects on different threads, even if the same
- * objects aren't used on different threads at the same time, we can still run
- * in to trouble with refcounts if they aren't atomic.
- *
- * This can lead to us prematurely deleting the precache if threads get unlucky
- * and write the wrong value to the ref count.
- */
-static struct precache_output *precache_reference(struct precache_output *p)
-{
-	qcms_atomic_increment(p->ref_count);
-	return p;
-}
-
-static struct precache_output *precache_create()
-{
-	struct precache_output *p = malloc(sizeof(struct precache_output));
-	if (p)
-		p->ref_count = 1;
-	return p;
-}
-
-void precache_release(struct precache_output *p)
-{
-	if (qcms_atomic_decrement(p->ref_count) == 0) {
-		free(p);
-	}
-}
-
-#ifdef HAVE_POSIX_MEMALIGN
-static qcms_transform *transform_alloc(void)
-{
-	qcms_transform *t;
-	if (!posix_memalign(&t, 16, sizeof(*t))) {
-		return t;
-	} else {
-		return NULL;
-	}
-}
-static void transform_free(qcms_transform *t)
-{
-	free(t);
-}
-#else
-static qcms_transform *transform_alloc(void)
-{
-	/* transform needs to be aligned on a 16byte boundrary */
-	char *original_block = calloc(sizeof(qcms_transform) + sizeof(void*) + 16, 1);
-	/* make room for a pointer to the block returned by calloc */
-	void *transform_start = original_block + sizeof(void*);
-	/* align transform_start */
-	qcms_transform *transform_aligned = (qcms_transform*)(((uintptr_t)transform_start + 15) & ~0xf);
-
-	/* store a pointer to the block returned by calloc so that we can free it later */
-	void **(original_block_ptr) = (void**)transform_aligned;
-	if (!original_block)
-		return NULL;
-	original_block_ptr--;
-	*original_block_ptr = original_block;
-
-	return transform_aligned;
-}
-static void transform_free(qcms_transform *t)
-{
-	/* get at the pointer to the unaligned block returned by calloc */
-	void **p = (void**)t;
-	p--;
-	free(*p);
-}
-#endif
-
-void qcms_transform_release(qcms_transform *t)
-{
-	/* ensure we only free the gamma tables once even if there are
-	 * multiple references to the same data */
-
-	if (t->output_table_r)
-		precache_release(t->output_table_r);
-	if (t->output_table_g)
-		precache_release(t->output_table_g);
-	if (t->output_table_b)
-		precache_release(t->output_table_b);
-
-	free(t->input_gamma_table_r);
-	if (t->input_gamma_table_g != t->input_gamma_table_r)
-		free(t->input_gamma_table_g);
-	if (t->input_gamma_table_g != t->input_gamma_table_r &&
-	    t->input_gamma_table_g != t->input_gamma_table_b)
-		free(t->input_gamma_table_b);
-
-	free(t->input_gamma_table_gray);
-
-	free(t->output_gamma_lut_r);
-	free(t->output_gamma_lut_g);
-	free(t->output_gamma_lut_b);
-
-	transform_free(t);
-}
-
-#ifdef X86
-// Determine if we can build with SSE2 (this was partly copied from jmorecfg.h in
-// mozilla/jpeg)
- // -------------------------------------------------------------------------
-#if defined(_M_IX86) && defined(_MSC_VER)
-#define HAS_CPUID
-/* Get us a CPUID function. Avoid clobbering EBX because sometimes it's the PIC
-   register - I'm not sure if that ever happens on windows, but cpuid isn't
-   on the critical path so we just preserve the register to be safe and to be
-   consistent with the non-windows version. */
-static void cpuid(uint32_t fxn, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d) {
-       uint32_t a_, b_, c_, d_;
-       __asm {
-              xchg   ebx, esi
-              mov    eax, fxn
-              cpuid
-              mov    a_, eax
-              mov    b_, ebx
-              mov    c_, ecx
-              mov    d_, edx
-              xchg   ebx, esi
-       }
-       *a = a_;
-       *b = b_;
-       *c = c_;
-       *d = d_;
-}
-#elif (defined(__GNUC__) || defined(__SUNPRO_C)) && (defined(__i386__) || defined(__i386))
-#define HAS_CPUID
-/* Get us a CPUID function. We can't use ebx because it's the PIC register on
-   some platforms, so we use ESI instead and save ebx to avoid clobbering it. */
-static void cpuid(uint32_t fxn, uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d) {
-
-	uint32_t a_, b_, c_, d_;
-       __asm__ __volatile__ ("xchgl %%ebx, %%esi; cpuid; xchgl %%ebx, %%esi;" 
-                             : "=a" (a_), "=S" (b_), "=c" (c_), "=d" (d_) : "a" (fxn));
-	   *a = a_;
-	   *b = b_;
-	   *c = c_;
-	   *d = d_;
-}
-#endif
-
-// -------------------------Runtime SSEx Detection-----------------------------
-
-/* MMX is always supported per
- *  Gecko v1.9.1 minimum CPU requirements */
-#define SSE1_EDX_MASK (1UL << 25)
-#define SSE2_EDX_MASK (1UL << 26)
-#define SSE3_ECX_MASK (1UL <<  0)
-
-static int sse_version_available(void)
-{
-#if defined(__x86_64__) || defined(__x86_64) || defined(_M_AMD64)
-	/* we know at build time that 64-bit CPUs always have SSE2
-	 * this tells the compiler that non-SSE2 branches will never be
-	 * taken (i.e. OK to optimze away the SSE1 and non-SIMD code */
-	return 2;
-#elif defined(HAS_CPUID)
-	static int sse_version = -1;
-	uint32_t a, b, c, d;
-	uint32_t function = 0x00000001;
-
-	if (sse_version == -1) {
-		sse_version = 0;
-		cpuid(function, &a, &b, &c, &d);
-		if (c & SSE3_ECX_MASK)
-			sse_version = 3;
-		else if (d & SSE2_EDX_MASK)
-			sse_version = 2;
-		else if (d & SSE1_EDX_MASK)
-			sse_version = 1;
-	}
-
-	return sse_version;
-#else
-	return 0;
-#endif
-}
-#endif
-
-static const struct matrix bradford_matrix = {{	{ 0.8951f, 0.2664f,-0.1614f},
-						{-0.7502f, 1.7135f, 0.0367f},
-						{ 0.0389f,-0.0685f, 1.0296f}}, 
-						false};
-
-static const struct matrix bradford_matrix_inv = {{ { 0.9869929f,-0.1470543f, 0.1599627f},
-						    { 0.4323053f, 0.5183603f, 0.0492912f},
-						    {-0.0085287f, 0.0400428f, 0.9684867f}}, 
-						    false};
-
-// See ICCv4 E.3
-struct matrix compute_whitepoint_adaption(float X, float Y, float Z) {
-	float p = (0.96422f*bradford_matrix.m[0][0] + 1.000f*bradford_matrix.m[1][0] + 0.82521f*bradford_matrix.m[2][0]) /
-		  (X*bradford_matrix.m[0][0]      + Y*bradford_matrix.m[1][0]      + Z*bradford_matrix.m[2][0]     );
-	float y = (0.96422f*bradford_matrix.m[0][1] + 1.000f*bradford_matrix.m[1][1] + 0.82521f*bradford_matrix.m[2][1]) /
-		  (X*bradford_matrix.m[0][1]      + Y*bradford_matrix.m[1][1]      + Z*bradford_matrix.m[2][1]     );
-	float b = (0.96422f*bradford_matrix.m[0][2] + 1.000f*bradford_matrix.m[1][2] + 0.82521f*bradford_matrix.m[2][2]) /
-		  (X*bradford_matrix.m[0][2]      + Y*bradford_matrix.m[1][2]      + Z*bradford_matrix.m[2][2]     );
-	struct matrix white_adaption = {{ {p,0,0}, {0,y,0}, {0,0,b}}, false};
-	return matrix_multiply( bradford_matrix_inv, matrix_multiply(white_adaption, bradford_matrix) );
-}
-
-void qcms_profile_precache_output_transform(qcms_profile *profile)
-{
-	/* we only support precaching on rgb profiles */
-	if (profile->color_space != RGB_SIGNATURE)
-		return;
-
-	if (qcms_supports_iccv4) {
-		/* don't precache since we will use the B2A LUT */
-		if (profile->B2A0)
-			return;
-
-		/* don't precache since we will use the mBA LUT */
-		if (profile->mBA)
-			return;
-	}
-
-	/* don't precache if we do not have the TRC curves */
-	if (!profile->redTRC || !profile->greenTRC || !profile->blueTRC)
-		return;
-
-	if (!profile->output_table_r) {
-		profile->output_table_r = precache_create();
-		if (profile->output_table_r &&
-				!compute_precache(profile->redTRC, profile->output_table_r->data)) {
-			precache_release(profile->output_table_r);
-			profile->output_table_r = NULL;
-		}
-	}
-	if (!profile->output_table_g) {
-		profile->output_table_g = precache_create();
-		if (profile->output_table_g &&
-				!compute_precache(profile->greenTRC, profile->output_table_g->data)) {
-			precache_release(profile->output_table_g);
-			profile->output_table_g = NULL;
-		}
-	}
-	if (!profile->output_table_b) {
-		profile->output_table_b = precache_create();
-		if (profile->output_table_b &&
-				!compute_precache(profile->blueTRC, profile->output_table_b->data)) {
-			precache_release(profile->output_table_b);
-			profile->output_table_b = NULL;
-		}
-	}
-}
-
-/* Replace the current transformation with a LUT transformation using a given number of sample points */
-qcms_transform* qcms_transform_precacheLUT_float(qcms_transform *transform, qcms_profile *in, qcms_profile *out, 
-                                                 int samples, qcms_data_type in_type)
-{
-	/* The range between which 2 consecutive sample points can be used to interpolate */
-	uint16_t x,y,z;
-	uint32_t l;
-	uint32_t lutSize = 3 * samples * samples * samples;
-	float* src = NULL;
-	float* dest = NULL;
-	float* lut = NULL;
-	float inverse;
-
-	src = malloc(lutSize*sizeof(float));
-	dest = malloc(lutSize*sizeof(float));
-
-	if (src && dest) {
-		/* Prepare a list of points we want to sample: x, y, z order */
-		l = 0;
-		inverse = 1 / (float)(samples-1);
-		for (x = 0; x < samples; x++) {
-			for (y = 0; y < samples; y++) {
-				for (z = 0; z < samples; z++) {
-					src[l++] = x * inverse; // r
-					src[l++] = y * inverse; // g
-					src[l++] = z * inverse; // b
-				}
-			}
-		}
-
-		lut = qcms_chain_transform(in, out, src, dest, lutSize);
-
-		if (lut) {
-			transform->r_clut = &lut[0]; // r
-			transform->g_clut = &lut[1]; // g
-			transform->b_clut = &lut[2]; // b
-			transform->grid_size = samples;
-
-			if (in_type == QCMS_DATA_RGBA_8) {
-#if defined(SSE2_ENABLE)
-				if (sse_version_available() >= 2) {
-					transform->transform_fn = qcms_transform_data_tetra_clut_rgba_sse2;
-				} else {
-					transform->transform_fn = qcms_transform_data_tetra_clut_rgba;
-				}
-#else
-				transform->transform_fn = qcms_transform_data_tetra_clut_rgba;
-#endif
-			} else {
-				transform->transform_fn = qcms_transform_data_tetra_clut;
-			}
-		}
-	}
-
-	// XXX: qcms_modular_transform_data may return the lut in either the src or the
-	// dest buffer. If so, it must not be free-ed.
-	if (src && lut != src) {
-		free(src);
-	}
-	if (dest && lut != dest) {
-		free(dest);
-	}
-
-	if (lut == NULL) {
-		return NULL;
-	}
-	return transform;
-}
-
-/* Create a transform LUT using the given number of sample points. The transform LUT data is stored
-   in the output (cube) in bgra format in zyx sample order. */
-qcms_bool qcms_transform_create_LUT_zyx_bgra(qcms_profile *in, qcms_profile *out, qcms_intent intent,
-                                             int samples, unsigned char* cube)
-{
-	uint16_t z,y,x;
-	uint32_t l,index;
-	uint32_t lutSize = 3 * samples * samples * samples;
-
-	float* src = NULL;
-	float* dest = NULL;
-	float* lut = NULL;
-	float inverse;
-
-	src = malloc(lutSize*sizeof(float));
-	dest = malloc(lutSize*sizeof(float));
-
-	if (src && dest) {
-		/* Prepare a list of points we want to sample: z, y, x order */
-		l = 0;
-		inverse = 1 / (float)(samples-1);
-		for (z = 0; z < samples; z++) {
-			for (y = 0; y < samples; y++) {
-				for (x = 0; x < samples; x++) {
-					src[l++] = x * inverse; // r
-					src[l++] = y * inverse; // g
-					src[l++] = z * inverse; // b
-				}
-			}
-		}
-
-		lut = qcms_chain_transform(in, out, src, dest, lutSize);
-
-		if (lut) {
-			index = l = 0;
-			for (z = 0; z < samples; z++) {
-				for (y = 0; y < samples; y++) {
-					for (x = 0; x < samples; x++) {
-						cube[index++] = (int)floorf(lut[l + 2] * 255.0f + 0.5f); // b
-						cube[index++] = (int)floorf(lut[l + 1] * 255.0f + 0.5f); // g
-						cube[index++] = (int)floorf(lut[l + 0] * 255.0f + 0.5f); // r
-						cube[index++] = 255;                                     // a
-						l += 3;
-					}
-				}
-			}
-		}
-	}
-
-	// XXX: qcms_modular_transform_data may return the lut data in either the src or
-	// dest buffer so free src, dest, and lut with care.
-
-	if (src && lut != src)
-		free(src);
-	if (dest && lut != dest)
-		free(dest);
-
-	if (lut) {
-		free(lut);
-		return true;
-	}
-
-	return false;
-}
-
-void qcms_transform_build_clut_cache(qcms_transform* transform) {
-	const int grid_factor = transform->grid_size - 1;
-	const float grid_scaled = (1.0f / 255.0f) * grid_factor;
-	int i;
-
-#define div_255_ceiling(value) (((value) + 254) / 255)
-
-	for (i = 0; i < 256; i++) {
-		transform->ceil_cache[i] = div_255_ceiling(i * grid_factor);
-		transform->floor_cache[i] = i * grid_factor / 255;
-		transform->r_cache[i] = (i * grid_scaled) - transform->floor_cache[i];
-	}
-
-#undef div_255_ceil
-
-	transform->transform_flags |= TRANSFORM_FLAG_CLUT_CACHE;
-}
-
-#define NO_MEM_TRANSFORM NULL
-
-qcms_transform* qcms_transform_create(
-		qcms_profile *in, qcms_data_type in_type,
-		qcms_profile *out, qcms_data_type out_type,
-		qcms_intent intent)
-{
-	qcms_transform *transform = NULL;
-	bool precache = false;
-	int i, j;
-
-	transform = transform_alloc();
-	if (!transform) {
-		return NULL;
-	}
-
-	if (out_type != QCMS_DATA_RGB_8 && out_type != QCMS_DATA_RGBA_8) {
-		ASSERT(0 && "output type");
-		qcms_transform_release(transform);
-		return NULL;
-	}
-
-	transform->transform_flags = 0;
-
-	if (out->output_table_r && out->output_table_g && out->output_table_b) {
-		precache = true;
-	}
-
-	if (qcms_supports_iccv4 && (in->A2B0 || out->B2A0 || in->mAB || out->mAB)) {
-		// Precache the transformation to a CLUT 33x33x33 in size.
-		// 33 is used by many profiles and works well in practice.
-		// This evenly divides 256 into blocks of 8x8x8.
-		// TODO For transforming small data sets of about 200x200 or less
-		// precaching should be avoided.
-		qcms_transform *result = qcms_transform_precacheLUT_float(transform, in, out, 33, in_type);
-		if (!result) {
-			ASSERT(0 && "precacheLUT failed");
-			qcms_transform_release(transform);
-			return NULL;
-		}
-		return result;
-	}
-
-	/* A matrix-based transform will be selected: check that the PCS
-	   of the input/output profiles are the same, crbug.com/5120682 */
-	if (in->pcs != out->pcs) {
-		qcms_transform_release(transform);
-		return NULL;
-	}
-
-	if (precache) {
-		transform->output_table_r = precache_reference(out->output_table_r);
-		transform->output_table_g = precache_reference(out->output_table_g);
-		transform->output_table_b = precache_reference(out->output_table_b);
-	} else {
-		if (!out->redTRC || !out->greenTRC || !out->blueTRC) {
-			qcms_transform_release(transform);
-			return NO_MEM_TRANSFORM;
-		}
-
-		build_output_lut(out->redTRC, &transform->output_gamma_lut_r, &transform->output_gamma_lut_r_length);
-		build_output_lut(out->greenTRC, &transform->output_gamma_lut_g, &transform->output_gamma_lut_g_length);
-		build_output_lut(out->blueTRC, &transform->output_gamma_lut_b, &transform->output_gamma_lut_b_length);
-
-		if (!transform->output_gamma_lut_r || !transform->output_gamma_lut_g || !transform->output_gamma_lut_b) {
-			qcms_transform_release(transform);
-			return NO_MEM_TRANSFORM;
-		}
-	}
-
-	if (in->color_space == RGB_SIGNATURE) {
-		struct matrix in_matrix, out_matrix, result;
-
-		if (in_type != QCMS_DATA_RGB_8 && in_type != QCMS_DATA_RGBA_8) {
-			ASSERT(0 && "input type");
-			qcms_transform_release(transform);
-			return NULL;
-		}
-
-		if (precache) {
-#if defined(SSE2_ENABLE)
-			if (sse_version_available() >= 2) {
-				if (in_type == QCMS_DATA_RGB_8)
-					transform->transform_fn = qcms_transform_data_rgb_out_lut_sse2;
-				else
-					transform->transform_fn = qcms_transform_data_rgba_out_lut_sse2;
-			} else
-#endif
-			{
-				if (in_type == QCMS_DATA_RGB_8)
-					transform->transform_fn = qcms_transform_data_rgb_out_lut_precache;
-				else
-					transform->transform_fn = qcms_transform_data_rgba_out_lut_precache;
-			}
-		} else {
-			if (in_type == QCMS_DATA_RGB_8)
-				transform->transform_fn = qcms_transform_data_rgb_out_lut;
-			else
-				transform->transform_fn = qcms_transform_data_rgba_out_lut;
-		}
-
-		//XXX: avoid duplicating tables if we can
-		transform->input_gamma_table_r = build_input_gamma_table(in->redTRC);
-		transform->input_gamma_table_g = build_input_gamma_table(in->greenTRC);
-		transform->input_gamma_table_b = build_input_gamma_table(in->blueTRC);
-
-		if (!transform->input_gamma_table_r || !transform->input_gamma_table_g || !transform->input_gamma_table_b) {
-			qcms_transform_release(transform);
-			return NO_MEM_TRANSFORM;
-		}
-
-		/* build combined colorant matrix */
-		in_matrix = build_colorant_matrix(in);
-		out_matrix = build_colorant_matrix(out);
-		out_matrix = matrix_invert(out_matrix);
-		if (out_matrix.invalid) {
-			qcms_transform_release(transform);
-			return NULL;
-		}
-		result = matrix_multiply(out_matrix, in_matrix);
-
-		/* check for NaN values in the matrix and bail if we find any
-		   see also https://bugzilla.mozilla.org/show_bug.cgi?id=1170316 */
-		for (i = 0 ; i < 3 ; ++i) {
-			for (j = 0 ; j < 3 ; ++j) {
-				if (result.m[i][j] != result.m[i][j]) {
-					qcms_transform_release(transform);
-					return NULL;
-				}
-			}
-		}
-
-		/* store the results in column major mode
-		 * this makes doing the multiplication with sse easier */
-		transform->matrix[0][0] = result.m[0][0];
-		transform->matrix[1][0] = result.m[0][1];
-		transform->matrix[2][0] = result.m[0][2];
-		transform->matrix[0][1] = result.m[1][0];
-		transform->matrix[1][1] = result.m[1][1];
-		transform->matrix[2][1] = result.m[1][2];
-		transform->matrix[0][2] = result.m[2][0];
-		transform->matrix[1][2] = result.m[2][1];
-		transform->matrix[2][2] = result.m[2][2];
-
-		/* Flag transform as matrix. */
-		transform->transform_flags |= TRANSFORM_FLAG_MATRIX;
-
-	} else if (in->color_space == GRAY_SIGNATURE) {
-		if (in_type != QCMS_DATA_GRAY_8 && in_type != QCMS_DATA_GRAYA_8) {
-			ASSERT(0 && "input type");
-			qcms_transform_release(transform);
-			return NULL;
-		}
-
-		transform->input_gamma_table_gray = build_input_gamma_table(in->grayTRC);
-
-		if (!transform->input_gamma_table_gray) {
-			qcms_transform_release(transform);
-			return NO_MEM_TRANSFORM;
-		}
-
-		if (precache) {
-			if (in_type == QCMS_DATA_GRAY_8) {
-				transform->transform_fn = qcms_transform_data_gray_out_precache;
-			} else {
-				transform->transform_fn = qcms_transform_data_graya_out_precache;
-			}
-		} else {
-			if (in_type == QCMS_DATA_GRAY_8) {
-				transform->transform_fn = qcms_transform_data_gray_out_lut;
-			} else {
-				transform->transform_fn = qcms_transform_data_graya_out_lut;
-			}
-		}
-	} else {
-		ASSERT(0 && "unexpected colorspace");
-		qcms_transform_release(transform);
-		return NULL;
-	}
-
-	return transform;
-}
-
-/* __force_align_arg_pointer__ is an x86-only attribute, and gcc/clang warns on unused
- * attributes. Don't use this on ARM or AMD64. __has_attribute can detect the presence
- * of the attribute but is currently only supported by clang */
-#if defined(__has_attribute)
-#define HAS_FORCE_ALIGN_ARG_POINTER __has_attribute(__force_align_arg_pointer__)
-#elif defined(__GNUC__) && defined(__i386__)
-#define HAS_FORCE_ALIGN_ARG_POINTER 1
-#else
-#define HAS_FORCE_ALIGN_ARG_POINTER 0
-#endif
-
-#if HAS_FORCE_ALIGN_ARG_POINTER
-/* we need this to avoid crashes when gcc assumes the stack is 128bit aligned */
-__attribute__((__force_align_arg_pointer__))
-#endif
-void qcms_transform_data(qcms_transform *transform, void *src, void *dest, size_t length)
-{
-	static const struct _qcms_format_type output_rgbx = { 0, 2 };
-
-	transform->transform_fn(transform, src, dest, length, output_rgbx);
-}
-
-void qcms_transform_data_type(qcms_transform *transform, void *src, void *dest, size_t length, qcms_output_type type)
-{
-	static const struct _qcms_format_type output_rgbx = { 0, 2 };
-	static const struct _qcms_format_type output_bgrx = { 2, 0 };
-
-	transform->transform_fn(transform, src, dest, length, type == QCMS_OUTPUT_BGRX ? output_bgrx : output_rgbx);
-}
-
-#define ENABLE_ICC_V4_PROFILE_SUPPORT false
-
-qcms_bool qcms_supports_iccv4 = ENABLE_ICC_V4_PROFILE_SUPPORT;
-
-void qcms_enable_iccv4()
-{
-	qcms_supports_iccv4 = true;
-}
-
-static inline qcms_bool transform_is_matrix(qcms_transform *t)
-{
-	return (t->transform_flags & TRANSFORM_FLAG_MATRIX) ? true : false;
-}
-
-qcms_bool qcms_transform_is_matrix(qcms_transform *t)
-{
-	return transform_is_matrix(t);
-}
-
-float qcms_transform_get_matrix(qcms_transform *t, unsigned i, unsigned j)
-{
-	assert(transform_is_matrix(t) && i < 3 && j < 3);
-
-	// Return transform matrix element in row major order (permute i and j)
-
-	return t->matrix[j][i];
-}
-
-static inline qcms_bool supported_trc_type(qcms_trc_type type)
-{
-	return (type == QCMS_TRC_HALF_FLOAT || type == QCMS_TRC_USHORT);
-}
-
-const uint16_t half_float_one = 0x3c00;
-
-size_t qcms_transform_get_input_trc_rgba(qcms_transform *t, qcms_profile *in, qcms_trc_type type, unsigned short *data)
-{
-	const size_t size = 256; // The input gamma tables always have 256 entries.
-
-	size_t i;
-
-	if (in->color_space != RGB_SIGNATURE || !supported_trc_type(type))
-		return 0;
-
-	// qcms_profile *in is assumed to be the profile on the input-side of the color transform t.
-	// When a transform is created, the input gamma curve data is stored in the transform ...
-
-	if (!t->input_gamma_table_r || !t->input_gamma_table_g || !t->input_gamma_table_b)
-		return 0;
-
-	// Report the size if no output data is requested. This allows callers to first work out the
-	// the curve size, then provide allocated memory sufficient to store the curve rgba data.
-
-	if (!data)
-		return size;
-
-	switch(type) {
-		case QCMS_TRC_HALF_FLOAT:
-			for (i = 0; i < size; ++i) {
-				*data++ = float_to_half_float(t->input_gamma_table_r[i]); // r
-				*data++ = float_to_half_float(t->input_gamma_table_g[i]); // g
-				*data++ = float_to_half_float(t->input_gamma_table_b[i]); // b
-				*data++ = half_float_one;                                 // a
-			}
-			break;
-		case QCMS_TRC_USHORT:
-			for (i = 0; i < size; ++i) {
-				*data++ = roundf(t->input_gamma_table_r[i] * 65535.0); // r
-				*data++ = roundf(t->input_gamma_table_g[i] * 65535.0); // g
-				*data++ = roundf(t->input_gamma_table_b[i] * 65535.0); // b
-				*data++ = 65535;                                       // a
-			}
-			break;
-		default:
-			/* should not be reached */
-			ASSERT(0);
-	}
-
-	return size;
-}
-
-const float inverse65535 = (float) (1.0 / 65535.0);
-
-size_t qcms_transform_get_output_trc_rgba(qcms_transform *t, qcms_profile *out, qcms_trc_type type, unsigned short *data)
-{
-	size_t size, i;
-
-	if (out->color_space != RGB_SIGNATURE || !supported_trc_type(type))
-		return 0;
-
-	// qcms_profile *out is assumed to be the profile on the output-side of the transform t.
-	// If the transform output gamma curves need building, do that. They're usually built when
-	// the transform was created, but sometimes not due to the output gamma precache ...
-
-	if (!out->redTRC || !out->greenTRC || !out->blueTRC)
-		return 0;
-	if (!t->output_gamma_lut_r)
-		build_output_lut(out->redTRC, &t->output_gamma_lut_r, &t->output_gamma_lut_r_length);
-	if (!t->output_gamma_lut_g)
-		build_output_lut(out->greenTRC, &t->output_gamma_lut_g, &t->output_gamma_lut_g_length);
-	if (!t->output_gamma_lut_b)
-		build_output_lut(out->blueTRC, &t->output_gamma_lut_b, &t->output_gamma_lut_b_length);
-
-	if (!t->output_gamma_lut_r || !t->output_gamma_lut_g || !t->output_gamma_lut_b)
-		return 0;
-
-	// Output gamma tables should have the same size and should have 4096 entries at most (the
-	// minimum is 256). Larger tables are rare and ignored here: fail by returning 0.
-
-	size = t->output_gamma_lut_r_length;
-	if (size != t->output_gamma_lut_g_length)
-		return 0;
-	if (size != t->output_gamma_lut_b_length)
-		return 0;
-	if (size < 256 || size > 4096)
-		return 0;
-
-	// Report the size if no output data is requested. This allows callers to first work out the
-	// the curve size, then provide allocated memory sufficient to store the curve rgba data.
-
-	if (!data)
-		return size;
-
-	switch (type) {
-		case QCMS_TRC_HALF_FLOAT:
-			for (i = 0; i < size; ++i) {
-				*data++ = float_to_half_float(t->output_gamma_lut_r[i] * inverse65535); // r
-				*data++ = float_to_half_float(t->output_gamma_lut_g[i] * inverse65535); // g
-				*data++ = float_to_half_float(t->output_gamma_lut_b[i] * inverse65535); // b
-				*data++ = half_float_one;                                               // a
-			}
-			break;
-		case QCMS_TRC_USHORT:
-			for (i = 0; i < size; ++i) {
-				*data++ = t->output_gamma_lut_r[i]; // r
-				*data++ = t->output_gamma_lut_g[i]; // g
-				*data++ = t->output_gamma_lut_b[i]; // b
-				*data++ = 65535;                    // a
-			}
-			break;
-		default:
-			/* should not be reached */
-			ASSERT(0);
-	}
-
-	return size;
-}
diff --git a/third_party/qcms/src/transform_util.c b/third_party/qcms/src/transform_util.c
deleted file mode 100644
index 56125ad..0000000
--- a/third_party/qcms/src/transform_util.c
+++ /dev/null
@@ -1,680 +0,0 @@
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the Software
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#define _ISOC99_SOURCE  /* for INFINITY */
-
-#include <math.h>
-#include <assert.h>
-#include <string.h> //memcpy
-#include "qcmsint.h"
-#include "transform_util.h"
-#include "matrix.h"
-
-#if !defined(INFINITY)
-#define INFINITY HUGE_VAL
-#endif
-
-#ifdef USE_LIBFUZZER
-#define ASSERT(x)
-#else
-#define ASSERT(x) assert(x)
-#endif
-
-#define PARAMETRIC_CURVE_TYPE 0x70617261 //'para'
-
-/* value must be a value between 0 and 1 */
-//XXX: is the above a good restriction to have?
-// the output range of this function is 0..1
-float lut_interp_linear(double input_value, uint16_t *table, size_t length)
-{
-	int upper, lower;
-	float value;
-	input_value = input_value * (length - 1); // scale to length of the array
-	upper = ceil(input_value);
-	lower = floor(input_value);
-	//XXX: can we be more performant here?
-	value = table[upper]*(1. - (upper - input_value)) + table[lower]*(upper - input_value);
-	/* scale the value */
-	return value * (1.f/65535.f);
-}
-
-/* same as above but takes and returns a uint16_t value representing a range from 0..1 */
-uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t length)
-{
-	/* Start scaling input_value to the length of the array: 65535*(length-1).
-	 * We'll divide out the 65535 next */
-	uintptr_t value = (input_value * (length - 1));
-	uint32_t upper = (value + 65534) / 65535; /* equivalent to ceil(value/65535) */
-	uint32_t lower = value / 65535;           /* equivalent to floor(value/65535) */
-	/* interp is the distance from upper to value scaled to 0..65535 */
-	uint32_t interp = value % 65535;
-
-	value = (table[upper]*(interp) + table[lower]*(65535 - interp))/65535; // 0..65535*65535
-
-	return value;
-}
-
-/* same as above but takes an input_value from 0..PRECACHE_OUTPUT_MAX
- * and returns a uint8_t value representing a range from 0..1 */
-static
-uint8_t lut_interp_linear_precache_output(uint32_t input_value, uint16_t *table, size_t length)
-{
-	/* Start scaling input_value to the length of the array: PRECACHE_OUTPUT_MAX*(length-1).
-	 * We'll divide out the PRECACHE_OUTPUT_MAX next */
-	uintptr_t value = (input_value * (length - 1));
-
-	/* equivalent to ceil(value/PRECACHE_OUTPUT_MAX) */
-	uint32_t upper = (value + PRECACHE_OUTPUT_MAX-1) / PRECACHE_OUTPUT_MAX;
-	/* equivalent to floor(value/PRECACHE_OUTPUT_MAX) */
-	uint32_t lower = value / PRECACHE_OUTPUT_MAX;
-	/* interp is the distance from upper to value scaled to 0..PRECACHE_OUTPUT_MAX */
-	uint32_t interp = value % PRECACHE_OUTPUT_MAX;
-
-	/* the table values range from 0..65535 */
-	value = (table[upper]*(interp) + table[lower]*(PRECACHE_OUTPUT_MAX - interp)); // 0..(65535*PRECACHE_OUTPUT_MAX)
-
-	/* round and scale */
-	value += (PRECACHE_OUTPUT_MAX*65535/255)/2;
-        value /= (PRECACHE_OUTPUT_MAX*65535/255); // scale to 0..255
-	return value;
-}
-
-/* value must be a value between 0 and 1 */
-//XXX: is the above a good restriction to have?
-float lut_interp_linear_float(float value, float *table, size_t length)
-{
-        int upper, lower;
-        value = value * (length - 1);
-        upper = ceil(value);
-        lower = floor(value);
-        //XXX: can we be more performant here?
-        value = table[upper]*(1. - (upper - value)) + table[lower]*(upper - value);
-        /* scale the value */
-        return value;
-}
-
-#if 0
-/* if we use a different representation i.e. one that goes from 0 to 0x1000 we can be more efficient
- * because we can avoid the divisions and use a shifting instead */
-/* same as above but takes and returns a uint16_t value representing a range from 0..1 */
-uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length)
-{
-	uint32_t value = (input_value * (length - 1));
-	uint32_t upper = (value + 4095) / 4096; /* equivalent to ceil(value/4096) */
-	uint32_t lower = value / 4096;           /* equivalent to floor(value/4096) */
-	uint32_t interp = value % 4096;
-
-	value = (table[upper]*(interp) + table[lower]*(4096 - interp))/4096; // 0..4096*4096
-
-	return value;
-}
-#endif
-
-void compute_curve_gamma_table_type1(float gamma_table[256], uint16_t gamma)
-{
-	unsigned int i;
-	float gamma_float = u8Fixed8Number_to_float(gamma);
-	for (i = 0; i < 256; i++) {
-		// 0..1^(0..255 + 255/256) will always be between 0 and 1
-		gamma_table[i] = pow(i/255., gamma_float);
-	}
-}
-
-void compute_curve_gamma_table_type2(float gamma_table[256], uint16_t *table, size_t length)
-{
-	unsigned int i;
-	for (i = 0; i < 256; i++) {
-		gamma_table[i] = lut_interp_linear(i/255., table, length);
-	}
-}
-
-void compute_curve_gamma_table_type_parametric(float gamma_table[256], float parameter[7], int count)
-{
-        size_t X;
-        float interval;
-        float a, b, c, e, f;
-        float y = parameter[0];
-        if (count == 0) {
-                a = 1;
-                b = 0;
-                c = 0;
-                e = 0;
-                f = 0;
-                interval = -INFINITY;
-        } else if(count == 1) {
-                a = parameter[1];
-                b = parameter[2];
-                c = 0;
-                e = 0;
-                f = 0;
-                interval = -1 * parameter[2] / parameter[1];
-        } else if(count == 2) {
-                a = parameter[1];
-                b = parameter[2];
-                c = 0;
-                e = parameter[3];
-                f = parameter[3];
-                interval = -1 * parameter[2] / parameter[1];
-        } else if(count == 3) {
-                a = parameter[1];
-                b = parameter[2];
-                c = parameter[3];
-                e = -c;
-                f = 0;
-                interval = parameter[4];
-        } else if(count == 4) {
-                a = parameter[1];
-                b = parameter[2];
-                c = parameter[3];
-                e = parameter[5] - c;
-                f = parameter[6];
-                interval = parameter[4];
-        } else {
-                ASSERT(0 && "invalid parametric function type.");
-                a = 1;
-                b = 0;
-                c = 0;
-                e = 0;
-                f = 0;
-                interval = -INFINITY;
-        }       
-        for (X = 0; X < 256; X++) {
-                float x = X / 255.0;
-                if (x >= interval) {
-                        // XXX The equations are not exactly as definied in the spec but are
-                        //     algebraic equivilent.
-                        // TODO Should division by 255 be for the whole expression.
-                        gamma_table[X] = clamp_float(powf(a * x + b, y) + (c + e));
-                } else {
-                        gamma_table[X] = clamp_float(c * x + f);
-                }
-        }
-}
-
-void compute_curve_gamma_table_type0(float gamma_table[256])
-{
-	unsigned int i;
-	for (i = 0; i < 256; i++) {
-		gamma_table[i] = i/255.;
-	}
-}
-
-float clamp_float(float a)
-{
-	/* One would naturally write this function as the following:
-	if (a > 1.)
-		return 1.;
-	else if (a < 0)
-		return 0;
-	else
-		return a;
-
-	However, that version will let NaNs pass through which is undesirable
-	for most consumers.
-	*/
-
-	if (a > 1.)
-		return 1.;
-	else if (a >= 0)
-		return a;
-	else // a < 0 or a is NaN
-		return 0;
-}
-
-unsigned char clamp_u8(float v)
-{
-	if (v > 255.)
-		return 255;
-	else if (v < 0)
-		return 0;
-	else
-		return floor(v+.5);
-}
-
-float u8Fixed8Number_to_float(uint16_t x)
-{
-	// 0x0000 = 0.
-	// 0x0100 = 1.
-	// 0xffff = 255  + 255/256
-	return x/256.;
-}
-
-/* The SSE2 code uses min & max which let NaNs pass through.
-   We want to try to prevent that here by ensuring that
-   gamma table is within expected values. */
-void validate_gamma_table(float gamma_table[256])
-{
-	int i;
-	for (i = 0; i < 256; i++) {
-		// Note: we check that the gamma is not in range
-		// instead of out of range so that we catch NaNs
-		if (!(gamma_table[i] >= 0.f && gamma_table[i] <= 1.f)) {
-			gamma_table[i] = 0.f;
-		}
-	}
-}
-
-float *build_input_gamma_table(struct curveType *TRC)
-{
-	float *gamma_table;
-
-	if (!TRC) return NULL;
-	gamma_table = malloc(sizeof(float)*256);
-	if (gamma_table) {
-		if (TRC->type == PARAMETRIC_CURVE_TYPE) {
-			compute_curve_gamma_table_type_parametric(gamma_table, TRC->parameter, TRC->count);
-		} else {
-			if (TRC->count == 0) {
-				compute_curve_gamma_table_type0(gamma_table);
-			} else if (TRC->count == 1) {
-				compute_curve_gamma_table_type1(gamma_table, TRC->data[0]);
-			} else {
-				compute_curve_gamma_table_type2(gamma_table, TRC->data, TRC->count);
-			}
-		}
-	}
-
-	validate_gamma_table(gamma_table);
-
-	return gamma_table;
-}
-
-struct matrix build_colorant_matrix(qcms_profile *p)
-{
-	struct matrix result;
-	result.m[0][0] = s15Fixed16Number_to_float(p->redColorant.X);
-	result.m[0][1] = s15Fixed16Number_to_float(p->greenColorant.X);
-	result.m[0][2] = s15Fixed16Number_to_float(p->blueColorant.X);
-	result.m[1][0] = s15Fixed16Number_to_float(p->redColorant.Y);
-	result.m[1][1] = s15Fixed16Number_to_float(p->greenColorant.Y);
-	result.m[1][2] = s15Fixed16Number_to_float(p->blueColorant.Y);
-	result.m[2][0] = s15Fixed16Number_to_float(p->redColorant.Z);
-	result.m[2][1] = s15Fixed16Number_to_float(p->greenColorant.Z);
-	result.m[2][2] = s15Fixed16Number_to_float(p->blueColorant.Z);
-	result.invalid = false;
-	return result;
-}
-
-/* The following code is copied nearly directly from lcms.
- * I think it could be much better. For example, Argyll seems to have better code in
- * icmTable_lookup_bwd and icmTable_setup_bwd. However, for now this is a quick way
- * to a working solution and allows for easy comparing with lcms. */
-uint16_fract_t lut_inverse_interp16(uint16_t Value, uint16_t LutTable[], int length, int NumZeroes, int NumPoles)
-{
-        int l = 1;
-        int r = 0x10000;
-        int x = 0, res;       // 'int' Give spacing for negative values
-        int cell0, cell1;
-        double val2;
-        double y0, y1, x0, x1;
-        double a, b, f;
-
-        // July/27 2001 - Expanded to handle degenerated curves with an arbitrary
-        // number of elements containing 0 at the beginning of the table (Zeroes)
-        // and another arbitrary number of poles (FFFFh) at the end.
-
-        // There are no zeros at the beginning and we are trying to find a zero, so
-        // return anything. It seems zero would be the less destructive choice
-	/* I'm not sure that this makes sense, but oh well... */
-        if (NumZeroes == 0 && Value == 0)
-            return 0;
-
-        // Does the curve belong to this case?
-        if (NumZeroes > 1 || NumPoles > 1)
-        {
-                float a, b;
-                int sample;
-
-                // Identify if value fall downto 0 or FFFF zone
-                if (Value == 0) return 0;
-                // if (Value == 0xFFFF) return 0xFFFF;
-                sample = (length-1) * ((double) Value * (1./65535.));
-                if (LutTable[sample] == 0xffff)
-                    return 0xffff;
-
-                // else restrict to valid zone
-
-                a = ((NumZeroes-1) * 65535.f) / (length-1);
-                b = ((length-1 - NumPoles) * 65535.f) / (length-1);
-
-                l = ((int)a) - 1;
-                r = ((int)b) + 1;
-
-                // Ensure a valid binary search range
-
-                if (l < 1)
-                    l = 1;
-                if (r > 0x10000)
-                    r = 0x10000;
-
-                // If the search range is inverted due to degeneracy,
-                // deem LutTable non-invertible in this search range.
-                // Refer to https://bugzil.la/1132467
-
-                if (r <= l)
-                    return 0;
-        }
-
-        // For input 0, return that to maintain black level. Note the binary search
-        // does not. For example, it inverts the standard sRGB gamma curve to 7 at
-        // the origin, causing a black level error.
-
-        if (Value == 0 && NumZeroes) {
-            return 0;
-        }
-
-        // Seems not a degenerated case... apply binary search
-
-        while (r > l) {
-
-                x = (l + r) / 2;
-
-                res = (int) lut_interp_linear16((uint16_fract_t) (x-1), LutTable, length);
-
-                if (res == Value) {
-
-                    // Found exact match.
-
-                    return (uint16_fract_t) (x - 1);
-                }
-
-                if (res > Value) r = x - 1;
-                else l = x + 1;
-        }
-
-        // Not found, should we interpolate?
-
-        // Get surrounding nodes
-
-        assert(x >= 1);
-
-        val2 = (length-1) * ((double) (x - 1) / 65535.0);
-
-        cell0 = (int) floor(val2);
-        cell1 = (int) ceil(val2);
-
-        assert(cell0 >= 0);
-        assert(cell1 >= 0);
-        assert(cell0 < length);
-        assert(cell1 < length);
-
-        if (cell0 == cell1) return (uint16_fract_t) x;
-
-        y0 = LutTable[cell0] ;
-        x0 = (65535.0 * cell0) / (length-1); 
-
-        y1 = LutTable[cell1] ;
-        x1 = (65535.0 * cell1) / (length-1);
-
-        a = (y1 - y0) / (x1 - x0);
-        b = y0 - a * x0;
-
-        if (fabs(a) < 0.01) return (uint16_fract_t) x;
-
-        f = ((Value - b) / a);
-
-        if (f < 0.0) return (uint16_fract_t) 0;
-        if (f >= 65535.0) return (uint16_fract_t) 0xFFFF;
-
-        return (uint16_fract_t) floor(f + 0.5);
-}
-
-// December/16 2015 - Moved this code out of lut_inverse_interp16
-// in order to save computation in invert_lut loop.
-static void count_zeroes_and_poles(uint16_t *LutTable, int length, int *NumZeroes, int *NumPoles)
-{
-    int z = 0, p = 0;
-
-    while (LutTable[z] == 0 && z < length - 1)
-    	z++;
-    *NumZeroes = z;
-
-    while (LutTable[length - 1 - p] == 0xFFFF && p < length - 1)
-    	p++;
-    *NumPoles = p;
-}
-
-/*
- The number of entries needed to invert a lookup table should not
- necessarily be the same as the original number of entries.  This is
- especially true of lookup tables that have a small number of entries.
-
- For example:
- Using a table like:
-    {0, 3104, 14263, 34802, 65535}
- invert_lut will produce an inverse of:
-    {3, 34459, 47529, 56801, 65535}
- which has an maximum error of about 9855 (pixel difference of ~38.346)
-
- For now, we punt the decision of output size to the caller. */
-static uint16_t *invert_lut(uint16_t *table, int length, size_t out_length)
-{
-        int NumZeroes;
-        int NumPoles;
-        int i;
-        /* for now we invert the lut by creating a lut of size out_length
-         * and attempting to lookup a value for each entry using lut_inverse_interp16 */
-        uint16_t *output = malloc(sizeof(uint16_t)*out_length);
-        if (!output)
-                return NULL;
-
-        // December/16 2015 - Compute the input curve zero and pole extents outside
-        // the loop and pass them to lut_inverse_interp16.
-        count_zeroes_and_poles(table, length, &NumZeroes, &NumPoles);
-
-        for (i = 0; i < out_length; i++) {
-                double x = ((double) i * 65535.) / (double) (out_length - 1);
-                uint16_fract_t input = floor(x + .5);
-                output[i] = lut_inverse_interp16(input, table, length, NumZeroes, NumPoles);
-        }
-
-        return output;
-}
-
-static void compute_precache_pow(uint8_t *output, float gamma)
-{
-	uint32_t v = 0;
-	for (v = 0; v < PRECACHE_OUTPUT_SIZE; v++) {
-		//XXX: don't do integer/float conversion... and round?
-		output[v] = 255. * pow(v/(double)PRECACHE_OUTPUT_MAX, gamma);
-	}
-}
-
-void compute_precache_lut(uint8_t *output, uint16_t *table, int length)
-{
-	uint32_t v = 0;
-	for (v = 0; v < PRECACHE_OUTPUT_SIZE; v++) {
-		output[v] = lut_interp_linear_precache_output(v, table, length);
-	}
-}
-
-void compute_precache_linear(uint8_t *output)
-{
-	uint32_t v = 0;
-	for (v = 0; v < PRECACHE_OUTPUT_SIZE; v++) {
-		//XXX: round?
-		output[v] = v / (PRECACHE_OUTPUT_SIZE/256);
-	}
-}
-
-qcms_bool compute_precache(struct curveType *trc, uint8_t *output)
-{
-        
-        if (trc->type == PARAMETRIC_CURVE_TYPE) {
-                        float gamma_table[256];
-                        uint16_t gamma_table_uint[256];
-                        uint16_t i;
-                        uint16_t *inverted;
-                        int inverted_size = 256;
-
-                        compute_curve_gamma_table_type_parametric(gamma_table, trc->parameter, trc->count);
-                        for(i = 0; i < 256; i++) {
-                                gamma_table_uint[i] = (uint16_t)(gamma_table[i] * 65535);
-                        }
-
-                        //XXX: the choice of a minimum of 256 here is not backed by any theory, 
-                        //     measurement or data, howeve r it is what lcms uses.
-                        //     the maximum number we would need is 65535 because that's the 
-                        //     accuracy used for computing the pre cache table
-                        if (inverted_size < 256)
-                                inverted_size = 256;
-
-                        inverted = invert_lut(gamma_table_uint, 256, inverted_size);
-                        if (!inverted)
-                                return false;
-                        compute_precache_lut(output, inverted, inverted_size);
-                        free(inverted);
-        } else {
-                if (trc->count == 0) {
-                        compute_precache_linear(output);
-                } else if (trc->count == 1) {
-                        compute_precache_pow(output, 1./u8Fixed8Number_to_float(trc->data[0]));
-                } else {
-                        uint16_t *inverted;
-                        int inverted_size = trc->count;
-                        //XXX: the choice of a minimum of 256 here is not backed by any theory, 
-                        //     measurement or data, howeve r it is what lcms uses.
-                        //     the maximum number we would need is 65535 because that's the 
-                        //     accuracy used for computing the pre cache table
-                        if (inverted_size < 256)
-                                inverted_size = 256;
-
-                        inverted = invert_lut(trc->data, trc->count, inverted_size);
-                        if (!inverted)
-                                return false;
-                        compute_precache_lut(output, inverted, inverted_size);
-                        free(inverted);
-                }
-        }
-        return true;
-}
-
-
-static uint16_t *build_linear_table(int length)
-{
-        int i;
-        uint16_t *output = malloc(sizeof(uint16_t)*length);
-        if (!output)
-                return NULL;
-
-        for (i = 0; i < length; i++) {
-                double x = ((double) i * 65535.) / (double) (length - 1);
-                uint16_fract_t input = floor(x + .5);
-                output[i] = input;
-        }
-        return output;
-}
-
-static uint16_t *build_pow_table(float gamma, int length)
-{
-        int i;
-        uint16_t *output = malloc(sizeof(uint16_t)*length);
-        if (!output)
-                return NULL;
-
-        for (i = 0; i < length; i++) {
-                uint16_fract_t result;
-                double x = ((double) i) / (double) (length - 1);
-                x = pow(x, gamma);                //XXX turn this conversion into a function
-                result = floor(x*65535. + .5);
-                output[i] = result;
-        }
-        return output;
-}
-
-void build_output_lut(struct curveType *trc,
-                uint16_t **output_gamma_lut, size_t *output_gamma_lut_length)
-{
-        if (trc->type == PARAMETRIC_CURVE_TYPE) {
-                float gamma_table[256];
-                uint16_t gamma_table_uint[256];
-                uint16_t i;
-                uint16_t *inverted;
-                int inverted_size = 4096;
-
-                compute_curve_gamma_table_type_parametric(gamma_table, trc->parameter, trc->count);
-                for(i = 0; i < 256; i++) {
-                        gamma_table_uint[i] = (uint16_t)(gamma_table[i] * 65535);
-                }
-
-                //XXX: the choice of a minimum of 256 here is not backed by any theory,
-                //     measurement or data, however it is what lcms uses.
-                //     the maximum number we would need is 65535 because that's the
-                //     accuracy used for computing the pre cache table
-                inverted = invert_lut(gamma_table_uint, 256, inverted_size);
-                if (!inverted)
-                        return;
-                *output_gamma_lut = inverted;
-                *output_gamma_lut_length = inverted_size;
-        } else {
-                if (trc->count == 0) {
-                        *output_gamma_lut = build_linear_table(4096);
-                        *output_gamma_lut_length = 4096;
-                } else if (trc->count == 1) {
-                        float gamma = 1./u8Fixed8Number_to_float(trc->data[0]);
-                        *output_gamma_lut = build_pow_table(gamma, 4096);
-                        *output_gamma_lut_length = 4096;
-                } else {
-                        //XXX: the choice of a minimum of 256 here is not backed by any theory, 
-                        //     measurement or data, however it is what lcms uses.
-                        *output_gamma_lut_length = trc->count;
-                        if (*output_gamma_lut_length < 256)
-                                *output_gamma_lut_length = 256;
-
-                        *output_gamma_lut = invert_lut(trc->data, trc->count, *output_gamma_lut_length);
-                }
-        }
-
-}
-
-size_t qcms_profile_get_parametric_curve(qcms_profile *profile, qcms_trc_channel channel, float data[7])
-{
-    static const uint32_t COUNT_TO_LENGTH[5] = {1, 3, 4, 5, 7};
-    struct curveType *curve = NULL;
-    size_t size;
-
-    if (profile->color_space != RGB_SIGNATURE)
-        return 0;
-
-    switch(channel) {
-    case QCMS_TRC_RED:
-        curve = profile->redTRC;
-        break;
-    case QCMS_TRC_GREEN:
-        curve = profile->greenTRC;
-        break;
-    case QCMS_TRC_BLUE:
-        curve = profile->blueTRC;
-        break;
-    default:
-        return 0;
-    }
-
-    if (!curve || curve->type != PARAMETRIC_CURVE_TYPE)
-        return 0;
-
-    size = COUNT_TO_LENGTH[curve->count];
-
-    if (data)
-        memcpy(data, curve->parameter, size * sizeof(float));
-
-    return size;
-}
diff --git a/third_party/qcms/src/transform_util.h b/third_party/qcms/src/transform_util.h
deleted file mode 100644
index f83477a..0000000
--- a/third_party/qcms/src/transform_util.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* vim: set ts=8 sw=8 noexpandtab: */
-//  qcms
-//  Copyright (C) 2009 Mozilla Foundation
-//  Copyright (C) 1998-2007 Marti Maria
-//
-// Permission is hereby granted, free of charge, to any person obtaining 
-// a copy of this software and associated documentation files (the "Software"), 
-// to deal in the Software without restriction, including without limitation 
-// the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-// and/or sell copies of the Software, and to permit persons to whom the Software 
-// is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in 
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
-// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-#ifndef _QCMS_TRANSFORM_UTIL_H
-#define _QCMS_TRANSFORM_UTIL_H
-
-#include <stdlib.h>
-
-#define CLU(table,x,y,z) table[(x*len + y*x_len + z*xy_len)*3]
-
-//XXX: could use a bettername
-typedef uint16_t uint16_fract_t;
-
-float lut_interp_linear(double input_value, uint16_t *table, size_t length);
-float lut_interp_linear_float(float input_value, float *table, size_t length);
-uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t length);
-
-
-static inline float lerp(float a, float b, float t)
-{
-	return a*(1.f-t) + b*t;
-}
-
-unsigned char clamp_u8(float v);
-float clamp_float(float a);
-
-float u8Fixed8Number_to_float(uint16_t x);
-
-
-float *build_input_gamma_table(struct curveType *TRC);
-struct matrix build_colorant_matrix(qcms_profile *p);
-void build_output_lut(struct curveType *trc,
-                      uint16_t **output_gamma_lut, size_t *output_gamma_lut_length);
-
-struct matrix matrix_invert(struct matrix mat);
-qcms_bool compute_precache(struct curveType *trc, uint8_t *output);
-
-#endif
diff --git a/third_party/skia b/third_party/skia
index cb18e02..472faa8 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit cb18e028c403caba0f1189583d281ef72b5a4a2b
+Subproject commit 472faa80deaf1f357b285b38360a63d8f03484c6
diff --git a/third_party/webrtc b/third_party/webrtc
index 549c9b7..d7b2f85 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 549c9b717fcbdfdf5d76068b3dd37076a9ffeacb
+Subproject commit d7b2f8560a4980111501dd8c0bdf19ae86287e41
diff --git a/tools/code_coverage/coverage_consts.py b/tools/code_coverage/coverage_consts.py
index 89f873a..f95c918 100755
--- a/tools/code_coverage/coverage_consts.py
+++ b/tools/code_coverage/coverage_consts.py
@@ -329,7 +329,6 @@
     'preg_parser_fuzzer',
     'prtime_fuzzer',
     'pseudotcp_parser_fuzzer',
-    'qcms_color_space_fuzzer',
     'qr_code_generator_fuzzer',
     'reader_fuzzer',
     'redaction_tool_fuzzer',
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 75abf5a0..7c361b5 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -420,10 +420,6 @@
     "META": {"sizes": {"includes": [50]}},
     "includes": [4040],
   },
-  "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/identity_internals/resources.grd": {
-    "META": {"sizes": {"includes": [10]}},
-    "includes": [4060],
-  },
   "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/inline_login/resources.grd": {
     "META": {"sizes": {"includes": [10]}},
     "includes": [4080],
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
index a54e3516..7500f633 100755
--- a/tools/licenses/licenses.py
+++ b/tools/licenses/licenses.py
@@ -431,7 +431,6 @@
     os.path.join('third_party', 'ots'),
     os.path.join('third_party', 'perfetto'),
     os.path.join('third_party', 'ppapi'),
-    os.path.join('third_party', 'qcms'),
     os.path.join('third_party', 're2'),
     os.path.join('third_party', 'safe_browsing'),
     os.path.join('third_party', 'smhasher'),
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 28fc0d7..eb5d7e9 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -34340,6 +34340,7 @@
   <int value="275" label="BeforeUnload"/>
   <int value="276" label="BfcacheBlockingReasons"/>
   <int value="277" label="LayoutInstability"/>
+  <int value="278" label="Profiler"/>
 </enum>
 
 <!-- LINT.ThenChange(//third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom:WebDXFeature) -->
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml
index 72a6726..23d62e7 100644
--- a/tools/metrics/histograms/metadata/android/histograms.xml
+++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -2213,6 +2213,24 @@
   </summary>
 </histogram>
 
+<histogram name="Android.InputOnViz.Viz.PendingStateTransfers.{CurrentState}"
+    units="counts" expires_after="2025-06-30">
+  <owner>kartarsingh@google.com</owner>
+  <owner>woa-performance-team@google.com</owner>
+  <summary>
+    When `InputOnViz` is enabled Browser process sends state on TouchDown to Viz
+    in case touch transfer was successful. In theory, due to hiccups in system
+    we can have multiple pending states on Viz.
+
+    This metric records the number of pending states on Viz when {CurrentState}.
+    This would help us verify if we have pending states in practice as well.
+  </summary>
+  <token key="CurrentState">
+    <variant name="NonNullCurrentState" summary="current state is non-null"/>
+    <variant name="NullCurrentState" summary="current state is null"/>
+  </token>
+</histogram>
+
 <histogram name="Android.Intent.HasNonSpoofablePackageName" enum="Boolean"
     expires_after="2024-12-01">
   <owner>katzz@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml
index 24e1ed0..7ef6b67 100644
--- a/tools/metrics/histograms/metadata/browser/histograms.xml
+++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -1058,7 +1058,7 @@
 </histogram>
 
 <histogram name="BrowserRenderProcessHost.BlockedByFilterURL"
-    enum="RenderProcessHostBlockedURLReason" expires_after="2025-02-05">
+    enum="RenderProcessHostBlockedURLReason" expires_after="2026-02-05">
   <owner>creis@chromium.org</owner>
   <owner>site-isolation-dev@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml
index 73cfa20..04d369e 100644
--- a/tools/metrics/histograms/metadata/navigation/histograms.xml
+++ b/tools/metrics/histograms/metadata/navigation/histograms.xml
@@ -1858,7 +1858,7 @@
 </histogram>
 
 <histogram name="Navigation.Renderer.BlockedForFilterURL"
-    enum="RendererBlockedURLReason" expires_after="2025-02-05">
+    enum="RendererBlockedURLReason" expires_after="2026-02-05">
   <owner>creis@chromium.org</owner>
   <owner>site-isolation-dev@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/sync/enums.xml b/tools/metrics/histograms/metadata/sync/enums.xml
index 34cb828..cf802d0 100644
--- a/tools/metrics/histograms/metadata/sync/enums.xml
+++ b/tools/metrics/histograms/metadata/sync/enums.xml
@@ -690,6 +690,8 @@
   <int value="100312" label="AccessibilitySlowKeysDelayMs"/>
   <int value="100313" label="AccessibilityFaceGazePrecisionClick"/>
   <int value="100314" label="AccessibilityFaceGazePrecisionClickSpeedFactor"/>
+  <int value="100315" label="OfficeFilesAlwaysMoveToDriveSyncable"/>
+  <int value="100316" label="OfficeFilesAlwaysMoveToOneDriveSyncable"/>
 <!-- LINT.ThenChange(/chrome/browser/sync/prefs/chrome_syncable_prefs_database.cc:ChromeSyncablePref)-->
 
 <!-- LINT.IfChange(IosSyncablePref) -->
diff --git a/tools/metrics/histograms/metadata/translate/histograms.xml b/tools/metrics/histograms/metadata/translate/histograms.xml
index bbf7c30..30ee4de 100644
--- a/tools/metrics/histograms/metadata/translate/histograms.xml
+++ b/tools/metrics/histograms/metadata/translate/histograms.xml
@@ -734,7 +734,7 @@
 </histogram>
 
 <histogram name="Translate.Translation.TargetLanguage.Origin"
-    enum="TranslateTargetLanguageOrigin" expires_after="2025-02-10">
+    enum="TranslateTargetLanguageOrigin" expires_after="2025-12-10">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
@@ -745,7 +745,7 @@
 </histogram>
 
 <histogram name="Translate.Translation.TimeToBeReady" units="ms"
-    expires_after="2025-02-10">
+    expires_after="2025-12-10">
   <owner>megjablon@google.com</owner>
   <owner>chrome-language@google.com</owner>
   <summary>
diff --git a/tools/ubsan/ignorelist.txt b/tools/ubsan/ignorelist.txt
index 940d9df1..fa6dd8dc 100644
--- a/tools/ubsan/ignorelist.txt
+++ b/tools/ubsan/ignorelist.txt
@@ -51,7 +51,3 @@
 # has landed.
 [pointer-overflow]
 fun:*protozero*ScatteredStreamWriter*ReserveBytes*
-
-# Remove this once https://github.com/google/leveldb/pull/1222 has landed.
-[pointer-overflow]
-fun:*leveldb*Hash*
diff --git a/ui/accessibility/platform/ax_platform_tree_manager_delegate.h b/ui/accessibility/platform/ax_platform_tree_manager_delegate.h
index 1e5bb0e..c205249 100644
--- a/ui/accessibility/platform/ax_platform_tree_manager_delegate.h
+++ b/ui/accessibility/platform/ax_platform_tree_manager_delegate.h
@@ -133,6 +133,10 @@
   virtual content::WebContentsAccessibility*
   AccessibilityGetWebContentsAccessibility() = 0;
 
+  // Returns true if the current accessibility tree is for web content, false if
+  // it's for Views.
+  virtual bool AccessibilityIsWebContentSource() = 0;
+
  protected:
   AXPlatformTreeManagerDelegate() = default;
 };
diff --git a/ui/accessibility/platform/browser_accessibility.cc b/ui/accessibility/platform/browser_accessibility.cc
index 2bfd811..61f593d 100644
--- a/ui/accessibility/platform/browser_accessibility.cc
+++ b/ui/accessibility/platform/browser_accessibility.cc
@@ -835,7 +835,13 @@
 }
 
 bool BrowserAccessibility::IsWebContent() const {
-  return true;
+  AXPlatformTreeManagerDelegate* delegate =
+      manager_->GetDelegateFromRootManager();
+  if (!delegate) {
+    return false;
+  }
+
+  return delegate->AccessibilityIsWebContentSource();
 }
 
 bool BrowserAccessibility::HasVisibleCaretOrSelection() const {
diff --git a/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.cc b/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.cc
index 95ad1af1..2adcb006 100644
--- a/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.cc
+++ b/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.cc
@@ -71,4 +71,9 @@
   return nullptr;
 }
 
+bool TestAXPlatformTreeManagerDelegate::AccessibilityIsWebContentSource() {
+  // Currently only used in web content tests.
+  return true;
+}
+
 }  // namespace ui
diff --git a/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h b/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h
index 5724995..8fb74f9c 100644
--- a/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h
+++ b/ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h
@@ -36,6 +36,7 @@
   bool ShouldSuppressAXLoadComplete() override;
   content::WebContentsAccessibility*
     AccessibilityGetWebContentsAccessibility() override;
+  bool AccessibilityIsWebContentSource() override;
 
   bool is_root_frame_;
   gfx::AcceleratedWidget accelerated_widget_;
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp
index d8da3df..566e6be 100644
--- a/ui/chromeos/file_manager_strings.grdp
+++ b/ui/chromeos/file_manager_strings.grdp
@@ -524,7 +524,7 @@
   <message name="IDS_FILE_BROWSER_GO_TO_FILE_LOCATION_BUTTON_LABEL" desc="Menu item label, navigating the user to the file's containing folder.">
     Go to file location
   </message>
-  <message name="IDS_FILE_BROWSER_ZIP_SELECTION_BUTTON_LABEL" desc="Context menu item to create a ZIP archive containing the selected files and/or folders.">
+  <message name="IDS_FILE_BROWSER_ZIP_SELECTION_BUTTON_LABEL" desc="Menu item label, creating a ZIP archive containing the selected files and/or folders. This must be a verb. For languages in which the verb 'to zip' does not have any obvious or direct translation, consider expressions such as 'Compress', or 'Compress as ZIP', or 'Create ZIP archive'.">
     Zip
   </message>
   <message name="IDS_FILE_BROWSER_SET_WALLPAPER_BUTTON_LABEL" desc="The context menu item to set wallpaper.">
diff --git a/ui/strings/translations/ax_strings_pl.xtb b/ui/strings/translations/ax_strings_pl.xtb
index 9ae6ae3..ecb28d6 100644
--- a/ui/strings/translations/ax_strings_pl.xtb
+++ b/ui/strings/translations/ax_strings_pl.xtb
@@ -57,7 +57,7 @@
 <translation id="3078740164268491126">tabela</translation>
 <translation id="3086746722712840547">note</translation>
 <translation id="3175736971608411871">licznik czasu</translation>
-<translation id="3199563858620722075">pole złożone</translation>
+<translation id="3199563858620722075">pole kombi</translation>
 <translation id="3220661731597678625">bieżący krok</translation>
 <translation id="3329013043687509092">Nasycenie</translation>
 <translation id="3486220673238053218">definicja</translation>